| Alien (BUGFIX 1.7) | Routines |
| Prev: 31915 | Up: Map | Next: 32143 |
|
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 |