#pragma once //########################################################################### // // btl4lobby -- the Steam lobby (BT_STEAM only): an ISteamMatchmaking room // replacing the arcade Site-Management screen for internet MP testing. // // The MENU process runs the lobby (the Steam transport is installed there // first, so each member's FakeIP is known): members publish their fake // address/ports + pilot identity as lobby member data; the host's room // screen lists members and its ENTER writes the GO signal; everyone then // relaunches into the mission -- the host with the marshal armed against // the members' fake CONSOLE addresses, members as plain -net pods with // BT_STEAM_NET=1 waiting to be fed over the Steam wire. // // Known limitation (documented): the lobby object does not survive the // per-mission process relaunch -- after a mission everyone re-joins from // the menu. FakeIP stability across the immediate relaunch is assumed // (Valve persists assignments per app+account); the live 2-account test // is the step's exit criterion (docs/STEAM_TEST.md). // //########################################################################### struct BTLobbyMember { char name[32]; char fakeAddress[48]; // the minted roster TOKEN ip int consolePort; // token console port (1501) int gamePort; // token game port (1502) char vehicle[16]; char color[16]; int isSelf; unsigned long long steamID; }; struct BTLobbyRoster { int memberCount; BTLobbyMember members[8]; }; // // Host: create the lobby, run the room screen, on ENTER write GO and fill // the roster (self first). Returns 0 = launch, nonzero = cancelled. // int BTLobby_HostAndRoom( const char *pilot_name, const char *vehicle, const char *color, BTLobbyRoster *roster_out, char *my_token_out, int my_token_capacity, char *steam_map_out, int steam_map_capacity); // // Member: find + join a lobby, run the room screen, return when the host // signals GO. Returns 0 = launch, nonzero = cancelled / none found. // int BTLobby_JoinAndWait( const char *pilot_name, const char *vehicle, const char *color, char *my_token_out, int my_token_capacity, char *steam_map_out, int steam_map_capacity);