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:

ValueMeaning
NoneUninitialized / before first frame
FirstVery first launch (show intro)
WaitWaiting for user input
InitGamer-select screen
PlayActive gameplay
PauseGame paused (overlay visible)
LostLife lost — respawn sequence
WinLevel exit reached — transition
TrialDemo/trial mode
MainSetupMain menu settings
PlaySetupIn-game settings screen
ResumeResuming from pause
RankingScore / 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.