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