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 29516 (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.
Input
Per-record field layout (IX-relative):
+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 42397, updated inside 38379; read by CrewHitsAlien's path at 37490 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