![]() |
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 |