![]() |
Routines |
| Prev: 41544 | Up: Map | Next: 41730 |
|
Unties the current object. Reached through the action table at ActionTable, dispatched by Turn_RunTheHandlerIfPresent.
|
||||
| ActionUntie | 41652 | LD IX,(46856) | Read *46856. | |
| 41656 | LD A,(IX+1) | Read where this object is from the object record. | ||
| 41659 | CP 18 | Compare where this object is with 18. | ||
| 41661 | LD HL,45202 | Point HL at "[0x07] is not tied". | ||
| 41664 | JP NZ,PrintMessage | Jump back to PrintMessage if where this object is is not 18. | ||
|
If the message is held back, the object stays tied.
|
||||
| 41667 | CALL ConditionSuppressTheMessage | Call ConditionSuppressTheMessage. If the message is held back, the object stays tied. | ||
| 41670 | LD A,(50023) | Copy where 18 - "Rope" is into where this object is. | ||
| 41673 | LD (IX+1),A | |||
| 41676 | RET | Return. | ||
|
Find the exit through the current object.
Reached through the action list of 42 - "Fast River" for action 50, dispatched by TriggerAction.
|
||||
| 41677 | CALL ExitsFindTheExitThroughAnObject | Call ExitsFindTheExitThroughAnObject to find the exit through the current object. | ||
| 41680 | LD A,(IX+2) | Read this exit's destination. | ||
| 41683 | CP 0 | Jump to ActionUntie_OpenAndMove if this exit's destination is not zero. | ||
| 41685 | JR NZ,ActionUntie_OpenAndMove | |||
|
If the message is held back, the routine returns without untying.
|
||||
| 41687 | CALL ConditionSuppressTheMessage | Call ConditionSuppressTheMessage. If the message is held back, the routine returns without untying. | ||
| 41690 | RET | Return. | ||
| ActionUntie_OpenAndMove | 41691 | LD A,(IX+0) | Read this exit's direction. | |
| 41694 | LD HL,(46823) | Read *CurrentAction. | ||
| 41697 | PUSH HL | Update *CurrentAction. | ||
| 41698 | LD (46823),A | |||
| 41701 | LD IX,(46856) | Read *46856. | ||
| 41705 | SET 5,(IX+7) | Mark the object open. | ||
| 41709 | PUSH IX | Write 255 to *CurrentObject. | ||
| 41711 | LD A,255 | |||
| 41713 | LD (46824),A | |||
| 41716 | CALL Action_Direction_TestIfInside | Call Action_Direction_TestIfInside to carry on with the move. | ||
| 41719 | POP IX | Restore the object from the stack and close it. | ||
| 41721 | RES 5,(IX+7) | |||
| 41725 | POP HL | Update *CurrentAction. | ||
| 41726 | LD (46823),HL | |||
| 41729 | RET | Return. | ||
| Prev: 41544 | Up: Map | Next: 41730 |