| Alien (BUGFIX 1.7) | Routines |
| Prev: 32498 | Up: Map | Next: 32670 |
|
The "Also here NAME" / "Also Bodies of NAME" panel line. FindRoomMates fills RoomMateA/B; if every listed mate is dead (ActorRecords byte +7 != 0) the line reads "Also Bodies of", else "Also here" with the first mate's name (dead mates get the strip-94 overprint from DrawCrewStatusHalf).
|
||||
| 32536 | CALL 32498 | FindRoomMates -> RoomMateA/B | ||
| 32539 | LD HL,20672 | draw pointer -> "Also here" row | ||
| 32542 | LD (31257),HL | (row 22, col 0) | ||
| 32545 | LD BC,512 | B = 2 mates to check, C = 0 | ||
| 32548 | LD DE,31250 | DE -> RoomMateA | ||
| 32551 | PUSH BC | |||
| 32552 | PUSH DE | |||
| 32553 | LD A,(DE) | no (more) mates: alive path | ||
| 32554 | CP 255 | |||
| 32556 | JR Z,32607 | |||
| 32558 | ADD A,A | HL -> that slot's +7 status byte | ||
| 32559 | ADD A,A | |||
| 32560 | ADD A,A | |||
| 32561 | LD E,A | |||
| 32562 | XOR A | |||
| 32563 | LD D,A | |||
| 32564 | LD HL,29573 | |||
| 32567 | ADD HL,DE | |||
| 32568 | CP (HL) | still alive? -> alive path | ||
| 32569 | JR Z,32607 | |||
| 32571 | POP DE | this one is dead; check the next | ||
| 32572 | INC DE | |||
| 32573 | POP BC | |||
| 32574 | DJNZ 32551 | |||
| 32576 | LD DE,32262 | "Also Bodies of " (15 contiguous chars) | ||
| 32579 | LD B,15 | all mates dead: | ||
| 32581 | CALL 44509 | draw "Also Bodies of " | ||
| 32584 | LD A,(31250) | first body's name | ||
| 32587 | CALL 31690 | PrintName | ||
| 32590 | LD DE,32277 | " ",136," " grille-icon spacer | ||
| 32593 | LD B,3 | |||
| 32595 | CALL 44509 | |||
| 32598 | LD A,(31251) | second body's name | ||
| 32601 | CALL 31690 | PrintName | ||
| 32604 | JP 32670 | blank-pad the rest of the row | ||
| 32607 | POP BC | |||
| 32608 | POP DE | |||
| 32609 | LD HL,31250 | anyone here at all? | ||
| 32612 | LD A,(HL) | |||
| 32613 | CP 255 | |||
| 32615 | JR Z,32670 | no: just blank the row | ||
| 32617 | LD DE,32244 | "Also here " | ||
| 32620 | LD B,10 | draw "Also here " one glyph at a time | ||
| 32622 | PUSH BC | |||
| 32623 | PUSH DE | |||
| 32624 | CALL 31369 | DrawSpriteRow: one glyph | ||
| 32627 | POP DE | |||
| 32628 | INC DE | |||
| 32629 | LD HL,31257 | advance one cell | ||
| 32632 | INC (HL) | |||
| 32633 | POP BC | |||
| 32634 | DJNZ 32622 | |||
| 32636 | LD A,(31250) | mate A: dead-overprint check + name | ||
| 32639 | CALL 33610 | DrawCrewStatusHalf | ||
| 32642 | CALL 31690 | PrintName | ||
| 32645 | LD A,(31251) | a second mate too? | ||
| 32648 | CP 255 | |||
| 32650 | JR Z,32670 | |||
| 32652 | LD A,144 | separator glyph | ||
| 32654 | CALL 31370 | DrawTileA | ||
| 32657 | LD HL,31257 | advance one cell | ||
| 32660 | INC (HL) | |||
| 32661 | LD A,(31251) | mate B: dead-overprint check + name | ||
| 32664 | CALL 33610 | DrawCrewStatusHalf | ||
| 32667 | JP 45692 | PrintNameThenPanel: name B, then blank-pad | ||
| Prev: 32498 | Up: Map | Next: 32670 |