| Alien (BUGFIX 1.7) | Routines |
| Prev: 45539 | Up: Map | Next: 45642 |
|
Entered with HL -> the victim's morale byte (+6) and C = his slot: stamp status (+7) = 1 (dead), then give every live actor gathered in NearestCrewC/A/B a point of morale loss (WitnessMoraleLoss). If at least one witness survives, the death is seen at once: the body is marked found (+7 = 2), msg #20 "{witness} finds {victim}'s body" fires, and the whole crew's courage decays. With no witness the body stays at status 1 for a later discovery (MoraleFromCompanion).
|
||||
| 45585 | INC HL | status (+7) = 1: dead | ||
| 45586 | LD (HL),1 | |||
| 45588 | PUSH BC | |||
| 45589 | PUSH IX | |||
| 45591 | PUSH HL | |||
| 45592 | LD H,0 | H = last live witness (0 = none) | ||
| 45594 | LD A,(33695) | each gathered slot (C, A, B) | ||
| 45597 | CP 255 | that exists loses morale | ||
| 45599 | CALL NZ,45642 | as a witness | ||
| 45602 | LD A,(33696) | |||
| 45605 | CP 255 | |||
| 45607 | CALL NZ,45642 | |||
| 45610 | LD A,(33697) | |||
| 45613 | CP 255 | |||
| 45615 | CALL NZ,45642 | |||
| 45618 | LD A,H | any live witness? | ||
| 45619 | CP 0 | |||
| 45621 | JR Z,45637 | no: the body lies undiscovered | ||
| 45623 | POP HL | yes: the death is seen at once — | ||
| 45624 | LD (HL),2 | the body is already "found" (+7 = 2), | ||
| 45626 | PUSH HL | |||
| 45627 | LD L,A | L = witness, H = victim: | ||
| 45628 | LD H,C | |||
| 45629 | LD A,20 | msg #20 "{actor} finds {target}'s body" | ||
| 45631 | CALL 37176 | |||
| 45634 | CALL 36428 | and everyone's courage decays | ||
| 45637 | POP HL | |||
| 45638 | POP IX | |||
| 45640 | POP BC | |||
| 45641 | RET | |||
| Prev: 45539 | Up: Map | Next: 45642 |