Prev: 40239 Up: Map Next: 40326
40258: Room-specific routine: Kill Magic Knight if he is in a dark room without illumination
Used by the routine at 40190.
Input
IY 23610
40258 LD A,19 If Magic Knight is carrying the Torch (19)...
40260 CALL 45510 ...
40263 RET Z ...then return
40264 LD A,12 If Magic Knight is carrying the Glow Shield (12)...
40266 CALL 45510 ...
40269 RET Z ...then return
40270 LD A,19 If the Torch is in Magic Knight's current room...
40272 CALL 40326 ...
40275 LD A,(23702) ...
40278 CP B ...
40279 RET Z ...then return
40280 LD A,12 If the Glow Shield is in Magic Knight's current room...
40282 CALL 40326 ...
40285 LD A,(23702) ...
40288 CP B ...
40289 RET Z ...then return
40290 RES 0,(IY+65) Reset game-in-progress flag
40294 LD HL,22720 Load HL with attribute file address for cell at (0, 6)
40297 LD DE,22721 Load DE with attribute file address for cell at (1, 6)
40300 LD BC,575 Load BC with 575 (prepare to write to remainder of attribute file)
40303 LD (HL),L Set attribute file byte at HL to (L = 192) (black INK, black PAPER, BRIGHT, FLASH)
40304 LDIR Flood remainder of attribute file with attribute value 192
40306 LD A,26 Draw window 26...
40308 CALL 47193 ...
40311 LD HL,57269 Point HL at "SOMEBODY SWITCHED OUT THE LIGHT..." text...
40314 CALL 46902 ...and print
40317 CALL 64230 Wait for interrupt then display "PRESS FIRE TO CONTINUE" window and wait for fire to be pressed
40320 LD HL,50817 Point HL at "YOU HURT YOURSELF MOVING AROUND IN THE DARK" text
40323 JP 64582 Display cyan "game over" window and return to control selection menu
Prev: 40239 Up: Map Next: 40326