PhaseManager
Game phase state holder and UI overlay manager.
Overview
PhaseManager stores the current GamePhase value and owns
the phase-transition overlay UI elements (fade screen, overlay text).
The actual state-machine dispatch logic lives in GalaxyEggbertGame::Update();
PhaseManager is a data/UI container, not a dispatcher.
Header: src/GalaxyEggbert/Game/PhaseManager.hpp
GamePhase Enum
Defined in include/GalaxyEggbert/def/GamePhase.hpp:
| Value | Meaning |
|---|---|
None | Uninitialized / before first frame |
First | Very first launch (show intro) |
Wait | Waiting for user input |
Init | Gamer-select screen |
Play | Active gameplay |
Pause | Game paused (overlay visible) |
Lost | Life lost — respawn sequence |
Win | Level exit reached — transition |
Trial | Demo/trial mode |
MainSetup | Main menu settings |
PlaySetup | In-game settings screen |
Resume | Resuming from pause |
Ranking | Score / ranking screen |
API
class PhaseManager {
public:
PhaseManager(Context* context, UIElement* root);
GamePhase GetPhase() const;
void SetPhase(GamePhase phase);
void ShowOverlay(const std::string& text);
void HideOverlay();
};
Private Members
private:
GamePhase phase_;
WeakPtr<UIElement> overlayEl_;
WeakPtr<Text> overlayText_;
Phase Transitions
Transitions are requested by GalaxyEggbertGame::EnterPhase(next),
which calls phases_->SetPhase(next) and performs any necessary
state reset (e.g., resetting lives, reloading world, playing sounds).
See Gameplay for the full state machine diagram.