![]() |
Routines |
| Prev: 36562 | Up: Map | Next: 36667 |
|
Used by the routine at Event_TheBarrel.
Carries on with the current object. An open object is followed, and a passage whose volume is zero is refused. Reached through the action lists of 1 - "Heavy Rock Door", 5 - "Round Green Door", 6 - "Small Insignificant Crack", 8 - "Red Door", 10 - "Goblins Back Door", 11 - "Mountains Side Door", 12 - "Large Trap Door", 13 - "Magic Door" and 17 - "Goblins Door" for action 24, dispatched by TriggerAction.
|
||||
| Action_CarryOnWithTheObject | 36588 | LD A,(46824) | Read *CurrentObject. | |
|
Find the object's record.
|
||||
| 36591 | CALL LocateObject | Call LocateObject to locate object. | ||
| 36594 | CALL Event_TestTheOpenFlag | Call Event_TestTheOpenFlag to test whether the object is open. | ||
| 36597 | JP Z,Message_NameFromThisRecord | Jump to Message_NameFromThisRecord if the object is not open. | ||
|
Reached through the action lists of 9 - "Fast Black River" and 42 - "Fast River" for action 25, dispatched by TriggerAction.
|
||||
| 36600 | LD A,(46826) | Read *CurrentCharacter. | ||
| 36603 | CALL Action_LocateAndFollow | Call Action_LocateAndFollow to find where the object is. | ||
| 36606 | RET NZ | Return if Action_LocateAndFollow stopped inside a closed object. | ||
|
Find the exit through the current object.
|
||||
| 36607 | CALL ExitsFindTheExitThroughAnObject | Call ExitsFindTheExitThroughAnObject to find the exit through the current object. | ||
| 36610 | CP 255 | Jump to ResponseThatWillNotWork if ExitsFindTheExitThroughAnObject found no exit through the current object. | ||
| 36612 | JP Z,ResponseThatWillNotWork | |||
| 36615 | LD A,(IX+2) | Read this exit's destination. | ||
| 36618 | CP 0 | Jump to ResponseThatWillNotWork if this exit's destination is zero. | ||
| 36620 | JP Z,ResponseThatWillNotWork | |||
|
If the message is held back, the object is not followed.
|
||||
| 36623 | CALL ConditionSuppressTheMessage | Call ConditionSuppressTheMessage. If the message is held back, the object is not followed. | ||
| 36626 | PUSH IX | Call LocateLocation to find this location's record. | ||
|
Find the location's record.
|
||||
| 36628 | CALL LocateLocation | |||
| 36631 | BIT 7,(IX+0) | Test bit 7 of the location attribute. | ||
| 36635 | POP IX | Restore the exit and jump to Action_CarryOnWithTheObject_PrintItIsDark if bit 7 of the location attribute is clear. | ||
| 36637 | JR Z,Action_CarryOnWithTheObject_PrintItIsDark | |||
| 36639 | LD IY,(46860) | Read *Pointer_CurrentCharacter. | ||
| 36643 | LD A,(IY+16) | Read the location from IY. | ||
| 36646 | PUSH AF | Save the location and read this exit's destination. | ||
| 36647 | LD A,(IX+2) | |||
| 36650 | LD (IY+16),A | Store the exit's destination in the character's location. | ||
| 36653 | CALL YouSeeEntry | Call YouSeeEntry to print that you see this place. | ||
| 36656 | POP AF | Put the character back in its saved location. | ||
| 36657 | LD (IY+16),A | |||
| 36660 | RET | Return. | ||
| Action_CarryOnWithTheObject_PrintItIsDark | 36661 | LD HL,44575 | Point at the message "it is dark" (44575). | |
| 36664 | JP PrintMessage | Jump back to PrintMessage to print "it is dark". | ||
| Prev: 36562 | Up: Map | Next: 36667 |