Prev: 98AB Up: Map Next: 997F
98B9: Action: Turn
Turn the named key, dial or switch.
ActionTurn 98B9 CALL Parser_ValidateDirectObject Return if the command does not name a single object.
98BC RET C
98BD CP $02 Jump to ActionTurn_Step1 when the command names fewer than 02 nouns.
98BF JR C,ActionTurn_Step1
Print "Please rephrase that.".
98C1 LD HL,$6445 HL=Messaging_PleaseRephraseThat.
98C4 JR ActionTurn_Loop2 Jump to ActionTurn_Loop2.
Print "You can't.".
ActionTurn_Loop1 98C6 LD HL,$645B HL=Messaging_YouCanT.
ActionTurn_Loop2 98C9 CALL PrintStringAndANewline Call PrintStringAndANewline.
98CC RET Return.
Was the player trying to turn the dish / sphere?
ActionTurn_Step1 98CD LD HL,$8973 Jump to ActionTurn_Step4 unless the command matches the phrase at 8973 (A glowing sphere sitting on a raised dish on a glass pedestal. (3C)).
98D0 CALL Parser_AdvanceToSeparator
98D3 JR NZ,ActionTurn_Step4
98D5 LD A,$3C
98D7 CALL IsObjectInCurrentRoom
98DA JR Z,ActionTurn_Step3
98DC LD A,$14 Jump to ActionTurn_Step2 when A glowing sphere sitting on a sunken dish, on a glass pedestal. (14) is here or being carried.
98DE CALL IsObjectInCurrentRoom
98E1 JR Z,ActionTurn_Step2
Print "I don't see the point.".
98E3 LD HL,$7F60 HL=Messaging_IDonTSeeThePoint.
98E6 JP ActionTurn_Loop2 Jump to ActionTurn_Loop2.
ActionTurn_Step2 98E9 LD BC,$1400 Move A glowing sphere sitting on a sunken dish, on a glass pedestal. (14) to nowhere (00).
98EC CALL UpdateObjectLocation
98EF LD A,($6223) Fetch the current room.
98F2 LD C,A Leave A glowing sphere sitting on a raised dish on a glass pedestal. in the room where the dish was turned.
98F3 LD B,$3C
98F5 CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
Print "You turn the sphere. The dish,on which it rests, rises up.".
98F8 LD HL,$7F77 HL=Messaging_YouTurnTheSphereTheDishOnWhichItRests.
98FB JP ActionTurn_Loop2 Jump to ActionTurn_Loop2.
ActionTurn_Step3 98FE LD BC,$3C00 Move A glowing sphere sitting on a raised dish on a glass pedestal. (3C) to nowhere (00).
9901 CALL UpdateObjectLocation
9904 LD A,($6223) Fetch the current room.
9907 LD C,A Leave A glowing sphere sitting on a sunken dish, on a glass pedestal. in that same room.
9908 LD B,$14
990A CALL UpdateObjectLocation Call UpdateObjectLocation to move the object.
990D LD HL,$7FB2 Print You turn the sphere The dish,on which it rests, sinks down..
9910 CALL PrintStringAndANewline
9913 LD A,($6223) Fetch the current room.
9916 CP $13 Return if the player is not in room 13: " The Blue Room".
9918 RET NZ
This action changes the map:
9919 LD A,$18 Open the way down from The Blue Room to The Bottom of a Stairwell.
991B LD ($8BD1),A
Print "An unnoticed force field snaps off,revealing some stairs,leading down.".
991E LD HL,$7FEE HL=Messaging_AnUnnoticedForceFieldSnapsOffRevealingSom.
9921 JP ActionTurn_Loop2 Jump to ActionTurn_Loop2.
Was the player trying to turn the key in the panel?
ActionTurn_Step4 9924 LD HL,$8962 Jump to ActionTurn_Step7 unless the command matches the phrase at 8962 (A key in the control panel. The key is set to 'OFF'. (3A)).
9927 CALL Parser_AdvanceToSeparator
992A JR NZ,ActionTurn_Step7
992C LD A,$3A
992E CALL IsObjectInCurrentRoom
9931 JR Z,ActionTurn_Step6
9933 LD A,$3B Jump to ActionTurn_Step5 when A key in the control panel. The key is set to 'ON'. (3B) is here or being carried.
9935 CALL IsObjectInCurrentRoom
9938 JR Z,ActionTurn_Step5
Print "I don't see the point.".
993A LD HL,$7F60 HL=Messaging_IDonTSeeThePoint.
993D JP ActionTurn_Loop2 Jump to ActionTurn_Loop2.
ActionTurn_Step5 9940 LD BC,$3B00 Move A key in the control panel. The key is set to 'ON'. (3B) to nowhere (00).
9943 CALL UpdateObjectLocation
9946 LD BC,$3A36 Move A key in the control panel. The key is set to 'OFF'. (3A) to room 36: " The Reactor Room".
9949 CALL UpdateObjectLocation
994C LD BC,$3E00 Move A message on the computer screen reads:- "TYPE PASSWORD". (3E) to nowhere (00).
994F CALL UpdateObjectLocation
Print "The key is in the'OFF' position.".
9952 LD HL,$8035 HL=Messaging_TheKeyIsInTheOFFPosition.
9955 JP ActionTurn_Loop2 Jump to ActionTurn_Loop2.
ActionTurn_Step6 9958 LD BC,$3A00 Move A key in the control panel. The key is set to 'OFF'. (3A) to nowhere (00).
995B CALL UpdateObjectLocation
995E LD BC,$3B36 Move A key in the control panel. The key is set to 'ON'. (3B) to room 36: " The Reactor Room".
9961 CALL UpdateObjectLocation
9964 LD HL,$80A2 Print The key is in the 'ON' position..
9967 CALL PrintStringAndANewline
996A LD A,$2B Return when A light is flashing and you can hear a warning siren. (2B) is here or being carried.
996C CALL IsObjectInCurrentRoom
996F RET Z
9970 LD BC,$3E36 Move A message on the computer screen reads:- "TYPE PASSWORD". (3E) to room 36: " The Reactor Room".
9973 CALL UpdateObjectLocation
Print "A message appears on the screen, asking you to type the password to log in.".
9976 LD HL,$8056 HL=Messaging_AMessageAppearsOnTheScreenAskingYouToT.
9979 JP ActionTurn_Loop2 Jump to ActionTurn_Loop2.
ActionTurn_Step7 997C JP ActionTurn_Loop1 Continue at ActionTurn_Loop1 to say the player can't.
Prev: 98AB Up: Map Next: 997F