| alien | Routines |
| Prev: 44561 | Up: Map | Next: 44770 |
|
Game-mode handler for "1: Short Game" (dispatched from 43135).
|
||||||||||||||||||||||
|
Steps: 1. Clear the two run-state bytes at 33708 / 33709. 2. Point the message queue head (MsgQueueWritePtr 33741) at the queue base MessageQueue (33714). 3. Hard-wire 33703 (AlienTargetID) = 9 — disables alien hunt logic. 4. LDIR 64 bytes from 41508 (ShortGameCrewInit) into $7376 to populate the alien slot and the seven crew slots with the short-game starting state (four slots wear the HostMarker so they're skipped by normal crew processing, leaving the alien header plus three active crew). 5. JP into the shared common init at 42380 (CommonGameInit) — skipping the Long Game's script-driven host selection and target picking. Used by the dispatcher at 43134 via the table at 43135.
|
||||||||||||||||||||||
| 44738 | XOR A | A = 0 | ||||||||||||||||||||
| 44739 | LD (33708),A | clear run-state byte 33708 | ||||||||||||||||||||
| 44742 | LD (33709),A | clear run-state byte 33709 | ||||||||||||||||||||
| 44745 | LD HL,33714 | HL = MessageQueue (event queue base) | ||||||||||||||||||||
| 44748 | LD (33741),HL | event queue head = queue base (empty queue) | ||||||||||||||||||||
| 44751 | LD A,9 | A = 9 (fixed Short Game alien target) | ||||||||||||||||||||
| 44753 | LD (33703),A | AlienTargetID = 9 — no randomisation | ||||||||||||||||||||
| 44756 | LD HL,41508 | HL = ShortGameCrewInit ($A224) | ||||||||||||||||||||
| 44759 | LD DE,29566 | DE = $7376 (alien slot + crew table base) | ||||||||||||||||||||
| 44762 | LD BC,64 | 64 bytes = 8 × 8-byte records | ||||||||||||||||||||
| 44765 | LDIR | copy short-game starting crew/alien state | ||||||||||||||||||||
| 44767 | JP 42380 | → CommonGameInit (skip Long Game randomisation) | ||||||||||||||||||||
| Prev: 44561 | Up: Map | Next: 44770 |