43 static bool CanLoadGame(
const std::string &filename);
46 static void SaveGame(
const std::string &filename,
Game *game);
47 static bool DeleteSave(
const std::string &filename);
51 Game(
const SystemPath &path,
const double startDateTime,
const char *shipType =
"kanara");
116 float GetTimeStep()
const {
return s_timeAccelRates[m_timeAccel] * (1.0f / PHYSICS_HZ); }
134 void Init(
Game *game);
135 void LoadFromJson(
const Json &jsonObj,
Game *game);
144 View *m_spaceStationView =
nullptr;
145 View *m_infoView =
nullptr;
152 void LoadViewsFromJson(
const Json &jsonObj);
155 static void EmitPauseState(
bool paused);
157 void SwitchToHyperspace();
158 void SwitchToNormalSpace();
160 std::unique_ptr<Player> m_player;
163 std::unique_ptr<Views> m_gameViews;
164 std::unique_ptr<Space> m_space;
173 bool m_wantHyperspace;
175 std::list<HyperspaceCloud *> m_hyperspaceClouds;
178 double m_hyperspaceProgress;
179 double m_hyperspaceDuration;
180 double m_hyperspaceEndTime;
184 bool m_forceTimeAccel;
185 static const float s_timeAccelRates[];
186 static const float s_timeInvAccelRates[];
nlohmann::json Json
Definition: Json.h:8
Definition: DeathView.h:14
void ToJson(Json &jsonObj)
Definition: Game.cpp:214
TimeAccel GetTimeAccel() const
Definition: Game.h:109
TimeAccel GetRequestedTimeAccel() const
Definition: Game.h:110
void RequestTimeAccelInc(bool force=false)
Definition: Game.cpp:717
View * GetInfoView() const
Definition: Game.h:123
bool IsNormalSpace() const
Definition: Game.h:62
double GetHyperspaceEndTime() const
Definition: Game.h:83
SystemView * GetSystemView() const
Definition: Game.h:119
float GetInvTimeAccelRate() const
Definition: Game.h:114
double GetTime() const
Definition: Game.h:67
ObjectViewerView * GetObjectViewerView() const
void WantHyperspace()
Definition: Game.cpp:426
void SetTimeAccel(TimeAccel t)
Definition: Game.cpp:676
TimeAccel
Definition: Game.h:89
@ TIMEACCEL_1X
Definition: Game.h:91
@ TIMEACCEL_10X
Definition: Game.h:92
@ TIMEACCEL_HYPERSPACE
Definition: Game.h:96
@ TIMEACCEL_10000X
Definition: Game.h:95
@ TIMEACCEL_1000X
Definition: Game.h:94
@ TIMEACCEL_100X
Definition: Game.h:93
@ TIMEACCEL_PAUSED
Definition: Game.h:90
void RemoveHyperspaceCloud(HyperspaceCloud *)
Definition: Game.cpp:440
bool IsHyperspace() const
Definition: Game.h:63
static int CurrentSaveVersion()
Definition: Game.cpp:1004
SectorView * GetSectorView() const
Definition: Game.h:118
static Game * LoadGame(const std::string &filename)
Definition: Game.cpp:913
const SystemPath & GetHyperspaceDest() const
Definition: Game.h:85
static bool CanLoadGame(const std::string &filename)
Definition: Game.cpp:928
void RequestTimeAccel(TimeAccel t, bool force=false)
Definition: Game.cpp:711
float GetHyperspaceProgress() const
Definition: Game.h:81
double GetHyperspaceArrivalProbability() const
Definition: Game.cpp:432
static bool DeleteSave(const std::string &filename)
Definition: Game.cpp:943
bool UpdateTimeAccel()
Definition: Game.cpp:340
Player * GetPlayer() const
Definition: Game.h:68
WorldView * GetWorldView() const
Definition: Game.h:120
float GetTimeAccelRate() const
Definition: Game.h:113
double GetHyperspaceDuration() const
Definition: Game.h:82
const SystemPath & GetHyperspaceSource() const
Definition: Game.h:86
bool IsPaused() const
Definition: Game.h:111
View * GetSpaceStationView() const
Definition: Game.h:122
void TimeStep(float step)
Definition: Game.cpp:312
~Game()
Definition: Game.cpp:119
float GetTimeStep() const
Definition: Game.h:116
Space * GetSpace() const
Definition: Game.h:66
void RequestTimeAccelDec(bool force=false)
Definition: Game.cpp:739
DeathView * GetDeathView() const
Definition: Game.h:121
RefCountedPtr< Galaxy > GetGalaxy() const
Definition: Game.h:65
static void SaveGame(const std::string &filename, Game *game)
Definition: Game.cpp:954
static Json LoadGameToJson(const std::string &filename)
Definition: Game.cpp:899
GameLog * log
Definition: Game.h:128
Definition: Renderer.h:45
Definition: HyperspaceCloud.h:18
Definition: ObjectViewerView.h:13
Definition: RefCounted.h:36
Definition: SectorView.h:23
Definition: SystemPath.h:13
Definition: SystemView.h:164
Definition: WorldView.h:30
Definition: Background.h:14
InvalidGameStartLocation(const std::string &error_)
Definition: Game.h:27
std::string error
Definition: Game.h:26