Prev: 44722 Up: Map Next: 44770
44738: ShortGameInit
Game-mode handler for "1: Short Game" (dispatched from 43135).
The Short Game is the abbreviated scenario. Several slots in the starting template (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) at the queue base MessageQueue.
  • 3. Hard-wire AlienTargetID = 9 — disables alien hunt logic.
  • 4. LDIR 64 bytes from ShortGameCrewInit into $737E 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 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 = $737E (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: 44722 Up: Map Next: 44770