Prev: 31915 Up: Map Next: 32143
31964: DrawRoomSpecials
Fill the strip cells for the viewed room's special occupants and fixtures: the hostile Android and the alien (ATTACK on the Special slot), Jones ("Get Jones " on row 14), then the room's fixture label on cells 15/16 (destruct lever, airlock doors, hypersleep pod, engine fire, launch console).
31964 LD A,(33703) is there an Android this game,
31967 CP 8
31969 JR NC,31988
31971 LD A,(33704) already hostile,
31974 AND A
31975 JR Z,31988
31977 LD HL,(33701) and in the viewed room?
31980 INC HL (AlienTargetPtr +1 = the Android's room)
31981 LD A,(31242)
31984 CP (HL)
31985 CALL Z,32134 yes: offer ATTACK
31988 LD A,(31242) Jones in the viewed room?
31991 LD HL,33706
31994 CP (HL)
31995 CALL Z,32109 yes: cat + "Get Jones " row
31998 LD HL,29567 the alien in the viewed room?
32001 CP (HL)
32002 CALL Z,32121 yes: offer ATTACK
32005 LD HL,31253 HL -> ShipSystemFlags,
32008 LD DE,29645 DE -> strip cells 15/16: which
32011 CP 6 fixture lives in this room?
32013 JR Z,32051 CommdCentr: the destruct lever
32015 CP 13 Corridor#6: the airlock doors
32017 JR Z,32089
32019 CP 15 Cryo Vault: the hypersleep pod
32021 JR Z,32064
32023 CP 17 engine rooms: a fire,
32025 JR Z,32071 if one is burning
32027 CP 18
32029 JR Z,32075
32031 CP 19
32033 JR Z,32079
32035 CP 34 Narcissus: the launch console
32037 JR Z,32040
32039 RET other rooms: no fixture
32040 BIT 6,(HL) (flag bit 6 would hide the console;
32042 RET NZ nothing sets it in this build)
32043 LD A,78 cells 15/16 = launch-console
32045 LD (DE),A label (strings 78/81)
32046 LD A,81
32048 INC DE
32049 LD (DE),A
32050 RET
32051 LD A,70 lever off (70/71), or
32053 BIT 0,(HL) armed (72/73) when the
32055 JR Z,32059 destruct bit is set
32057 LD A,72
32059 LD (DE),A write the two-row label
32060 INC DE into cells 15/16
32061 INC A
32062 LD (DE),A
32063 RET
32064 LD A,74 hypersleep pod label (74/75)
32066 LD (DE),A into cells 15/16
32067 INC DE
32068 INC A
32069 LD (DE),A
32070 RET
32071 BIT 3,(HL) Engine #1 burning?
32073 JR 32081
32075 BIT 4,(HL) Engine #2 burning?
32077 JR 32081
32079 BIT 5,(HL) Engine #3 burning?
32081 RET Z no fire: no label
32082 LD A,76 fire label (76/77)
32084 LD (DE),A into cells 15/16
32085 INC A
32086 INC DE
32087 LD (DE),A
32088 RET
32089 LD A,53 cell 15 = airlock #1 door:
32091 BIT 1,(HL) closed (53) or blown (55)
32093 JR Z,32097
32095 LD A,55
32097 LD (DE),A
32098 INC DE
32099 LD A,54 cell 16 = airlock #2 door:
32101 BIT 2,(HL) closed (54) or blown (56)
32103 JR Z,32107
32105 LD A,56
32107 LD (DE),A
32108 RET
Jones is in the viewed room: menu Special row 14 ($73CC) offers string 51 "Get Jones " (its handler needs the Net or the Cat Box), and the cat is drawn.
32109 PUSH AF
32110 LD DE,29644 cell 14 = the Special row
32113 LD A,51
32115 LD (DE),A
32116 CALL 39655 InitJonesAnim: draw the cat, ready to run
32119 POP AF
32120 RET
The alien is in the viewed room: draw it and offer " ATTACK ".
32121 PUSH AF
32122 JP 44996 AttackRowGate (returns to 32125 if clear)
This entry point is used by the routine at 44996.
32125 LD A,52 menu row = " ATTACK "
32127 LD (DE),A
32128 XOR A unfreeze the alien-body layer
32129 LD (39741),A
This entry point is used by the routine at 44996.
32132 POP AF
32133 RET
The activated Android is in the viewed room: draw it, offer ATTACK.
32134 PUSH AF
32135 JP 45125 AndroidRowGate (returns to 32138 if clear)
This entry point is used by the routine at 45125.
32138 LD A,52 menu row = " ATTACK "
32140 LD (DE),A
This entry point is used by the routine at 45125.
32141 POP AF
32142 RET
Prev: 31915 Up: Map Next: 32143