85 CGame(
bool replayLog);
93 void StartGame(JS::MutableHandleValue attribs,
const std::string& savedState);
107 void Update(
const double deltaRealTime,
bool doInterpolate =
true);
109 void Interpolate(
float simFrameLength,
float realFrameLength);
186 {
if (std::isfinite(simRate)) m_SimRate = std::max(simRate, 0.0f); }
209 void RegisterInit(
const JS::HandleValue attribs,
const std::string& savedState);
The container that holds the rules, resources and attributes of the game.
Definition: Game.h:42
player_id_t m_PlayerID
Index assigned to the current player.
Definition: Game.h:75
CTurnManager * m_TurnManager
Definition: Game.h:82
void CachePlayerColors()
Retrieving player colors from scripts is slow, so this updates an internal cache of all players' colo...
Definition: Game.cpp:429
void RegisterInit(const JS::HandleValue attribs, const std::string &savedState)
Initializes the game with the set of attributes provided.
Definition: Game.cpp:210
int LoadInitialState()
Definition: Game.cpp:276
CWorld * m_World
pointer to the CWorld object representing the game world.
Definition: Game.h:49
bool m_IsSavedGame
Definition: Game.h:216
void SetPlayerID(player_id_t playerID)
Definition: Game.cpp:354
Replay log recorder interface.
Definition: Replay.h:35
bool m_IsVisualReplay
Definition: Game.h:220
~CGame()
Destructor.
Definition: Game.cpp:103
Common turn system (used by clients and offline games).
Definition: TurnManager.h:79
static const CStr EventNameSimulationUpdate
Definition: Game.h:207
CGameView * m_GameView
pointer to the CGameView object representing the view into the game world.
Definition: Game.h:59
Public API for simulation system.
Definition: Simulation2.h:46
int32_t player_id_t
valid player IDs are non-negative (see ICmpOwnership)
Definition: Player.h:24
int GetPlayerID()
Definition: Game.cpp:349
bool IsVisualReplay() const
Get m_IsVisualReplay.
Definition: Game.h:150
std::vector< CColor > m_PlayerColors
Definition: Game.h:212
void Interpolate(float simFrameLength, float realFrameLength)
Definition: Game.cpp:418
CGame(bool replayLog)
Constructor.
Definition: Game.cpp:70
uint32_t u32
Definition: types.h:39
CWorld is a general data class containing whatever is needed to accurately represent the world...
Definition: World.h:47
u32 PSRETURN
Definition: Errors.h:75
player_id_t m_ViewedPlayerID
Differs from m_PlayerID if a defeated player or observer views another player.
Definition: Game.h:80
bool IsGameStarted() const
Get m_GameStarted.
Definition: Game.h:140
bool m_Paused
the game is paused and no updates will be performed if true.
Definition: Game.h:91
std::string m_InitialSavedState
Definition: Game.h:215
Definition: GameView.h:36
void SetTurnManager(CTurnManager *turnManager)
Replace the current turn manager.
Definition: Game.cpp:120
bool IsGameFinished() const
Check if the game is finished by testing if there's a winner.
Definition: Game.cpp:458
void SetSimRate(float simRate)
Set the simulation scale multiplier.
Definition: Game.h:185
const CColor & GetPlayerColor(player_id_t player) const
Definition: Game.cpp:450
CSimulation2 * GetSimulation2()
Get the pointer to the simulation2 object.
Definition: Game.h:174
OsPath GetReplayPath() const
Definition: Game.h:191
CGameView * GetView()
Get the pointer to the game view object.
Definition: Game.h:166
void StartGame(JS::MutableHandleValue attribs, const std::string &savedState)
Definition: Game.cpp:373
int LoadVisualReplayData()
Definition: Game.cpp:131
std::istream * m_ReplayStream
Definition: Game.h:221
CWorld * GetWorld()
Get the pointer to the game world object.
Definition: Game.h:158
OsPath m_ReplayPath
Definition: Game.h:219
void Update(const double deltaRealTime, bool doInterpolate=true)
Periodic heartbeat that controls the process.
Definition: Game.cpp:385
u32 m_FinalReplayTurn
Definition: Game.h:222
float m_SimRate
Timescale multiplier for simulation rate.
Definition: Game.h:69
PSRETURN ReallyStartGame()
Game initialization has been completed.
Definition: Game.cpp:301
IReplayLogger & GetReplayLogger() const
Definition: Game.h:203
IReplayLogger * m_ReplayLogger
Definition: Game.h:210
float GetSimRate() const
Definition: Game.h:188
int GetViewedPlayerID()
Definition: Game.cpp:363
bool m_GameStarted
the game has been initialized and ready for use if true.
Definition: Game.h:64
CTurnManager * GetTurnManager() const
Definition: Game.h:200
bool StartVisualReplay(const OsPath &replayPath)
Definition: Game.cpp:178
void SetViewedPlayerID(player_id_t playerID)
Definition: Game.cpp:368
CSimulation2 * m_Simulation2
pointer to the CSimulation2 object operating on the game world.
Definition: Game.h:54
CGame * g_Game
Globally accessible pointer to the CGame object.
Definition: Game.cpp:62