In-game front end: race setup menu builds the mission egg locally
Starting without -egg, -net, or -mr now boots a race-setup screen (RP_L4/RPL4FE.cpp) instead of aborting: track / vehicle / color / badge / time-of-day / weather / race length plus pilot name, populated from TeslaConsole''s RPConfig.xml catalog (Death Race scenario). LAUNCH builds the egg exactly as the console did - the RPMission.ToEggString port, including the pilot name pre-rendered to 1bpp plasma bitmaps (128x32 + 64x16) via GDI with the console''s auto-shrink font logic and the verbatim ordinal graphics - writes frontend.egg, and injects it into the standard egg-load path (new L4Application:: SetEggNotationFileName). The menu is a GDI child of the main window (pod green-on-black, double buffered, mouse driven, EDIT control for the name) running a modal loop before engine init; closing the window exits cleanly. Found and fixed along the way: the empty egg CString holds a NULL representation (operator! is the safe emptiness test), and the modal loop needed a queue nudge for launch clicks delivered via SendMessage. Verified end to end: boot -> menu -> LAUNCH -> generated egg (7.5KB) -> racing in the 1080p cockpit with score and mission clock running. start-windowed.bat now boots into the front end. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -77,6 +77,18 @@ so press-feedback works like the real button field.
|
||||
|
||||
## Workstream B — In-game sessions (from TeslaConsole)
|
||||
|
||||
- ✅ **Single-player front end landed** (2026-07-12): starting without
|
||||
`-egg`/`-net` boots a race-setup menu (`RP_L4/RPL4FE.cpp`) — track /
|
||||
vehicle / color / badge / time / weather / length + pilot name from the
|
||||
console's catalog — which builds the mission egg locally (full
|
||||
`RPMission.ToEggString` port incl. GDI-rendered plasma name bitmaps)
|
||||
and feeds the standard egg-load path. Verified end to end: menu →
|
||||
LAUNCH → generated egg → racing in the cockpit.
|
||||
- See [RP412-FRONTEND-DESIGN.md](RP412-FRONTEND-DESIGN.md) for the
|
||||
TeslaConsole control-code analysis and the Steam lobby mapping this
|
||||
builds toward (lobby owner = console, SteamID list = pilot list,
|
||||
Steam-sockets mesh = the egg's connect/listen ordering).
|
||||
|
||||
Consumer players get no operator. The create/configure/launch flow that
|
||||
TeslaConsole drives over TCP 1501 becomes in-game UI:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user