Prev: F52E Up: Map Next: F5EB
F544: Routine at F544
F544 LD HL,$E341 HL=Data_ItemGroup_Roman.
F547 CALL CheckItemGroupPresent Call CheckItemGroupPresent.
F54A CP $0B Jump to Response_YouveDoneThatAlready if A is equal to 0B.
F54C JP Z,Response_YouveDoneThatAlready
F54F CP $0A Jump to Response_YouCant_Duplicate if A is not equal to 0A.
F551 JP NZ,Response_YouCant_Duplicate
F554 LD A,$51 A=51.
F556 CALL ValidateItemPresent Call ValidateItemPresent.
F559 JP NZ,Response_YouveNothingToTieHimWith Jump to Response_YouveNothingToTieHimWith if A is not equal to 51.
F55C LD BC,$0A0B Call TransformItem to transform item 0A ("The Roman,camped") into item 0B ("The captured Roman").
F55F CALL TransformItem
F562 LD A,$04 Call AddToScore to add 04 points to the score.
F564 CALL AddToScore
F567 LD A,$51 A=51.
F569 CALL Handler_DestroyItemEvent Call Handler_DestroyItemEvent.
F56C LD HL,$A790 HL=Count_InventoryItems.
F56F DEC (HL) Decrease *HL by one.
F570 LD HL,$A787 HL=A787.
F573 SET 0,(HL) Set bit 0 of *HL.
F575 LD HL,$DC58 HL=Messaging_CaptureTheUnsuspectingRoman.
F578 JP $ED6D Jump to ED6D.
F57B LD HL,$E3C5 HL=Data_ItemGroup_Ladder.
F57E CALL CheckItemGroupPresent Call CheckItemGroupPresent.
F581 CP $5E Compare A with 5E.
F583 JP Z,Response_YouveDoneThatAlready Jump to Response_YouveDoneThatAlready if A is equal to 5E.
F586 CP $5C Compare A with 5C.
F588 JP Z,Response_YouveDoneThatAlready Jump to Response_YouveDoneThatAlready if A is equal to 5C.
F58B CALL IsPlayerCarryingItem Call IsPlayerCarryingItem.
F58E LD A,$5A A=5A.
F590 CALL Handler_DestroyItemEvent Call Handler_DestroyItemEvent.
F593 LD A,$5E A=5E.
F595 CALL Handler_UpdateItemEventCurrentRoom Call Handler_UpdateItemEventCurrentRoom.
F598 LD HL,$A790 HL=Count_InventoryItems.
F59B DEC (HL) Decrease *HL by one.
F59C LD A,$60 Write 60 to *E96A.
F59E LD ($E96A),A
F5A1 LD A,$63 Write 63 to *E959.
F5A3 LD ($E959),A
F5A6 LD HL,$A76C HL=A76C.
F5A9 BIT 6,(HL) Test bit 6 of *HL.
F5AB JP NZ,Response_OK_Duplicate Jump to Response_OK_Duplicate if *HL is not equal to 63.
F5AE SET 6,(HL) Set bit 6 of *HL.
F5B0 LD A,$04 Call AddToScore to add 04 points to the score.
F5B2 CALL AddToScore
F5B5 JP Response_OK_Duplicate Jump to Response_OK_Duplicate.
F5B8 LD HL,$E392 HL=Data_ItemGroup_Sword.
F5BB CALL CheckItemGroupPresent Call CheckItemGroupPresent.
F5BE CP $59 Compare A with 59.
F5C0 JP Z,Response_YouveDoneThatAlready Jump to Response_YouveDoneThatAlready if A is equal to 59.
F5C3 CP $39 Compare A with 39.
F5C5 JP Z,Response_IDontSeeThePoint Jump to Response_IDontSeeThePoint if A is equal to 39.
F5C8 CALL IsPlayerCarryingItem Call IsPlayerCarryingItem.
F5CB LD A,E A=E.
F5CC CALL Handler_DestroyItemEvent Call Handler_DestroyItemEvent.
F5CF LD BC,$5859 Call TransformItem to transform item 58 ("A stone slab") into item 59 ("A shimmering stone slab with a sword laying upon it").
F5D2 CALL TransformItem
F5D5 LD HL,$A790 HL=Count_InventoryItems.
F5D8 DEC (HL) Decrease *HL by one.
F5D9 LD HL,$A76D HL=A76D.
F5DC BIT 4,(HL) Test bit 4 of *HL.
F5DE JP NZ,Response_OK_Duplicate Jump to Response_OK_Duplicate if *HL is not equal to 39.
F5E1 SET 4,(HL) Set bit 4 of *HL.
F5E3 LD A,$04 Call AddToScore to add 04 points to the score.
F5E5 CALL AddToScore
F5E8 JP Response_OK_Duplicate Jump to Response_OK_Duplicate.
Prev: F52E Up: Map Next: F5EB