World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Engine.h
См. документацию.
1 #pragma once
2 
3 #include <memory>
4 #include <string>
5 #include <float.h>
6 #include <climits>
7 #ifndef _WINDOWS
8 #include "Common/PlatformLinux.h"
9 #endif
10 
11 #include "Engine/AssetsManager.h"
12 #include "Engine/EngineConfig.h"
14 #include "Engine/ErrorHandling.h"
15 #include "Engine/Log.h"
16 #include "Engine/MM7.h"
17 #include "Engine/MapInfo.h"
18 #include "Engine/IocContainer.h"
19 #include "Engine/Strings.h"
20 #include "Engine/VectorTypes.h"
21 #include "Engine/mm7_data.h"
22 
24 
25 void Engine_DeinitializeAndTerminate(int exitCode);
26 
27 bool FileExists(const char *fname);
28 
29 
30 /* 320 */
31 enum GAME_STATE {
43 };
44 
45 /* 105 */
46 #pragma pack(push, 1)
50  float flt_18;
51 };
52 #pragma pack(pop)
53 
54 /* 108 */
55 #pragma pack(push, 1)
56 struct Game_stru0 {
57  int field_0;
58  unsigned __int8 *ptr_4;
59  int field_8;
60  int field_C;
61 };
62 #pragma pack(pop)
63 
64 /* 279 */
65 #pragma pack(push, 1)
66 // Game_stru1
68  float x;
69  float y;
70  float z;
71  float r;
72  float g;
73  float b;
74  float radius;
75 };
76 #pragma pack(pop)
77 
78 class Vis;
79 class LightmapBuilder;
80 class ParticleEngine;
81 class Mouse;
82 class Keyboard;
83 class ThreadWard;
84 class CShow;
85 class GammaController;
86 struct stru9;
87 struct stru10;
88 
91 
92 /* 104 */
93 #pragma pack(push, 1)
94 struct Engine {
95  public:
96  Engine();
97  virtual ~Engine();
98 
99  // void _44E904_gamma_saturation_adjust();
100  // bool InitializeGammaController();
101  inline bool Configure(std::shared_ptr<const EngineConfig> config) {
102  this->config = config;
103  return true;
104  }
105 
106  void Initialize();
107  bool PickMouse(float fPickDepth, unsigned int uMouseX, unsigned int uMouseY,
108  bool bOutline, struct Vis_SelectionFilter *sprite_filter,
109  struct Vis_SelectionFilter *face_filter);
110  bool PickKeyboard(bool bOutline, struct Vis_SelectionFilter *sprite_filter,
111  struct Vis_SelectionFilter *face_filter);
112  void OnGameViewportClick();
113  void OutlineSelection();
114  int _44EC23_saturate_face_odm(struct Polygon *a2, int *a3, signed int a4);
115  int _44ED0A_saturate_face_blv(struct BLVFace *a2, int *a3, signed int a4);
116  bool AlterGamma_BLV(struct BLVFace *pFace, unsigned int *pColor);
117  bool AlterGamma_ODM(struct ODMFace *pFace, unsigned int *pColor);
118  bool draw_debug_outlines();
119  bool _44EEA7();
120  bool _44F07B();
121  void PushStationaryLights(int a2);
122  // void PrepareBloodsplats();
123  void Deinitialize();
124  void DrawParticles();
125  void Draw();
126  void DrawGUI();
129  void _461103_load_level_sub();
130  void DropHeldItem();
131  bool MM7_Initialize(const std::string &mm7_path);
132 
133  inline bool IsUnderwater() const { return config->IsUnderwater(); }
134  inline bool CanSaturateFaces() const { return config->CanSaturateFaces(); } // this is for perception - move to party
135  inline bool AllowSnow() const { return config->allow_snow; }
136  inline void SetUnderwater(bool is_underwater) {
137  EngineConfigFactory engineConfigFactory;
138  auto new_config = engineConfigFactory.Clone(config);
139  new_config->SetUnderwater(is_underwater);
140 
141  this->config = new_config;
142  }
143  inline void SetSaturateFaces(bool saturate) {
144  EngineConfigFactory engineConfigFactory;
145  auto new_config = engineConfigFactory.Clone(config);
146  new_config->SetSaturateFaces(saturate);
147 
148  this->config = new_config;
149  }
150  inline void SetForceRedraw(bool redraw) {
151  EngineConfigFactory engineConfigFactory;
152  auto new_config = engineConfigFactory.Clone(config);
153  new_config->SetForceRedraw(redraw);
154 
155  this->config = new_config;
156  }
157  inline void SetTargetingMode(bool is_targeting) {
158  MutateConfig(
159  [is_targeting](std::shared_ptr<EngineConfig> &cfg) {
160  cfg->SetTargetingMode(is_targeting);
161  });
162  }
163  inline void SetDebugWizardEye(bool wizard_eye) {
164  MutateConfig(
165  [wizard_eye](std::shared_ptr<EngineConfig> &cfg) {
166  cfg->debug_wizard_eye = wizard_eye;
167  });
168  }
169  inline void SetDebugAllMagic(bool all_magic) {
170  MutateConfig(
171  [all_magic](std::shared_ptr<EngineConfig> &cfg) {
172  cfg->debug_all_magic = all_magic;
173  });
174  }
175  inline void SetDebugShowFps(bool show_fps) {
176  MutateConfig(
177  [show_fps](std::shared_ptr<EngineConfig> &cfg) {
178  cfg->show_fps = show_fps;
179  });
180  }
181  inline void SetDebugShowPickedFace(bool show_picked_face) {
182  MutateConfig(
183  [show_picked_face](std::shared_ptr<EngineConfig> &cfg) {
184  cfg->show_picked_face = show_picked_face;
185  });
186  }
187  inline void SetDebugPortalOutlines(bool portal_outlines) {
188  MutateConfig(
189  [portal_outlines](std::shared_ptr<EngineConfig> &cfg) {
190  cfg->debug_portal_outlines = portal_outlines;
191  });
192  }
193  inline void SetDebugTurboSpeed(bool turbo_speed) {
194  MutateConfig(
195  [turbo_speed](std::shared_ptr<EngineConfig> &cfg) {
196  cfg->debug_turbo_speed = turbo_speed;
197  });
198  }
199  inline void SetSeasonsChange(bool seasons_change) {
200  MutateConfig(
201  [seasons_change](std::shared_ptr<EngineConfig> &cfg) {
202  cfg->seasons_change = seasons_change;
203  });
204  }
205  inline void SetAllowSnow(bool allow_snow) {
206  MutateConfig(
207  [allow_snow](std::shared_ptr<EngineConfig> &cfg) {
208  cfg->allow_snow = allow_snow;
209  });
210  }
211  inline void SetExtendedDrawDistance(bool extended_draw_distance) {
212  MutateConfig(
213  [extended_draw_distance](std::shared_ptr<EngineConfig> &cfg) {
214  cfg->extended_draw_distance = extended_draw_distance;
215  });
216  }
217  inline void SetNoActors(bool no_actors) {
218  MutateConfig(
219  [no_actors](std::shared_ptr<EngineConfig> &cfg) {
220  cfg->no_actors = no_actors;
221  });
222  }
223  inline void SetAllowLightmaps(bool allow_lightmaps) {
224  MutateConfig(
225  [allow_lightmaps](std::shared_ptr<EngineConfig> &cfg) {
226  cfg->allow_lightmaps = allow_lightmaps;
227  });
228  }
229  inline void SetDebugLightmapsDecals(bool debug_lightmaps_decals) {
230  MutateConfig(
231  [debug_lightmaps_decals](std::shared_ptr<EngineConfig> &cfg) {
232  cfg->debug_lightmaps_decals = debug_lightmaps_decals;
233  });
234  }
235  inline void SetDebugTerrain(bool debug_terrain) {
236  MutateConfig(
237  [debug_terrain](std::shared_ptr<EngineConfig> &cfg) {
238  cfg->debug_terrain = debug_terrain;
239  });
240  }
241  inline void ToggleAlwaysRun() {
242  MutateConfig(
243  [](std::shared_ptr<EngineConfig> &cfg) {
244  cfg->ToggleAlwaysRun();
245  });
246  }
247  inline void ToggleFlipOnExit() {
248  MutateConfig(
249  [](std::shared_ptr<EngineConfig> &cfg) {
250  cfg->ToggleFlipOnExit();
251  });
252  }
253  inline void ToggleWalkSound() {
254  MutateConfig(
255  [](std::shared_ptr<EngineConfig> &cfg) {
256  cfg->ToggleWalkSound();
257  });
258  }
259  inline void ToggleShowDamage() {
260  MutateConfig(
261  [](std::shared_ptr<EngineConfig> &cfg) {
262  cfg->ToggleShowDamage();
263  });
264  }
265  inline void ToggleBloodsplats() {
266  MutateConfig(
267  [](std::shared_ptr<EngineConfig> &cfg) {
268  cfg->ToggleBloodsplats();
269  });
270  }
271 
272  inline void ToggleDebugTownPortal() {
273  MutateConfig(
274  [](std::shared_ptr<EngineConfig> &cfg) {
275  cfg->ToggleDebugTownPortal();
276  });
277  }
278 
279  inline void ToggleDebugWizardEye() {
280  MutateConfig(
281  [](std::shared_ptr<EngineConfig> &cfg) {
282  cfg->ToggleDebugWizardEye();
283  });
284  }
285 
286  inline void ToggleDebugAllMagic() {
287  MutateConfig(
288  [](std::shared_ptr<EngineConfig> &cfg) {
289  cfg->ToggleDebugAllMagic();
290  });
291  }
292 
293  inline void ToggleDebugTerrain() {
294  MutateConfig(
295  [](std::shared_ptr<EngineConfig> &cfg) {
296  cfg->ToggleDebugTerrain();
297  });
298  }
299 
300  inline void ToggleDebugLightmap() {
301  MutateConfig(
302  [](std::shared_ptr<EngineConfig> &cfg) {
303  cfg->ToggleDebugLightmap();
304  });
305  }
306 
307  inline void ToggleDebugTurboSpeed() {
308  MutateConfig(
309  [](std::shared_ptr<EngineConfig> &cfg) {
310  cfg->ToggleDebugTurboSpeed();
311  });
312  }
313 
314  inline void ToggleDebugNoActors() {
315  MutateConfig(
316  [](std::shared_ptr<EngineConfig> &cfg) {
317  cfg->ToggleDebugNoActors();
318  });
319  }
320 
321  inline void ToggleDebugDrawDist() {
322  MutateConfig(
323  [](std::shared_ptr<EngineConfig> &cfg) {
324  cfg->ToggleDebugDrawDist();
325  });
326  }
327 
328  inline void ToggleDebugSnow() {
329  MutateConfig(
330  [](std::shared_ptr<EngineConfig> &cfg) {
331  cfg->ToggleDebugSnow();
332  });
333  }
334 
335  inline void ToggleDebugNoDamage() {
336  MutateConfig(
337  [](std::shared_ptr<EngineConfig> &cfg) {
338  cfg->ToggleDebugNoDamage();
339  });
340  }
341 
342  inline void ToggleDebugPortalLines() {
343  MutateConfig(
344  [](std::shared_ptr<EngineConfig> &cfg) {
345  cfg->ToggleDebugPortalLines();
346  });
347  }
348 
349  inline void ToggleDebugPickedFace() {
350  MutateConfig(
351  [](std::shared_ptr<EngineConfig> &cfg) {
352  cfg->ToggleDebugPickedFace();
353  });
354  }
355 
356  inline void ToggleDebugShowFPS() {
357  MutateConfig(
358  [](std::shared_ptr<EngineConfig> &cfg) {
359  cfg->ToggleDebugShowFPS();
360  });
361  }
362 
363  inline void ToggleDebugSeasonsChange() {
364  MutateConfig(
365  [](std::shared_ptr<EngineConfig> &cfg) {
366  cfg->ToggleDebugSeasonsChange();
367  });
368  }
369 
370  inline void SetMusicLevel(int level) {
371  MutateConfig(
372  [level](std::shared_ptr<EngineConfig> &cfg) {
373  int lvl = level;
374  if (lvl < 0)
375  lvl = 0;
376  if (lvl > 9)
377  lvl = 9;
378 
379  cfg->music_level = lvl;
380  });
381  }
382  inline void SetSoundLevel(int level) {
383  MutateConfig(
384  [level](std::shared_ptr<EngineConfig> &cfg) {
385  int lvl = level;
386  if (lvl < 0)
387  lvl = 0;
388  if (lvl > 9)
389  lvl = 9;
390 
391  cfg->sound_level = lvl;
392  });
393  }
394  inline void SetVoiceLevel(int level) {
395  MutateConfig(
396  [level](std::shared_ptr<EngineConfig> &cfg) {
397  int lvl = level;
398  if (lvl < 0)
399  lvl = 0;
400  if (lvl > 9)
401  lvl = 9;
402 
403  cfg->voice_level = lvl;
404  });
405  }
406  inline void SetTurnSpeed(int turn_speed) {
407  MutateConfig(
408  [turn_speed](std::shared_ptr<EngineConfig> &cfg) {
409  cfg->turn_speed = turn_speed;
410  });
411  }
412  inline void MutateConfig(std::function<void(std::shared_ptr<EngineConfig> &)> mutator) {
413  EngineConfigFactory engineConfigFactory;
414  this->Configure(
415  engineConfigFactory.Mutate(config, mutator));
416  }
417 
418 
419  std::shared_ptr<const EngineConfig> config;
421  char field_2C0[1092];
422  unsigned int uNumStationaryLights;
439  // Mouse *pMouse;
442  char field_98C[1148];
444  // unsigned int __depricated1; // unsigned int bGammaControlInitialized;
445  float fSaturation;
446  // unsigned __int64 __depricated2; // unsigned __int64 uSomeGammaStartTime;
447  // unsigned __int64 __depricated3; // __int64 uSomeGammaDeltaTime;
448  // void ThreadWard *pThreadWardInstance;
449  // ParticleEngine *pParticleEngine;
450  // Mouse *pMouseInstance;
451  // LightmapBuilder *pLightmapBuilder;
452  // Vis *pVisInstance;
453  // struct SpellFxRenderer *spellfx;
454  // IndoorCameraD3D *pIndoorCameraD3D;
457  // void stru11 *pStru11Instance;
458  // void stru12 *pStru12Instance;
459  // void CShow *pCShow;
460  // Keyboard *pKeyboardInstance;
461  // GammaController *pGammaController;
462  // int field_E74;
463 
464  Log *log = nullptr;
469  Mouse *mouse = nullptr;
470  Keyboard *keyboard = nullptr;
472  Vis *vis = nullptr;
473 };
474 #pragma pack(pop)
475 
476 extern std::shared_ptr<Engine> engine;
477 
478 void CloseWindowBackground();
479 void back_to_game();
480 
482 void PrepareWorld(unsigned int _0_box_loading_1_fullscreen);
483 void DoPrepareWorld(unsigned int bLoading, int _1_fullscreen_loading_2_box);
484 
485 void FinalInitialization();
486 bool CheckMM7CD(char c);
487 
488 void MM6_Initialize();
489 void MM7Initialization();
490 
491 void PrepareToLoadODM(unsigned int bLoading, struct ODMRenderParams *a2);
493 void InitializeTurnBasedAnimations(void *);
494 unsigned int GetGravityStrength();
495 void GameUI_StatusBar_Update(bool force_hide = false);
496 
497 void sub_44861E_set_texture(unsigned int uFaceCog, const char *pFilename);
498 void sub_44892E_set_faces_bit(int sCogNumber, int bit, int on);
499 void SetDecorationSprite(uint16_t uCog, bool bHide,
500  const char *pFileName); // idb
502 void _493938_regenerate();
503 String GetReputationString(int reputation);
504 unsigned int _494820_training_time(unsigned int a1);
506 void OnMapLeave();
507 void OnMapLoad();
508 void Level_LoadEvtAndStr(const char *pLevelName);
509 void sub_4452BB();
511 void Transition_StopSound_Autosave(const char *pMapName,
512  MapStartPoint point); // sub_44987B idb
513 
514 void OnTimer(int);
515 void TeleportToNWCDungeon();
516 
517 void SetDataPath(const char *data_path);
518 std::string MakeDataPath(const char *file_rel_path);
519 
531 
538 
547 
558 
572 };
uint16_t
unsigned __int16 uint16_t
Definition: SDL_config.h:37
CHARACTER_ATTRIBUTE_LUCK
@ CHARACTER_ATTRIBUTE_LUCK
Definition: Engine.h:527
Game_Bloodsplat::b
float b
Definition: Engine.h:73
Game_stru0::field_0
int field_0
Definition: Engine.h:57
CHARACTER_ATTRIBUTE_SKILL_EARTH
@ CHARACTER_ATTRIBUTE_SKILL_EARTH
Definition: Engine.h:562
Vec3_float_
Definition: VectorTypes.h:74
Engine::ToggleDebugWizardEye
void ToggleDebugWizardEye()
Definition: Engine.h:279
_494820_training_time
unsigned int _494820_training_time(unsigned int a1)
Definition: Engine.cpp:2263
CHARACTER_ATTRIBUTE_RESIST_FIRE
@ CHARACTER_ATTRIBUTE_RESIST_FIRE
Definition: Engine.h:532
UpdateUserInput_and_MapSpecificStuff
void UpdateUserInput_and_MapSpecificStuff()
Definition: Engine.cpp:766
Engine::Configure
bool Configure(std::shared_ptr< const EngineConfig > config)
Definition: Engine.h:101
IocContainer.h
stru10
Definition: stru10.h:5
GAME_STATE_5
@ GAME_STATE_5
Definition: Engine.h:37
Engine::ToggleDebugPortalLines
void ToggleDebugPortalLines()
Definition: Engine.h:342
Engine_::EngineConfig
Definition: EngineConfig.h:35
Engine::SetMusicLevel
void SetMusicLevel(int level)
Definition: Engine.h:370
VectorTypes.h
Engine::ToggleDebugLightmap
void ToggleDebugLightmap()
Definition: Engine.h:300
MapStartPoint
MapStartPoint
Definition: MapInfo.h:27
Game__StationaryLight::flt_18
float flt_18
Definition: Engine.h:50
Engine::draw_debug_outlines
bool draw_debug_outlines()
Definition: Engine.cpp:500
Mouse
Definition: Mouse.h:279
FinalInitialization
void FinalInitialization()
Definition: Engine.cpp:852
CHARACTER_ATTRIBUTE_MANA
@ CHARACTER_ATTRIBUTE_MANA
Definition: Engine.h:529
CHARACTER_ATTRIBUTE_RESIST_SPIRIT
@ CHARACTER_ATTRIBUTE_RESIST_SPIRIT
Definition: Engine.h:557
CHARACTER_ATTRIBUTE_SKILL_AIR
@ CHARACTER_ATTRIBUTE_SKILL_AIR
Definition: Engine.h:560
Polygon
Definition: Polygon.h:14
Engine::Deinitialize
void Deinitialize()
Definition: Engine.cpp:478
Engine::field_96C
int field_96C
Definition: Engine.h:437
Engine::AlterGamma_BLV
bool AlterGamma_BLV(struct BLVFace *pFace, unsigned int *pColor)
Definition: Engine.cpp:459
Engine::ToggleDebugSeasonsChange
void ToggleDebugSeasonsChange()
Definition: Engine.h:363
Engine::keyboard
Keyboard * keyboard
Definition: Engine.h:470
sub_44892E_set_faces_bit
void sub_44892E_set_faces_bit(int sCogNumber, int bit, int on)
Definition: Engine.cpp:1558
GAME_STATE_FINAL_WINDOW
@ GAME_STATE_FINAL_WINDOW
Definition: Engine.h:41
Engine::SetSoundLevel
void SetSoundLevel(int level)
Definition: Engine.h:382
CHARACTER_ATTRIBUTE_SKILL_BOW
@ CHARACTER_ATTRIBUTE_SKILL_BOW
Definition: Engine.h:569
Engine::SetTargetingMode
void SetTargetingMode(bool is_targeting)
Definition: Engine.h:157
CHARACTER_ATTRIBUTE_ATTACK
@ CHARACTER_ATTRIBUTE_ATTACK
Definition: Engine.h:549
CHARACTER_ATTRIBUTE_SKILL_ARMSMASTER
@ CHARACTER_ATTRIBUTE_SKILL_ARMSMASTER
Definition: Engine.h:544
GAME_FINISHED
@ GAME_FINISHED
Definition: Engine.h:33
CHARACTER_ATTRIBUTE_SKILL_BODY
@ CHARACTER_ATTRIBUTE_SKILL_BODY
Definition: Engine.h:565
engine
std::shared_ptr< Engine > engine
Definition: Engine.cpp:130
level
GLint level
Definition: SDL_opengl.h:1572
Engine::AllowSnow
bool AllowSnow() const
Definition: Engine.h:135
Engine::field_968
int field_968
Definition: Engine.h:436
Game_Bloodsplat
Definition: Engine.h:67
Game_Bloodsplat::radius
float radius
Definition: Engine.h:74
SetDecorationSprite
void SetDecorationSprite(uint16_t uCog, bool bHide, const char *pFileName)
Definition: Engine.cpp:1590
Engine::SetDebugShowPickedFace
void SetDebugShowPickedFace(bool show_picked_face)
Definition: Engine.h:181
CHARACTER_ATTRIBUTE_LEVEL
@ CHARACTER_ATTRIBUTE_LEVEL
Definition: Engine.h:548
Engine::lightmap_builder
LightmapBuilder * lightmap_builder
Definition: Engine.h:468
GetReputationString
String GetReputationString(int reputation)
Definition: UIGame.cpp:2360
Engine::SetDebugPortalOutlines
void SetDebugPortalOutlines(bool portal_outlines)
Definition: Engine.h:187
Engine::ToggleDebugShowFPS
void ToggleDebugShowFPS()
Definition: Engine.h:356
GAME_STATE_LOADING_GAME
@ GAME_STATE_LOADING_GAME
Definition: Engine.h:35
CHARACTER_ATTRIBUTE_AC_BONUS
@ CHARACTER_ATTRIBUTE_AC_BONUS
Definition: Engine.h:530
Game_Bloodsplat::y
float y
Definition: Engine.h:69
CHARACTER_ATTRIBUTE_SKILL_LEARNING
@ CHARACTER_ATTRIBUTE_SKILL_LEARNING
Definition: Engine.h:571
CHARACTER_ATTRIBUTE_SKILL_SPIRIT
@ CHARACTER_ATTRIBUTE_SKILL_SPIRIT
Definition: Engine.h:563
Engine::ToggleDebugNoActors
void ToggleDebugNoActors()
Definition: Engine.h:314
EngineConfigFactory.h
CHARACTER_ATTRIBUTE_SKILL_WATER
@ CHARACTER_ATTRIBUTE_SKILL_WATER
Definition: Engine.h:561
_44100D_should_alter_right_panel
bool _44100D_should_alter_right_panel()
Definition: Engine.cpp:2454
Game_Bloodsplat::r
float r
Definition: Engine.h:71
Game_stru0::ptr_4
unsigned __int8 * ptr_4
Definition: Engine.h:58
Engine::SetAllowLightmaps
void SetAllowLightmaps(bool allow_lightmaps)
Definition: Engine.h:223
Game__StationaryLight::vPosition
Vec3_float_ vPosition
Definition: Engine.h:48
Engine::decal_builder
DecalBuilder * decal_builder
Definition: Engine.h:466
Log
Definition: Log.h:3
Engine::_44ED0A_saturate_face_blv
int _44ED0A_saturate_face_blv(struct BLVFace *a2, int *a3, signed int a4)
Definition: Engine.cpp:561
PrepareWorld
void PrepareWorld(unsigned int _0_box_loading_1_fullscreen)
Definition: Engine.cpp:781
Game__StationaryLight
Definition: Engine.h:47
Engine::ToggleDebugAllMagic
void ToggleDebugAllMagic()
Definition: Engine.h:286
CloseWindowBackground
void CloseWindowBackground()
Definition: Engine.cpp:761
Engine::field_93C
int field_93C
Definition: Engine.h:425
Game_Bloodsplat::g
float g
Definition: Engine.h:72
Engine::SetDebugTurboSpeed
void SetDebugTurboSpeed(bool turbo_speed)
Definition: Engine.h:193
AssetsManager.h
Engine::SetExtendedDrawDistance
void SetExtendedDrawDistance(bool extended_draw_distance)
Definition: Engine.h:211
Game_stru0::field_C
int field_C
Definition: Engine.h:60
Engine::field_938
int field_938
Definition: Engine.h:424
Engine::Engine
Engine()
Definition: Engine.cpp:610
CHARACTER_ATTRIBUTE_RESIST_WATER
@ CHARACTER_ATTRIBUTE_RESIST_WATER
Definition: Engine.h:534
GAME_STATE_GAME_QUITTING_TO_MAIN_MENU
@ GAME_STATE_GAME_QUITTING_TO_MAIN_MENU
Definition: Engine.h:39
CHARACTER_ATTRIBUTE_SKILL_SHIELD
@ CHARACTER_ATTRIBUTE_SKILL_SHIELD
Definition: Engine.h:570
CHARACTER_ATTRIBUTE_SKILL_FIRE
@ CHARACTER_ATTRIBUTE_SKILL_FIRE
Definition: Engine.h:559
Engine::field_964
int field_964
Definition: Engine.h:435
Engine::ToggleBloodsplats
void ToggleBloodsplats()
Definition: Engine.h:265
Engine::MM7_Initialize
bool MM7_Initialize(const std::string &mm7_path)
Definition: Engine.cpp:903
Engine::ToggleDebugTownPortal
void ToggleDebugTownPortal()
Definition: Engine.h:272
ParticleEngine
Definition: ParticleEngine.h:93
Engine::config
std::shared_ptr< const EngineConfig > config
Definition: Engine.h:419
Engine
Definition: Engine.h:94
CHARACTER_ATTRIBUTE_HEALTH
@ CHARACTER_ATTRIBUTE_HEALTH
Definition: Engine.h:528
GetGravityStrength
unsigned int GetGravityStrength()
Definition: Engine.cpp:1500
Engine::ToggleFlipOnExit
void ToggleFlipOnExit()
Definition: Engine.h:247
ODMRenderParams
Definition: IRender.h:55
GAME_STATE_A
@ GAME_STATE_A
Definition: Engine.h:42
Engine::field_2C0
char field_2C0[1092]
Definition: Engine.h:421
Engine::~Engine
virtual ~Engine()
Definition: Engine.cpp:644
Engine::SetDebugShowFps
void SetDebugShowFps(bool show_fps)
Definition: Engine.h:175
Engine::pStationaryLights
Game__StationaryLight pStationaryLights[25]
Definition: Engine.h:420
LightmapBuilder
Definition: LightmapBuilder.h:33
Engine::mouse
Mouse * mouse
Definition: Engine.h:469
Engine::field_950
int field_950
Definition: Engine.h:430
ErrorHandling.h
CHARACTER_ATTRIBUTE_SKILL_MONSTER_ID
@ CHARACTER_ATTRIBUTE_SKILL_MONSTER_ID
Definition: Engine.h:543
Engine::ToggleDebugPickedFace
void ToggleDebugPickedFace()
Definition: Engine.h:349
Engine::field_960
int field_960
Definition: Engine.h:434
Engine::_44F07B
bool _44F07B()
Definition: Keyboard.cpp:38
CHARACTER_ATTRIBUTE_SKILL_ITEM_ID
@ CHARACTER_ATTRIBUTE_SKILL_ITEM_ID
Definition: Engine.h:542
sub_4452BB
void sub_4452BB()
Definition: Engine.cpp:2445
Engine_::EngineConfigFactory
Definition: EngineConfigFactory.h:15
Vis
Definition: Vis.h:69
SetDataPath
void SetDataPath(const char *data_path)
Definition: Engine.cpp:124
sub_44861E_set_texture
void sub_44861E_set_texture(unsigned int uFaceCog, const char *pFilename)
Definition: Engine.cpp:1538
GameUI_StatusBar_Update
void GameUI_StatusBar_Update(bool force_hide=false)
Definition: Engine.cpp:1507
Engine::SetVoiceLevel
void SetVoiceLevel(int level)
Definition: Engine.h:394
Engine::ToggleDebugTerrain
void ToggleDebugTerrain()
Definition: Engine.h:293
Vis_SelectionFilter
Definition: Vis.h:12
Engine::field_954
int field_954
Definition: Engine.h:431
Engine::_44EEA7
bool _44EEA7()
Definition: Engine.cpp:399
Engine::bloodsplat_container
BloodsplatContainer * bloodsplat_container
Definition: Engine.h:465
Engine::log
Log * log
Definition: Engine.h:464
Engine::field_98C
char field_98C[1148]
Definition: Engine.h:442
EngineConfig.h
Engine::DrawParticles
void DrawParticles()
Definition: Engine.cpp:381
CHARACTER_ATTRIBUTE_SKILL_MIND
@ CHARACTER_ATTRIBUTE_SKILL_MIND
Definition: Engine.h:564
BLVFace
Definition: Indoor.h:424
CHARACTER_ATTRIBUTE_TYPE
CHARACTER_ATTRIBUTE_TYPE
Definition: Engine.h:520
Engine::field_948
int field_948
Definition: Engine.h:428
Engine::field_94C
int field_94C
Definition: Engine.h:429
Engine_::EngineConfigFactory::Clone
std::shared_ptr< EngineConfig > Clone(std::shared_ptr< const EngineConfig > other)
Definition: EngineConfigFactory.cpp:69
GAME_STATE_STARTING_NEW_GAME
@ GAME_STATE_STARTING_NEW_GAME
Definition: Engine.h:38
CHARACTER_ATTRIBUTE_RESIST_AIR
@ CHARACTER_ATTRIBUTE_RESIST_AIR
Definition: Engine.h:533
Engine::SetForceRedraw
void SetForceRedraw(bool redraw)
Definition: Engine.h:150
CHARACTER_ATTRIBUTE_SKILL_STEALING
@ CHARACTER_ATTRIBUTE_SKILL_STEALING
Definition: Engine.h:540
CHARACTER_ATTRIBUTE_WILLPOWER
@ CHARACTER_ATTRIBUTE_WILLPOWER
Definition: Engine.h:523
Engine::SetSeasonsChange
void SetSeasonsChange(bool seasons_change)
Definition: Engine.h:199
OnTimer
void OnTimer(int)
Definition: Engine.cpp:2479
Engine::PushStationaryLights
void PushStationaryLights(int a2)
Definition: Engine.cpp:386
Engine::uNumStationaryLights
unsigned int uNumStationaryLights
Definition: Engine.h:422
Level_LoadEvtAndStr
void Level_LoadEvtAndStr(const char *pLevelName)
Definition: Engine.cpp:2433
Engine::OutlineSelection
void OutlineSelection()
Definition: Engine.cpp:718
CHARACTER_ATTRIBUTE_SKILL_ALCHEMY
@ CHARACTER_ATTRIBUTE_SKILL_ALCHEMY
Definition: Engine.h:539
Engine::field_940
int field_940
Definition: Engine.h:426
Engine::SetDebugWizardEye
void SetDebugWizardEye(bool wizard_eye)
Definition: Engine.h:163
Engine::Draw
void Draw()
Definition: Engine.cpp:166
CHARACTER_ATTRIBUTE_RESIST_MIND
@ CHARACTER_ATTRIBUTE_RESIST_MIND
Definition: Engine.h:536
Engine::spell_fx_renedrer
SpellFxRenderer * spell_fx_renedrer
Definition: Engine.h:467
Engine::field_978
int field_978
Definition: Engine.h:440
FileExists
bool FileExists(const char *fname)
Definition: Engine.cpp:153
Game_Bloodsplat::x
float x
Definition: Engine.h:68
Engine::vis
Vis * vis
Definition: Engine.h:472
Engine::_44EC23_saturate_face_odm
int _44EC23_saturate_face_odm(struct Polygon *a2, int *a3, signed int a4)
Definition: Engine.cpp:509
GAME_STATE_PARTY_DIED
@ GAME_STATE_PARTY_DIED
Definition: Engine.h:40
CHARACTER_ATTRIBUTE_MELEE_DMG_MIN
@ CHARACTER_ATTRIBUTE_MELEE_DMG_MIN
Definition: Engine.h:551
Engine::SetDebugTerrain
void SetDebugTerrain(bool debug_terrain)
Definition: Engine.h:235
OnMapLoad
void OnMapLoad()
Definition: Engine.cpp:2327
Engine::field_958
int field_958
Definition: Engine.h:432
Engine::ToggleAlwaysRun
void ToggleAlwaysRun()
Definition: Engine.h:241
Engine::uNumStationaryLights_in_pStationaryLightsStack
int uNumStationaryLights_in_pStationaryLightsStack
Definition: Engine.h:443
CHARACTER_ATTRIBUTE_RANGED_DMG_MIN
@ CHARACTER_ATTRIBUTE_RANGED_DMG_MIN
Definition: Engine.h:555
Engine::ToggleDebugTurboSpeed
void ToggleDebugTurboSpeed()
Definition: Engine.h:307
Engine::ToggleDebugSnow
void ToggleDebugSnow()
Definition: Engine.h:328
GAME_STATE_PLAYING
@ GAME_STATE_PLAYING
Definition: Engine.h:32
Engine_DeinitializeAndTerminate
void Engine_DeinitializeAndTerminate(int exitCode)
Definition: Engine.cpp:157
Polygon.h
Engine::stru_97C
Game_stru0 stru_97C
Definition: Engine.h:441
Engine::DropHeldItem
void DropHeldItem()
Definition: Viewport.cpp:289
Game_stru0::field_8
int field_8
Definition: Engine.h:59
Engine::ToggleShowDamage
void ToggleShowDamage()
Definition: Engine.h:259
Engine::SetSaturateFaces
void SetSaturateFaces(bool saturate)
Definition: Engine.h:143
CHARACTER_ATTRIBUTE_ENDURANCE
@ CHARACTER_ATTRIBUTE_ENDURANCE
Definition: Engine.h:524
PrepareToLoadODM
void PrepareToLoadODM(unsigned int bLoading, struct ODMRenderParams *a2)
Definition: Engine.cpp:1319
Engine::IsUnderwater
bool IsUnderwater() const
Definition: Engine.h:133
GAME_STATE
GAME_STATE
Definition: Engine.h:31
MapInfo.h
Engine::SetDebugLightmapsDecals
void SetDebugLightmapsDecals(bool debug_lightmaps_decals)
Definition: Engine.h:229
BloodsplatContainer
Definition: DecalBuilder.h:50
CHARACTER_ATTRIBUTE_RANGED_DMG_BONUS
@ CHARACTER_ATTRIBUTE_RANGED_DMG_BONUS
Definition: Engine.h:554
GAME_STATE_CHANGE_LOCATION
@ GAME_STATE_CHANGE_LOCATION
Definition: Engine.h:34
Engine::ToggleDebugNoDamage
void ToggleDebugNoDamage()
Definition: Engine.h:335
SpellFxRenderer
Definition: SpellFxRenderer.h:97
Engine::ToggleWalkSound
void ToggleWalkSound()
Definition: Engine.h:253
stru9
Definition: stru9.h:35
Engine::particle_engine
ParticleEngine * particle_engine
Definition: Engine.h:471
Engine::AlterGamma_ODM
bool AlterGamma_ODM(struct ODMFace *pFace, unsigned int *pColor)
Definition: Engine.cpp:468
Transition_StopSound_Autosave
void Transition_StopSound_Autosave(const char *pMapName, MapStartPoint point)
Definition: Engine.cpp:2464
Engine::SetAllowSnow
void SetAllowSnow(bool allow_snow)
Definition: Engine.h:205
Engine::pStru10Instance
stru10 * pStru10Instance
Definition: Engine.h:456
CHARACTER_ATTRIBUTE_ACCURACY
@ CHARACTER_ATTRIBUTE_ACCURACY
Definition: Engine.h:525
Engine::Initialize
void Initialize()
Definition: Engine.cpp:1209
Engine::PickKeyboard
bool PickKeyboard(bool bOutline, struct Vis_SelectionFilter *sprite_filter, struct Vis_SelectionFilter *face_filter)
Definition: Engine.cpp:691
c
const GLubyte * c
Definition: SDL_opengl_glext.h:11096
Engine::_461103_load_level_sub
void _461103_load_level_sub()
Definition: Engine.cpp:1365
Game_stru0
Definition: Engine.h:56
CheckMM7CD
bool CheckMM7CD(char c)
ODMFace
Definition: BSPModel.h:93
_494035_timed_effects__water_walking_damage__etc
void _494035_timed_effects__water_walking_damage__etc()
Definition: Engine.cpp:1623
Engine::fSaturation
float fSaturation
Definition: Engine.h:445
Engine::field_944
int field_944
Definition: Engine.h:427
GAME_STATE_NEWGAME_OUT_GAMEMENU
@ GAME_STATE_NEWGAME_OUT_GAMEMENU
Definition: Engine.h:36
Game_Bloodsplat::z
float z
Definition: Engine.h:70
_493938_regenerate
void _493938_regenerate()
Definition: Engine.cpp:1929
MakeDataPath
std::string MakeDataPath(const char *file_rel_path)
Definition: Engine.cpp:126
Engine::OnGameViewportClick
void OnGameViewportClick()
Definition: Viewport.cpp:315
Engine::CanSaturateFaces
bool CanSaturateFaces() const
Definition: Engine.h:134
OnMapLeave
void OnMapLeave()
Definition: Engine.cpp:2312
CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS
@ CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS
Definition: Engine.h:550
mm7_data.h
PlatformLinux.h
CHARACTER_ATTRIBUTE_SKILL_LIGHT
@ CHARACTER_ATTRIBUTE_SKILL_LIGHT
Definition: Engine.h:566
MM7Initialization
void MM7Initialization()
Definition: Engine.cpp:1287
Engine::SetDebugAllMagic
void SetDebugAllMagic(bool all_magic)
Definition: Engine.h:169
CHARACTER_ATTRIBUTE_SPEED
@ CHARACTER_ATTRIBUTE_SPEED
Definition: Engine.h:526
MM6_Initialize
void MM6_Initialize()
Definition: Engine.cpp:1228
CHARACTER_ATTRIBUTE_RANGED_DMG_MAX
@ CHARACTER_ATTRIBUTE_RANGED_DMG_MAX
Definition: Engine.h:556
Engine::pBloodsplats
Game_Bloodsplat pBloodsplats[20]
Definition: Engine.h:423
string
GLsizei const GLchar *const * string
Definition: SDL_opengl_glext.h:691
Engine::SetTurnSpeed
void SetTurnSpeed(int turn_speed)
Definition: Engine.h:406
Engine::ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows
void ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows()
Definition: Engine.cpp:1342
Engine::MutateConfig
void MutateConfig(std::function< void(std::shared_ptr< EngineConfig > &)> mutator)
Definition: Engine.h:412
InitializeTurnBasedAnimations
void InitializeTurnBasedAnimations(void *)
Definition: Engine.cpp:1479
CHARACTER_ATTRIBUTE_RANGED_ATTACK
@ CHARACTER_ATTRIBUTE_RANGED_ATTACK
Definition: Engine.h:553
Engine::field_95C
int field_95C
Definition: Engine.h:433
CHARACTER_ATTRIBUTE_SKILL_DODGE
@ CHARACTER_ATTRIBUTE_SKILL_DODGE
Definition: Engine.h:545
Engine::DrawGUI
void DrawGUI()
Definition: Engine.cpp:252
Engine::field_970
int field_970
Definition: Engine.h:438
Engine::pStru9Instance
stru9 * pStru9Instance
Definition: Engine.h:455
TeleportToNWCDungeon
void TeleportToNWCDungeon()
Definition: Engine.cpp:2524
DoPrepareWorld
void DoPrepareWorld(unsigned int bLoading, int _1_fullscreen_loading_2_box)
Definition: Engine.cpp:796
Engine::SetNoActors
void SetNoActors(bool no_actors)
Definition: Engine.h:217
CHARACTER_ATTRIBUTE_SKILL_UNARMED
@ CHARACTER_ATTRIBUTE_SKILL_UNARMED
Definition: Engine.h:546
String
std::string String
Definition: Strings.h:10
CHARACTER_ATTRIBUTE_STRENGTH
@ CHARACTER_ATTRIBUTE_STRENGTH
Definition: Engine.h:521
ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows
void ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows()
Log.h
CHARACTER_ATTRIBUTE_RESIST_BODY
@ CHARACTER_ATTRIBUTE_RESIST_BODY
Definition: Engine.h:537
config
EGLConfig config
Definition: SDL_egl.h:1149
CHARACTER_ATTRIBUTE_SKILL_MEDITATION
@ CHARACTER_ATTRIBUTE_SKILL_MEDITATION
Definition: Engine.h:568
CHARACTER_ATTRIBUTE_INTELLIGENCE
@ CHARACTER_ATTRIBUTE_INTELLIGENCE
Definition: Engine.h:522
Engine_::EngineConfigFactory::Mutate
std::shared_ptr< EngineConfig > Mutate(std::shared_ptr< const EngineConfig > config, std::function< void(std::shared_ptr< EngineConfig > &)> mutator)
Definition: EngineConfigFactory.cpp:73
Engine::SetUnderwater
void SetUnderwater(bool is_underwater)
Definition: Engine.h:136
Keyboard
Definition: Keyboard.h:76
LoadLevel_InitializeLevelStr
void LoadLevel_InitializeLevelStr()
Definition: Engine.cpp:2272
CHARACTER_ATTRIBUTE_MELEE_DMG_MAX
@ CHARACTER_ATTRIBUTE_MELEE_DMG_MAX
Definition: Engine.h:552
Engine::SecondaryInitialization
void SecondaryInitialization()
Definition: Engine.cpp:1082
back_to_game
void back_to_game()
Definition: Engine.cpp:1609
Engine::PickMouse
bool PickMouse(float fPickDepth, unsigned int uMouseX, unsigned int uMouseY, bool bOutline, struct Vis_SelectionFilter *sprite_filter, struct Vis_SelectionFilter *face_filter)
Definition: Engine.cpp:662
DecalBuilder
Definition: DecalBuilder.h:123
CHARACTER_ATTRIBUTE_SKILL_DARK
@ CHARACTER_ATTRIBUTE_SKILL_DARK
Definition: Engine.h:567
Engine::ToggleDebugDrawDist
void ToggleDebugDrawDist()
Definition: Engine.h:321
Game__StationaryLight::vRGBColor
Vec3_float_ vRGBColor
Definition: Engine.h:49
Strings.h
CHARACTER_ATTRIBUTE_SKILL_TRAP_DISARM
@ CHARACTER_ATTRIBUTE_SKILL_TRAP_DISARM
Definition: Engine.h:541
MM7.h
CHARACTER_ATTRIBUTE_RESIST_EARTH
@ CHARACTER_ATTRIBUTE_RESIST_EARTH
Definition: Engine.h:535