![]() |
Routines |
| Prev: 8C9B | Up: Map | Next: 8CF1 |
|
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 | 8CA6 | 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.
|
||||
| 8CA9 | CALL ConditionSuppressTheMessage | Call ConditionSuppressTheMessage. If the message is held back, the object is not put down. | ||
| 8CAC | LD IX,($B708) | Read *B708. | ||
| 8CB0 | LD A,(IX+$01) | Read where this object is from the object record. | ||
| 8CB3 | CP $12 | Jump to Action_Putdown_DropTheObject if where this object is is not 12. | ||
| 8CB5 | JR NZ,Action_Putdown_DropTheObject | |||
| 8CB7 | LD IX,$C366 | Point IX at $12 - "Rope". | ||
| Action_Putdown_DropTheObject | 8CBB | PUSH IX | Read *Pointer_CurrentCharacter. | |
| 8CBD | LD IX,($B70C) | |||
| 8CC1 | LD A,(IX+$01) | Read where the character is. | ||
| 8CC4 | POP IX | Put the object where the character is, and return unless it is a fluid. | ||
| 8CC6 | LD (IX+$01),A | |||
| 8CC9 | BIT 1,(IX+$07) | |||
| 8CCD | RET Z | |||
| 8CCE | LD (IX+$10),$00 | Clear the object's location. | ||
| 8CD2 | LD HL,$B142 | Point at the message "[0x00] evaporate(s|d|ing|es)[0x15]" (B142). | ||
| 8CD5 | LD DE,$0008 | Step the pointer on by 08 bytes. | ||
| 8CD8 | ADD IX,DE | |||
| 8CDA | PUSH IX | Save the name pointer and call PrintMessage to print the message. | ||
| 8CDC | CALL PrintMessage | |||
| 8CDF | RET | Return. | ||
|
Reached through the action lists of $1F - "Goblins Cache", $21 - "Large Cupboard", $25 - "Wooden Chest" and $29 - "Wooden Boat" for action 14, dispatched by TriggerAction.
|
||||
| 8CE0 | LD A,($B6E8) | Read *CurrentObject. | ||
| 8CE3 | LD HL,$B6E9 | Point HL at the second object. | ||
| 8CE6 | CALL ConditionIsTheObjectCarried_1 | Call ConditionIsTheObjectCarried_1 to test whether the object is inside the second object. | ||
| 8CE9 | LD HL,$AFB5 | Point at "[0x07] is not in[0x09]" (AFB5) and jump back to PrintMessage if ConditionIsTheObjectCarried_1 found the object is not inside the second object. | ||
| 8CEC | JP NZ,PrintMessage | |||
| 8CEF | JR Action_Pickup_0 | Jump to Action_Pickup_0 to locate object. | ||
| Prev: 8C9B | Up: Map | Next: 8CF1 |