|  | Routines | 
| Prev: 34122 | Up: Map | Next: 34484 | 
| 
 | ||||||||
| 34265 | LD HL,1 | Reset all available in-game menu command flags except command-a-character-enabled which is always set... | ||||||
| 34268 | LD (23698),HL | ... | ||||||
| 34271 | LD A,(25024) | If Magic Knight's magic level is zero... | ||||||
| 34274 | OR A | ... | ||||||
| 34275 | JR Z,34281 | ...then skip ahead to 34281 | ||||||
| 34277 | SET 5,(IY+88) | Set cast-a-spell-enabled menu command flag | ||||||
| 34281 | LD A,(23701) | If Magic Knight's current room is not 1 (The Bridge, USS Pisces 1)... | ||||||
| 34284 | CP 1 | ... | ||||||
| 34286 | JR NZ,34320 | ...then skip ahead to 34320 | ||||||
| 34288 | LD A,1 | If Magic Knight is wearing the Cloak of Invisibility (01)... | ||||||
| 34290 | CALL 33640 | ... | ||||||
| 34293 | JR Z,34320 | ...then skip ahead to 34320 | ||||||
| 34295 | LD A,3 | If Magic Knight is not wearing the Valid I.D. Card (03)... | ||||||
| 34297 | CALL 33640 | ... | ||||||
| 34300 | JR NZ,34320 | ...then skip ahead to 34320 | ||||||
| 34302 | SET 2,(IY+89) | Set communicate-enabled menu command flag | ||||||
| 34306 | LD HL,25174 | If Gordon is not carrying the Star Map... | ||||||
| 34309 | LD A,6 | ... | ||||||
| 34311 | CALL 33648 | ... | ||||||
| 34314 | JR NZ,34320 | ...then skip ahead to 34320 | ||||||
| 34316 | SET 0,(IY+89) | Set move-starship-enabled menu command flag | ||||||
| 34320 | LD A,(23701) | Load E with Magic Knight's current room... | ||||||
| 34323 | LD E,A | ... | ||||||
| 34324 | LD BC,4 | Load BC with 4 (as each transporter pad location entry is composed of 4 bytes) | ||||||
| 34327 | LD HL,32577 | Point HL at table of transporter pad locations (32577) | ||||||
| 34330 | ADD HL,BC | Advance HL by four bytes to next entry | ||||||
| 34331 | LD A,(HL) | If first byte (room number) is 255 (end marker)... | ||||||
| 34332 | CP 255 | ... | ||||||
| 34334 | JR Z,34363 | ...then skip ahead to 34363 (end of data reached) | ||||||
| 34336 | CP E | If current transporter pad's room is not in the same room as Magic Knight... | ||||||
| 34337 | JR NZ,34330 | ...then loop back to 34330 for next transporter pad | ||||||
| 34339 | INC HL | Advance HL to pad's left x-coordinate | ||||||
| 34340 | LD A,(25156) | If Magic Knight's current x-coordinate (pixels) is less than this... | ||||||
| 34343 | CP (HL) | ... | ||||||
| 34344 | JP C,34363 | ...then skip ahead to 34363 (Magic Knight not on a transporter pad) | ||||||
| 34347 | INC HL | Advance HL to pad's right x-coordinate | ||||||
| 34348 | CP (HL) | If Magic Knight's current x-coordinate (pixels) is not less than this... | ||||||
| 34349 | JP NC,34363 | ...then skip ahead to 34363 (Magic Knight not on a transporter pad) | ||||||
| 34352 | INC HL | Advance HL to pad's y-coordinate | ||||||
| 34353 | LD A,(25157) | If Magic Knight's current y-coordinate (pixels) is not the same as this... | ||||||
| 34356 | CP (HL) | ... | ||||||
| 34357 | JR NZ,34363 | ...then skip ahead to 34363 (Magic Knight not on a transporter pad) | ||||||
| 34359 | SET 1,(IY+89) | Set use-transporter-enabled menu command flag | ||||||
| 34363 | XOR A | Load C with weights / flags of all Magic Knight's carried objects, OR-ed together... | ||||||
| 34364 | CALL 34484 | ... | ||||||
| 34367 | BIT 5,C | ...and if can-be-read flag is not set for any of the objects... | ||||||
| 34369 | JR Z,34375 | ...then skip ahead to 34375 | ||||||
| 34371 | SET 3,(IY+88) | Set read-something-enabled menu command flag | ||||||
| 34375 | LD A,1 | Load C with flags (2) of all Magic Knight's carried objects, OR-ed together... | ||||||
| 34377 | CALL 34484 | ... | ||||||
| 34380 | BIT 3,C | ...and if can-be-worn flag is set for at least one of the objects... | ||||||
| 34382 | JR NZ,34390 | ...then skip ahead to 34390 | ||||||
| 34384 | LD A,(25169) | If Magic Knight's first inventory slot (wearing) is empty... | ||||||
| 34387 | OR A | ... | ||||||
| 34388 | JR Z,34394 | ...then skip ahead to 34394 | ||||||
| 34390 | SET 7,(IY+88) | Set wear/unwear-object-enabled menu command flag | ||||||
| 34394 | LD A,2 | If Magic Knight is not carrying the Blank I.D. Card (02)... | ||||||
| 34396 | CALL 33645 | ... | ||||||
| 34399 | JR NZ,34473 | ...then skip ahead to 34473 | ||||||
| 34401 | LD A,10 | If Magic Knight is not carrying the Pot of Glue (10)... | ||||||
| 34403 | CALL 33645 | ... | ||||||
| 34406 | JR NZ,34473 | ...then skip ahead to 34473 | ||||||
| 34408 | LD A,5 | If Magic Knight is not carrying the Photograph (of Magic Knight) (05)... | ||||||
| 34410 | CALL 33645 | ... | ||||||
| 34413 | JR NZ,34473 | ...then skip ahead to 34473 | ||||||
| 34415 | LD C,5 | Remove Photograph (of Magic Knight) from Magic Knight's current inventory (carrying)... | ||||||
| 34417 | LD B,5 | ... | ||||||
| 34419 | LD HL,25164 | ... | ||||||
| 34422 | PUSH HL | ...storing HL (pointer to start of Magic Knight's current inventory)... | ||||||
| 34423 | CALL 36254 | ... | ||||||
| 34426 | POP HL | ...and restoring HL (pointer to start of Magic Knight's current inventory) | ||||||
| 34427 | PUSH HL | Store HL (pointer to start of Magic Knight's current inventory) | ||||||
| 34428 | LD C,2 | Remove Blank I.D. Card from Magic Knight's current inventory... | ||||||
| 34430 | LD B,5 | ... | ||||||
| 34432 | CALL 36254 | ... | ||||||
| 34435 | POP HL | Restore HL (pointer to start of Magic Knight's current inventory) | ||||||
| 34436 | LD C,3 | Load Valid I.D. Card into the first empty inventory slot of Magic Knight... | ||||||
| 34438 | LD B,5 | ... | ||||||
| 34440 | CALL 33516 | ... | ||||||
| 34443 | LD A,(23451) | Set I.D.-card-validated flag... | ||||||
| 34446 | OR 16 | ... | ||||||
| 34448 | LD (23451),A | ... | ||||||
| 34451 | LD HL,45771 | Point HL at "YOU HAVE HAD AN ACCIDENT WITH THE GLUE..." text | ||||||
| 34454 | LD DE,37227 | Adjust height of window 17 to accommodate text... | ||||||
| 34457 | CALL 33774 | ... | ||||||
| 34460 | PUSH HL | Store HL (pointer to start of text) | ||||||
| 34461 | LD A,17 | Draw window 17... | ||||||
| 34463 | CALL 34982 | ...as a menu window (bug) | ||||||
| 34466 | POP HL | Restore HL (pointer to start of text) | ||||||
| 34467 | CALL 34762 | Print text to screen | ||||||
| 34470 | CALL 55138 | Display "PRESS FIRE TO CONTINUE" window and wait for fire to be pressed | ||||||
| 34473 | LD A,(23701) | If Magic Knight's current room is not 24 (The Control Column, USS Pisces, 6A)... | ||||||
| 34476 | CP 24 | ... | ||||||
| 34478 | RET NZ | ...then return | ||||||
| 34479 | SET 1,(IY+88) | Set launch-tyme-machine-enabled menu command flag | ||||||
| 34483 | RET | Return | ||||||
| Prev: 34122 | Up: Map | Next: 34484 |