Commit Graph
2 Commits
Author SHA1 Message Date
CydandClaude Fable 5 4556187b5c Front end: the miniconsole menu -- interactive race setup (Workstream B)
The in-game menu that replaces the operator console.  A GDI-painted
green-on-black terminal (RP412 RPL4FE pattern) in its own top-level
window, shown in front-end mode (no -egg/-net) before the mission:

- Catalogs as clickable columns: MAP (8), MECH (8), COLOR (8), TIME,
  WEATHER, LENGTH, plus a PILOT NAME edit box and a LAUNCH button.
  Selected item highlighted; click cycles selections.
- LAUNCH fills a BTFeMission from the selections, writes the egg
  (BTFeMission_WriteEgg -- the existing builder), and points the
  standard -egg load path at it.  Closing the menu quits the process.
- btl4main.cpp: front-end mode runs the menu; menu-close exits.

Verified end to end: no-args launch shows the menu; clicking LAUNCH
builds frontend.egg from the chosen map/mech/color/time/length and the
mission loads and runs (map=grass mech=bhk1 color=White time=day
length=300 from the default selections).

Remaining in Phase 5: the LocalConsole marshal (timed stop + results +
single-binary menu<->mission loop).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 22:07:41 -05:00
CydandClaude Fable 5 0faf6a0072 Front end: local mission-egg builder + front-end mode (Workstream B foundation)
The core 'single-player without the operator console' capability: a
zero-argument launch now builds its own mission and plays.

- game/reconstructed/btl4fe.{hpp,cpp}: the BattleTech catalog (8 maps,
  8 mechs + variants, colors) and BTFeMission_WriteEgg -- emits the exact
  console egg format (verified against content/MP.EGG): [mission],
  [ordinals] + the 4 static rank-place plasma bitmaps, [pilots],
  per-pilot loadout sections, and [largebitmap]/[smallbitmap] with
  GDI-rendered 128x32 / 64x16 pilot-name plasma bitmaps.
- L4APP.H: SetEggNotationFileName / SetNetworkCommonFlatAddress setters
  (from RP412) so the front end feeds the standard -egg load path.
- btl4main.cpp WinMain: front-end mode -- no -egg and no -net builds
  frontend.egg locally (BTFrontEnd_Run) and boots it. -egg/-net runs
  are untouched.

Verified: no-args launch -> '[frontend] built frontend.egg' -> mission
loads and runs; the generated egg is structurally identical to MP.EGG
(32x32/16x16 name bitmaps with real glyph pixels, all sections present).

Remaining in Phase 5 (deferred): the interactive on-screen catalog menu,
the in-process LocalConsole marshal (mission clock + StopMission at
expiry + single-binary loop), and the score-intake/results screen (new
for BT -- no mission-end flow exists yet). (Phase 5 of the roadmap)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 08:44:37 -05:00