Prev: 29516 Up: Map Next: 29573
29566: Actor record array — slot 0: the alien
Eight 8-byte actor records (64 bytes in all). Slot k's name is entry k of CrewNameTable: slot 0 = ALIEN, slots 1-7 = Dallas, Kane, Ripley, Ash, Lambert, Parker, Brett. Most per-frame loops start from this base (LD IX,29566) and step 8 bytes per slot; the message renderer at 37221 passes the slot number straight to the name printer.
Per-record field layout (IX-relative):
Byte Meaning
+0 sprite index for the actor's current pose (20 = idle; 92 = blank; 255 = none) — also stepped as an action/frame counter
+1 current room: bits 0-5 = room ID 0-34 (indexes 28221 names and the 29171 adjacency map), bit 6 set = travelling in the air-duct network (29346). $FF = HostMarker: slot excluded from normal crew processing
+2 destination room, written by the picker at 36717 (bit 6 carries the duct flag along)
+3 action state (1=idle, 2=move, 3=wait, 5=investigate, 7=attack)
+4 strength / hit points (initial values 2-6; combat decrements)
+5 sprite X tile
+6 sprite Y tile
+7 status: 0 = alive/normal; 1 = killed (stamped by 37584's kill path); 2 = android defeated; $FF = removed from play (hypersleep, or HostMarker partner of +1=$FF)
Slot 0 is the alien: its +1 byte (29566+1) holds the alien's current room at runtime (initialised inside CommonGameInit at CommonInit_ItemsGrilles, rewritten by the airlock eject in BlowLock; read by the combat dispatch CrewAction4_Handler and by Jones's avoidance check in 36859). Its +7 byte (29573) anchors the status-column scans (+7 column, step 8).
The whole array is overwritten at game start by the templates at 41444 (Long Game) / 41508 (Short Game); the row values below are the tape-image leftovers.
29566 DEFB 0,0,0,0,0,0,0 slot 0 (+0..+6) — unused
Prev: 29516 Up: Map Next: 29573