Prev: 32498 Up: Map Next: 32670
32536: DrawRoomMates
Used by the routines at 32719, 36793 and 45476.
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