Prev: 43610 Up: Map Next: 44561
44313: DrawStatusPanel
Refreshes the crew-status display at the right side of the game window. Scans all 7 crew records starting at the alive-flag byte (29581 = $7386+7). For each crew member: if its crew-ID matches the alien's current target (33703) it is highlighted; if its alive flag is 0 (dead) the scan stops early (crew records are kept in alive-descending order). Live crew members get their portrait sprite drawn at the status panel position ($40A4 column).
Input
Used by the routine at 36457.
44313 LD HL,29581 HL = slot 1's +7 status byte (29581)
44316 XOR A A = 0
44317 LD BC,1793 B=7 (7 crew members), C=1 (crew index, 1-based)
44320 LD DE,8 DE = 8 (crew record stride)
44323 LD A,(33703) A = alien's target crew ID (33703)
44326 CP C is this crew member the alien's current target?
44327 JR Z,44332 yes: always include (even if at door)
44329 XOR A A = 0
44330 CP (HL) alive flag = 0?
44331 RET Z dead crew member: stop scan here
44332 INC C advance crew index
44333 ADD HL,DE HL → alive-flag of next crew record
44334 DJNZ 44323 repeat for all 7 crew
44336 JP 44242 draw live-crew portraits in status column
This entry point is used by the routine at 43610.
44339 LD HL,16452
44342 LD (31257),HL
44345 LD B,25
44347 LD DE,41997
44350 CALL 44509
44353 RET
This entry point is used by the routine at 43610.
44354 LD HL,16548
44357 LD (31257),HL
44360 LD BC,1793
44363 LD IX,29574
44367 LD DE,8
44370 PUSH BC
44371 PUSH DE
44372 LD A,(33703)
44375 CP C
44376 JR Z,44420
44378 LD A,(IX+7)
44381 AND A
44382 JR Z,44420
44384 CP 255
44386 JR Z,44420
44388 LD HL,(31257)
44391 PUSH HL
44392 LD A,C
44393 CALL 31690
44396 LD DE,42022
44399 LD B,8
44401 CALL 44509
44404 POP HL
44405 LD DE,64
44408 LD A,L
44409 CP 224
44411 JR C,44416
44413 LD DE,1856
44416 ADD HL,DE
44417 LD (31257),HL
44420 POP DE
44421 ADD IX,DE
44423 POP BC
44424 INC C
44425 DJNZ 44370
44427 RET
This entry point is used by the routine at 43610.
44428 LD HL,20516
44431 LD (31257),HL
44434 LD A,(33703)
44437 CP 8
44439 RET NC
44440 CALL 31690
44443 LD DE,42030
44446 LD B,16
44448 CALL 44509
44451 RET
This entry point is used by the routine at 43610.
44452 LD A,(40503)
44455 CP 100
44457 JR C,44461
44459 LD A,100
44461 CALL 45207
44464 LD (42065),HL
44467 AND A
44468 JR Z,44494
44470 LD B,A
44471 LD HL,42066
44474 LD A,58
44476 INC (HL)
44477 CP (HL)
44478 JR NZ,44492
44480 LD (HL),48
44482 DEC HL
44483 INC (HL)
44484 CP (HL)
44485 JR NZ,44491
44487 CALL 45216
44490 INC HL
44491 INC HL
44492 DJNZ 44476
44494 LD HL,20612
44497 LD (31257),HL
44500 LD DE,42046
44503 LD B,22
44505 CALL 44509
44508 RET
This entry point is used by the routines at 31634, 42581, 42821, 43610, 44561 and 44815.
44509 PUSH BC
44510 PUSH DE
44511 CALL 31369
44514 POP DE
44515 INC DE
44516 LD HL,31257
44519 INC (HL)
44520 POP BC
44521 DJNZ 44509
44523 RET
This entry point is used by the routine at 37490.
44524 CALL 44561
44527 LD HL,29581
44530 LD B,7
44532 LD DE,8
44535 LD (HL),2
44537 ADD HL,DE
44538 DJNZ 44535
44540 LD HL,16389
44543 LD (31257),HL
44546 LD DE,42183
44549 LD B,21
44551 CALL 44509
44554 XOR A
44555 LD (40503),A
44558 JP 44138
Prev: 43610 Up: Map Next: 44561