![]() |
Routines |
| Prev: 35995 | Up: Map | Next: 36081 |
|
Puts the current object down in this place. A fluid that is dropped evaporates. Reached through the action table at ActionTable, dispatched by Turn_RunTheHandlerIfPresent.
|
||||
|
Refuse the verb when the object is not carried.
|
||||
| Action_Putdown | 36006 | CALL Action_RefuseIfNotCarried | Call Action_RefuseIfNotCarried to refuse the verb when the object is not carried. | |
|
If the message is held back, the object is not put down.
|
||||
| 36009 | CALL ConditionSuppressTheMessage | Call ConditionSuppressTheMessage. If the message is held back, the object is not put down. | ||
| 36012 | LD IX,(46856) | Read *46856. | ||
| 36016 | LD A,(IX+1) | Read where this object is from the object record. | ||
| 36019 | CP 18 | Jump to Action_Putdown_DropTheObject if where this object is is not 18. | ||
| 36021 | JR NZ,Action_Putdown_DropTheObject | |||
| 36023 | LD IX,50022 | Point IX at 18 - "Rope". | ||
| Action_Putdown_DropTheObject | 36027 | PUSH IX | Read *Pointer_CurrentCharacter. | |
| 36029 | LD IX,(46860) | |||
| 36033 | LD A,(IX+1) | Read where the character is. | ||
| 36036 | POP IX | Put the object where the character is, and return unless it is a fluid. | ||
| 36038 | LD (IX+1),A | |||
| 36041 | BIT 1,(IX+7) | |||
| 36045 | RET Z | |||
| 36046 | LD (IX+16),0 | Clear the object's location. | ||
| 36050 | LD HL,45378 | Point at the message "[0x00] evaporate(s|d|ing|es)[0x15]" (45378). | ||
| 36053 | LD DE,8 | Step the pointer on by 8 bytes. | ||
| 36056 | ADD IX,DE | |||
| 36058 | PUSH IX | Save the name pointer and call PrintMessage to print the message. | ||
| 36060 | CALL PrintMessage | |||
| 36063 | RET | Return. | ||
|
Reached through the action lists of 31 - "Goblins Cache", 33 - "Large Cupboard", 37 - "Wooden Chest" and 41 - "Wooden Boat" for action 20, dispatched by TriggerAction.
|
||||
| 36064 | LD A,(46824) | Read *CurrentObject. | ||
| 36067 | LD HL,46825 | Point HL at the second object. | ||
| 36070 | CALL ConditionIsTheObjectCarried_1 | Call ConditionIsTheObjectCarried_1 to test whether the object is inside the second object. | ||
| 36073 | LD HL,44981 | Point at "[0x07] is not in[0x09]" (44981) and jump back to PrintMessage if ConditionIsTheObjectCarried_1 found the object is not inside the second object. | ||
| 36076 | JP NZ,PrintMessage | |||
| 36079 | JR Action_Pickup_0 | Jump to Action_Pickup_0 to locate object. | ||
| Prev: 35995 | Up: Map | Next: 36081 |