Prev: F03A Up: Map Next: F190
F045: Handler: Not Carrying It
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