Prev: 36014 Up: Map Next: 36101
36034: CrewAction1_Arrive — complete a move (action state 1)
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.
Used by the routines at 33862 and 37992.
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