Prev: 9014 Up: Map Next: 937B
9198: Action: Drop
Put a carried object down in the current room.
ActionDrop 9198 CALL Parser_ValidateDirectObject Return if the command does not name a single object.
919B RET C
919C CP $03 Jump to ActionDrop_Step4 when the command names fewer than 03 nouns.
919E JR C,ActionDrop_Step4
91A0 LD HL,$6445 Print "Please rephrase that." and start a new line.
91A3 JR ActionDrop_Loop4
ActionDrop_Loop1 91A5 CALL IsObjectCarried Call IsObjectCarried to test whether the object is carried.
91A8 JR Z,ActionDrop_Step3 The named object is being carried.
ActionDrop_Loop2 91AA LD HL,$7A59 Print You're not carrying on the same line.
91AD CALL PrintString
91B0 LD A,E The object number selects the plural list.
ActionDrop_Step1 91B1 LD HL,$9010 The objects called "them" are listed at Table_PluralObjects.
91B4 LD BC,$0004 04 objects are spoken of as "them".
91B7 CPIR Search the list of objects that are called "them".
91B9 JR Z,ActionDrop_Step2 A plural object uses the wording for "them".
91BB LD HL,$7A38 Print "it." and start a new line.
91BE JR ActionDrop_Loop4
ActionDrop_Step2 91C0 LD HL,$7A3C Print "them." and start a new line.
91C3 JR ActionDrop_Loop4
ActionDrop_Step3 91C5 LD B,E Put the object down in the current room.
91C6 LD A,($6223)
91C9 LD C,A
91CA CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
ActionDrop_Loop3 91CD LD HL,$622C The player is carrying one fewer object.
91D0 DEC (HL)
91D1 LD HL,$6466 Print "O.K." and start a new line.
ActionDrop_Loop4 91D4 CALL PrintStringAndANewline
91D7 RET Return.
ActionDrop_Step4 91D8 LD HL,$8959 Jump to ActionDrop_Step5 unless the command matches the phrase at 8959 (A knife. (00)).
91DB CALL Parser_AdvanceToSeparator
91DE JR NZ,ActionDrop_Step5
91E0 LD A,$00
91E2 JP ActionDrop_Loop1
ActionDrop_Step5 91E5 LD HL,$8969 Jump to ActionDrop_Step6 unless the command matches the phrase at 8969 (A laser pistol. (01)).
91E8 CALL Parser_AdvanceToSeparator
91EB JR NZ,ActionDrop_Step6
91ED LD A,$01
91EF JP ActionDrop_Loop1
ActionDrop_Step6 91F2 LD HL,$8960 Jump to ActionDrop_Step7 unless the command matches the phrase at 8960 (A coin. (02)).
91F5 CALL Parser_AdvanceToSeparator
91F8 JR NZ,ActionDrop_Step7
91FA LD A,$02
91FC JP ActionDrop_Loop1
ActionDrop_Step7 91FF LD HL,$896E Jump to ActionDrop_Step8 unless the command matches the phrase at 896E (A crystal rod. (03)).
9202 CALL Parser_AdvanceToSeparator
9205 JR NZ,ActionDrop_Step8
9207 LD A,$03
9209 JP ActionDrop_Loop1
ActionDrop_Step8 920C LD HL,$8940 Jump to ActionDrop_Step9 unless the command matches the phrase at Table_PhraseLists (A detonator. (04)).
920F CALL Parser_AdvanceToSeparator
9212 JR NZ,ActionDrop_Step9
9214 LD A,$04
9216 JP ActionDrop_Loop1
ActionDrop_Step9 9219 LD HL,$8964 Jump to ActionDrop_Step10 unless the command matches the phrase at 8964 (A metal bar. (05)).
921C CALL Parser_AdvanceToSeparator
921F JR NZ,ActionDrop_Step10
9221 LD A,$05
9223 JP ActionDrop_Loop1
ActionDrop_Step10 9226 LD HL,$8973 Jump to ActionDrop_Step11 unless the command matches the phrase at 8973 (A glowing sphere. (06)).
9229 CALL Parser_AdvanceToSeparator
922C JR NZ,ActionDrop_Step11
922E LD A,$06
9230 JP ActionDrop_Loop1
ActionDrop_Step11 9233 LD HL,$8942 Jump to ActionDrop_Step12 unless the command matches the phrase at 8942 (Some poison fungus. (07)).
9236 CALL Parser_AdvanceToSeparator
9239 JR NZ,ActionDrop_Step12
923B LD A,$07
923D JP ActionDrop_Loop1
ActionDrop_Step12 9240 LD HL,$8978 Jump to ActionDrop_Step13 unless the command matches the phrase at 8978 (Some round stones. (08)).
9243 CALL Parser_AdvanceToSeparator
9246 JR NZ,ActionDrop_Step13
9248 LD A,$08
924A JP ActionDrop_Loop1
ActionDrop_Step13 924D LD HL,$8962 Jump to ActionDrop_Step14 unless the command matches the phrase at 8962 (A key. (09)).
9250 CALL Parser_AdvanceToSeparator
9253 JR NZ,ActionDrop_Step14
9255 LD A,$09
9257 JP ActionDrop_Loop1
ActionDrop_Step14 925A LD HL,$895B Jump to ActionDrop_Step15 unless the command matches the phrase at 895B (A space axe. (0A)).
925D CALL Parser_AdvanceToSeparator
9260 JR NZ,ActionDrop_Step15
9262 LD A,$0A
9264 JP ActionDrop_Loop1
ActionDrop_Step15 9267 LD HL,$8947 Jump to ActionDrop_Step16 unless the command matches the phrase at 8947 (Some explosives. (0B)).
926A CALL Parser_AdvanceToSeparator
926D JR NZ,ActionDrop_Step16
926F LD A,$0B
9271 JP ActionDrop_Loop1
ActionDrop_Step16 9274 JR ActionDrop_Step17 Continue at ActionDrop_Step17 to try the next thing the player might drop.
ActionDrop_Step17 9276 LD HL,$897F Point at the phrase at 897F and call Parser_AdvanceToSeparator to match it against the command.
9279 CALL Parser_AdvanceToSeparator
927C JR NZ,ActionDrop_Step20 Jump to ActionDrop_Step20 if it doesn't match.
927E LD A,$06 Jump to ActionDrop_Loop2 when the player is not carrying A glowing sphere. (06).
9280 CALL IsObjectCarried
9283 JP NZ,ActionDrop_Loop2
9286 LD A,($6223) Fetch the current room.
9289 CP $1C The sphere was not dropped in The Crystal Chamber..
928B JR NZ,ActionDrop_Step18
928D LD BC,$1500 Clear the glass pedestal in The Crystal Chamber..
9290 JR ActionDrop_Step19 Continue at ActionDrop_Step19 to move what was dropped.
ActionDrop_Step18 9292 LD BC,$1600 Clear the glass pedestal in The Blue Room..
ActionDrop_Step19 9295 CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
9298 LD BC,$0600 Move A glowing sphere. (06) to nowhere (00).
929B CALL UpdateObjectLocation
929E LD A,($6223) Fetch the current room.
92A1 LD C,A Leave A glowing sphere sitting on a raised dish on a glass pedestal. in the room where it was dropped.
92A2 LD B,$3C
92A4 CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
92A7 JP ActionDrop_Loop3 Continue at ActionDrop_Loop3 to count one fewer object and confirm the drop.
ActionDrop_Step20 92AA LD HL,$8A87 Jump to ActionDrop_Step22 unless the command matches the phrase at 8A87 (The alien commander, in space armour. (27)).
92AD CALL Parser_AdvanceToSeparator
92B0 JR NZ,ActionDrop_Step22
92B2 LD A,$27
92B4 CALL IsObjectInCurrentRoom
92B7 JR Z,ActionDrop_Step21
92B9 LD HL,$7CB3 Print "He's already dead." and start a new line.
92BC JP ActionDrop_Loop4
ActionDrop_Step21 92BF LD A,$0A Jump back to ActionDrop_Loop2 when the player is not carrying A space axe. (0A).
92C1 CALL IsObjectCarried
92C4 JP NZ,ActionDrop_Loop2
92C7 LD BC,$2700 Move The alien commander, in space armour. (27) to nowhere (00).
92CA CALL UpdateObjectLocation
92CD LD BC,$2835 Move The dead body of the alien commander. (28) to The Alien Commander's Chamber. (35).
92D0 CALL UpdateObjectLocation
92D3 LD A,($6223) Fetch the current room.
92D6 LD C,A Leave A space axe. in the current room.
92D7 LD B,$0A
92D9 CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
92DC LD HL,$622C The player is carrying one fewer object.
92DF DEC (HL)
92E0 LD BC,$0935 Move A key. (09) to The Alien Commander's Chamber. (35).
92E3 CALL UpdateObjectLocation
92E6 LD HL,$7CC6 Print "The axe pierces the space armour The commander falls down,dead. As he falls, a key drops to the floor." and start a new line.
92E9 JP ActionDrop_Loop4
ActionDrop_Step22 92EC LD HL,$8A9B Point at the phrase at 8A9B and call Parser_AdvanceToSeparator to match it against the command.
92EF CALL Parser_AdvanceToSeparator
92F2 JR NZ,ActionDrop_Step23 Jump to ActionDrop_Step23 if it doesn't match.
92F4 LD A,$07 Jump to ActionDrop_Loop2 when the player is not carrying Some poison fungus. (07).
92F6 CALL IsObjectCarried
92F9 JP NZ,ActionDrop_Loop2
92FC LD BC,$2400 Move A huge,blind slug is blocking the western exit. It is advancing toward you. (24) to nowhere (00).
92FF CALL UpdateObjectLocation
9302 LD BC,$2530 Move A pool of slime on the floor. (25) to The Sloping Corridor. (30).
9305 CALL UpdateObjectLocation
9308 LD BC,$0700 Move Some poison fungus. (07) to nowhere (00).
930B CALL UpdateObjectLocation
930E LD HL,$622C The player is carrying one fewer object.
9311 DEC (HL)
9312 LD A,$2F Open the west exit of The Sloping Corridor. onto The Underground Stream..
9314 LD ($8C7D),A
9317 LD HL,$7D8A Print "The slug greedily devours the poison fungus. It writhes in pain,then dies. Only a pool of slime remains." and start a new line.
931A JP ActionDrop_Loop4
ActionDrop_Step23 931D LD HL,$8AAF Point at the phrase at 8AAF and call Parser_AdvanceToSeparator to match it against the command.
9320 CALL Parser_AdvanceToSeparator
9323 JR NZ,ActionDrop_Step24 Jump to ActionDrop_Step24 if it doesn't match.
9325 LD A,$08 Jump to ActionDrop_Loop2 when the player is not carrying Some round stones. (08).
9327 CALL IsObjectCarried
932A JP NZ,ActionDrop_Loop2
932D LD BC,$2600 Move A fierce,scaled creature is on the bridge,preventing your crossing. (26) to nowhere (00).
9330 CALL UpdateObjectLocation
9333 LD BC,$0833 Move Some round stones. (08) to The Crystal Bridge. (33).
9336 CALL UpdateObjectLocation
9339 LD HL,$622C The player is carrying one fewer object.
933C DEC (HL)
933D LD A,$34 Open the east exit of The Crystal Bridge. onto The Creature's Lair..
933F LD ($8C8E),A
9342 LD HL,$7DF3 Print "The creature stumbles and loses its footing and falls over the side of the bridge." and start a new line.
9345 JP ActionDrop_Loop4
ActionDrop_Step24 9348 LD HL,$897D Jump to ActionDrop_Step27 unless the command matches the phrase at 897D (A pair of gloves,which you are wearing. (39)).
934B CALL Parser_AdvanceToSeparator
934E JR NZ,ActionDrop_Step27
9350 LD A,$39
9352 CALL IsObjectCarried
9355 JR NZ,ActionDrop_Step26
9357 LD A,$07 Jump to ActionDrop_Step25 when the player is not carrying Some poison fungus. (07).
9359 CALL IsObjectCarried
935C JR NZ,ActionDrop_Step25
935E LD HL,$84B1 Print "No. Drop the fungus first." and start a new line.
9361 JP ActionDrop_Loop4
ActionDrop_Step25 9364 LD BC,$3900 Move A pair of gloves,which you are wearing. (39) to nowhere (00).
9367 CALL UpdateObjectLocation
936A LD BC,$0C01 Move A pair of gloves. (0C) to the inventory (01).
936D CALL UpdateObjectLocation
ActionDrop_Step26 9370 LD A,$0C A pair of gloves. is what the player is now holding.
9372 JP ActionDrop_Loop1 Continue at ActionDrop_Loop1 to see what the player is now holding.
ActionDrop_Step27 9375 LD HL,$645B Print "You can't." and start a new line.
9378 JP ActionDrop_Loop4
Prev: 9014 Up: Map Next: 937B