| Alien (BUGFIX 1.7) | Routines |
| Prev: 35814 | Up: Map | Next: 36014 |
|
Called from GameEntry each frame: walk all 8 actor records, decrement every non-parked action countdown (IX+0), and fire the queued action on the 1->0 transition — DispatchCrewAction then jumps through CrewActionDispatch into the per-state handlers (36034 move/idle, 36101 duct transit, 36150 remove grille, ...).
|
||||
| 35973 | PUSH IX | |||
| 35975 | XOR A | CrewIndex = 0: start at the alien's slot | ||
| 35976 | LD (33700),A | |||
| 35979 | LD IX,29566 | IX -> ActorRecords slot 0 | ||
| 35983 | LD B,8 | all 8 actor slots | ||
| 35985 | PUSH BC | |||
| 35986 | LD A,(IX+0) | A = action countdown | ||
| 35989 | AND A | parked (0)? | ||
| 35990 | JR Z,35999 | yes: leave it alone | ||
| 35992 | DEC A | tick it down | ||
| 35993 | LD (IX+0),A | |||
| 35996 | CALL 45232 | fire the action on the 1->0 transition | ||
| 35999 | LD DE,8 | step to the next 8-byte record | ||
| 36002 | ADD IX,DE | |||
| 36004 | LD HL,33700 | keeping CrewIndex in step | ||
| 36007 | INC (HL) | |||
| 36008 | POP BC | |||
| 36009 | DJNZ 35985 | |||
| 36011 | POP IX | |||
| 36013 | RET | |||
| Prev: 35814 | Up: Map | Next: 36014 |