3#include <kalium/AudioSystem.h>
4#include <phosphorus/GameBootstrapper.h>
5#include <phosphorus/IGame.h>
6#include "Screens/Screen.h"
13 enum class GameState : uint8
23 enum class Difficulty : uint8
33 enum class ScoringMode : uint32
43 enum class GenerateMode : uint8
56 GameObject *
clone()
override {
return new SolitaireSessionSettings(); }
71 SolitaireSessionSettings() :
73 GenerateMode(
"GenerateMode", GenerateMode::Predefined)
85 Difficulty.SetDisplayName(
"session.difficulty");
91 GenerateMode.SetDisplayName(
"session.generate");
92 GenerateMode.Bind(GenerateMode::Predefined, _TW(
"generate.predefined"));
93 GenerateMode.Bind(GenerateMode::Solve, _TW(
"generate.solve"));
108 GameObject *
clone()
override {
return new SolitaireStatistics(); }
131 SolitaireStatistics() :
158 GameObject *clone()
override {
return new SolitaireSettings(); }
176 Language.SetDisplayName(
"generic.language");
177 Language.Bind(Language::Polish, L
"Polski");
178 Language.Bind(Language::English, L
"English");
194 std::stack<IScreen *> m_ScreenStack;
199 void updateScreenState();
232 return dynamic_cast<SolitaireSettings *
>(Phosphorus::GameInstance->GameSettings);
241 IGame(options, nullptr), m_AudioSystem(
m_VfsManager), m_PrevPeekScreen(nullptr)
Represent registry of Action objects.
Definition ActionRegistry.h:74
Represents an object that can provide actions.
Definition IActionProvider.h:12
The renderer of component registry.
Definition Surface.h:28
Represents object that registers components .
Definition Screen.h:57
Main game class managing the Solitaire session.
Definition Solitaire.h:189
void PopScreen(int32 count=1)
Pops one or more screens from the stack.
Definition Solitaire.cpp:139
GameState GameState
Current game state.
Definition Solitaire.h:215
Phosphorus::ProductInfo GetProductInfo() override
Returns metadata about the game product.
Definition Solitaire.cpp:31
static SolitaireSettings * GetSettings()
Returns a pointer to global user settings.
Definition Solitaire.h:230
void Run() override
Starts the game loop.
Definition Solitaire.cpp:54
void OnRender() override
Renders the game frame.
Definition Solitaire.cpp:103
void PlayOneShot(const String &path)
Plays a sound from the given file path.
Definition Solitaire.cpp:127
void OnSurfaceCallback(const String &id) override
Called when a UI surface interaction occurs.
Definition Solitaire.cpp:97
void OnWin()
Called when the game is won.
Definition Solitaire.cpp:150
SolitaireSessionSettings * SessionSettings
Pointer to session settings object.
Definition Solitaire.h:225
Phosphorus::VfsManager & GetVfsManager()
Returns virtual file system manager.
Definition Solitaire.cpp:159
SolitaireStatistics * Statistics
Pointer to gameplay statistics object.
Definition Solitaire.h:220
void OnLoadFromFile()
Loads a saved game session from file.
Definition Solitaire.cpp:169
void OnNewGame()
Starts a new game session.
Definition Solitaire.cpp:161
void PushScreen(IScreen *screen)
Pushes a new screen onto the stack.
Definition Solitaire.cpp:133
void SetTitle(const WideString &title)
Sets the window or UI title.
Definition Solitaire.cpp:148
void ProvideActions(Andromenda::ActionRegistry ®istry) override
Provides UI and input actions to the action registry.
Definition Solitaire.cpp:175
Holds user-defined session settings like scoring and difficulty.
Definition Solitaire.h:53
GameObject * clone() override
Definition Solitaire.h:56
Phosphorus::EnumParameter< Difficulty > Difficulty
Selected difficulty parameter.
Definition Solitaire.h:67
Phosphorus::EnumParameter< ScoringMode > ScoringMode
Selected scoring mode parameter.
Definition Solitaire.h:62
String GetIdentifer() const override
Definition Solitaire.h:98
Holds user preferences such as audio settings.
Definition Solitaire.h:155
String GetIdentifer() const override
Definition Solitaire.h:182
Phosphorus::BoolParameter Audio
Enables or disables audio playback.
Definition Solitaire.h:164
Phosphorus::EnumParameter< Language > Language
Language of game.
Definition Solitaire.h:169
Stores gameplay statistics such as score and time.
Definition Solitaire.h:105
GameObject * clone() override
Definition Solitaire.h:108
Phosphorus::IntParameter StockViewedCards
Number of cards viewed from the stock.
Definition Solitaire.h:119
String GetIdentifer() const override
Definition Solitaire.h:142
Phosphorus::IntParameter Score
Current score in the session.
Definition Solitaire.h:129
Phosphorus::IntParameter RevertedInteractions
Number of undo actions performed.
Definition Solitaire.h:114
Phosphorus::Int64Parameter TimePlayed
Total time played in milliseconds.
Definition Solitaire.h:124
Definition AudioSystem.h:11
Templated enum parameter. Derived from BaseEnumParameter.
Definition GameObject.h:216
Represents named set of parameters which can be serialized.
Definition GameObject.h:274
void addParameter(IBaseParameter *parameter)
Adds parameter to the list.
Definition GameObject.h:304
Represents serializable GameObjectRegistry with rendering, asset manager.
Definition IGame.h:42
VfsManager m_VfsManager
Main game asset manager.
Definition IGame.h:63
Andromenda::Surface * m_Surface
Main game renderer.
Definition IGame.h:57
Virtual file storage manager.
Definition VfsManager.h:16
Represents a mutable sequence of characters, providing various member functions for string manipulati...
Definition String.h:16
Represents a mutable sequence of utf-16 characters, providing various member functions for string man...
Definition WideString.h:14
Game launch options.
Definition GameOptions.h:11
Game product info.
Definition IGame.h:17