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>
26 lines
919 B
C
26 lines
919 B
C
#pragma once
|
|
|
|
#include "..\munga\style.h"
|
|
|
|
//########################################################################
|
|
//############################ RPL4 Front End ############################
|
|
//########################################################################
|
|
//
|
|
// The in-game race setup: shown when the game starts with no egg, no
|
|
// network, and no mission-review mode. Presents the Death Race catalog
|
|
// (track / vehicle / color / badge / time / weather / length + pilot
|
|
// name), builds the mission egg locally - the same NotationFile text
|
|
// TeslaConsole generated, including the pre-rendered plasma name
|
|
// bitmaps - and hands its path back for the standard egg-load path.
|
|
//
|
|
// Returns True with egg_path_out filled when the player launches;
|
|
// False if they close the window instead.
|
|
//
|
|
Logical
|
|
RPL4FrontEnd_Run(
|
|
HINSTANCE instance,
|
|
HWND main_window,
|
|
char *egg_path_out,
|
|
int egg_path_size
|
|
);
|