Prev: F5F9 Up: Map Next: F7C0
F620: Routine at F620
F620 LD HL,$A825 HL=UserInput_Token_2.
F623 LD BC,$0009 BC=0009.
F626 LD A,$3C A=3C.
F628 CPIR CPIR.
F62A RET Return.
F62B LD HL,$E392 HL=Data_ItemGroup_Sword.
F62E CALL CheckItemGroupPresent Call CheckItemGroupPresent.
F631 CALL CheckObjectInInventory Call CheckObjectInInventory.
F634 RET Z Return if A is equal to 3C.
F635 POP HL Restore HL from the stack.
F636 CALL $F620 Call F620.
F639 LD A,E A=E.
F63A CALL Z,IsPlayerCarryingItem Call IsPlayerCarryingItem if ?? is equal to 3C.
F63D LD HL,$DCE5 HL=Messaging_DontHaveAWeopon.
F640 JP $ED6D Jump to ED6D.
F643 LD HL,$E341 HL=Data_ItemGroup_Roman.
F646 CALL CheckItemGroupPresent Call CheckItemGroupPresent.
F649 CP $0C Jump to Response_YouveDoneThatAlready if A is equal to 0C.
F64B JP Z,Response_YouveDoneThatAlready
F64E CP $55 Jump to Response_YouveDoneThatAlready if A is equal to 55.
F650 JP Z,Response_YouveDoneThatAlready
F653 LD ($A773),A Write A to *A773.
F656 CALL $F62B Call F62B.
F659 LD A,($A773) Jump to F67B if *A773 is greater than or equal to 04.
F65C CP $04
F65E JR NC,$F67B
F660 LD A,$02 A=02.
F662 CALL Handler_DestroyItemEvent Call Handler_DestroyItemEvent.
F665 LD A,$03 A=03.
F667 CALL Handler_DestroyItemEvent Call Handler_DestroyItemEvent.
F66A LD A,$08 A=08.
F66C CALL Handler_DestroyItemEvent Call Handler_DestroyItemEvent.
F66F LD BC,$070A Call TransformItem to transform item 07 ( N/A) into item 0A ("The Roman,camped").
F672 CALL TransformItem
F675 LD HL,$DCFE HL=Messaging_RomanIsUnnerved.
F678 JP $ED6D Jump to ED6D.
F67B CP $0A Jump to F68B if A is not equal to 0A.
F67D JR NZ,$F68B
F67F LD BC,$0A0C Call TransformItem to transform item 0A ("The Roman,camped") into item 0C ("The body of the Roman").
F682 CALL TransformItem
F685 LD HL,$DD4A HL=Messaging_BlowStrikesTrue.
F688 JP $ED6D Jump to ED6D.
F68B LD BC,$0B55 Call TransformItem to transform item 0B ("The captured Roman") into item 55 ("The body of the Roman").
F68E CALL TransformItem
F691 LD HL,$A787 HL=A787.
F694 RES 0,(HL) Reset bit 0 of *HL.
F696 CALL $F685 Call F685.
F699 LD HL,$DD6E HL=Messaging_VeryCowardly.
F69C JP $ED6D Jump to ED6D.
F69F LD HL,$E348 HL=Data_ItemGroup_Fomorian.
F6A2 CALL CheckItemGroupPresent Call CheckItemGroupPresent.
F6A5 LD HL,$FC8A HL=FC8A.
F6A8 LD BC,$0003 BC=0003.
F6AB CPIR CPIR.
F6AD JP Z,Response_YouveDoneThatAlready Jump to Response_YouveDoneThatAlready if A is equal to 0A.
F6B0 LD ($A773),A Write A to *A773.
F6B3 CALL $F62B Call F62B.
F6B6 LD A,($A773) Jump to F6C7 if *A773 is not equal to 0F.
F6B9 CP $0F
F6BB JR NZ,$F6C7
F6BD LD HL,$E9B2 HL=GameOver.
F6C0 EX (SP),HL Exchange the *SP with the HL register.
F6C1 LD HL,$DD86 HL=Messaging_AttackInVain.
F6C4 JP $ED6D Jump to ED6D.
F6C7 LD A,$39 A=39.
F6C9 CALL ValidateItemPresent Call ValidateItemPresent.
F6CC JR Z,$F6D4 Jump to F6D4 if A is equal to 39.
F6CE LD HL,$DDB5 HL=Messaging_FomorianUnaffected.
F6D1 JP $ED6D Jump to ED6D.
F6D4 LD A,($A773) A=*A773.
F6D7 LD B,A B=A.
F6D8 ADD A,$09 A+=09.
F6DA LD C,A C=A.
F6DB CALL TransformItem Call TransformItem.
F6DE JP $F685 Jump to F685.
F6E1 LD A,$26 A=26.
F6E3 CALL ValidateItemPresent Call ValidateItemPresent.
F6E6 JP Z,Response_YouveDoneThatAlready Jump to Response_YouveDoneThatAlready if A is equal to 26.
F6E9 CALL $F620 Call F620.
F6EC JR NZ,$F6F7 Jump to F6F7 if A is not equal to 26.
F6EE LD HL,$E392 HL=Data_ItemGroup_Sword.
F6F1 CALL CheckItemGroupPresent Call CheckItemGroupPresent.
F6F4 CALL IsPlayerCarryingItem Call IsPlayerCarryingItem.
F6F7 LD BC,$1326 Call TransformItem to transform item 13 ("A hare,caught by the leg,in a trap") into item 26 ("A dead hare,caught in a trap").
F6FA CALL TransformItem
F6FD LD HL,$DDDF HL=Messaging_NoLongerSuffers.
F700 JP $ED6D Jump to ED6D.
F703 LD ($A772),HL Write HL to *A772.
F706 CALL $F62B Call F62B.
F709 LD HL,$E9B2 HL=GameOver.
F70C EX (SP),HL Exchange the *SP with the HL register.
F70D LD HL,($A772) HL=*A772.
F710 JP $ED6D Jump to ED6D.
F713 CALL $F62B Call F62B.
F716 CALL $F685 Call F685.
F719 LD HL,$DDFA HL=Messaging_MobbedByAngryVillagers.
F71C JP $F703 Jump to F703.
F71F LD HL,$E377 HL=Data_ItemGroup_Warrior.
F722 CALL CheckItemGroupPresent Call CheckItemGroupPresent.
F725 CP $27 Jump to F69F if A is not equal to 27.
F727 JP NZ,$F69F
F72A LD HL,$DCE5 HL=Messaging_DontHaveAWeopon.
F72D JP $ED6D Jump to ED6D.
F730 CALL $F62B Call F62B.
F733 LD HL,$DE31 HL=Messaging_YouCantTooManyOfThem.
F736 JP $ED6D Jump to ED6D.
F739 LD A,$45 A=45.
F73B CALL ValidateItemPresent Call ValidateItemPresent.
F73E JP Z,Response_YouveDoneThatAlready Jump to Response_YouveDoneThatAlready if A is equal to 45.
F741 CALL $F62B Call F62B.
F744 LD A,$56 A=56.
F746 CALL CheckObjectInInventory Call CheckObjectInInventory.
F749 LD HL,$DE57 HL=Messaging_AttackBoldly.
F74C JP NZ,$F703 Jump to F703 if A is not equal to 56.
F74F LD BC,$4445 Call TransformItem to transform item 44 ("A bear") into item 45 ("A dead bear").
F752 CALL TransformItem
F755 LD A,$2C Write 2C to *E84D.
F757 LD ($E84D),A
F75A LD A,$35 Write 35 to *E84E.
F75C LD ($E84E),A
F75F LD A,$04 Call AddToScore to add 04 points to the score.
F761 CALL AddToScore
F764 LD HL,$DE9E HL=Messaging_YourBlowStrikesTrue.
F767 JP $ED6D Jump to ED6D.
F76A CALL $F62B Call F62B.
F76D CALL $F685 Call F685.
F770 LD HL,$DEC2 HL=Messaging_GuardOnTheRampartAbove.
F773 JP $F703 Jump to F703.
F776 CALL $F62B Call F62B.
F779 LD HL,$DEF0 HL=Messaging_DruidAvoidsBlow.
F77C JP $F703 Jump to F703.
F77F LD A,$50 A=50.
F781 CALL ValidateItemPresent Call ValidateItemPresent.
F784 JP Z,Response_YouveDoneThatAlready Jump to Response_YouveDoneThatAlready if A is equal to 50.
F787 CALL $F62B Call F62B.
F78A LD BC,$4F50 Call TransformItem to transform item 4F ("A pig") into item 50 ("A dead pig").
F78D CALL TransformItem
F790 JP $F764 Jump to F764.
F793 LD A,$52 A=52.
F795 CALL ValidateItemPresent Call ValidateItemPresent.
F798 JP NZ,Response_YouveDoneThatAlready Jump to Response_YouveDoneThatAlready if A is not equal to 52.
F79B CALL $F62B Call F62B.
F79E LD BC,$5253 Call TransformItem to transform item 52 ("A wild ox,tethered to the pen by a length of rope") into item 53 ("A dead ox,tethered by a piece of rope").
F7A1 CALL TransformItem
F7A4 LD A,$04 Call AddToScore to add 04 points to the score.
F7A6 CALL AddToScore
F7A9 JP $F764 Jump to F764.
This entry point is used by the routines at F2FF and F31D.
F7AC LD A,$19 A=19.
F7AE CALL CheckObjectInInventory Call CheckObjectInInventory.
F7B1 RET NZ Return if A is not equal to 19.
F7B2 LD A,E A=E.
F7B3 CALL Handler_DestroyItemEvent Call Handler_DestroyItemEvent.
F7B6 LD HL,$A790 Decrease *Count_InventoryItems by one.
F7B9 DEC (HL)
F7BA LD HL,$E060 HL=Messaging_SaltHasDissolved.
F7BD JP $ED6D Jump to ED6D.
Prev: F5F9 Up: Map Next: F7C0