Prev: 44561 Up: Map Next: 44770
44738: ShortGameInit
Game-mode handler for "1: Short Game" (dispatched from 43135).
Input
The Short Game is the abbreviated scenario. Several slots in the
starting template (41508 ShortGameCrewInit) are pre-stamped with the
HostMarker pattern ($FF on bytes +1 and +7) and the alien's first
target is hard-wired to crew ID 9 — a value the alien-targeting guard
at 41274 treats as "no valid target", so the alien's stalk-the-host
logic is effectively disabled. No script-driven randomisation runs.
Every Short Game opens from exactly the same configuration, which is
what makes it shorter and more deterministic than the Long Game.
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