Prev: F52E Up: Map Next: F57B
F544: Process: Capture Roman
The player is trying to capture the Roman, check which version of the Roman is in the current room.
Process_CaptureRoman F544 LD HL,$E341 Call CheckItemGroupPresent with Data_ItemGroup_Roman.
F547 CALL CheckItemGroupPresent
The player wants to capture the Roman but is he already captured?
Print "You've done that already." if the Roman is already captured.
F54A CP $0B Jump to Response_YouveDoneThatAlready if item 0B: "The captured Roman" is in the current room.
F54C JP Z,Response_YouveDoneThatAlready
The player wants to capture the Roman but is he even here?
Print "You can't." if the Roman isn't present in the room.
F54F CP $0A Jump to Response_YouCant_Duplicate if item 0A: "The Roman,camped" isn't in the current room.
F551 JP NZ,Response_YouCant_Duplicate
Can the player even capture the Roman? Do they have the rope?
F554 LD A,$51 Call ValidateItemPresent with item 51: "A piece of rope".
F556 CALL ValidateItemPresent
F559 JP NZ,Response_YouveNothingToTieHimWith Jump to Response_YouveNothingToTieHimWith if item 51: "A piece of rope" isn't present in the current room or the players inventory.
The Roman is here, and the player has the rope! Let's capture a Roman:
Change the Roman state!
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
The rope as a separate item is no longer needed.
F567 LD A,$51 Call Handler_DestroyItemEvent with item 51: "A piece of rope".
F569 CALL Handler_DestroyItemEvent
The rope has been used so handle the inventory count.
F56C LD HL,$A790 Decrease *Count_InventoryItems by one.
F56F DEC (HL)
Flag to the game that this has occurred.
F570 LD HL,$A787 Set bit 0 of *Flag_EventStates which relates to the roman being captured.
F573 SET 0,(HL)
Print "You capture the unsuspecting Roman,securing his hands with the rope.".
F575 LD HL,$DC58 HL=Messaging_CaptureTheUnsuspectingRoman.
F578 JP PrintStringAndNewline_Duplicate Jump to PrintStringAndNewline_Duplicate.
Prev: F52E Up: Map Next: F57B