Prev: A248 Up: Map Next: A302
A2B4: Action: Untie
Unties the current object. Reached through the action table at ActionTable, dispatched by Turn_RunTheHandlerIfPresent.
ActionUntie A2B4 LD IX,($B708) Read *B708.
A2B8 LD A,(IX+$01) Read where this object is from the object record.
A2BB CP $12 Compare where this object is with 12.
A2BD LD HL,$B092 Point HL at "[0x07] is not tied".
A2C0 JP NZ,PrintMessage Jump back to PrintMessage if where this object is is not 12.
If the message is held back, the object stays tied.
A2C3 CALL ConditionSuppressTheMessage Call ConditionSuppressTheMessage. If the message is held back, the object stays tied.
A2C6 LD A,($C367) Copy where $12 - "Rope" is into where this object is.
A2C9 LD (IX+$01),A
A2CC RET Return.
Find the exit through the current object.
Reached through the action list of $2A - "Fast River" for action 32, dispatched by TriggerAction.
A2CD CALL ExitsFindTheExitThroughAnObject Call ExitsFindTheExitThroughAnObject to find the exit through the current object.
A2D0 LD A,(IX+$02) Read this exit's destination.
A2D3 CP $00 Jump to ActionUntie_OpenAndMove if this exit's destination is not zero.
A2D5 JR NZ,ActionUntie_OpenAndMove
If the message is held back, the routine returns without untying.
A2D7 CALL ConditionSuppressTheMessage Call ConditionSuppressTheMessage. If the message is held back, the routine returns without untying.
A2DA RET Return.
ActionUntie_OpenAndMove A2DB LD A,(IX+$00) Read this exit's direction.
A2DE LD HL,($B6E7) Read *CurrentAction.
A2E1 PUSH HL Update *CurrentAction.
A2E2 LD ($B6E7),A
A2E5 LD IX,($B708) Read *B708.
A2E9 SET 5,(IX+$07) Mark the object open.
A2ED PUSH IX Write FF to *CurrentObject.
A2EF LD A,$FF
A2F1 LD ($B6E8),A
A2F4 CALL Action_Direction_TestIfInside Call Action_Direction_TestIfInside to carry on with the move.
A2F7 POP IX Restore the object from the stack and close it.
A2F9 RES 5,(IX+$07)
A2FD POP HL Update *CurrentAction.
A2FE LD ($B6E7),HL
A301 RET Return.
Prev: A248 Up: Map Next: A302