81 .useSpecificPort =
false,
82 .useLegacyTcp =
false,
83 .persistAfterClientExit =
false,
84 .advertiseGlobal =
true,
86 .serverName =
"Server",
89 .powerupInitialSpawnDelaySeconds = 60.0f,
90 .powerupRespawnCooldownSeconds = 30.0f,
Borrowed dependencies shared by client screens.
TCP client for connecting to the game server.
ConnectError
Definition Client.hpp:57
@ ConnectFailed
Definition Client.hpp:63
Developer-mode configuration loaded from config.toml.
Client-side owner for a locally launched authoritative server process.
Abstract interface for top-level application screens (lobby, in-game).
ImGui widget for the main menu server join form.
ServerBrowserTab
Tabs available on the server browser screen.
Definition MainMenuUI.hpp:16
@ LocalListing
Definition MainMenuUI.hpp:17
Network configuration loaded from config.toml at startup.
Work-in-progress SDL3 GPU renderer.
Final scoreboard snapshot shown after a match ends.
Client-side sound effects system.
Root application class; owns shared resources and manages screen transitions.
Definition App.hpp:32
AppContext screenContext()
Build a borrowed context for screen initialisation.
Definition App.cpp:687
void waitForJoinAttempt()
Wait for any active join worker before shutdown.
Definition App.cpp:848
UserSettings userSettings
User-specific input and gameplay settings.
Definition App.hpp:71
Screen current
Which screen is currently active.
Definition App.hpp:93
SDL_Window * window
Main application window.
Definition App.hpp:67
ServerBrowserTab nextMainMenuTab_
Initial tab for the next MainMenu open.
Definition App.hpp:95
bool init()
Initialize SDL, the GPU renderer, ImGui, and the network client.
Definition App.cpp:75
bool shutdownHostedServerGracefully()
Ask a locally hosted server to shut down before falling back to process termination.
Definition App.cpp:859
DeveloperConfig developerConfig
Developer toggles loaded from config.toml.
Definition App.hpp:70
void applyAudioSettings()
Push saved volume settings into the shared audio system.
Definition App.cpp:706
Uint64 previousAudioCounter_
Performance counter used to tick menu audio.
Definition App.hpp:110
std::string currentServerIp
Address used for the current server connection, if known.
Definition App.hpp:74
Screen settingsReturnScreen_
Front-end screen to restore after Settings closes.
Definition App.hpp:94
std::unique_ptr< IScreen > screen_
Active screen instance.
Definition App.hpp:96
std::string userSettingsPath
Path used to load and save user settings.
Definition App.hpp:72
SfxSystem sfxSystem
Shared audio system for menus, music, and gameplay sounds.
Definition App.hpp:76
void pollJoinAttempt()
Apply a completed join worker result, if one is ready.
Definition App.cpp:816
void transitionTo(Screen next)
Destroy the current screen and activate the requested one.
Definition App.cpp:529
void showMainMenuPopupMessage(const std::string &message)
Show a modal message on the active main menu screen, if it is active.
Definition App.cpp:730
void cleanup()
Destroy all subsystems without asserting on partial-init state.
Definition App.cpp:652
std::optional< PostMatchResult > pendingPostMatchResult_
Result data used to open the post-match screen.
Definition App.hpp:98
std::string currentServerName
Display name for the connected server, if known.
Definition App.hpp:73
Screen
Named screens the application can display.
Definition App.hpp:51
@ Loading
Match-loading screen shown before synchronous game init.
Definition App.hpp:57
@ TitleScreen
Top-level landing/title screen.
Definition App.hpp:52
@ PostMatch
Dedicated scoreboard shown after a completed match.
Definition App.hpp:58
@ InGame
Active match session.
Definition App.hpp:59
@ Settings
Dedicated front-end settings screen.
Definition App.hpp:53
NetworkConfig networkConfig
Host/port/transport loaded from config.toml.
Definition App.hpp:69
void quit()
Shut down all subsystems and release resources.
Definition App.cpp:524
std::future< JoinAttemptResult > joinAttempt_
Background direct/global join attempt, if active.
Definition App.hpp:108
Client client
Network client connected to the authoritative server when in a session.
Definition App.hpp:77
uint16_t currentServerPort
Port used for the current server connection, if known.
Definition App.hpp:75
SDL_AppResult event(SDL_Event *event)
Forward an SDL event to the active screen.
Definition App.cpp:201
SDL_AppResult iterate()
Tick the active screen and check for pending screen transitions.
Definition App.cpp:210
void startJoinAttempt(const JoinRequest &request)
Start the non-blocking join worker for a main-menu join request.
Definition App.cpp:738
bool imguiContextOwned
True once App has created the ImGui context.
Definition App.hpp:97
std::string joinAttemptLabel_
Target label displayed by the main menu while joining.
Definition App.hpp:109
NewRenderer renderer
SDL_GPU PBR renderer, shared across screens.
Definition App.hpp:68
HostedServer hostedServer
Optional local server process launched by the host screen.
Definition App.hpp:78
HostConfigState hostConfigState
Persistent host screen draft state.
Definition App.hpp:79
void updateBackgroundMusic()
Start the correct looping background music for the active screen.
Definition App.cpp:721
TCP stream client — sends input to the server and receives state updates.
Definition Client.hpp:69
IScreen implementation for local server launch settings.
Definition HostConfig.hpp:21
Starts, monitors, and shuts down a server process spawned by the client.
Definition HostedServer.hpp:37
IScreen implementation for the pre-match lobby.
Definition Lobby.hpp:23
IScreen implementation for the main menu/join screen; hosts the server join form.
Definition MainMenu.hpp:38
Graphics-team's work-in-progress SDL3 GPU renderer.
Definition NewRenderer.hpp:83
Client-side sound effects system.
Definition SfxSystem.hpp:50
IScreen implementation for the first landing menu.
Definition TitleScreen.hpp:13
Non-owning view of App-owned services and configuration.
Definition AppContext.hpp:20
std::string serverName
Definition App.hpp:105
uint16_t serverPort
Definition App.hpp:104
ConnectError error
Definition App.hpp:102
std::string serverIp
Definition App.hpp:103
Developer-only runtime toggles shared by client and server.
Definition DeveloperConfig.hpp:8
Persistent host-screen options used when launching a local server.
Definition HostedServer.hpp:17
Server address and port entered by the user on the main menu screen.
Definition MainMenu.hpp:29
Runtime network connection parameters.
Definition NetworkConfig.hpp:141
Per-user gameplay settings loaded from SDL's pref-path TOML file.
Definition UserSettings.hpp:25