Prev: 36562 Up: Map Next: 36667
36588: Action: Carry On With The Object
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