![]()  | 
Routines | 
| Prev: F52E | Up: Map | Next: F57B | 
| 
 | 
||||
| 
 
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 |