#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 ); // The race length (seconds; 0 = endless) selected at the last // successful launch - the local console marshals the mission with it. int RPL4FrontEnd_LastMissionSeconds(); // [pilots]-order pilot names of the last launched race (owner first), // comma separated - labels for the network console's results intake. const char * RPL4FrontEnd_LastPilotNames(); // How the last Run() ended: a plain race, hosting a network race (the // console marshals the other pods), or entering one as a member pod // (the lobby owner's console marshals us; no local egg, no console). enum FELaunchMode { FELaunchSingle = 0, FELaunchHost, FELaunchMember }; int RPL4FrontEnd_LastLaunchMode(); // The player's persisted loadout (lobby member data). Buffers: 24/16/24. void RPL4FrontEnd_GetLoadout(char *vehicle, char *color, char *badge); //--------------------------------------------------------------- // Football team / position: the catalogs, and this player's picks. // The lobby publishes the picks as member data and lets members // cycle them in the room; the host's egg builder honors them. //--------------------------------------------------------------- int RPL4FrontEnd_TeamCount(); const char * RPL4FrontEnd_TeamName(int index); const char * RPL4FrontEnd_TeamKey(int index); int RPL4FrontEnd_PositionCount(); const char * RPL4FrontEnd_PositionName(int index); const char * RPL4FrontEnd_PositionKey(int index); int RPL4FrontEnd_GetTeamIndex(); void RPL4FrontEnd_SetTeamIndex(int index); int RPL4FrontEnd_GetPositionIndex(); void RPL4FrontEnd_SetPositionIndex(int index); // True when this player's setup menu has Football selected (the host's // pick decides the mission; members use it to know what to show). Logical RPL4FrontEnd_IsFootballSelected(); // Hosted-race pilots fed by the Steam lobby: overrides the // RP412HOSTPODS parsing with real personas and loadouts. owner_address // is this pod's mesh IP (the FakeIP); count 0 clears the override. struct FEHostedPilot { char address[64]; // mesh (game port) address for [pilots] char name[32]; char vehicle[24]; char color[16]; char badge[24]; // football: the member's own picks, empty = assign one for them char team[32]; // team key ("Red/Pink", ...) char position[16]; // "runner" / "crusher" / "blocker" }; void RPL4FrontEnd_SetHostedPilots( const char *owner_address, const FEHostedPilot *pilots, int count ); // The between-races results screen: shows the last mission's final // scores (from the local console) with a CONTINUE button. Returns // immediately when there are no results (first boot). False only if // the player closed the window instead of continuing. Logical RPL4FrontEnd_ShowResults( HINSTANCE instance, HWND main_window );