OpenClonk
C4Game.h
Go to the documentation of this file.
1 /*
2  * OpenClonk, http://www.openclonk.org
3  *
4  * Copyright (c) 1998-2000, Matthes Bender
5  * Copyright (c) 2001-2009, RedWolf Design GmbH, http://www.clonk.de/
6  * Copyright (c) 2009-2016, The OpenClonk Team and contributors
7  *
8  * Distributed under the terms of the ISC license; see accompanying file
9  * "COPYING" for details.
10  *
11  * "Clonk" is a registered trademark of Matthes Bender, used with permission.
12  * See accompanying file "TRADEMARK" for details.
13  *
14  * To redistribute this file separately, substitute the full license texts
15  * for the above references.
16  */
17 
18 /* Main class to run the game */
19 
20 #ifndef INC_C4Game
21 #define INC_C4Game
22 
23 #include "c4group/C4Extra.h"
25 #include "gui/C4Scoreboard.h"
26 #include "landscape/C4PathFinder.h"
27 #include "landscape/C4Scenario.h"
29 
30 class C4ScriptGuiWindow;
31 
32 class C4Game
33 {
34 public:
35  // Initialization mode: Regular game start, section load or editor reload
36  enum InitMode
37  {
38  IM_Normal = 0,
40  IM_ReInit = 2
41  };
42 private:
43  // used as StdCompiler-parameter
44  struct CompileSettings
45  {
46  InitMode init_mode;
47  bool fPlayers;
48  bool fExact;
49  bool fSync;
50 
51  CompileSettings(InitMode init_mode, bool fPlayers, bool fExact, bool fSync)
52  : init_mode(init_mode), fPlayers(fPlayers), fExact(fExact), fSync(fSync) { }
53  };
54 
55  // struct of keyboard set and indexed control key
56  struct C4KeySetCtrl
57  {
58  int32_t iKeySet, iCtrl;
59 
60  C4KeySetCtrl(int32_t iKeySet, int32_t iCtrl) : iKeySet(iKeySet), iCtrl(iCtrl) {}
61  };
62 
63 public:
64  C4Game();
65  ~C4Game();
66 
68  class C4ScenarioParameters &StartupScenarioParameters; // parameters given on command line or during startup UI
69  C4ClientList &Clients; // Shortcut
70  C4TeamList &Teams; // Shortcut
82  C4Control &Input; // shortcut
83 
95  std::unique_ptr<C4Network2Stats> pNetworkStatistics; // may be nullptr if no statistics are recorded
97  std::unique_ptr<C4FileMonitor> pFileMonitor;
98  std::unique_ptr<C4GameSec1Timer> pSec1Timer;
99  C4Value &GlobalSoundModifier; // contains proplist for sound modifier to be applied to all new sounds played
100 
108  std::unique_ptr<C4Network2Reference> pJoinReference;
111  int32_t FPS,cFPS;
112  int32_t HaltCount;
113  bool InitialPlayersJoined; // true after the InitializeFinal callback has been made
114  bool GameOver;
115  bool EvaluateOnAbort; // set in Scenario.txt, copied here because of sections
116  bool Evaluated;
119  bool fLobby;
120  int32_t iLobbyTimeout;
121  bool fObserve;
124  bool Record;
128  bool fPreinited{false}; // set after PreInit has been called; unset by Clear and Default
129  int32_t FrameCounter;
131  bool TimeGo;
132  int32_t Time;
133  int32_t StartTime;
135  int32_t RandomSeed;
136  bool GameGo;
137  bool FullSpeed;
138  int32_t FrameSkip; bool DoSkipFrame;
139  bool fResortAnyObject; // if set, object list will be checked for unsorted objects next frame
140  bool IsRunning; // (NoSave) if set, the game is running; if not, just the startup message board is painted
141  bool PointersDenumerated; // (NoSave) set after object pointers have been denumerated
142  size_t StartupLogPos{0}, QuitLogPos{0}; // current log positions when game was last started and cleared
143  bool fQuitWithError{false}; // if set, game shut down irregularly
144  // Show errors and allow debug commands?
145  bool DebugMode;
146  // next mission to be played after this one
148  // debug settings
150 
151  // Init and execution
152  void Clear();
153  void Abort(bool fApproved = false); // hard-quit on Esc+Y (/J/O)
154  void Evaluate();
155  void ShowGameOverDlg();
156  bool DoKeyboardInput(C4KeyCode vk_code, C4KeyEventType event_type, bool alt, bool ctrl, bool shift, bool repeated, class C4GUI::Dialog *for_dialog = nullptr, bool fPlrCtrlOnly = false, int32_t strength = -1);
157  bool DoKeyboardInput(C4KeyCodeEx key, C4KeyEventType event_type, class C4GUI::Dialog *for_dialog = nullptr, bool fPlrCtrlOnly = false, int32_t strength = -1);
158  void DrawCrewOverheadText(C4TargetFacet &cgo, int32_t player_nr);
159  void FixRandom(uint64_t seed);
160  bool Init();
161  bool PreInit();
162  void SetScenarioFilename(const char*);
164  bool Execute();
165  C4Player *JoinPlayer(const char *filename, int32_t at_client, const char *at_client_name, C4PlayerInfo *info);
166  void OnPlayerJoinFinished();
167  bool DoGameOver();
168  bool CanQuickSave();
169  bool QuickSave(const char *filename, const char *title, bool force_save = false);
170  void SetInitProgress(float to_progress);
171  void OnResolutionChanged(unsigned int res_x, unsigned int res_y); // update anything that's dependent on screen resolution
173  void InitFullscreenComponents(bool is_running);
174  bool ToggleChat();
175  // Pause
176  bool TogglePause();
177  bool Pause();
178  bool Unpause();
179  bool IsPaused();
180  // Network
181  void Synchronize(bool save_player_files);
182  void SyncClearance();
183  // Editing
184  bool DropFile(const char *filename, float x, float y);
185  bool DropDef(C4ID id, float x, float y);
186  bool ReloadFile(const char *filepath);
187  bool ReloadDef(C4ID id);
188  bool ReloadParticle(const char *name);
189  // Object functions
190  void ClearPointers(C4Object *obj);
191  C4Object *CreateObject(C4PropList * type, C4Object *creator, int32_t owner = NO_OWNER,
192  int32_t x = 50, int32_t y = 50, int32_t r = 0, bool grow_from_center = false,
193  C4Real xdir = Fix0, C4Real ydir = Fix0, C4Real rdir = Fix0, int32_t controller = NO_OWNER);
194  C4Object *CreateObject(C4ID type, C4Object *creator, int32_t owner = NO_OWNER,
195  int32_t x = 50, int32_t y = 50, int32_t r = 0, bool grow_from_center = false,
196  C4Real xdir = Fix0, C4Real ydir = Fix0, C4Real rdir = Fix0, int32_t controller = NO_OWNER);
198  C4Object *creator,
199  int32_t owner,
200  int32_t center_x = 0, int32_t bottom_y = 0,
201  int32_t con = 1, bool adjust_terrain = false);
202  C4Object *CreateInfoObject(C4ObjectInfo *info, int32_t owner,
203  int32_t x = 50, int32_t y = 50);
204  C4Object *FindConstuctionSiteBlock(int32_t x, int32_t y, int32_t wdt, int32_t hgt);
205  C4Object *FindObject(C4Def * def,
206  int32_t x = 0, int32_t y = 0, int32_t wdt = 0, int32_t hgt = 0,
207  DWORD ocf = OCF_All,
208  C4Object *find_next = nullptr);
209  C4Object *FindVisObject( // find object in view at pos, regarding parallaxity and visibility (but not distance)
210  float x, float y, int32_t player_nr, const C4Facet &viewport_game, const C4Facet &viewport_gui,
211  float game_x, float game_y,
212  DWORD category,
213  float gui_x, float gui_y);
214  int32_t ObjectCount(C4ID id);
215  void CastObjects(C4ID id, C4Object *creator, int32_t num, int32_t level, int32_t x, int32_t y, int32_t owner = NO_OWNER, int32_t controller = NO_OWNER, C4ValueArray *out_objects = nullptr);
216  C4Object *PlaceVegetation(C4PropList *def, int32_t x, int32_t y, int32_t wdt, int32_t hgt, int32_t growth, C4PropList *shape_proplist, C4PropList * out_pos_proplist);
218  C4Value GRBroadcast(const char *function, C4AulParSet *pars = nullptr, bool pass_error = false, bool reject_test = false); // call function in scenario script and all goals/rules/environment objects
219 
220  bool LoadScenarioSection(const char *section_name, DWORD flags);
221  bool CreateSectionFromTempFile(const char *section_name, const char *temp_filename);
222 
223  bool DrawTextSpecImage(C4Facet& target, const char *spec, class C4DrawTransform* transform, uint32_t color = 0xff);
224  float GetTextSpecImageAspect(const char* spec);
225  bool DrawPropListSpecImage(C4Facet& target, C4PropList *spec);
226  bool SpeedUp();
227  bool SlowDown();
228  bool InitKeyboard(); // register main keyboard input functions
229  void UpdateLanguage();
231  bool InitPlayerControlUserSettings(); // merge player control default settings and config overloads into user setting
232  void SetDefaultGamma();
233 
234  std::unique_ptr<C4ScriptGuiWindow> ScriptGuiRoot;
235 protected:
236  void Default();
237  void InitInEarth();
238  void InitVegetation();
239  void InitAnimals();
240  void InitGoals();
241  void InitRules();
242  void InitValueOverloads();
243  void InitEnvironment();
244  void CloseScenario();
245  void DeleteObjects(bool delete_inactive);
246  void ExecObjects();
247  void Ticks();
248  bool CheckObjectEnumeration();
249  bool LoadScenarioComponents();
250 public:
251  bool LoadAdditionalSystemGroup(class C4Group &parent_group);
252  bool SaveGameTitle(C4Group &hGroup);
253 protected:
254  bool InitGame(C4Group &group, InitMode init_mode, bool load_sky, C4ValueNumbers *);
255  bool InitGameFinal(InitMode init_mode);
256  bool InitNetworkFromAddress(const char *address);
257  bool InitNetworkFromReferenceFile(const char *temp_filename);
258  bool InitNetworkFromReference(const C4Network2Reference &Reference);
259  bool InitNetworkHost();
260  bool InitControl();
261  bool InitScriptEngine();
262  bool LinkScriptEngine();
263  bool ReLinkScriptEngine();
264  bool InitPlayers(C4ValueNumbers *);
265  bool OpenScenario();
266  bool InitDefs();
267  bool InitMaterialTexture();
268  bool GameOverCheck();
269  bool PlaceInEarth(C4ID id);
270 public:
271  void CompileFunc(StdCompiler *compiler, CompileSettings settings, C4ValueNumbers *);
272  bool SaveData(C4Group &group, bool save_section, bool save_exact, bool save_sync, C4ValueNumbers *);
273 protected:
274  bool CompileRuntimeData(C4Group &group, InitMode init_mode, bool exact, bool sync, C4ValueNumbers *);
275 
276  // Object function internals
277  C4Object *NewObject( C4PropList *def, C4Object *creator,
278  int32_t owner, C4ObjectInfo *info,
279  int32_t x, int32_t y, int32_t r,
280  C4Real xdir, C4Real ydir, C4Real rdir,
281  int32_t con, int32_t controller, bool grow_from_center);
282  void ClearObjectPtrs(C4Object *to_obj);
283  void ObjectRemovalCheck();
284 
285  bool ToggleDebugMode(); // dbg modeon/off if allowed
286  bool ActivateMenu(const char *command); // exec given menu command for first local player
287 
288 public:
289  bool ToggleChart(); // chart dlg on/off
290  void SetGlobalSoundModifier(C4PropList *modifier_props);
291 
292  // Localized strings in editor props
293  C4String *GetTranslatedString(const class C4Value &input_string, C4Value *selected_language, bool fail_silently) const;
295 
296  static constexpr const char * DirectJoinFilePrefix = "file:";
297 };
298 
299 extern C4Game Game;
300 
301 // a global wrapper
302 inline StdStrBuf GetKeyboardInputName(const char *key_name, bool abbreviated = false, int32_t index = 0)
303 {
304  return Game.KeyboardInput.GetKeyCodeNameByKeyName(key_name, abbreviated, index);
305 }
306 
307 
308 #endif
const uint32_t OCF_All
Definition: C4Constants.h:78
const int NO_OWNER
Definition: C4Constants.h:137
C4Game Game
Definition: C4Globals.cpp:52
StdStrBuf GetKeyboardInputName(const char *key_name, bool abbreviated=false, int32_t index=0)
Definition: C4Game.h:302
const unsigned int C4MaxName
C4KeyEventType
unsigned long C4KeyCode
const C4Real Fix0
Definition: C4Real.h:312
#define _MAX_PATH_LEN
uint32_t DWORD
Definition: C4Def.h:99
Definition: C4Real.h:59
Definition: C4Game.h:33
bool FullSpeed
Definition: C4Game.h:137
C4RoundResults & RoundResults
Definition: C4Game.h:73
C4TeamList & Teams
Definition: C4Game.h:70
std::unique_ptr< C4Network2Stats > pNetworkStatistics
Definition: C4Game.h:95
C4Scenario C4S
Definition: C4Game.h:74
void Ticks()
Definition: C4Game.cpp:2017
StdStrBuf RecordStream
Definition: C4Game.h:126
void OnResolutionChanged(unsigned int res_x, unsigned int res_y)
Definition: C4Game.cpp:4228
C4TransferZones TransferZones
Definition: C4Game.h:85
StdStrBuf DebugPassword
Definition: C4Game.h:149
StdStrBuf TempScenarioFile
Definition: C4Game.h:127
bool InitScriptEngine()
Definition: C4Game.cpp:2988
C4Game()
Definition: C4Game.cpp:97
bool SlowDown()
Definition: C4Game.cpp:4745
bool LoadScenarioSection(const char *section_name, DWORD flags)
Definition: C4Game.cpp:4309
int32_t StartTime
Definition: C4Game.h:133
bool InitNetworkFromReference(const C4Network2Reference &Reference)
Definition: C4Game.cpp:3983
int32_t LastInitProgressShowTime
Definition: C4Game.h:134
C4ComponentHost Title
Definition: C4Game.h:77
int DebugWait
Definition: C4Game.h:149
char PlayerFilenames[20 *_MAX_PATH_LEN]
Definition: C4Game.h:104
bool EvaluateOnAbort
Definition: C4Game.h:115
void DrawCrewOverheadText(C4TargetFacet &cgo, int32_t player_nr)
Definition: C4Game.cpp:1897
bool Record
Definition: C4Game.h:124
C4ComponentHost Info
Definition: C4Game.h:76
C4KeyboardInput & KeyboardInput
Definition: C4Game.h:96
C4String * GetTranslatedString(const class C4Value &input_string, C4Value *selected_language, bool fail_silently) const
Definition: C4Game.cpp:4810
bool SpeedUp()
Definition: C4Game.cpp:4735
StdStrBuf DebugHost
Definition: C4Game.h:149
bool InitNetworkFromAddress(const char *address)
Definition: C4Game.cpp:3889
bool ToggleChat()
Definition: C4Game.cpp:4756
~C4Game()
Definition: C4Game.cpp:114
char DirectJoinAddress[_MAX_PATH_LEN]
Definition: C4Game.h:106
int32_t cFPS
Definition: C4Game.h:111
bool QuickSave(const char *filename, const char *title, bool force_save=false)
Definition: C4Game.cpp:2386
void CompileFunc(StdCompiler *compiler, CompileSettings settings, C4ValueNumbers *)
Definition: C4Game.cpp:2055
std::unique_ptr< C4FileMonitor > pFileMonitor
Definition: C4Game.h:97
bool HasScenario()
Definition: C4Game.h:163
void InitInEarth()
Definition: C4Game.cpp:3481
C4Object * PlaceVegetation(C4PropList *def, int32_t x, int32_t y, int32_t wdt, int32_t hgt, int32_t growth, C4PropList *shape_proplist, C4PropList *out_pos_proplist)
Definition: C4Game.cpp:3323
C4PathFinder PathFinder
Definition: C4Game.h:84
C4Player * JoinPlayer(const char *filename, int32_t at_client, const char *at_client_name, C4PlayerInfo *info)
Definition: C4Game.cpp:3758
C4ComponentHost GameText
Definition: C4Game.h:79
void UpdateLanguage()
Definition: C4Game.cpp:3719
bool IsRunning
Definition: C4Game.h:140
void FixRandom(uint64_t seed)
Definition: C4Game.cpp:3801
void Evaluate()
Definition: C4Game.cpp:1864
int32_t iTick3
Definition: C4Game.h:130
int32_t iTick255
Definition: C4Game.h:130
void SetScenarioFilename(const char *)
Definition: C4Game.cpp:660
void Clear()
Definition: C4Game.cpp:672
bool DrawPropListSpecImage(C4Facet &target, C4PropList *spec)
Definition: C4Game.cpp:4692
bool ReloadDef(C4ID id)
Definition: C4Game.cpp:2488
bool CompileRuntimeData(C4Group &group, InitMode init_mode, bool exact, bool sync, C4ValueNumbers *)
Definition: C4Game.cpp:2153
bool ToggleChart()
Definition: C4Game.cpp:4540
std::unique_ptr< C4ScriptGuiWindow > ScriptGuiRoot
Definition: C4Game.h:234
C4Object * NewObject(C4PropList *def, C4Object *creator, int32_t owner, C4ObjectInfo *info, int32_t x, int32_t y, int32_t r, C4Real xdir, C4Real ydir, C4Real rdir, int32_t con, int32_t controller, bool grow_from_center)
Definition: C4Game.cpp:1246
int32_t InitProgress
Definition: C4Game.h:134
bool InitPlayers(C4ValueNumbers *)
Definition: C4Game.cpp:3073
std::unique_ptr< C4GameSec1Timer > pSec1Timer
Definition: C4Game.h:98
C4ComponentHost Names
Definition: C4Game.h:78
bool TogglePause()
Definition: C4Game.cpp:1153
C4Object * FindObject(C4Def *def, int32_t x=0, int32_t y=0, int32_t wdt=0, int32_t hgt=0, DWORD ocf=OCF_All, C4Object *find_next=nullptr)
Definition: C4Game.cpp:1456
void SetInitProgress(float to_progress)
Definition: C4Game.cpp:4207
void ShowGameOverDlg()
Definition: C4Game.cpp:3831
void ClearPointers(C4Object *obj)
Definition: C4Game.cpp:1125
C4Value & GlobalSoundModifier
Definition: C4Game.h:99
void Abort(bool fApproved=false)
Definition: C4Game.cpp:4546
bool InitControl()
Definition: C4Game.cpp:3183
C4Object * FindVisObject(float x, float y, int32_t player_nr, const C4Facet &viewport_game, const C4Facet &viewport_gui, float game_x, float game_y, DWORD category, float gui_x, float gui_y)
Definition: C4Game.cpp:1536
void InitGoals()
Definition: C4Game.cpp:4193
class C4ScenarioParameterDefs & ScenarioParameterDefs
Definition: C4Game.h:75
float GetTextSpecImageAspect(const char *spec)
Definition: C4Game.cpp:4654
C4PlayerControlAssignmentSets PlayerControlDefaultAssignmentSets
Definition: C4Game.h:93
bool InitNetworkFromReferenceFile(const char *temp_filename)
Definition: C4Game.cpp:3962
void SyncClearance()
Definition: C4Game.cpp:3854
int32_t iTick2
Definition: C4Game.h:130
C4Object * PlaceAnimal(C4PropList *def)
Definition: C4Game.cpp:3446
bool fResortAnyObject
Definition: C4Game.h:139
C4Scoreboard Scoreboard
Definition: C4Game.h:94
C4Object * CreateInfoObject(C4ObjectInfo *info, int32_t owner, int32_t x=50, int32_t y=50)
Definition: C4Game.cpp:1351
bool PointersDenumerated
Definition: C4Game.h:141
int32_t LastInitProgress
Definition: C4Game.h:134
C4PropList * AllocateTranslatedString()
Definition: C4Game.cpp:4883
bool CreateSectionFromTempFile(const char *section_name, const char *temp_filename)
Definition: C4Game.cpp:4249
void InitFullscreenComponents(bool is_running)
Definition: C4Game.cpp:962
void InitEnvironment()
Definition: C4Game.cpp:4165
bool DoKeyboardInput(C4KeyCode vk_code, C4KeyEventType event_type, bool alt, bool ctrl, bool shift, bool repeated, class C4GUI::Dialog *for_dialog=nullptr, bool fPlrCtrlOnly=false, int32_t strength=-1)
Definition: C4Game.cpp:2288
StdCopyStrBuf NextMissionText
Definition: C4Game.h:147
void ClearObjectPtrs(C4Object *to_obj)
Definition: C4Game.cpp:1109
bool InitialPlayersJoined
Definition: C4Game.h:113
bool LinkScriptEngine()
Definition: C4Game.cpp:3035
bool Pause()
Definition: C4Game.cpp:1171
void OnPlayerJoinFinished()
Definition: C4Game.cpp:3791
class C4ScenarioObjectsScriptHost * pScenarioObjectsScript
Definition: C4Game.h:90
C4PlayerControlAssignmentSets PlayerControlUserAssignmentSets
Definition: C4Game.h:93
InitMode
Definition: C4Game.h:37
@ IM_Normal
Definition: C4Game.h:38
@ IM_Section
Definition: C4Game.h:39
@ IM_ReInit
Definition: C4Game.h:40
bool DoSkipFrame
Definition: C4Game.h:138
C4Object * FindConstuctionSiteBlock(int32_t x, int32_t y, int32_t wdt, int32_t hgt)
Definition: C4Game.cpp:1423
bool IsPaused()
Definition: C4Game.cpp:1235
bool ReloadFile(const char *filepath)
Definition: C4Game.cpp:2465
char ScenarioFilename[_MAX_PATH_LEN]
Definition: C4Game.h:102
bool fPreinited
Definition: C4Game.h:128
bool OpenScenario()
Definition: C4Game.cpp:177
void InitRules()
Definition: C4Game.cpp:4179
int32_t iLobbyTimeout
Definition: C4Game.h:120
int32_t RandomSeed
Definition: C4Game.h:135
StdCopyStrBuf NextMissionDesc
Definition: C4Game.h:147
size_t StartupLogPos
Definition: C4Game.h:142
bool Init()
Definition: C4Game.cpp:397
bool Evaluated
Definition: C4Game.h:116
char DirectJoinTempFilename[_MAX_PATH_LEN]
Definition: C4Game.h:107
C4ClientList & Clients
Definition: C4Game.h:69
bool DrawTextSpecImage(C4Facet &target, const char *spec, class C4DrawTransform *transform, uint32_t color=0xff)
Definition: C4Game.cpp:4626
C4PlayerInfoList & PlayerInfos
Definition: C4Game.h:71
C4ScenarioSection * pCurrentScenarioSection
Definition: C4Game.h:91
bool InitMaterialTexture()
Definition: C4Game.cpp:987
bool PlaceInEarth(C4ID id)
Definition: C4Game.cpp:3271
bool InitKeyboard()
Definition: C4Game.cpp:3625
static constexpr const char * DirectJoinFilePrefix
Definition: C4Game.h:296
size_t QuitLogPos
Definition: C4Game.h:142
C4Extra Extra
Definition: C4Game.h:89
int32_t iTick35
Definition: C4Game.h:130
bool DropFile(const char *filename, float x, float y)
Definition: C4Game.cpp:1722
class C4ScenarioParameters & StartupScenarioParameters
Definition: C4Game.h:68
C4PlayerInfoList & RestorePlayerInfos
Definition: C4Game.h:72
void OnKeyboardLayoutChanged()
Definition: C4Game.cpp:4242
int32_t ObjectCount(C4ID id)
Definition: C4Game.cpp:1609
int32_t FrameSkip
Definition: C4Game.h:138
C4Control & Input
Definition: C4Game.h:82
int32_t StartupPlayerCount
Definition: C4Game.h:109
int32_t FrameCounter
Definition: C4Game.h:129
void ExecObjects()
Definition: C4Game.cpp:1648
C4GameParameters & Parameters
Definition: C4Game.h:67
bool LoadAdditionalSystemGroup(class C4Group &parent_group)
Definition: C4Game.cpp:3577
int32_t iTick10
Definition: C4Game.h:130
bool InitDefs()
Definition: C4Game.cpp:120
std::unique_ptr< C4Network2Reference > pJoinReference
Definition: C4Game.h:108
bool NetworkActive
Definition: C4Game.h:123
bool GameOver
Definition: C4Game.h:114
StdStrBuf PlayerNames
Definition: C4Game.h:81
int32_t Time
Definition: C4Game.h:132
bool Unpause()
Definition: C4Game.cpp:1203
C4LangStringTable ScenarioLangStringTable
Definition: C4Game.h:80
bool GameOverDlgShown
Definition: C4Game.h:117
C4LangStringTable MainSysLangStringTable
Definition: C4Game.h:80
bool PreInit()
Definition: C4Game.cpp:333
int32_t StartupTeamCount
Definition: C4Game.h:110
void ObjectRemovalCheck()
Definition: C4Game.cpp:1636
bool CheckObjectEnumeration()
Definition: C4Game.cpp:4080
bool GameOverCheck()
Definition: C4Game.cpp:819
C4Group * pParentGroup
Definition: C4Game.h:88
bool CanQuickSave()
Definition: C4Game.cpp:2374
bool SaveData(C4Group &group, bool save_section, bool save_exact, bool save_sync, C4ValueNumbers *)
Definition: C4Game.cpp:2180
C4ScenarioSection * pScenarioSections
Definition: C4Game.h:91
bool LoadScenarioComponents()
Definition: C4Game.cpp:3539
void InitAnimals()
Definition: C4Game.cpp:3516
char CurrentScenarioSection[C4MaxName+1]
Definition: C4Game.h:101
StdCopyStrBuf ScenarioTitle
Definition: C4Game.h:103
void SetDefaultGamma()
Definition: C4Game.cpp:4780
bool GameGo
Definition: C4Game.h:136
void Synchronize(bool save_player_files)
Definition: C4Game.cpp:3859
bool ToggleDebugMode()
Definition: C4Game.cpp:4506
bool InitPlayerControlUserSettings()
Definition: C4Game.cpp:3748
bool Execute()
Definition: C4Game.cpp:868
bool InitGameFinal(InitMode init_mode)
Definition: C4Game.cpp:2917
int32_t FPS
Definition: C4Game.h:111
bool fScriptCreatedObjects
Definition: C4Game.h:118
C4Object * CreateObjectConstruction(C4PropList *type, C4Object *creator, int32_t owner, int32_t center_x=0, int32_t bottom_y=0, int32_t con=1, bool adjust_terrain=false)
Definition: C4Game.cpp:1373
void SetGlobalSoundModifier(C4PropList *modifier_props)
Definition: C4Game.cpp:4793
bool DebugMode
Definition: C4Game.h:145
bool DoGameOver()
Definition: C4Game.cpp:3806
C4PlayerControlDefs PlayerControlDefs
Definition: C4Game.h:92
bool DropDef(C4ID id, float x, float y)
Definition: C4Game.cpp:1746
bool fQuitWithError
Definition: C4Game.h:143
bool fObserve
Definition: C4Game.h:121
void Default()
Definition: C4Game.cpp:1804
void DeleteObjects(bool delete_inactive)
Definition: C4Game.cpp:1307
void InitVegetation()
Definition: C4Game.cpp:3497
bool InitNetworkHost()
Definition: C4Game.cpp:4017
bool fReferenceDefinitionOverride
Definition: C4Game.h:122
C4Value GRBroadcast(const char *function, C4AulParSet *pars=nullptr, bool pass_error=false, bool reject_test=false)
Definition: C4Game.cpp:4761
bool InitPlayerControlSettings()
Definition: C4Game.cpp:3725
int32_t HaltCount
Definition: C4Game.h:112
C4Object * CreateObject(C4PropList *type, C4Object *creator, int32_t owner=NO_OWNER, int32_t x=50, int32_t y=50, int32_t r=0, bool grow_from_center=false, C4Real xdir=Fix0, C4Real ydir=Fix0, C4Real rdir=Fix0, int32_t controller=NO_OWNER)
Definition: C4Game.cpp:1334
bool SaveGameTitle(C4Group &hGroup)
Definition: C4Game.cpp:2237
StdStrBuf RecordDumpFile
Definition: C4Game.h:125
void InitValueOverloads()
Definition: C4Game.cpp:4151
bool InitGame(C4Group &group, InitMode init_mode, bool load_sky, C4ValueNumbers *)
Definition: C4Game.cpp:2599
bool TimeGo
Definition: C4Game.h:131
C4GroupSet GroupSet
Definition: C4Game.h:87
C4Group ScenarioFile
Definition: C4Game.h:86
int32_t iTick1000
Definition: C4Game.h:130
char DefinitionFilenames[20 *_MAX_PATH_LEN]
Definition: C4Game.h:105
bool fLobby
Definition: C4Game.h:119
void CastObjects(C4ID id, C4Object *creator, int32_t num, int32_t level, int32_t x, int32_t y, int32_t owner=NO_OWNER, int32_t controller=NO_OWNER, C4ValueArray *out_objects=nullptr)
Definition: C4Game.cpp:1763
int32_t iTick5
Definition: C4Game.h:130
uint16_t DebugPort
Definition: C4Game.h:149
bool ReloadParticle(const char *name)
Definition: C4Game.cpp:2565
bool ActivateMenu(const char *command)
Definition: C4Game.cpp:4523
void CloseScenario()
Definition: C4Game.cpp:310
StdCopyStrBuf NextMission
Definition: C4Game.h:147
bool ReLinkScriptEngine()
Definition: C4Game.cpp:3060
Definition: C4Id.h:26
StdStrBuf GetKeyCodeNameByKeyName(const char *szKeyName, bool fShort=false, int32_t iIndex=0)
size_t getSize() const
Definition: StdBuf.h:444