Prev: 36884 Up: Map Next: 37755
37272: Action: Drop
Put a carried object down in the current room.
ActionDrop 37272 CALL Parser_ValidateDirectObject Return if the command does not name a single object.
37275 RET C
37276 CP 3 Jump to ActionDrop_Step4 when the command names fewer than 3 nouns.
37278 JR C,ActionDrop_Step4
37280 LD HL,25669 Print "Please rephrase that." and start a new line.
37283 JR ActionDrop_Loop4
ActionDrop_Loop1 37285 CALL IsObjectCarried Call IsObjectCarried to test whether the object is carried.
37288 JR Z,ActionDrop_Step3 The named object is being carried.
ActionDrop_Loop2 37290 LD HL,31321 Print You're not carrying on the same line.
37293 CALL PrintString
37296 LD A,E The object number selects the plural list.
ActionDrop_Step1 37297 LD HL,36880 The objects called "them" are listed at Table_PluralObjects.
37300 LD BC,4 4 objects are spoken of as "them".
37303 CPIR Search the list of objects that are called "them".
37305 JR Z,ActionDrop_Step2 A plural object uses the wording for "them".
37307 LD HL,31288 Print "it." and start a new line.
37310 JR ActionDrop_Loop4
ActionDrop_Step2 37312 LD HL,31292 Print "them." and start a new line.
37315 JR ActionDrop_Loop4
ActionDrop_Step3 37317 LD B,E Put the object down in the current room.
37318 LD A,(25123)
37321 LD C,A
37322 CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
ActionDrop_Loop3 37325 LD HL,25132 The player is carrying one fewer object.
37328 DEC (HL)
37329 LD HL,25702 Print "O.K." and start a new line.
ActionDrop_Loop4 37332 CALL PrintStringAndANewline
37335 RET Return.
ActionDrop_Step4 37336 LD HL,35161 Jump to ActionDrop_Step5 unless the command matches the phrase at 35161 (A knife. (0)).
37339 CALL Parser_AdvanceToSeparator
37342 JR NZ,ActionDrop_Step5
37344 LD A,0
37346 JP ActionDrop_Loop1
ActionDrop_Step5 37349 LD HL,35177 Jump to ActionDrop_Step6 unless the command matches the phrase at 35177 (A laser pistol. (1)).
37352 CALL Parser_AdvanceToSeparator
37355 JR NZ,ActionDrop_Step6
37357 LD A,1
37359 JP ActionDrop_Loop1
ActionDrop_Step6 37362 LD HL,35168 Jump to ActionDrop_Step7 unless the command matches the phrase at 35168 (A coin. (2)).
37365 CALL Parser_AdvanceToSeparator
37368 JR NZ,ActionDrop_Step7
37370 LD A,2
37372 JP ActionDrop_Loop1
ActionDrop_Step7 37375 LD HL,35182 Jump to ActionDrop_Step8 unless the command matches the phrase at 35182 (A crystal rod. (3)).
37378 CALL Parser_AdvanceToSeparator
37381 JR NZ,ActionDrop_Step8
37383 LD A,3
37385 JP ActionDrop_Loop1
ActionDrop_Step8 37388 LD HL,35136 Jump to ActionDrop_Step9 unless the command matches the phrase at Table_PhraseLists (A detonator. (4)).
37391 CALL Parser_AdvanceToSeparator
37394 JR NZ,ActionDrop_Step9
37396 LD A,4
37398 JP ActionDrop_Loop1
ActionDrop_Step9 37401 LD HL,35172 Jump to ActionDrop_Step10 unless the command matches the phrase at 35172 (A metal bar. (5)).
37404 CALL Parser_AdvanceToSeparator
37407 JR NZ,ActionDrop_Step10
37409 LD A,5
37411 JP ActionDrop_Loop1
ActionDrop_Step10 37414 LD HL,35187 Jump to ActionDrop_Step11 unless the command matches the phrase at 35187 (A glowing sphere. (6)).
37417 CALL Parser_AdvanceToSeparator
37420 JR NZ,ActionDrop_Step11
37422 LD A,6
37424 JP ActionDrop_Loop1
ActionDrop_Step11 37427 LD HL,35138 Jump to ActionDrop_Step12 unless the command matches the phrase at 35138 (Some poison fungus. (7)).
37430 CALL Parser_AdvanceToSeparator
37433 JR NZ,ActionDrop_Step12
37435 LD A,7
37437 JP ActionDrop_Loop1
ActionDrop_Step12 37440 LD HL,35192 Jump to ActionDrop_Step13 unless the command matches the phrase at 35192 (Some round stones. (8)).
37443 CALL Parser_AdvanceToSeparator
37446 JR NZ,ActionDrop_Step13
37448 LD A,8
37450 JP ActionDrop_Loop1
ActionDrop_Step13 37453 LD HL,35170 Jump to ActionDrop_Step14 unless the command matches the phrase at 35170 (A key. (9)).
37456 CALL Parser_AdvanceToSeparator
37459 JR NZ,ActionDrop_Step14
37461 LD A,9
37463 JP ActionDrop_Loop1
ActionDrop_Step14 37466 LD HL,35163 Jump to ActionDrop_Step15 unless the command matches the phrase at 35163 (A space axe. (10)).
37469 CALL Parser_AdvanceToSeparator
37472 JR NZ,ActionDrop_Step15
37474 LD A,10
37476 JP ActionDrop_Loop1
ActionDrop_Step15 37479 LD HL,35143 Jump to ActionDrop_Step16 unless the command matches the phrase at 35143 (Some explosives. (11)).
37482 CALL Parser_AdvanceToSeparator
37485 JR NZ,ActionDrop_Step16
37487 LD A,11
37489 JP ActionDrop_Loop1
ActionDrop_Step16 37492 JR ActionDrop_Step17 Continue at ActionDrop_Step17 to try the next thing the player might drop.
ActionDrop_Step17 37494 LD HL,35199 Point at the phrase at 35199 and call Parser_AdvanceToSeparator to match it against the command.
37497 CALL Parser_AdvanceToSeparator
37500 JR NZ,ActionDrop_Step20 Jump to ActionDrop_Step20 if it doesn't match.
37502 LD A,6 Jump to ActionDrop_Loop2 when the player is not carrying A glowing sphere. (6).
37504 CALL IsObjectCarried
37507 JP NZ,ActionDrop_Loop2
37510 LD A,(25123) Fetch the current room.
37513 CP 28 The sphere was not dropped in The Crystal Chamber..
37515 JR NZ,ActionDrop_Step18
37517 LD BC,5376 Clear the glass pedestal in The Crystal Chamber..
37520 JR ActionDrop_Step19 Continue at ActionDrop_Step19 to move what was dropped.
ActionDrop_Step18 37522 LD BC,5632 Clear the glass pedestal in The Blue Room..
ActionDrop_Step19 37525 CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
37528 LD BC,1536 Move A glowing sphere. (6) to nowhere (0).
37531 CALL UpdateObjectLocation
37534 LD A,(25123) Fetch the current room.
37537 LD C,A Leave A glowing sphere sitting on a raised dish on a glass pedestal. in the room where it was dropped.
37538 LD B,60
37540 CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
37543 JP ActionDrop_Loop3 Continue at ActionDrop_Loop3 to count one fewer object and confirm the drop.
ActionDrop_Step20 37546 LD HL,35463 Jump to ActionDrop_Step22 unless the command matches the phrase at 35463 (The alien commander, in space armour. (39)).
37549 CALL Parser_AdvanceToSeparator
37552 JR NZ,ActionDrop_Step22
37554 LD A,39
37556 CALL IsObjectInCurrentRoom
37559 JR Z,ActionDrop_Step21
37561 LD HL,31923 Print "He's already dead." and start a new line.
37564 JP ActionDrop_Loop4
ActionDrop_Step21 37567 LD A,10 Jump back to ActionDrop_Loop2 when the player is not carrying A space axe. (10).
37569 CALL IsObjectCarried
37572 JP NZ,ActionDrop_Loop2
37575 LD BC,9984 Move The alien commander, in space armour. (39) to nowhere (0).
37578 CALL UpdateObjectLocation
37581 LD BC,10293 Move The dead body of the alien commander. (40) to The Alien Commander's Chamber. (53).
37584 CALL UpdateObjectLocation
37587 LD A,(25123) Fetch the current room.
37590 LD C,A Leave A space axe. in the current room.
37591 LD B,10
37593 CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
37596 LD HL,25132 The player is carrying one fewer object.
37599 DEC (HL)
37600 LD BC,2357 Move A key. (9) to The Alien Commander's Chamber. (53).
37603 CALL UpdateObjectLocation
37606 LD HL,31942 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.
37609 JP ActionDrop_Loop4
ActionDrop_Step22 37612 LD HL,35483 Point at the phrase at 35483 and call Parser_AdvanceToSeparator to match it against the command.
37615 CALL Parser_AdvanceToSeparator
37618 JR NZ,ActionDrop_Step23 Jump to ActionDrop_Step23 if it doesn't match.
37620 LD A,7 Jump to ActionDrop_Loop2 when the player is not carrying Some poison fungus. (7).
37622 CALL IsObjectCarried
37625 JP NZ,ActionDrop_Loop2
37628 LD BC,9216 Move A huge,blind slug is blocking the western exit. It is advancing toward you. (36) to nowhere (0).
37631 CALL UpdateObjectLocation
37634 LD BC,9520 Move A pool of slime on the floor. (37) to The Sloping Corridor. (48).
37637 CALL UpdateObjectLocation
37640 LD BC,1792 Move Some poison fungus. (7) to nowhere (0).
37643 CALL UpdateObjectLocation
37646 LD HL,25132 The player is carrying one fewer object.
37649 DEC (HL)
37650 LD A,47 Open the west exit of The Sloping Corridor. onto The Underground Stream..
37652 LD (35965),A
37655 LD HL,32138 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.
37658 JP ActionDrop_Loop4
ActionDrop_Step23 37661 LD HL,35503 Point at the phrase at 35503 and call Parser_AdvanceToSeparator to match it against the command.
37664 CALL Parser_AdvanceToSeparator
37667 JR NZ,ActionDrop_Step24 Jump to ActionDrop_Step24 if it doesn't match.
37669 LD A,8 Jump to ActionDrop_Loop2 when the player is not carrying Some round stones. (8).
37671 CALL IsObjectCarried
37674 JP NZ,ActionDrop_Loop2
37677 LD BC,9728 Move A fierce,scaled creature is on the bridge,preventing your crossing. (38) to nowhere (0).
37680 CALL UpdateObjectLocation
37683 LD BC,2099 Move Some round stones. (8) to The Crystal Bridge. (51).
37686 CALL UpdateObjectLocation
37689 LD HL,25132 The player is carrying one fewer object.
37692 DEC (HL)
37693 LD A,52 Open the east exit of The Crystal Bridge. onto The Creature's Lair..
37695 LD (35982),A
37698 LD HL,32243 Print "The creature stumbles and loses its footing and falls over the side of the bridge." and start a new line.
37701 JP ActionDrop_Loop4
ActionDrop_Step24 37704 LD HL,35197 Jump to ActionDrop_Step27 unless the command matches the phrase at 35197 (A pair of gloves,which you are wearing. (57)).
37707 CALL Parser_AdvanceToSeparator
37710 JR NZ,ActionDrop_Step27
37712 LD A,57
37714 CALL IsObjectCarried
37717 JR NZ,ActionDrop_Step26
37719 LD A,7 Jump to ActionDrop_Step25 when the player is not carrying Some poison fungus. (7).
37721 CALL IsObjectCarried
37724 JR NZ,ActionDrop_Step25
37726 LD HL,33969 Print "No. Drop the fungus first." and start a new line.
37729 JP ActionDrop_Loop4
ActionDrop_Step25 37732 LD BC,14592 Move A pair of gloves,which you are wearing. (57) to nowhere (0).
37735 CALL UpdateObjectLocation
37738 LD BC,3073 Move A pair of gloves. (12) to the inventory (1).
37741 CALL UpdateObjectLocation
ActionDrop_Step26 37744 LD A,12 A pair of gloves. is what the player is now holding.
37746 JP ActionDrop_Loop1 Continue at ActionDrop_Loop1 to see what the player is now holding.
ActionDrop_Step27 37749 LD HL,25691 Print "You can't." and start a new line.
37752 JP ActionDrop_Loop4
Prev: 36884 Up: Map Next: 37755