![]() |
Routines |
| Prev: F03A | Up: Map | Next: F190 |
|
Put the object in this room, with special cases for the log, the chest and the ring.
|
||||
| Handler_NotCarryingIt | F045 | CALL IsObjectCarried | Jump to Handler_NotCarryingIt_DropHere when the object is being carried. | |
| F048 | JR Z,Handler_NotCarryingIt_DropHere | |||
| F04A | LD HL,$BD7F | Print "You're not carrying ". | ||
| F04D | CALL PrintString | |||
| F050 | LD A,E | Point at the plural-object list with this object. | ||
| F051 | LD HL,$EEEB | |||
| F054 | LD BC,$0002 | BC=0002. | ||
| F057 | CPIR | Jump to Handler_NotCarryingIt_Next if the search found a match. | ||
| F059 | JR Z,Handler_NotCarryingIt_Next | |||
|
Reply with "it.".
|
||||
| F05B | LD HL,$BCFB | Print "it." and return to the game loop. | ||
| F05E | JP PrintResponse | |||
|
Reply with "them.".
|
||||
| Handler_NotCarryingIt_Next | F061 | LD HL,$BCFF | Print "them." and return to the game loop. | |
| F064 | JP PrintResponse | |||
| Handler_NotCarryingIt_DropHere | F067 | LD B,E | Call UpdateObjectLocation to drop the object in this room. | |
| F068 | LD A,($BA9B) | |||
| F06B | LD C,A | |||
| F06C | CALL UpdateObjectLocation | |||
| F06F | LD HL,$BA68 | Count one fewer thing carried, then print "O.K." and return to the game loop. | ||
| F072 | DEC (HL) | |||
| F073 | LD HL,$BCDB | |||
| F076 | JP PrintResponse | |||
|
This entry point is used by the routine at Action_Drop.
|
||||
| Handler_NotCarryingIt_MarasBody | F079 | LD HL,$E812 | Jump to Handler_NotCarryingIt_Witch unless the player named Mara's body. | |
| F07C | CALL Parser_AdvanceToSeparator | |||
| F07F | JR NZ,Handler_NotCarryingIt_Witch | |||
| F081 | LD A,$33 | Destroy object 33 (the glowing rock). | ||
| F083 | CALL Handler_DestroyItem | |||
| F086 | LD A,$0A | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | ||
| F088 | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_Witch | F08B | LD HL,$E814 | Jump to Handler_NotCarryingIt_RopeOverhang unless the player named the witch. | |
| F08E | CALL Parser_AdvanceToSeparator | |||
| F091 | JR NZ,Handler_NotCarryingIt_RopeOverhang | |||
| F093 | LD HL,$E6FF | Call Parser_SkipToken to skip to the object named by this phrase. | ||
| F096 | CALL Parser_SkipToken | |||
| F099 | JP Handler_NotCarryingIt | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | ||
| Handler_NotCarryingIt_RopeOverhang | F09C | LD HL,$E816 | Jump to Handler_NotCarryingIt_BlacksmithCoin unless the player named the rope on the overhang. | |
| F09F | CALL Parser_AdvanceToSeparator | |||
| F0A2 | JR NZ,Handler_NotCarryingIt_BlacksmithCoin | |||
| F0A4 | LD A,$00 | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | ||
| F0A6 | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_BlacksmithCoin | F0A9 | LD HL,$E818 | Jump to Handler_NotCarryingIt_BlacksmithBow unless the player named the blacksmith. | |
| F0AC | CALL Parser_AdvanceToSeparator | |||
| F0AF | JR NZ,Handler_NotCarryingIt_BlacksmithBow | |||
| F0B1 | LD A,$02 | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | ||
| F0B3 | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_BlacksmithBow | F0B6 | LD HL,$E81D | Jump to Handler_NotCarryingIt_DeadBlacksmith unless the player named the blacksmith. | |
| F0B9 | CALL Parser_AdvanceToSeparator | |||
| F0BC | JR NZ,Handler_NotCarryingIt_DeadBlacksmith | |||
| F0BE | LD A,$03 | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | ||
| F0C0 | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_DeadBlacksmith | F0C3 | LD HL,$E81F | Jump to Handler_NotCarryingIt_Furnace unless the player named the dead blacksmith. | |
| F0C6 | CALL Parser_AdvanceToSeparator | |||
| F0C9 | JR NZ,Handler_NotCarryingIt_Furnace | |||
| F0CB | LD A,$04 | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | ||
| F0CD | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_Furnace | F0D0 | LD HL,$E821 | Jump to Handler_NotCarryingIt_Demons unless the player named the furnace. | |
| F0D3 | CALL Parser_AdvanceToSeparator | |||
| F0D6 | JR NZ,Handler_NotCarryingIt_Demons | |||
| F0D8 | LD A,$43 | Jump to Handler_NotCarryingIt_DropRing if the player is not carrying object 43 (the ring being worn). | ||
| F0DA | CALL IsObjectCarried | |||
| F0DD | JR NZ,Handler_NotCarryingIt_DropRing | |||
| F0DF | LD BC,$4307 | Replace object 43 (the ring being worn) with object 07 (the ring). | ||
| F0E2 | CALL TransformItem | |||
| Handler_NotCarryingIt_DropRing | F0E5 | LD A,$07 | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | |
| F0E7 | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_Demons | F0EA | LD HL,$E823 | Jump to Handler_NotCarryingIt_Zarn unless the player named the demons. | |
| F0ED | CALL Parser_AdvanceToSeparator | |||
| F0F0 | JR NZ,Handler_NotCarryingIt_Zarn | |||
| F0F2 | LD A,$08 | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | ||
| F0F4 | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_Zarn | F0F7 | LD HL,$E825 | Jump to Handler_NotCarryingIt_Log unless the player named Zarn. | |
| F0FA | CALL Parser_AdvanceToSeparator | |||
| F0FD | JR NZ,Handler_NotCarryingIt_Log | |||
| F0FF | LD A,$44 | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | ||
| F101 | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_Log | F104 | LD HL,$E839 | Jump to Handler_NotCarryingIt_PrincessMara unless the player named Zarn. | |
| F107 | CALL Parser_AdvanceToSeparator | |||
| F10A | JR NZ,Handler_NotCarryingIt_PrincessMara | |||
| F10C | LD A,$44 | Jump to Handler_NotCarryingIt_CarryingLog when object 44 (the log) is here. | ||
| F10E | CALL IsObjectInCurrentRoom | |||
| F111 | JR Z,Handler_NotCarryingIt_CarryingLog | |||
|
Reply with "It already is!".
|
||||
| F113 | LD HL,$DC8B | Print "It already is!" and return to the game loop. | ||
| F116 | JP PrintResponse | |||
| Handler_NotCarryingIt_CarryingLog | F119 | LD A,$44 | Jump to Handler_NotCarryingIt_PlaceBridge if the player is not carrying object 44 (the log). | |
| F11B | CALL IsObjectCarried | |||
| F11E | JR NZ,Handler_NotCarryingIt_PlaceBridge | |||
| F120 | LD HL,$BA68 | Count one fewer thing carried. | ||
| F123 | DEC (HL) | |||
| Handler_NotCarryingIt_PlaceBridge | F124 | LD A,$44 | Destroy object 44 (the log). | |
| F126 | CALL Handler_DestroyItem | |||
| F129 | LD BC,$4515 | Put object 45 (the log bridge) in room 15 (The Western Edge of a Chasm). | ||
| F12C | CALL UpdateObjectLocation | |||
| F12F | LD BC,$4616 | Put object 46 (the log bridge) in room 16 (The Eastern Edge of a Chasm). | ||
| F132 | CALL UpdateObjectLocation | |||
| F135 | LD A,$11 | Destroy object 11 (the chasm). | ||
| F137 | CALL Handler_DestroyItem | |||
| F13A | LD A,$12 | Destroy object 12 (the chasm). | ||
| F13C | CALL Handler_DestroyItem | |||
| F13F | LD A,$16 | Open the log bridge across the chasm, both ways. | ||
| F141 | LD ($E9B4),A | |||
| F144 | LD A,$15 | |||
| F146 | LD ($E9BB),A | |||
| F149 | LD HL,$DCFE | Print "The log now spans the chasm, forming an effective bridge." and return to the game loop. | ||
| F14C | JP PrintResponse | |||
| Handler_NotCarryingIt_PrincessMara | F14F | LD HL,$E827 | Jump to Handler_NotCarryingIt_OldMan unless the player named Princess Mara. | |
| F152 | CALL Parser_AdvanceToSeparator | |||
| F155 | JR NZ,Handler_NotCarryingIt_OldMan | |||
| F157 | LD A,$09 | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | ||
| F159 | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_OldMan | F15C | LD HL,$E829 | Jump to Handler_NotCarryingIt_Key unless the player named the old man. | |
| F15F | CALL Parser_AdvanceToSeparator | |||
| F162 | JR NZ,Handler_NotCarryingIt_Key | |||
| F164 | LD A,$0D | Jump to Handler_NotCarryingIt_DropChest if the player is not carrying object 0D (the open chest). | ||
| F166 | CALL IsObjectCarried | |||
| F169 | JR NZ,Handler_NotCarryingIt_DropChest | |||
| F16B | LD BC,$0F01 | Put object 0F (the Crystals of Vulcan) in the player's inventory. | ||
| F16E | CALL UpdateObjectLocation | |||
| F171 | LD BC,$0D0E | Replace object 0D (the open chest) with object 0E (the empty chest). | ||
| F174 | CALL TransformItem | |||
| F177 | LD HL,$BA68 | Count one more thing carried. | ||
| F17A | INC (HL) | |||
| Handler_NotCarryingIt_DropChest | F17B | LD A,$0F | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | |
| F17D | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_Key | F180 | LD HL,$E82F | Jump to Handler_NotCarryingIt_YouCant unless the player named the key. | |
| F183 | CALL Parser_AdvanceToSeparator | |||
| F186 | JR NZ,Handler_NotCarryingIt_YouCant | |||
| F188 | LD A,$10 | Jump back to Handler_NotCarryingIt to drop it in the ordinary way. | ||
| F18A | JP Handler_NotCarryingIt | |||
| Handler_NotCarryingIt_YouCant | F18D | JP Response_YouCant_GameLoop | Tell the player the command is impossible. | |
| Prev: F03A | Up: Map | Next: F190 |