| Alien (BUGFIX 1.7) | Routines |
| Prev: 36014 | Up: Map | Next: 36101 |
|
Dispatched via CrewActionDispatch entry 1. State 1 means "go to the room in (IX+2)" (or idle when the destination equals the current room — the AI parks wanderers that way). On firing, the actor arrives: current room := destination, with a door sound unless the move happened inside the duct network. Arriving in an airlock that has been blown open (ShipSystemFlags bit 1 = Airlock #1, bit 2 = Airlock #2) dumps the mover into Corridor#6 (room 13) instead.
|
||||
| 36034 | LD A,(IX+2) | A = destination room | ||
| 36037 | CP (IX+1) | already there? | ||
| 36040 | RET Z | yes: stay idle | ||
| 36041 | LD (IX+1),A | arrive: current room = destination | ||
| 36044 | BIT 6,A | was the move inside the ducts? | ||
| 36046 | JR NZ,36053 | |||
| 36048 | LD A,1 | no: request the door sound | ||
| 36050 | LD (33699),A | |||
| 36053 | CALL 36187 | recompute room-mates and morale | ||
| 36056 | LD A,(IX+1) | entered Airlock #1 (room 0)? | ||
| 36059 | LD E,2 | (its "blown" flag is bit 1) | ||
| 36061 | AND A | |||
| 36062 | JR Z,36070 | |||
| 36064 | CP 1 | entered Airlock #2 (room 1)? | ||
| 36066 | JR NZ,36081 | neither: no airlock hazard | ||
| 36068 | LD E,4 | (its "blown" flag is bit 2) | ||
| 36070 | LD A,E | is that airlock blown open? | ||
| 36071 | LD HL,31253 | |||
| 36074 | AND (HL) | |||
| 36075 | JR Z,36081 | |||
| 36077 | LD (IX+1),13 | yes: the mover ends up in Corridor#6 | ||
| 36081 | LD A,(31252) | room view on screen (mode 1)? | ||
| 36084 | CP 1 | |||
| 36086 | RET NZ | no: done | ||
| 36087 | LD A,(33700) | is this the crew member being viewed? | ||
| 36090 | LD HL,31241 | |||
| 36093 | CP (HL) | |||
| 36094 | JP Z,32719 | yes: rebuild the whole room view | ||
| 36097 | CALL 45338 | no: refresh the info panel / condition | ||
| 36100 | RET | |||
| Prev: 36014 | Up: Map | Next: 36101 |