![]() |
Routines |
| Prev: 36880 | Up: Map | Next: 37272 |
|
Mark the given object as carried and print the result.
|
||||
| HandlerPickUpObject | 36884 | LD C,1 | Call UpdateObjectLocation to mark the object as carried. | |
| 36886 | CALL UpdateObjectLocation | |||
| 36889 | LD HL,25132 | The player is carrying one more object. | ||
| 36892 | INC (HL) | |||
| 36893 | LD HL,25702 | Print "O.K." and start a new line. | ||
| 36896 | JR HandlerPickUpObject_Loop2 | |||
| HandlerPickUpObject_Loop1 | 36898 | LD HL,25691 | Print "You can't." and start a new line. | |
|
This entry point is used by the routine at ActionTake.
|
||||
| HandlerPickUpObject_Loop2 | 36901 | CALL PrintStringAndANewline | } | |
| 36904 | RET | Return. | ||
|
This entry point is used by the routine at ActionTake.
|
||||
| HandlerPickUpObject_Step1 | 36905 | LD HL,35161 | Point at the phrase at 35161 and call Parser_AdvanceToSeparator to match it against the command. | |
| 36908 | CALL Parser_AdvanceToSeparator | |||
| 36911 | JR NZ,HandlerPickUpObject_Step2 | Jump to HandlerPickUpObject_Step2 if it doesn't match. | ||
| 36913 | LD A,0 | Take A knife. (0). | ||
| 36915 | CALL ActionTake_Step1 | |||
| 36918 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step2 | 36921 | LD HL,35177 | Point at the phrase at 35177 and call Parser_AdvanceToSeparator to match it against the command. | |
| 36924 | CALL Parser_AdvanceToSeparator | |||
| 36927 | JR NZ,HandlerPickUpObject_Step3 | Jump to HandlerPickUpObject_Step3 if it doesn't match. | ||
| 36929 | LD A,1 | Take A laser pistol. (1). | ||
| 36931 | CALL ActionTake_Step1 | |||
| 36934 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step3 | 36937 | LD HL,35168 | Point at the phrase at 35168 and call Parser_AdvanceToSeparator to match it against the command. | |
| 36940 | CALL Parser_AdvanceToSeparator | |||
| 36943 | JR NZ,HandlerPickUpObject_Step4 | Jump to HandlerPickUpObject_Step4 if it doesn't match. | ||
| 36945 | LD A,2 | Take A coin. (2). | ||
| 36947 | CALL ActionTake_Step1 | |||
| 36950 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step4 | 36953 | LD HL,35182 | Point at the phrase at 35182 and call Parser_AdvanceToSeparator to match it against the command. | |
| 36956 | CALL Parser_AdvanceToSeparator | |||
| 36959 | JR NZ,HandlerPickUpObject_Step5 | Jump to HandlerPickUpObject_Step5 if it doesn't match. | ||
| 36961 | LD A,3 | Take A crystal rod. (3). | ||
| 36963 | CALL ActionTake_Step1 | |||
| 36966 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step5 | 36969 | LD HL,35136 | Point at the phrase at Table_PhraseLists and call Parser_AdvanceToSeparator to match it against the command. | |
| 36972 | CALL Parser_AdvanceToSeparator | |||
| 36975 | JR NZ,HandlerPickUpObject_Step6 | Jump to HandlerPickUpObject_Step6 if it doesn't match. | ||
| 36977 | LD A,4 | Take A detonator. (4). | ||
| 36979 | CALL ActionTake_Step1 | |||
| 36982 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step6 | 36985 | LD HL,35172 | Point at the phrase at 35172 and call Parser_AdvanceToSeparator to match it against the command. | |
| 36988 | CALL Parser_AdvanceToSeparator | |||
| 36991 | JR NZ,HandlerPickUpObject_Step7 | Jump to HandlerPickUpObject_Step7 if it doesn't match. | ||
| 36993 | LD A,5 | Take A metal bar. (5). | ||
| 36995 | CALL ActionTake_Step1 | |||
| 36998 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step7 | 37001 | LD HL,35187 | Jump to HandlerPickUpObject_Step10 unless the command matches the phrase at 35187 (A glowing sphere. (6)). | |
| 37004 | CALL Parser_AdvanceToSeparator | |||
| 37007 | JR NZ,HandlerPickUpObject_Step10 | |||
| 37009 | LD A,6 | |||
| 37011 | CALL ActionTake_Step1 | |||
| 37014 | LD A,6 | Jump to HandlerPickUpObject_Step9 when A glowing sphere. (6) is here or being carried. | ||
| 37016 | CALL IsObjectInCurrentRoom | |||
| 37019 | JR Z,HandlerPickUpObject_Step9 | |||
| 37021 | LD A,60 | Jump back to HandlerPickUpObject_Loop1 when A glowing sphere sitting on a raised dish on a glass pedestal. (60) is not here or being carried. | ||
| 37023 | CALL IsObjectInCurrentRoom | |||
| 37026 | JP NZ,HandlerPickUpObject_Loop1 | |||
| 37029 | EXX | Keep the command pointer safe while the sphere is moved. | ||
| 37030 | LD BC,15360 | Move A glowing sphere sitting on a raised dish on a glass pedestal. (60) to nowhere (0). | ||
| 37033 | CALL UpdateObjectLocation | |||
| 37036 | LD A,(25123) | Fetch the current room. | ||
| 37039 | CP 28 | The sphere was not picked up in The Crystal Chamber.. | ||
| 37041 | JR NZ,HandlerPickUpObject_Step8 | |||
| 37043 | LD BC,5404 | Move A glass pedestal with a raised dish on top. (21) to The Crystal Chamber. (28). | ||
| 37046 | CALL UpdateObjectLocation | |||
| 37049 | EXX | Bring the command pointer back. | ||
| 37050 | JR HandlerPickUpObject_Step9 | Continue at HandlerPickUpObject_Step9 to pick the object up. | ||
| HandlerPickUpObject_Step8 | 37052 | LD BC,5651 | Move A glass pedestal with a raised dish on top. (22) to The Blue Room. (19). | |
| 37055 | CALL UpdateObjectLocation | |||
| 37058 | EXX | Bring the command pointer back. | ||
| HandlerPickUpObject_Step9 | 37059 | JP HandlerPickUpObject | Jump to HandlerPickUpObject to pick the object up. | |
| HandlerPickUpObject_Step10 | 37062 | LD HL,35138 | Jump to HandlerPickUpObject_Step12 unless the command matches the phrase at 35138 (Some poison fungus. (7)). | |
| 37065 | CALL Parser_AdvanceToSeparator | |||
| 37068 | JR NZ,HandlerPickUpObject_Step12 | |||
| 37070 | LD A,7 | |||
| 37072 | CALL ActionTake_Step1 | |||
| 37075 | LD A,57 | Jump back to HandlerPickUpObject when A pair of gloves,which you are wearing. (57) is here or being carried. | ||
| 37077 | CALL IsObjectInCurrentRoom | |||
| 37080 | JP Z,HandlerPickUpObject | |||
| HandlerPickUpObject_Step11 | 37083 | LD HL,36275 | Return to Game Over (GameOver) after the message. | |
| 37086 | EX (SP),HL | |||
| 37087 | LD HL,31400 | Print "As soon as you touch the fungus, a terrible pain racks your body. You collapse to the floor." and start a new line. | ||
| 37090 | JP HandlerPickUpObject_Loop2 | |||
| HandlerPickUpObject_Step12 | 37093 | LD HL,35192 | Jump to HandlerPickUpObject_Step14 unless the command matches the phrase at 35192 (Some round stones. (8)). | |
| 37096 | CALL Parser_AdvanceToSeparator | |||
| 37099 | JR NZ,HandlerPickUpObject_Step14 | |||
| 37101 | LD A,8 | |||
| 37103 | CALL ActionTake_Step1 | |||
| 37106 | LD A,34 | Jump to HandlerPickUpObject_Step13 when An alcove containing some round stones. (34) is not here or being carried. | ||
| 37108 | CALL IsObjectInCurrentRoom | |||
| 37111 | JR NZ,HandlerPickUpObject_Step13 | |||
| 37113 | EXX | Keep the command pointer safe while the stones are moved. | ||
| 37114 | LD BC,8704 | Move An alcove containing some round stones. (34) to nowhere (0). | ||
| 37117 | CALL UpdateObjectLocation | |||
| 37120 | LD BC,9006 | Move An empty alcove. (35) to The Torture Chamber. (46). | ||
| 37123 | CALL UpdateObjectLocation | |||
| 37126 | EXX | Bring the command pointer back. | ||
| HandlerPickUpObject_Step13 | 37127 | JP HandlerPickUpObject | Jump to HandlerPickUpObject to pick the object up. | |
| HandlerPickUpObject_Step14 | 37130 | LD HL,35170 | Jump to HandlerPickUpObject_Step16 unless the command matches the phrase at 35170 (A key. (9)). | |
| 37133 | CALL Parser_AdvanceToSeparator | |||
| 37136 | JR NZ,HandlerPickUpObject_Step16 | |||
| 37138 | LD A,9 | |||
| 37140 | CALL ActionTake_Step1 | |||
| 37143 | LD A,59 | Jump back to HandlerPickUpObject_Loop1 when A key in the control panel. The key is set to 'ON'. (59) is here or being carried. | ||
| 37145 | CALL IsObjectInCurrentRoom | |||
| 37148 | JP Z,HandlerPickUpObject_Loop1 | |||
| 37151 | LD A,58 | Jump to HandlerPickUpObject_Step15 when A key in the control panel. The key is set to 'OFF'. (58) is not here or being carried. | ||
| 37153 | CALL IsObjectInCurrentRoom | |||
| 37156 | JR NZ,HandlerPickUpObject_Step15 | |||
| 37158 | EXX | Keep the command pointer safe while the key is moved. | ||
| 37159 | LD BC,14848 | Move A key in the control panel. The key is set to 'OFF'. (58) to nowhere (0). | ||
| 37162 | CALL UpdateObjectLocation | |||
| 37165 | LD BC,10806 | Move A keyhole in the control panel. (42) to The Reactor Room. (54). | ||
| 37168 | CALL UpdateObjectLocation | |||
| 37171 | EXX | Bring the command pointer back. | ||
| HandlerPickUpObject_Step15 | 37172 | JP HandlerPickUpObject | Jump to HandlerPickUpObject to pick the object up. | |
| HandlerPickUpObject_Step16 | 37175 | LD HL,35163 | Point at the phrase at 35163 and call Parser_AdvanceToSeparator to match it against the command. | |
| 37178 | CALL Parser_AdvanceToSeparator | |||
| 37181 | JR NZ,HandlerPickUpObject_Step17 | Jump to HandlerPickUpObject_Step17 if it doesn't match. | ||
| 37183 | LD A,10 | Take A space axe. (10). | ||
| 37185 | CALL ActionTake_Step1 | |||
| 37188 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step17 | 37191 | LD HL,35143 | Point at the phrase at 35143 and call Parser_AdvanceToSeparator to match it against the command. | |
| 37194 | CALL Parser_AdvanceToSeparator | |||
| 37197 | JR NZ,HandlerPickUpObject_Step18 | Jump to HandlerPickUpObject_Step18 if it doesn't match. | ||
| 37199 | LD A,11 | Take Some explosives. (11). | ||
| 37201 | CALL ActionTake_Step1 | |||
| 37204 | JP HandlerPickUpObject | |||
| HandlerPickUpObject_Step18 | 37207 | LD HL,35197 | Jump to HandlerPickUpObject_Step19 unless the command matches the phrase at 35197 (A pair of gloves,which you are wearing. (57)). | |
| 37210 | CALL Parser_AdvanceToSeparator | |||
| 37213 | JR NZ,HandlerPickUpObject_Step19 | |||
| 37215 | LD A,57 | |||
| 37217 | CALL ActionTake_Step1 | |||
| 37220 | LD A,12 | A pair of gloves. is the object this phrase really takes. | ||
| 37222 | CALL ActionTake_Step1 | Call ActionTake_Step1 to take that object. | ||
| 37225 | JP HandlerPickUpObject | Jump to HandlerPickUpObject to pick the object up. | ||
| HandlerPickUpObject_Step19 | 37228 | LD HL,35672 | Jump to HandlerPickUpObject_Step21 unless the command matches the phrase at 35672. | |
| 37231 | CALL Parser_AdvanceToSeparator | |||
| 37234 | JR NZ,HandlerPickUpObject_Step21 | |||
| 37236 | LD A,(25123) | Fetch the current room. | ||
| 37239 | CP 4 | The ship can be claimed only from In the Galaxy at rest,on a landing pad.. | ||
| 37241 | JP NZ,HandlerPickUpObject_Loop1 | |||
| 37244 | LD A,64 | Jump back to HandlerPickUpObject_Loop1 when The ship is ready to take off. (64) is not here or being carried. | ||
| 37246 | CALL IsObjectInCurrentRoom | |||
| 37249 | JP NZ,HandlerPickUpObject_Loop1 | |||
| 37252 | LD A,14 | Jump to HandlerPickUpObject_Step20 when The airlock is closed. (14) is here or being carried. | ||
| 37254 | CALL IsObjectInCurrentRoom | |||
| 37257 | JR Z,HandlerPickUpObject_Step20 | |||
| 37259 | LD HL,33996 | Print "Not with an open airlock!" and start a new line. | ||
| 37262 | JP HandlerPickUpObject_Loop2 | |||
| HandlerPickUpObject_Step20 | 37265 | POP HL | The ship is ready, so the game can end. | |
| 37266 | JP GameComplete | Jump to GameComplete to game complete. | ||
| HandlerPickUpObject_Step21 | 37269 | JP HandlerPickUpObject_Loop1 | Continue at HandlerPickUpObject_Loop1 to say the player can't. | |
| Prev: 36880 | Up: Map | Next: 37272 |