![]() |
Routines |
| Prev: 9014 | Up: Map | Next: 937B |
|
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 |