World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Файл Engine.h

См. исходные тексты.

Классы

struct  Game__StationaryLight
 
struct  Game_stru0
 
struct  Game_Bloodsplat
 
struct  Engine
 

Перечисления

enum  GAME_STATE {
  GAME_STATE_PLAYING = 0, GAME_FINISHED = 1, GAME_STATE_CHANGE_LOCATION = 2, GAME_STATE_LOADING_GAME = 3,
  GAME_STATE_NEWGAME_OUT_GAMEMENU = 4, GAME_STATE_5 = 5, GAME_STATE_STARTING_NEW_GAME = 6, GAME_STATE_GAME_QUITTING_TO_MAIN_MENU = 7,
  GAME_STATE_PARTY_DIED = 8, GAME_STATE_FINAL_WINDOW = 9, GAME_STATE_A = 10
}
 
enum  CHARACTER_ATTRIBUTE_TYPE {
  CHARACTER_ATTRIBUTE_STRENGTH = 0, CHARACTER_ATTRIBUTE_INTELLIGENCE = 1, CHARACTER_ATTRIBUTE_WILLPOWER = 2, CHARACTER_ATTRIBUTE_ENDURANCE = 3,
  CHARACTER_ATTRIBUTE_ACCURACY = 4, CHARACTER_ATTRIBUTE_SPEED = 5, CHARACTER_ATTRIBUTE_LUCK = 6, CHARACTER_ATTRIBUTE_HEALTH = 7,
  CHARACTER_ATTRIBUTE_MANA = 8, CHARACTER_ATTRIBUTE_AC_BONUS = 9, CHARACTER_ATTRIBUTE_RESIST_FIRE = 10, CHARACTER_ATTRIBUTE_RESIST_AIR = 11,
  CHARACTER_ATTRIBUTE_RESIST_WATER = 12, CHARACTER_ATTRIBUTE_RESIST_EARTH = 13, CHARACTER_ATTRIBUTE_RESIST_MIND = 14, CHARACTER_ATTRIBUTE_RESIST_BODY = 15,
  CHARACTER_ATTRIBUTE_SKILL_ALCHEMY = 16, CHARACTER_ATTRIBUTE_SKILL_STEALING = 17, CHARACTER_ATTRIBUTE_SKILL_TRAP_DISARM = 18, CHARACTER_ATTRIBUTE_SKILL_ITEM_ID = 19,
  CHARACTER_ATTRIBUTE_SKILL_MONSTER_ID = 20, CHARACTER_ATTRIBUTE_SKILL_ARMSMASTER = 21, CHARACTER_ATTRIBUTE_SKILL_DODGE = 22, CHARACTER_ATTRIBUTE_SKILL_UNARMED = 23,
  CHARACTER_ATTRIBUTE_LEVEL = 24, CHARACTER_ATTRIBUTE_ATTACK = 25, CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS = 26, CHARACTER_ATTRIBUTE_MELEE_DMG_MIN = 27,
  CHARACTER_ATTRIBUTE_MELEE_DMG_MAX = 28, CHARACTER_ATTRIBUTE_RANGED_ATTACK = 29, CHARACTER_ATTRIBUTE_RANGED_DMG_BONUS = 30, CHARACTER_ATTRIBUTE_RANGED_DMG_MIN = 31,
  CHARACTER_ATTRIBUTE_RANGED_DMG_MAX = 32, CHARACTER_ATTRIBUTE_RESIST_SPIRIT = 33, CHARACTER_ATTRIBUTE_SKILL_FIRE = 34, CHARACTER_ATTRIBUTE_SKILL_AIR = 35,
  CHARACTER_ATTRIBUTE_SKILL_WATER = 36, CHARACTER_ATTRIBUTE_SKILL_EARTH = 37, CHARACTER_ATTRIBUTE_SKILL_SPIRIT = 38, CHARACTER_ATTRIBUTE_SKILL_MIND = 39,
  CHARACTER_ATTRIBUTE_SKILL_BODY = 40, CHARACTER_ATTRIBUTE_SKILL_LIGHT = 41, CHARACTER_ATTRIBUTE_SKILL_DARK = 42, CHARACTER_ATTRIBUTE_SKILL_MEDITATION = 43,
  CHARACTER_ATTRIBUTE_SKILL_BOW = 44, CHARACTER_ATTRIBUTE_SKILL_SHIELD = 45, CHARACTER_ATTRIBUTE_SKILL_LEARNING = 46
}
 

Функции

void Engine_DeinitializeAndTerminate (int exitCode)
 
bool FileExists (const char *fname)
 
void CloseWindowBackground ()
 
void back_to_game ()
 
void UpdateUserInput_and_MapSpecificStuff ()
 
void PrepareWorld (unsigned int _0_box_loading_1_fullscreen)
 
void DoPrepareWorld (unsigned int bLoading, int _1_fullscreen_loading_2_box)
 
void FinalInitialization ()
 
bool CheckMM7CD (char c)
 
void MM6_Initialize ()
 
void MM7Initialization ()
 
void PrepareToLoadODM (unsigned int bLoading, struct ODMRenderParams *a2)
 
void ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows ()
 
void InitializeTurnBasedAnimations (void *)
 
unsigned int GetGravityStrength ()
 
void GameUI_StatusBar_Update (bool force_hide=false)
 
void sub_44861E_set_texture (unsigned int uFaceCog, const char *pFilename)
 
void sub_44892E_set_faces_bit (int sCogNumber, int bit, int on)
 
void SetDecorationSprite (uint16_t uCog, bool bHide, const char *pFileName)
 
void _494035_timed_effects__water_walking_damage__etc ()
 
void _493938_regenerate ()
 
String GetReputationString (int reputation)
 
unsigned int _494820_training_time (unsigned int a1)
 
void LoadLevel_InitializeLevelStr ()
 
void OnMapLeave ()
 
void OnMapLoad ()
 
void Level_LoadEvtAndStr (const char *pLevelName)
 
void sub_4452BB ()
 
bool _44100D_should_alter_right_panel ()
 
void Transition_StopSound_Autosave (const char *pMapName, MapStartPoint point)
 
void OnTimer (int)
 
void TeleportToNWCDungeon ()
 
void SetDataPath (const char *data_path)
 
std::string MakeDataPath (const char *file_rel_path)
 

Переменные

std::shared_ptr< Engineengine
 

Перечисления

◆ GAME_STATE

enum GAME_STATE
Элементы перечислений
GAME_STATE_PLAYING 
GAME_FINISHED 
GAME_STATE_CHANGE_LOCATION 
GAME_STATE_LOADING_GAME 
GAME_STATE_NEWGAME_OUT_GAMEMENU 
GAME_STATE_5 
GAME_STATE_STARTING_NEW_GAME 
GAME_STATE_GAME_QUITTING_TO_MAIN_MENU 
GAME_STATE_PARTY_DIED 
GAME_STATE_FINAL_WINDOW 
GAME_STATE_A 

См. определение в файле Engine.h строка 31

◆ CHARACTER_ATTRIBUTE_TYPE

Элементы перечислений
CHARACTER_ATTRIBUTE_STRENGTH 
CHARACTER_ATTRIBUTE_INTELLIGENCE 
CHARACTER_ATTRIBUTE_WILLPOWER 
CHARACTER_ATTRIBUTE_ENDURANCE 
CHARACTER_ATTRIBUTE_ACCURACY 
CHARACTER_ATTRIBUTE_SPEED 
CHARACTER_ATTRIBUTE_LUCK 
CHARACTER_ATTRIBUTE_HEALTH 
CHARACTER_ATTRIBUTE_MANA 
CHARACTER_ATTRIBUTE_AC_BONUS 
CHARACTER_ATTRIBUTE_RESIST_FIRE 
CHARACTER_ATTRIBUTE_RESIST_AIR 
CHARACTER_ATTRIBUTE_RESIST_WATER 
CHARACTER_ATTRIBUTE_RESIST_EARTH 
CHARACTER_ATTRIBUTE_RESIST_MIND 
CHARACTER_ATTRIBUTE_RESIST_BODY 
CHARACTER_ATTRIBUTE_SKILL_ALCHEMY 
CHARACTER_ATTRIBUTE_SKILL_STEALING 
CHARACTER_ATTRIBUTE_SKILL_TRAP_DISARM 
CHARACTER_ATTRIBUTE_SKILL_ITEM_ID 
CHARACTER_ATTRIBUTE_SKILL_MONSTER_ID 
CHARACTER_ATTRIBUTE_SKILL_ARMSMASTER 
CHARACTER_ATTRIBUTE_SKILL_DODGE 
CHARACTER_ATTRIBUTE_SKILL_UNARMED 
CHARACTER_ATTRIBUTE_LEVEL 
CHARACTER_ATTRIBUTE_ATTACK 
CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS 
CHARACTER_ATTRIBUTE_MELEE_DMG_MIN 
CHARACTER_ATTRIBUTE_MELEE_DMG_MAX 
CHARACTER_ATTRIBUTE_RANGED_ATTACK 
CHARACTER_ATTRIBUTE_RANGED_DMG_BONUS 
CHARACTER_ATTRIBUTE_RANGED_DMG_MIN 
CHARACTER_ATTRIBUTE_RANGED_DMG_MAX 
CHARACTER_ATTRIBUTE_RESIST_SPIRIT 
CHARACTER_ATTRIBUTE_SKILL_FIRE 
CHARACTER_ATTRIBUTE_SKILL_AIR 
CHARACTER_ATTRIBUTE_SKILL_WATER 
CHARACTER_ATTRIBUTE_SKILL_EARTH 
CHARACTER_ATTRIBUTE_SKILL_SPIRIT 
CHARACTER_ATTRIBUTE_SKILL_MIND 
CHARACTER_ATTRIBUTE_SKILL_BODY 
CHARACTER_ATTRIBUTE_SKILL_LIGHT 
CHARACTER_ATTRIBUTE_SKILL_DARK 
CHARACTER_ATTRIBUTE_SKILL_MEDITATION 
CHARACTER_ATTRIBUTE_SKILL_BOW 
CHARACTER_ATTRIBUTE_SKILL_SHIELD 
CHARACTER_ATTRIBUTE_SKILL_LEARNING 

См. определение в файле Engine.h строка 520

520  {
531 
538 
547 
558 
572 };

Функции

◆ Engine_DeinitializeAndTerminate()

void Engine_DeinitializeAndTerminate ( int  exitCode)

См. определение в файле Engine.cpp строка 157

157  {
158  engine->ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows();
159  engine->Deinitialize();
160  render->Release();
161  delete window;
162  exit(exitCode);
163 }

Перекрестные ссылки engine и render.

Используется в LightmapBuilder::ApplyLights(), Sdl2Window::MessageProc(), Engine::OutlineSelection(), WinApiWindow::PeekMessageLoop(), WinApiWindow::PeekSingleMessage() и SpawnEncounter().

+ Граф вызова функции:

◆ FileExists()

bool FileExists ( const char *  fname)

См. определение в файле Engine.cpp строка 153

153  {
154  return access(fname, 0) != -1;
155 }

Используется в AudioPlayer::MusicPlayTrack().

+ Граф вызова функции:

◆ CloseWindowBackground()

void CloseWindowBackground ( )

См. определение в файле Engine.cpp строка 761

761  {
763 }

Перекрестные ссылки pAudioPlayer, AudioPlayer::PlaySound() и SOUND_StartMainChoice02.

Используется в Application::Game::EventLoop().

+ Граф вызовов:
+ Граф вызова функции:

◆ back_to_game()

void back_to_game ( )

См. определение в файле Engine.cpp строка 1609

Перекрестные ссылки ViewingParams::bRedrawGameUI, current_screen_type, dword_4E455C, dword_507BF0_is_there_popup_onscreen, free_book_subwindow(), no_rightlick_in_inventory, pEventTimer, pGUIWindow_CastTargetedSpell, pGUIWindow_ScrollWindow, Timer::Resume(), SCREEN_GAME и viewparams.

Используется в CastSpellInfoHelpers::Cancel_Spell_Cast_In_Progress(), Application::Game::CloseTargetedSpellWindow(), Application::Game::EventLoop(), Application::GameWindowHandler::OnMouseLeftUp(), Application::GameWindowHandler::OnMouseRightUp() и UI_OnMouseRightClick().

+ Граф вызовов:
+ Граф вызова функции:

◆ UpdateUserInput_and_MapSpecificStuff()

void UpdateUserInput_and_MapSpecificStuff ( )

См. определение в файле Engine.cpp строка 766

766  {
767  if (dword_6BE364_game_settings_1 & GAME_SETTINGS_0080_SKIP_USER_INPUT_THIS_FRAME) {
768  dword_6BE364_game_settings_1 &= ~GAME_SETTINGS_0080_SKIP_USER_INPUT_THIS_FRAME;
769  return;
770  }
771 
776 
778 }

Перекрестные ссылки area_of_effect__damage_evaluate(), BLV_UpdateUserInputAndOther(), dword_6BE364_game_settings_1, LEVEL_Indoor, LEVEL_Outdoor, ODM_UpdateUserInputAndOther() и uCurrentlyLoadedLevelType.

Используется в Application::Game::GameLoop().

+ Граф вызовов:
+ Граф вызова функции:

◆ PrepareWorld()

void PrepareWorld ( unsigned int  _0_box_loading_1_fullscreen)

См. определение в файле Engine.cpp строка 781

781  {
782  Vis *vis = EngineIoc::ResolveVis();
783  vis->_4C1A02();
784 
785  pEventTimer->Pause();
786  pMiscTimer->Pause();
787  pParty->uFlags = 2;
789  engine->ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows();
790  DoPrepareWorld(0, (_0_box_loading_1_fullscreen == 0) + 1);
791  pMiscTimer->Resume();
792  pEventTimer->Resume();
793 }

Перекрестные ссылки Vis::_4C1A02(), CastSpellInfoHelpers::Cancel_Spell_Cast_In_Progress(), DoPrepareWorld(), engine, Timer::Pause(), pEventTimer, pMiscTimer, pParty, Engine_::IocContainer::ResolveVis(), Timer::Resume() и Party::uFlags.

Используется в Application::Game::GameLoop().

+ Граф вызовов:
+ Граф вызова функции:

◆ DoPrepareWorld()

void DoPrepareWorld ( unsigned int  bLoading,
int  _1_fullscreen_loading_2_box 
)

См. определение в файле Engine.cpp строка 796

796  {
797  char *v3; // eax@1
798  unsigned int v5; // eax@3
799 
800  // v9 = bLoading;
801  engine->ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows();
802  pGameLoadingUI_ProgressBar->Initialize(_1_fullscreen_loading_2_box == 1
805  char Str1[20]; // [sp+Ch] [bp-18h]@1
806  strcpy(Str1, pCurrentMapName.c_str());
807  v3 = strtok(Str1, ".");
808  strcpy(Str1, v3);
809  Level_LoadEvtAndStr(Str1);
811  strcpy(Str1, pCurrentMapName.c_str());
812  _strrev(Str1);
813  strtok(Str1, ".");
814  _strrev(Str1);
815 
816  for (uint i = 0; i < 1000; ++i)
817  pSpriteObjects[i].uObjectDescID = 0;
818 
820 
821  uLevelMapStatsID = v5;
822 
823  engine->SetUnderwater(Is_out15odm_underwater());
824 
825  pParty->floor_face_pid = 0;
826  if (_stricmp(Str1, "blv"))
827  PrepareToLoadODM(bLoading, 0);
828  else
829  PrepareToLoadBLV(bLoading);
830 
831  engine->_461103_load_level_sub();
832  if ((pCurrentMapName == "d11.blv") ||
833  (pCurrentMapName == "d10.blv")) {
834  // spawning grounds & walls of mist - no loot & exp from monsters
835 
836  for (uint i = 0; i < uNumActors; ++i) {
837  pActors[i].pMonsterInfo.uTreasureType = 0;
838  pActors[i].pMonsterInfo.uTreasureDiceRolls = 0;
839  pActors[i].pMonsterInfo.uExp = 0;
840  }
841  }
843  OnMapLoad();
845  memset(&render->pBillboardRenderListD3D, 0,
846  sizeof(render->pBillboardRenderListD3D));
848  _flushall();
849 }

Перекрестные ссылки _strrev(), bDialogueUI_InitializeActor_NPC_ID, engine, Party::floor_face_pid, MapStats::GetMapInfo(), GUIProgressBar::Initialize(), Is_out15odm_underwater(), Level_LoadEvtAndStr(), LoadLevel_InitializeLevelEvt(), OnMapLoad(), pActors, pCurrentMapName, pGameLoadingUI_ProgressBar, pMapStats, pParty, PrepareToLoadBLV(), PrepareToLoadODM(), GUIProgressBar::Progress(), pSpriteObjects, GUIProgressBar::Release(), render, GUIProgressBar::TYPE_Box, GUIProgressBar::TYPE_Fullscreen, uLevelMapStatsID и uNumActors.

Используется в Application::Game::GameLoop() и PrepareWorld().

+ Граф вызовов:
+ Граф вызова функции:

◆ FinalInitialization()

void FinalInitialization ( )

См. определение в файле Engine.cpp строка 852

852  {
856 
857  // pIndoorCamera = new IndoorCamera;
858  // pIndoorCamera->Initialize(65, viewparams->uScreen_BttmR_X -
859  // viewparams->uScreen_topL_X + 1,
860  // viewparams->uScreen_BttmR_Y -
861  // viewparams->uScreen_topL_Y + 1);
862 
867 }

Перекрестные ссылки _6BE3A0_fov, LODFile_IconsBitmaps::_inlined_sub1(), LODFile_Sprites::_inlined_sub1(), InitializeTurnBasedAnimations(), pBitmaps_LOD, pIcons_LOD, pSprites_LOD, pViewport, Viewport::SetFOV(), Viewport::SetScreen(), stru_50C198, ViewingParams::uSomeW, ViewingParams::uSomeX, ViewingParams::uSomeY, ViewingParams::uSomeZ и viewparams.

Используется в GUIWindow_MainMenu::Loop().

+ Граф вызовов:
+ Граф вызова функции:

◆ CheckMM7CD()

bool CheckMM7CD ( char  c)

◆ MM6_Initialize()

void MM6_Initialize ( )

См. определение в файле Engine.cpp строка 1228

1228  {
1229  size_t v3; // ebx@32
1230  size_t v4; // edi@36
1231  char pDefaultGroundTexture[16]; // [sp+FCh] [bp-8Ch]@32
1232 
1233  viewparams = new ViewingParams;
1240 
1241  pAudioPlayer = new AudioPlayer;
1242 
1243  sprintf(pStartingMapName, "%s", "out01.odm");
1244 
1247  pODMRenderParams->bNoSky = 0;
1250  // outdoor_grid_band_1 = GetPrivateProfileIntW(L"outdoor", L"gridband1", 10,
1251  // pIniFilename); outdoor_grid_band_2 = GetPrivateProfileIntW(L"outdoor",
1252  // L"gridband2", 15, pIniFilename); outdoor_grid_band_3 =
1253  // GetPrivateProfileIntW(L"outdoor", L"gridband3", 25, pIniFilename);
1258 
1259  // pODMRenderParams->shading_dist_mist = 0x2000;//drawing dist 0x2000
1260 
1261  sprintf(pDefaultSkyTexture.data(), "%s", "plansky1");
1262  sprintf(pDefaultGroundTexture, "%s", "dirt");
1263 
1267 
1268  v3 = 0;
1269  if (strlen(pDefaultSkyTexture.data())) {
1270  do {
1271  if (pDefaultSkyTexture[v3] == ' ') pDefaultSkyTexture[v3] = 0;
1272  ++v3;
1273  } while (v3 < strlen(pDefaultSkyTexture.data()));
1274  }
1275  v4 = 0;
1276  if (strlen(pDefaultGroundTexture)) {
1277  do {
1278  if (pDefaultGroundTexture[v4] == ' ') pDefaultGroundTexture[v4] = 0;
1279  ++v4;
1280  } while (v4 < strlen(pDefaultGroundTexture));
1281  }
1282 
1284 }

Перекрестные ссылки ODMRenderParams::bDoNotRenderDecorations, ODMRenderParams::bNoSky, ODMRenderParams::building_gamme, flt_6BE3A4_debug_recmod1, flt_6BE3A8_debug_recmod2, flt_6BE3AC_debug_recmod1_x_1_6, game_viewport_height, game_viewport_w, game_viewport_width, game_viewport_x, game_viewport_y, game_viewport_z, MM7Initialization(), ODMRenderParams::outdoor_no_mist, ODMRenderParams::outdoor_no_wavy_water, pAudioPlayer, pDefaultSkyTexture, pODMRenderParams, pStartingMapName, ODMRenderParams::shading_dist_shade, ODMRenderParams::shading_dist_shademist, ODMRenderParams::terrain_gamma, ViewingParams::uScreen_BttmR_X, ViewingParams::uScreen_BttmR_Y, ViewingParams::uScreen_topL_X, ViewingParams::uScreen_topL_Y и viewparams.

Используется в Engine::MM7_Initialize().

+ Граф вызовов:
+ Граф вызова функции:

◆ MM7Initialization()

void MM7Initialization ( )

См. определение в файле Engine.cpp строка 1287

1287  {
1294  // _47F4D3_initialize_terrain_bezier_stuff(outdoor_grid_band_1,
1295  // outdoor_grid_band_2, outdoor_grid_band_3);
1296  {
1297  pODMRenderParams->outdoor_grid_band_3 = 25; // outdoor_grid_band_3;
1299  25 * 512; // outdoor_grid_band_3 * 512;
1300  }
1301  } else {
1302  viewparams->field_20 &= 0xFFFFFF00;
1303  }
1304 
1305  pParty->uFlags |= 2;
1310 
1316 }

Перекрестные ссылки ODMRenderParams::building_gamme, ViewingParams::field_20, ODMRenderParams::Initialize(), LEVEL_Outdoor, ODMRenderParams::outdoor_grid_band_3, ODMRenderParams::outdoor_no_wavy_water, pODMRenderParams, pParty, pViewport, Viewport::SetScreen(), ODMRenderParams::shading_dist_shade, ODMRenderParams::shading_dist_shademist, ODMRenderParams::terrain_gamma, uCurrentlyLoadedLevelType, Party::uFlags, ODMRenderParams::uPickDepth, ViewingParams::uScreen_BttmR_X, ViewingParams::uScreen_BttmR_Y, ViewingParams::uScreen_topL_X, ViewingParams::uScreen_topL_Y, ViewingParams::uSomeW, ViewingParams::uSomeX, ViewingParams::uSomeY, ViewingParams::uSomeZ и viewparams.

Используется в LoadGame(), MM6_Initialize() и ODM_LoadAndInitialize().

+ Граф вызовов:
+ Граф вызова функции:

◆ PrepareToLoadODM()

void PrepareToLoadODM ( unsigned int  bLoading,
struct ODMRenderParams a2 
)

См. определение в файле Engine.cpp строка 1319

1319  {
1322 
1324  if (!bLoading)
1326 
1327  viewparams->_443365();
1328  PlayLevelMusic();
1329 
1330  // level decoration sound
1332  for (int i = 0; i < _6807E0_num_decorations_with_sounds_6807B8; i++) {
1333  int ind = _6807B8_level_decorations_ids[i];
1336  pAudioPlayer->PlaySound(SoundID(decoration->uSoundID), PID(OBJECT_Decoration, ind), 0, 0, 0, 0);
1337  }
1338  }
1339 }

Перекрестные ссылки ViewingParams::_443365(), _6807B8_level_decorations_ids, _6807E0_num_decorations_with_sounds_6807B8, DecorationList::GetDecoration(), LEVEL_Outdoor, OBJECT_Decoration, ODM_LoadAndInitialize(), pAudioPlayer, pCurrentMapName, pDecorationList, pGameLoadingUI_ProgressBar, PlayLevelMusic(), AudioPlayer::PlaySound(), pLevelDecorations, GUIProgressBar::Reset(), TeleportToStartingPoint(), uCurrentlyLoadedLevelType, LevelDecoration::uDecorationDescID, uLevel_StartingPointType, DecorationDesc_mm6::uSoundID и viewparams.

Используется в DoPrepareWorld() и Application::Game::EventLoop().

+ Граф вызовов:
+ Граф вызова функции:

◆ ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows()

void ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows ( )

◆ InitializeTurnBasedAnimations()

void InitializeTurnBasedAnimations ( void )

См. определение в файле Engine.cpp строка 1479

1479  {
1480  for (unsigned int i = 0; i < pIconIDs_Turn.size(); ++i) {
1481  char icon_name[32];
1482  sprintf(icon_name, "turn%u", i);
1483  pIconIDs_Turn[i] = pIconsFrameTable->FindIcon(icon_name);
1485  }
1486 
1492 
1497 }

Перекрестные ссылки SpriteFrameTable::FastFindSprite(), IconFrameTable::FindIcon(), IconFrameTable::InitializeAnimation(), pIconIDs_Turn, pIconsFrameTable, pSpriteFrameTable, uIconID_CharacterFrame, uIconID_TurnHour, uIconID_TurnStart, uIconID_TurnStop и uSpriteID_Spell11.

Используется в FinalInitialization().

+ Граф вызовов:
+ Граф вызова функции:

◆ GetGravityStrength()

unsigned int GetGravityStrength ( )

См. определение в файле Engine.cpp строка 1500

1500  {
1501  int v0 = ~(unsigned char)engine->config->flags2 & GAME_FLAGS_2_ALTER_GRAVITY;
1502  v0 |= 2;
1503  return (unsigned int)v0 >> 1;
1504 }

Перекрестные ссылки engine.

Используется в BLV_ProcessPartyActions(), ODM_ProcessPartyActions(), UpdateActors_BLV(), UpdateActors_ODM(), SpriteObject::UpdateObject_fn0_BLV() и SpriteObject::UpdateObject_fn0_ODM().

+ Граф вызова функции:

◆ GameUI_StatusBar_Update()

void GameUI_StatusBar_Update ( bool  force_hide = false)

См. определение в файле Engine.cpp строка 1507

Перекрестные ссылки Timer::bPaused, game_ui_status_bar_event_string_time_left, OS_GetTime() и pEventTimer.

Используется в CastSpellInfoHelpers::Cancel_Spell_Cast_In_Progress(), Application::Game::GameLoop() и Engine::MM7_Initialize().

+ Граф вызовов:
+ Граф вызова функции:

◆ sub_44861E_set_texture()

void sub_44861E_set_texture ( unsigned int  uFaceCog,
const char *  pFilename 
)

См. определение в файле Engine.cpp строка 1538

1538  {
1539  if (uFaceCog) {
1540  // unsigned int texture = pBitmaps_LOD->LoadTexture(pFilename);
1541  // if (texture != -1)
1542  {
1543  // pBitmaps_LOD->pTextures[texture].palette_id2 =
1544  // pPaletteManager->LoadPalette(pBitmaps_LOD->pTextures[texture].palette_id1);
1545 
1547  sub_44861E_set_texture_indoor(uFaceCog, pFilename);
1548  } else {
1549  sub_44861E_set_texture_outdoor(uFaceCog, pFilename);
1550  }
1551 
1552  pParty->uFlags |= 2;
1553  }
1554  }
1555 }

Перекрестные ссылки LEVEL_Indoor, pParty, sub_44861E_set_texture_indoor(), sub_44861E_set_texture_outdoor(), uCurrentlyLoadedLevelType и Party::uFlags.

Используется в EventProcessor().

+ Граф вызовов:
+ Граф вызова функции:

◆ sub_44892E_set_faces_bit()

void sub_44892E_set_faces_bit ( int  sCogNumber,
int  bit,
int  on 
)

См. определение в файле Engine.cpp строка 1558

1558  {
1559  if (sCogNumber) {
1561  for (uint i = 1; i < (unsigned int)pIndoor->uNumFaceExtras; ++i) {
1562  if (pIndoor->pFaceExtras[i].sCogNumber == sCogNumber) {
1563  if (on)
1565  .uAttributes |= bit;
1566  else
1568  .uAttributes &= ~bit;
1569  }
1570  }
1571  pParty->uFlags |= 2;
1572  } else {
1573  for (BSPModel &model : pOutdoor->pBModels) {
1574  for (ODMFace &face : model.pFaces) {
1575  if (face.sCogNumber == sCogNumber) {
1576  if (on) {
1577  face.uAttributes |= bit;
1578  } else {
1579  face.uAttributes &= ~bit;
1580  }
1581  }
1582  }
1583  }
1584  }
1585  pParty->uFlags |= 2;
1586  }
1587 }

Перекрестные ссылки BLVFaceExtra::face_id, LEVEL_Indoor, OutdoorLocation::pBModels, IndoorLocation::pFaceExtras, BSPModel::pFaces, IndoorLocation::pFaces, pIndoor, pOutdoor, pParty, BLVFaceExtra::sCogNumber, BLVFace::uAttributes, uCurrentlyLoadedLevelType, Party::uFlags и IndoorLocation::uNumFaceExtras.

Используется в EventProcessor().

+ Граф вызова функции:

◆ SetDecorationSprite()

void SetDecorationSprite ( uint16_t  uCog,
bool  bHide,
const char *  pFileName 
)

См. определение в файле Engine.cpp строка 1590

1590  {
1591  for (size_t i = 0; i < uNumLevelDecorations; i++) {
1592  if (pLevelDecorations[i].uCog == uCog) {
1593  if (pFileName && strcmp(pFileName, "0")) {
1594  pLevelDecorations[i].uDecorationDescID = pDecorationList->GetDecorIdByName(pFileName);
1596  }
1597 
1598  if (bHide)
1600  else
1602 
1603  pParty->uFlags |= 2;
1604  }
1605  }
1606 }

Перекрестные ссылки DecorationList::GetDecorIdByName(), DecorationList::InitializeDecorationSprite(), LEVEL_DECORATION_INVISIBLE, pDecorationList, pLevelDecorations, pParty, Party::uFlags и uNumLevelDecorations.

Используется в EventProcessor().

+ Граф вызовов:
+ Граф вызова функции:

◆ _494035_timed_effects__water_walking_damage__etc()

void _494035_timed_effects__water_walking_damage__etc ( )

См. определение в файле Engine.cpp строка 1623

1623  {
1624  // unsigned int v4; // edi@1
1625  int v24; // ecx@60
1626  int v26; // ecx@64
1627  int v28; // ecx@68
1628  int v30; // ecx@72
1629  int v32; // ecx@76
1630  int v34; // ecx@80
1631  int v36; // ecx@84
1632  int v38; // ecx@88
1633  int v40; // ecx@92
1634  int v42; // ecx@96
1635  signed int a2a; // [sp+18h] [bp-18h]@47
1636  signed int old_day; // [sp+1Ch] [bp-14h]@47
1637  signed int old_hour;
1638 
1639  old_day = pParty->uCurrentDayOfMonth;
1640  old_hour = pParty->uCurrentHour;
1641 
1643 
1650  pParty->uCurrentYear =
1652  if (pParty->uCurrentHour >= 3 &&
1653  (old_hour < 3 ||
1654  pParty->uCurrentDayOfMonth > old_day)) { // new day dawns
1655  pParty->pHirelings[0].bHasUsedTheAbility = false;
1656  pParty->pHirelings[1].bHasUsedTheAbility = false;
1657 
1658  for (uint i = 0; i < pNPCStats->uNumNewNPCs; ++i)
1660 
1662  if (pParty->days_played_without_rest > 1) {
1663  for (uint i = 0; i < 4; ++i)
1664  pParty->pPlayers[i].SetCondWeakWithBlockCheck(0);
1665 
1666  if (pParty->GetFood() > 0) {
1667  Party::TakeFood(1);
1668  } else {
1669  for (uint i = 0; i < 4; ++i) {
1670  pParty->pPlayers[i].sHealth =
1671  pParty->pPlayers[i].sHealth /
1673  1;
1674  }
1675  }
1676 
1677  if (pParty->days_played_without_rest > 3) {
1678  for (uint i = 0; i < 4; ++i) {
1679  pParty->pPlayers[i].Zero();
1680  if (!pParty->pPlayers[i].IsPertified() &&
1681  !pParty->pPlayers[i].IsEradicated() &&
1682  !pParty->pPlayers[i].IsDead()) {
1683  if (rand() % 100 < 5 * pParty->days_played_without_rest)
1684  pParty->pPlayers[i].SetCondDeadWithBlockCheck(0);
1685  if (rand() % 100 <
1687  pParty->pPlayers[i].SetCondInsaneWithBlockCheck(0);
1688  }
1689  }
1690  }
1691  }
1693 
1694  for (uint i = 0; i < 4; ++i)
1695  pParty->pPlayers[i].uNumDivineInterventionCastsThisDay = 0;
1696  }
1697 
1698  // water damage
1699  if (pParty->uFlags & 4 &&
1702  viewparams->bRedrawGameUI = true;
1703  for (uint pl = 1; pl <= 4; ++pl) {
1704  if (pPlayers[pl]->WearsItem(ITEM_RELIC_HARECS_LEATHER,
1705  EQUIP_ARMOUR) ||
1706  pPlayers[pl]->HasEnchantedItemEquipped(71) ||
1707  pPlayers[pl]->pPlayerBuffs[PLAYER_BUFF_WATER_WALK].expire_time) {
1708  pPlayers[pl]->PlayEmotion(CHARACTER_EXPRESSION_37, 0);
1709  } else {
1710  if (!pPlayers[pl]->HasUnderwaterSuitEquipped()) {
1711  pPlayers[pl]->ReceiveDamage(
1712  (int64_t)pPlayers[pl]->GetMaxHealth() * 0.1,
1713  DMGT_FIRE);
1714  if (pParty->uFlags & 4) {
1716  localization->GetString(660)); // You're drowning!
1717  }
1718  } else {
1719  pPlayers[pl]->PlayEmotion(CHARACTER_EXPRESSION_37, 0);
1720  }
1721  }
1722  }
1723  }
1724 
1725  // lava damage
1726  if (pParty->uFlags & 0x200 &&
1728  viewparams->bRedrawGameUI = true;
1730 
1731  for (uint pl = 1; pl <= 4; pl++) {
1732  pPlayers[pl]->ReceiveDamage(
1733  (signed __int64)pPlayers[pl]->GetMaxHealth() * 0.1, DMGT_FIRE);
1734  if (pParty->uFlags & 0x200) {
1736  localization->GetString(661)); // On fire!
1737  }
1738  }
1739  }
1741  uint party_condition_flag = 4;
1742  a2a = pEventTimer->uTimeElapsed;
1743  if (pParty->uFlags2 &
1744  PARTY_FLAGS_2_RUNNING) { //замедление восстановления при беге
1745  a2a *= 0.5f;
1746  if (a2a < 1) a2a = 1;
1747  }
1748 
1749  for (uint pl = 1; pl <= 4; pl++) {
1750  if (pPlayers[pl]->uTimeToRecovery)
1751  pPlayers[pl]->Recover(a2a); //восстановление активности
1752  if (pPlayers[pl]->GetItemsBonus(CHARACTER_ATTRIBUTE_ENDURANCE) +
1753  pPlayers[pl]->sHealth + pPlayers[pl]->uEndurance >=
1754  1 ||
1755  pPlayers[pl]->pPlayerBuffs[PLAYER_BUFF_PRESERVATION].Active()) {
1756  if (pPlayers[pl]->sHealth < 1)
1757  pPlayers[pl]->SetCondition(Condition_Unconcious, 0);
1758  } else {
1759  pPlayers[pl]->SetCondition(Condition_Dead, 0);
1760  }
1761  if (pPlayers[pl]->field_E0) {
1762  v24 = pPlayers[pl]->field_E0 - pEventTimer->uTimeElapsed;
1763  if (v24 > 0) {
1764  pPlayers[pl]->field_E0 = v24;
1765  } else {
1766  pPlayers[pl]->field_E0 = 0;
1767  viewparams->bRedrawGameUI = true;
1768  }
1769  }
1770  if (pPlayers[pl]->field_E4) {
1771  v26 = pPlayers[pl]->field_E4 - pEventTimer->uTimeElapsed;
1772  if (v26 > 0) {
1773  pPlayers[pl]->field_E4 = v26;
1774  } else {
1775  pPlayers[pl]->field_E4 = 0;
1776  viewparams->bRedrawGameUI = true;
1777  }
1778  }
1779  if (pPlayers[pl]->field_E8) {
1780  v28 = pPlayers[pl]->field_E8 - pEventTimer->uTimeElapsed;
1781  if (v28 > 0) {
1782  pPlayers[pl]->field_E8 = v28;
1783  } else {
1784  pPlayers[pl]->field_E8 = 0;
1785  viewparams->bRedrawGameUI = true;
1786  }
1787  }
1788  if (pPlayers[pl]->field_EC) {
1789  v30 = pPlayers[pl]->field_EC - pEventTimer->uTimeElapsed;
1790  if (v30 > 0) {
1791  pPlayers[pl]->field_EC = v30;
1792  } else {
1793  pPlayers[pl]->field_EC = 0;
1794  viewparams->bRedrawGameUI = true;
1795  }
1796  }
1797  if (pPlayers[pl]->field_F0) {
1798  v32 = pPlayers[pl]->field_F0 - pEventTimer->uTimeElapsed;
1799  if (v32 > 0) {
1800  pPlayers[pl]->field_F0 = v32;
1801  } else {
1802  pPlayers[pl]->field_F0 = 0;
1803  viewparams->bRedrawGameUI = true;
1804  }
1805  }
1806  if (pPlayers[pl]->field_F4) {
1807  v34 = pPlayers[pl]->field_F4 - pEventTimer->uTimeElapsed;
1808  if (v34 > 0) {
1809  pPlayers[pl]->field_F4 = v34;
1810  } else {
1811  pPlayers[pl]->field_F4 = 0;
1812  viewparams->bRedrawGameUI = true;
1813  }
1814  }
1815  if (pPlayers[pl]->field_F8) {
1816  v36 = pPlayers[pl]->field_F8 - pEventTimer->uTimeElapsed;
1817  if (v36 > 0) {
1818  pPlayers[pl]->field_F8 = v36;
1819  } else {
1820  pPlayers[pl]->field_F8 = 0;
1821  viewparams->bRedrawGameUI = true;
1822  }
1823  }
1824  if (pPlayers[pl]->field_FC) {
1825  v38 = pPlayers[pl]->field_FC - pEventTimer->uTimeElapsed;
1826  if (v38 > 0) {
1827  pPlayers[pl]->field_FC = v38;
1828  } else {
1829  pPlayers[pl]->field_FC = 0;
1830  viewparams->bRedrawGameUI = true;
1831  }
1832  }
1833  if (pPlayers[pl]->field_100) {
1834  v40 = pPlayers[pl]->field_100 - pEventTimer->uTimeElapsed;
1835  if (v40 > 0) {
1836  pPlayers[pl]->field_100 = v40;
1837  } else {
1838  pPlayers[pl]->field_100 = 0;
1839  viewparams->bRedrawGameUI = true;
1840  }
1841  }
1842  if (pPlayers[pl]->field_104) {
1843  v42 = pPlayers[pl]->field_104 - pEventTimer->uTimeElapsed;
1844  if (v42 > 0) {
1845  pPlayers[pl]->field_104 = v42;
1846  } else {
1847  pPlayers[pl]->field_104 = 0;
1848  viewparams->bRedrawGameUI = true;
1849  }
1850  }
1851  if (pPlayers[pl]->conditions_times[Condition_Sleep].Valid() ||
1852  pPlayers[pl]->conditions_times[Condition_Paralyzed].Valid() ||
1853  pPlayers[pl]->conditions_times[Condition_Unconcious].Valid() ||
1854  pPlayers[pl]->conditions_times[Condition_Dead].Valid() ||
1855  pPlayers[pl]->conditions_times[Condition_Pertified].Valid() ||
1856  pPlayers[pl]->conditions_times[Condition_Eradicated].Valid()) {
1857  --party_condition_flag;
1858  }
1859 
1860  for (uint k = 0; k < 24; ++k) {
1861  pPlayers[pl]->pPlayerBuffs[k].IsBuffExpiredToTime(
1862  pParty->GetPlayingTime());
1863  }
1864 
1865  if (pPlayers[pl]->pPlayerBuffs[PLAYER_BUFF_HASTE].Expired()) {
1866  pPlayers[pl]->SetCondition(Condition_Weak, 0);
1867  }
1868  }
1869 
1870  for (uint i = 0; i < 20; ++i) {
1871  if (pParty->pPartyBuffs[i].IsBuffExpiredToTime(
1872  pParty->GetPlayingTime()) == 1)
1873  viewparams->bRedrawGameUI = true;
1874  }
1875 
1876  if (pParty->pPartyBuffs[PARTY_BUFF_HASTE].Expired()) {
1877  for (uint i = 0; i < 4; ++i)
1878  pParty->pPlayers[i].SetCondition(Condition_Weak, 0);
1879  }
1880 
1881  for (uint i = 0; i < 2; ++i) { // Проверка в сознании ли перс сделавший закл
1882  // на полёт и хождение по воде
1884  if (!pBuf->expire_time) continue;
1885 
1886  if (!(pBuf->uFlags & 1)) {
1887  if (!pPlayers[pBuf->uCaster]->CanAct()) {
1888  pBuf->Reset();
1890  pParty->bFlying = false;
1891  }
1892  }
1893  }
1894 
1895  if (!party_condition_flag) {
1897  for (uint pl = 1; pl <= 4; pl++) {
1898  if (pPlayers[pl]->conditions_times[Condition_Sleep].Valid()) {
1899  pPlayers[pl]->conditions_times[Condition_Sleep].Reset();
1900  party_condition_flag = 1;
1901  break;
1902  }
1903  }
1904  if (!party_condition_flag || _5C35C0_force_party_death)
1906  }
1907  }
1908 
1909  if (uActiveCharacter) { // выбор следующего после пропускающего ход
1911  if (pPlayers[uActiveCharacter]->conditions_times[Condition_Sleep] ||
1913  ->conditions_times[Condition_Paralyzed] ||
1915  ->conditions_times[Condition_Unconcious] ||
1916  pPlayers[uActiveCharacter]->conditions_times[Condition_Dead] ||
1918  ->conditions_times[Condition_Pertified] ||
1920  ->conditions_times[Condition_Eradicated]) {
1921  viewparams->bRedrawGameUI = true;
1923  }
1924  }
1925  }
1926 }

Перекрестные ссылки _493938_regenerate(), _5C35C0_force_party_death, Party::_6FC_water_lava_timer, Party::bFlying, NPCData::bHasUsedTheAbility, ViewingParams::bRedrawGameUI, CHARACTER_ATTRIBUTE_ENDURANCE, CHARACTER_EXPRESSION_37, Condition_Dead, Condition_Eradicated, Condition_Paralyzed, Condition_Pertified, Condition_Sleep, Condition_Unconcious, Condition_Weak, current_screen_type, Party::days_played_without_rest, DMGT_FIRE, EQUIP_ARMOUR, SpellBuff::expire_time, game_starting_year, GAME_STATE_PARTY_DIED, GameUI_StatusBar_OnEvent_128ms(), GameTime::GetDays(), Party::GetFood(), GameTime::GetHoursOfDay(), GameTime::GetMinutesFraction(), GameTime::GetMonths(), GameTime::GetMonthsOfYear(), Party::GetNextActiveCharacter(), Party::GetPlayingTime(), GameTime::GetSecondsFraction(), Localization::GetString(), ITEM_RELIC_HARECS_LEATHER, LEVEL_Outdoor, localization, PARTY_BUFF_FLY, PARTY_BUFF_HASTE, PARTY_FLAGS_2_RUNNING, Party_Spec_Motion_status_ids, pEventTimer, Party::pHirelings, PLAYER_BUFF_HASTE, PLAYER_BUFF_PRESERVATION, PLAYER_BUFF_WATER_WALK, NPCStats::pNewNPCData, pNPCStats, pOutdoor, pParty, Party::pPartyBuffs, pPlayers, Party::pPlayers, SpellBuff::Reset(), SCREEN_REST, OutdoorLocation::SetFog(), Party::TakeFood(), uActiveCharacter, SpellBuff::uCaster, Party::uCurrentDayOfMonth, Party::uCurrentHour, uCurrentlyLoadedLevelType, Party::uCurrentMinute, Party::uCurrentMonth, Party::uCurrentMonthWeek, Party::uCurrentTimeSecond, Party::uCurrentYear, SpellBuff::uFlags, Party::uFlags, Party::uFlags2, uGameState, NPCStats::uNumNewNPCs, Timer::uTimeElapsed, GameTime::value и viewparams.

Используется в Application::Game::GameLoop(), stru262_TurnBased::NextTurn(), Party::Reset() и Rest().

+ Граф вызовов:
+ Граф вызова функции:

◆ _493938_regenerate()

void _493938_regenerate ( )

См. определение в файле Engine.cpp строка 1929

1929  { // immolation
1930  int current_time; // edi@1
1931  int last_reg_time; // qax@1
1932  int v4; // eax@2
1933  int v5; // edi@5
1934  int v9; // edi@15
1935  signed int v10; // eax@15
1936  int numberOfActorsAffected; // ebx@20
1937  unsigned int v14; // esi@21
1938  signed int v19; // eax@21
1939  bool recovery_HP; // ebx@25
1940  signed int v25; // eax@33
1941  signed int v31; // ecx@53
1942  int actorsAffectedByImmolation[100]; // [sp+4h] [bp-22Ch]@20
1943  SpriteObject a1; // [sp+194h] [bp-9Ch]@15
1944  Vec3_int_ a3; // [sp+204h] [bp-2Ch]@15
1945  bool has_dragon_flag; // [sp+210h] [bp-20h]@22
1946  bool lich_jar_flag; // [sp+214h] [bp-1Ch]@25
1947  bool zombie_flag; // [sp+218h] [bp-18h]@25
1948  bool decrease_HP; // [sp+21Ch] [bp-14h]@25
1949  bool lich_flag; // [sp+220h] [bp-10h]@25
1950  int v49; // [sp+224h] [bp-Ch]@24
1951  bool recovery_SP; // [sp+228h] [bp-8h]@25
1952  bool redraw_flag; // [sp+22Ch] [bp-4h]@2
1953 
1954  current_time = pParty->GetPlayingTime().GetMinutesFraction();
1955  last_reg_time = pParty->last_regenerated.GetMinutesFraction();
1956 
1957  if (current_time == last_reg_time) return;
1958 
1959  int testmin = last_reg_time + 5;
1960  if (testmin >= 60) { // hour tickover boundaries
1961  testmin -= 60;
1962  if (current_time >= 55) current_time -= 60;
1963  }
1964 
1965  if (current_time >= testmin) {
1966  redraw_flag = false;
1967  v4 = (current_time - last_reg_time) / 5;
1968 
1969  // chance to flight break due to a curse
1970  if (pParty->FlyActive()) {
1971  if (pParty->bFlying) {
1972  if (!(pParty->pPartyBuffs[PARTY_BUFF_FLY].uFlags & 1)) {
1973  v5 = v4 * pParty->pPartyBuffs[PARTY_BUFF_FLY].uPower;
1974 
1975  auto v6 =
1976  &pParty
1978  .uCaster -
1979  1]
1980  .conditions_times[Condition_Cursed];
1981  if (v6->value < v5) {
1982  v6 = 0;
1983  pParty->uFlags &= 0xFFFFFFBF;
1984  pParty->bFlying = false;
1985  redraw_flag = true;
1986  }
1987  }
1988  }
1989  }
1990 
1991  // chance to waterwalk drowning due to a curse
1992  if (pParty->WaterWalkActive()) {
1994  if (!(pParty->pPartyBuffs[PARTY_BUFF_WATER_WALK].uFlags &
1995  1)) { // taking on water
1996  auto v8 =
1997  &pParty
1998  ->pPlayers[pParty
2000  .uCaster -
2001  1]
2002  .conditions_times[Condition_Cursed];
2003  v8->value -= v4;
2004  if (v8->value <= 0) {
2005  v8->value = 0;
2007  redraw_flag = true;
2008  }
2009  }
2010  }
2011  }
2012 
2013  if (pParty->ImmolationActive()) { // Жертва
2014  a3.z = 0;
2015  a3.y = 0;
2016  a3.x = 0;
2017  a1.containing_item.Reset();
2024  a1.uAttributes = 0;
2025  a1.uSectorID = 0;
2026  a1.uSpriteFrameID = 0;
2028  a1.uFacing = 0;
2029  a1.uSoundID = 0;
2030  numberOfActorsAffected = pParty->_46A89E_immolation_effect(actorsAffectedByImmolation, 100, 307);
2031  for (v9 = 0; v9 < numberOfActorsAffected; ++v9) {
2032  v14 = actorsAffectedByImmolation[v9];
2033  a1.vPosition.x = pActors[v14].vPosition.x;
2034  a1.vPosition.y = pActors[v14].vPosition.y;
2035  a1.vPosition.z = pActors[v14].vPosition.z;
2036  a1.spell_target_pid = PID(OBJECT_Actor, v14);
2037  v19 = a1.Create(0, 0, 0, 0);
2038  Actor::DamageMonsterFromParty(PID(OBJECT_Item, v19), v14, &a3);
2039  }
2040  }
2041 
2042  has_dragon_flag = false;
2043  if (PartyHasDragon()) has_dragon_flag = true;
2044 
2045  for (v49 = 0; v49 < 4; v49++) {
2046  recovery_HP = false;
2047  recovery_SP = false;
2048  decrease_HP = false;
2049  lich_flag = false;
2050  lich_jar_flag = false;
2051  zombie_flag = false;
2052 
2053  for (int v22 = 0; (signed int)v22 < 16; v22++) {
2054  if (pParty->pPlayers[v49].HasItemEquipped(
2055  (ITEM_EQUIP_TYPE)v22)) {
2056  uint _idx = pParty->pPlayers[v49].pEquipment.pIndices[v22];
2057  if (pParty->pPlayers[v49]
2058  .pInventoryItemList[_idx - 1]
2059  .uItemID > 134) {
2060  if (pParty->pPlayers[v49]
2061  .pInventoryItemList[_idx - 1]
2062  .uItemID == ITEM_RELIC_ETHRICS_STAFF)
2063  decrease_HP = true;
2064  if (pParty->pPlayers[v49]
2065  .pInventoryItemList[_idx - 1]
2066  .uItemID == ITEM_ARTIFACT_HERMES_SANDALS) {
2067  recovery_HP = true;
2068  recovery_SP = true;
2069  }
2070  if (pParty->pPlayers[v49]
2071  .pInventoryItemList[_idx - 1]
2072  .uItemID == ITEM_ARTIFACT_MINDS_EYE)
2073  recovery_SP = true;
2074  if (pParty->pPlayers[v49]
2075  .pInventoryItemList[_idx - 1]
2076  .uItemID == ITEM_ARTIFACT_HEROS_BELT)
2077  recovery_HP = true;
2078  } else {
2079  v25 = pParty->pPlayers[v49]
2080  .pInventoryItemList[_idx - 1]
2081  .special_enchantment;
2082  if (v25 == 37 // of Regeneration("Regenerate 1hp/x
2083  // while walking, etc")
2084  || v25 == 44 // of Life("HP (+10), Regen hpts")
2085  || v25 == 50 // of The Phoenix("Fire Res (+30),
2086  // Regen hpts") &&
2087  ||
2088  v25 == 54) // of The Troll("End (+15), Regen hpts")
2089  recovery_HP = true;
2090  if (v25 == 38 // of Mana("Regenerate 1sp/x while
2091  // walking, etc")
2092  ||
2093  v25 == 47 // of The Eclipse("SP (+10), Regen spts")
2094  ||
2095  v25 ==
2096  55) // of The Unicorn("Luck (+15), Regen spts")
2097  recovery_SP = true;
2098  if (v25 == 66) { // of Plenty("Regenerate 1 hp/x and 1
2099  // sp/x while walking, etc.")
2100  recovery_HP = true;
2101  recovery_SP = true;
2102  }
2103  }
2104 
2105  if (recovery_HP &&
2106  !pParty->pPlayers[v49]
2107  .conditions_times[Condition_Dead] &&
2108  !pParty->pPlayers[v49]
2109  .conditions_times[Condition_Eradicated]) {
2110  if (pParty->pPlayers[v49].sHealth <
2111  pParty->pPlayers[v49].GetMaxHealth()) {
2112  ++pParty->pPlayers[v49].sHealth;
2113  }
2114  if (pParty->pPlayers[v49]
2115  .conditions_times[Condition_Unconcious] &&
2116  pParty->pPlayers[v49].sHealth > 0) {
2117  pParty->pPlayers[v49]
2118  .conditions_times[Condition_Unconcious]
2119  .Reset();
2120  }
2121  redraw_flag = true;
2122  }
2123 
2124  if (recovery_SP &&
2125  !pParty->pPlayers[v49]
2126  .conditions_times[Condition_Dead] &&
2127  !pParty->pPlayers[v49]
2128  .conditions_times[Condition_Eradicated]) {
2129  if (pParty->pPlayers[v49].sMana <
2130  pParty->pPlayers[v49].GetMaxMana())
2131  ++pParty->pPlayers[v49].sMana;
2132  redraw_flag = true;
2133  }
2134 
2135  if (decrease_HP &&
2136  !pParty->pPlayers[v49]
2137  .conditions_times[Condition_Dead] &&
2138  !pParty->pPlayers[v49]
2139  .conditions_times[Condition_Eradicated]) {
2140  --pParty->pPlayers[v49].sHealth;
2141  if (!(pParty->pPlayers[v49]
2142  .conditions_times[Condition_Unconcious]) &&
2143  pParty->pPlayers[v49].sHealth < 0) {
2144  pParty->pPlayers[v49]
2145  .conditions_times[Condition_Unconcious] =
2147  }
2148  if (pParty->pPlayers[v49].sHealth < 1) {
2149  if (pParty->pPlayers[v49].sHealth +
2150  pParty->pPlayers[v49].uEndurance +
2151  pParty->pPlayers[v49].GetItemsBonus(
2153  1 ||
2154  pParty->pPlayers[v49]
2155  .pPlayerBuffs[PLAYER_BUFF_PRESERVATION]
2156  .expire_time) {
2157  pParty->pPlayers[v49]
2158  .conditions_times[Condition_Unconcious] =
2160  } else if (!pParty->pPlayers[v49]
2161  .conditions_times[Condition_Dead]) {
2162  pParty->pPlayers[v49]
2163  .conditions_times[Condition_Dead] =
2165  }
2166  }
2167  redraw_flag = true;
2168  }
2169  }
2170  }
2171 
2172  // regeneration
2173  if (pParty->pPlayers[v49]
2174  .pPlayerBuffs[PLAYER_BUFF_REGENERATION]
2175  .expire_time &&
2176  !pParty->pPlayers[v49].conditions_times[Condition_Dead] &&
2177  !pParty->pPlayers[v49].conditions_times[Condition_Eradicated]) {
2178  pParty->pPlayers[v49].sHealth +=
2179  5 * pParty->pPlayers[v49]
2180  .pPlayerBuffs[PLAYER_BUFF_REGENERATION]
2181  .uPower;
2182  if (pParty->pPlayers[v49].sHealth >
2183  pParty->pPlayers[v49].GetMaxHealth()) {
2184  pParty->pPlayers[v49].sHealth =
2185  pParty->pPlayers[v49].GetMaxHealth();
2186  }
2187  if (pParty->pPlayers[v49]
2188  .conditions_times[Condition_Unconcious] &&
2189  pParty->pPlayers[v49].sHealth > 0) {
2190  pParty->pPlayers[v49]
2191  .conditions_times[Condition_Unconcious]
2192  .Reset();
2193  }
2194  redraw_flag = true;
2195  }
2196 
2197  // for warlock
2198  if (has_dragon_flag &&
2199  pParty->pPlayers[v49].classType == PLAYER_CLASS_WARLOCK) {
2200  if (pParty->pPlayers[v49].sMana <
2201  pParty->pPlayers[v49].GetMaxMana()) {
2202  ++pParty->pPlayers[v49].sMana;
2203  }
2204  redraw_flag = true;
2205  }
2206 
2207  // for lich
2208  if (pParty->pPlayers[v49].classType == PLAYER_CLASS_LICH) {
2209  for (v31 = 0; v31 < 126; ++v31) {
2210  if (pParty->pPlayers[v49].pInventoryItemList[v31].uItemID ==
2212  lich_jar_flag = true;
2213  }
2214  lich_flag = true;
2215  }
2216 
2217  if (lich_flag &&
2218  !pParty->pPlayers[v49].conditions_times[Condition_Dead] &&
2219  !pParty->pPlayers[v49].conditions_times[Condition_Eradicated]) {
2220  if (pParty->pPlayers[v49].sHealth >
2221  pParty->pPlayers[v49].GetMaxHealth() / 2) {
2222  pParty->pPlayers[v49].sHealth =
2223  pParty->pPlayers[v49].sHealth - 2;
2224  }
2225  if (pParty->pPlayers[v49].sMana >
2226  pParty->pPlayers[v49].GetMaxMana() / 2) {
2227  pParty->pPlayers[v49].sMana =
2228  pParty->pPlayers[v49].sMana - 2;
2229  }
2230  }
2231 
2232  if (lich_jar_flag) {
2233  if (pParty->pPlayers[v49].sMana <
2234  pParty->pPlayers[v49].GetMaxMana()) {
2235  ++pParty->pPlayers[v49].sMana;
2236  }
2237  }
2238 
2239  // for zombie
2240  if (pParty->pPlayers[v49].conditions_times[Condition_Zombie]) {
2241  zombie_flag = true;
2242  }
2243  if (zombie_flag &&
2244  !pParty->pPlayers[v49].conditions_times[Condition_Dead] &&
2245  !pParty->pPlayers[v49].conditions_times[Condition_Eradicated]) {
2246  if (pParty->pPlayers[v49].sHealth >
2247  pParty->pPlayers[v49].GetMaxHealth() / 2) {
2248  pParty->pPlayers[v49].sHealth =
2249  pParty->pPlayers[v49].sHealth - 1;
2250  }
2251  if (pParty->pPlayers[v49].sMana > 0) {
2252  pParty->pPlayers[v49].sMana =
2253  pParty->pPlayers[v49].sMana - 1;
2254  }
2255  }
2256  }
2258  if (!viewparams->bRedrawGameUI) viewparams->bRedrawGameUI = redraw_flag;
2259  }
2260 }

Перекрестные ссылки Party::_46A89E_immolation_effect(), Party::bFlying, ViewingParams::bRedrawGameUI, CHARACTER_ATTRIBUTE_ENDURANCE, Condition_Cursed, Condition_Dead, Condition_Eradicated, Condition_Unconcious, Condition_Zombie, SpriteObject::containing_item, SpriteObject::Create(), Actor::DamageMonsterFromParty(), SpriteObject::field_60_distance_related_prolly_lod, Party::FlyActive(), GameTime::GetMinutesFraction(), Party::GetPlayingTime(), Party::ImmolationActive(), Party::ImmolationSkillLevel(), ITEM_ARTIFACT_HERMES_SANDALS, ITEM_ARTIFACT_HEROS_BELT, ITEM_ARTIFACT_MINDS_EYE, ITEM_LICH_JAR_FULL, ITEM_RELIC_ETHRICS_STAFF, Party::last_regenerated, OBJECT_Actor, OBJECT_Item, OBJECT_Player, ObjectList::ObjectIDByItemID(), pActors, PARTY_BUFF_FLY, PARTY_BUFF_IMMOLATION, PARTY_BUFF_WATER_WALK, PARTY_FLAGS_1_STANDING_ON_WATER, PartyHasDragon(), PLAYER_BUFF_PRESERVATION, PLAYER_BUFF_REGENERATION, PLAYER_CLASS_LICH, PLAYER_CLASS_WARLOCK, pObjectList, pParty, Party::pPartyBuffs, Party::pPlayers, ItemGen::Reset(), SpriteObject::spell_caster_pid, SPELL_FIRE_IMMOLATION, SpriteObject::spell_id, SpriteObject::spell_level, SpriteObject::spell_skill, spell_sprite_mapping, SpriteObject::spell_target_pid, SPRITE_SPELL_FIRE_IMMOLATION, SpriteObject::uAttributes, SpriteObject::uFacing, Party::uFlags, SpriteObject::uObjectDescID, SpriteObject::uSectorID, SpriteObject::uSoundID, SpriteObject::uSpriteFrameID, SpriteObject::uType, viewparams, SpriteObject::vPosition и Party::WaterWalkActive().

Используется в _494035_timed_effects__water_walking_damage__etc().

+ Граф вызовов:
+ Граф вызова функции:

◆ GetReputationString()

String GetReputationString ( int  reputation)

См. определение в файле UIGame.cpp строка 2360

2360  {
2361  if (reputation >= 25)
2362  return localization->GetString(379); // Hated
2363  else if (reputation >= 6)
2364  return localization->GetString(392); // Unfriendly
2365  else if (reputation >= -5)
2366  return localization->GetString(399); // Neutral
2367  else if (reputation >= -24)
2368  return localization->GetString(402); // Friendly
2369  else
2370  return localization->GetString(434); // Respected
2371 }

Перекрестные ссылки Localization::GetString() и localization.

Используется в BuildDialogueString() и GUIWindow_QuickReference::Update().

+ Граф вызовов:
+ Граф вызова функции:

◆ _494820_training_time()

unsigned int _494820_training_time ( unsigned int  a1)

См. определение в файле Engine.cpp строка 2263

2263  {
2264  signed int v1; // eax@1
2265 
2266  v1 = 5;
2267  if (a1 % 24 >= 5) v1 = 29;
2268  return v1 - a1 % 24;
2269 }

Используется в Application::Game::EventLoop() и TrainingDialog().

+ Граф вызова функции:

◆ LoadLevel_InitializeLevelStr()

void LoadLevel_InitializeLevelStr ( )

См. определение в файле Engine.cpp строка 2272

2272  {
2273  // char Args[100];
2274  int string_num;
2275  int max_string_length;
2276  // int current_string_length;
2277  int prev_string_offset;
2278 
2279  if (sizeof(pLevelStrOffsets) != 2000)
2280  logger->Warning(L"pLevelStrOffsets: deserialization warning");
2281  memset(pLevelStrOffsets.data(), 0, 2000);
2282 
2283  max_string_length = 0;
2284  string_num = 1;
2285  prev_string_offset = 0;
2286  pLevelStrOffsets[0] = 0;
2287  for (uint i = 0; i < uLevelStrFileSize; ++i) {
2288  if (!pLevelStr[i]) {
2289  pLevelStrOffsets[string_num] = i + 1;
2290  ++string_num;
2291  if (i - prev_string_offset > max_string_length)
2292  max_string_length = i - prev_string_offset;
2293  prev_string_offset = i;
2294  }
2295  }
2296 
2297  uLevelStrNumStrings = string_num - 1;
2298  if (max_string_length > 800)
2299  Error("MAX_EVENT_TEXT_LENGTH needs to be increased to %lu",
2300  max_string_length + 1);
2301 
2302  if (uLevelStrNumStrings > 0) {
2303  for (uint i = 0; i < uLevelStrNumStrings; ++i) {
2306  ++pLevelStrOffsets[i];
2307  }
2308  }
2309 }

Перекрестные ссылки logger, pLevelStr, pLevelStrOffsets, RemoveQuotes(), uLevelStrFileSize, uLevelStrNumStrings и Log::Warning().

Используется в Level_LoadEvtAndStr().

+ Граф вызовов:
+ Граф вызова функции:

◆ OnMapLeave()

void OnMapLeave ( )

См. определение в файле Engine.cpp строка 2312

2312  {
2313  _evt_raw *test_event;
2314  if (uLevelEVT_NumEvents > 0) {
2315  for (uint i = 0; i < uLevelEVT_NumEvents; ++i) {
2316  test_event =
2317  (_evt_raw *)&pLevelEVT[pLevelEVT_Index[i].uEventOffsetInEVT];
2318  if (test_event->_e_type == EVENT_OnMapLeave) {
2319  EventProcessor(pLevelEVT_Index[i].uEventID, 0, 1,
2320  pLevelEVT_Index[i].event_sequence_num);
2321  }
2322  }
2323  }
2324 }

Перекрестные ссылки _evt_raw::_e_type, EVENT_OnMapLeave, EventProcessor(), pLevelEVT, pLevelEVT_Index и uLevelEVT_NumEvents.

Используется в Application::Game::EventLoop() и EventProcessor().

+ Граф вызовов:
+ Граф вызова функции:

◆ OnMapLoad()

void OnMapLoad ( )

См. определение в файле Engine.cpp строка 2327

2327  {
2328  int v6; // eax@9
2329  int hours; // ebx@26
2330  GameTime v18; // [sp+Ch] [bp-44h]@12
2331  unsigned int seconds; // [sp+14h] [bp-3Ch]@26
2332  GameTime v20; // [sp+1Ch] [bp-34h]@7
2333  unsigned int minutes; // [sp+2Ch] [bp-24h]@26
2334  unsigned int years; // [sp+34h] [bp-1Ch]@26
2335  unsigned int weeks; // [sp+38h] [bp-18h]@26
2336  unsigned int days; // [sp+3Ch] [bp-14h]@26
2337  unsigned int months; // [sp+40h] [bp-10h]@26
2338 
2339  for (uint i = 0; i < uLevelEVT_NumEvents; ++i) {
2340  EventIndex pEvent = pLevelEVT_Index[i];
2341 
2342  _evt_raw *_evt = (_evt_raw *)(&pLevelEVT[pEvent.uEventOffsetInEVT]);
2343 
2344  // if (_evt->_e_type == EVENT_PlaySound)
2345  // pSoundList->LoadSound(EVT_DWORD(_evt->v5), 0);
2346  // else
2347  if (_evt->_e_type == EVENT_OnMapReload) {
2348  EventProcessor(pEvent.uEventID, 0, 0, pEvent.event_sequence_num);
2349  } else if (_evt->_e_type == EVENT_OnTimer ||
2350  _evt->_e_type == EVENT_OnLongTimer) {
2351  // v3 = &MapsLongTimersList[MapsLongTimers_count];
2352  v20 = pOutdoor->loc_time.last_visit;
2354  v20 = pIndoor->stru1.last_visit;
2355 
2357  _evt->_e_type;
2359  pEvent.uEventID;
2361  pEvent.event_sequence_num;
2362 
2369  _evt->v10;
2370 
2371  v6 = ((unsigned short)_evt->v12 << 8) + _evt->v11;
2372 
2374  ((unsigned short)_evt->v12 << 8) + _evt->v11;
2376  ((unsigned short)_evt->v12 << 8) + _evt->v11;
2377  if (MapsLongTimersList[MapsLongTimers_count].timer_evt_type ==
2379  !(short)v6) {
2380  if (v20)
2381  v18 = pParty->GetPlayingTime() - v20;
2382  else
2383  v18 = GameTime(0);
2384 
2385  if (v18.GetYears() != 0 &&
2387  .YearsInterval ||
2388  v18.GetMonths() != 0 &&
2390  .MonthsInterval != 0 ||
2391  v18.GetWeeks() != 0 &&
2393  .WeeksInterval != 0 ||
2394  v18.GetDays() != 0 || !v20) {
2397  continue;
2398  }
2399  } else {
2400  seconds = pParty->GetPlayingTime().GetSecondsFraction();
2401  minutes = pParty->GetPlayingTime().GetMinutesFraction();
2402  hours = pParty->GetPlayingTime().GetHoursOfDay();
2403  days = pParty->GetPlayingTime().GetDaysOfWeek();
2404  weeks = pParty->GetPlayingTime().GetWeeksOfMonth();
2405  months = pParty->GetPlayingTime().GetMonthsOfYear();
2406  years = pParty->GetPlayingTime().GetYears();
2407 
2408  if (MapsLongTimersList[MapsLongTimers_count].YearsInterval) {
2409  ++years;
2411  .MonthsInterval) {
2412  ++months;
2413  } else if (MapsLongTimersList[MapsLongTimers_count].WeeksInterval) {
2414  ++weeks;
2415  } else {
2416  ++days;
2417  hours =
2420  .MinutesInterval;
2422  .SecondsInterval;
2423  }
2425  GameTime(seconds, minutes, hours, days, weeks, months,
2426  years);
2428  }
2429  }
2430  }
2431 }

Перекрестные ссылки _evt_raw::_e_type, EVENT_OnLongTimer, EVENT_OnMapReload, EVENT_OnTimer, EventIndex::event_sequence_num, EventProcessor(), GameTime::GetDays(), GameTime::GetDaysOfWeek(), GameTime::GetHoursOfDay(), GameTime::GetMinutesFraction(), GameTime::GetMonths(), GameTime::GetMonthsOfYear(), Party::GetPlayingTime(), GameTime::GetSecondsFraction(), GameTime::GetWeeks(), GameTime::GetWeeksOfMonth(), GameTime::GetYears(), MapsLongTimer::HoursInterval, MapsLongTimer::IntervalHalfMins, LocationTime_stru1::last_visit, LEVEL_Indoor, OutdoorLocation::loc_time, MapsLongTimers_count, MapsLongTimersList, MapsLongTimer::MinutesInterval, MapsLongTimer::MonthsInterval, MapsLongTimer::NextStartTime, pIndoor, pLevelEVT, pLevelEVT_Index, pOutdoor, pParty, MapsLongTimer::SecondsInterval, IndoorLocation::stru1, MapsLongTimer::time_left_to_fire, MapsLongTimer::timer_evt_ID, MapsLongTimer::timer_evt_seq_num, MapsLongTimer::timer_evt_type, uCurrentlyLoadedLevelType, EventIndex::uEventID, EventIndex::uEventOffsetInEVT, uLevelEVT_NumEvents, _evt_raw::v10, _evt_raw::v11, _evt_raw::v12, _evt_raw::v5, _evt_raw::v6, _evt_raw::v7, _evt_raw::v8, _evt_raw::v9, MapsLongTimer::WeeksInterval и MapsLongTimer::YearsInterval.

Используется в DoPrepareWorld() и Application::Game::EventLoop().

+ Граф вызовов:
+ Граф вызова функции:

◆ Level_LoadEvtAndStr()

void Level_LoadEvtAndStr ( const char *  pLevelName)

См. определение в файле Engine.cpp строка 2433

2433  {
2434  char pContainerName[120]; // [sp+8h] [bp-98h]@1
2435 
2436  sprintf(pContainerName, "%s.evt", pLevelName);
2437  uLevelEVT_Size = LoadEventsToBuffer(pContainerName, pLevelEVT.data(), 9216);
2438 
2439  sprintf(pContainerName, "%s.str", pLevelName);
2441  LoadEventsToBuffer(pContainerName, pLevelStr.data(), 9216);
2443 }

Перекрестные ссылки LoadEventsToBuffer(), LoadLevel_InitializeLevelStr(), pLevelEVT, pLevelStr, uLevelEVT_Size и uLevelStrFileSize.

Используется в DoPrepareWorld() и Application::Game::EventLoop().

+ Граф вызовов:
+ Граф вызова функции:

◆ sub_4452BB()

void sub_4452BB ( )

См. определение в файле Engine.cpp строка 2445

2445  {
2446  pGUIWindow2->Release();
2447  pGUIWindow2 = 0;
2450  activeLevelDecoration = nullptr;
2451  pEventTimer->Resume();
2452 }

Перекрестные ссылки _591094_decoration, activeLevelDecoration, dword_5C3418, dword_5C341C, EventProcessor(), pEventTimer, pGUIWindow2, GUIWindow::Release() и Timer::Resume().

Используется в Application::Game::EventLoop(), Mouse::UI_OnMouseLeftClick() и GUIWindow_GenericDialogue::Update().

+ Граф вызовов:
+ Граф вызова функции:

◆ _44100D_should_alter_right_panel()

bool _44100D_should_alter_right_panel ( )

См. определение в файле Engine.cpp строка 2454

Перекрестные ссылки current_screen_type, SCREEN_CASTING, SCREEN_CHANGE_LOCATION, SCREEN_CHARACTERS, SCREEN_E, SCREEN_HOUSE, SCREEN_INPUT_BLV и SCREEN_NPC_DIALOGUE.

Используется в Engine::DrawGUI() и GameUI_DrawFoodAndGold().

+ Граф вызова функции:

◆ Transition_StopSound_Autosave()

void Transition_StopSound_Autosave ( const char *  pMapName,
MapStartPoint  point 
)

См. определение в файле Engine.cpp строка 2464

2465  {
2466  pAudioPlayer->StopChannels(-1, -1);
2467 
2468  // pGameLoadingUI_ProgressBar->Initialize(GUIProgressBar::TYPE_None);
2469 
2470  if (pCurrentMapName != pMapName) {
2471  SaveGame(1, 0);
2472  }
2473 
2475  pCurrentMapName = pMapName;
2476  uLevel_StartingPointType = start_point;
2477 }

Перекрестные ссылки GAME_STATE_CHANGE_LOCATION, pAudioPlayer, pCurrentMapName, SaveGame(), AudioPlayer::StopChannels(), uGameState и uLevel_StartingPointType.

Используется в Application::Game::EventLoop(), EventProcessor() и TeleportToNWCDungeon().

+ Граф вызовов:
+ Граф вызова функции:

◆ OnTimer()

void OnTimer ( int  )

См. определение в файле Engine.cpp строка 2479

2479  {
2480  if (pEventTimer->bPaused) {
2481  return;
2482  }
2483 
2484  __int64 v13 = (pParty->GetPlayingTime() - _5773B8_event_timer).value / 128;
2485  if (!v13) return;
2486 
2488 
2489  for (uint i = 0; i < MapsLongTimers_count; ++i) {
2490  MapsLongTimer *timer = &MapsLongTimersList[i];
2491  if (timer->time_left_to_fire) {
2492  if (v13 < timer->time_left_to_fire) {
2493  timer->time_left_to_fire -= v13;
2494  } else {
2495  timer->time_left_to_fire = timer->IntervalHalfMins;
2496  EventProcessor(timer->timer_evt_ID, 0, 1,
2497  timer->timer_evt_seq_num);
2498  }
2499  } else {
2500  if (timer->NextStartTime < pParty->GetPlayingTime()) {
2501  uint next_trigger_time = 1 * 60 * 60 * 24; // 1 day
2502  if (timer->YearsInterval)
2503  next_trigger_time = 336 * 60 * 60 * 24; // 1 year
2504  else if (timer->MonthsInterval)
2505  next_trigger_time = 28 * 60 * 60 * 24; // 1 month
2506  else if (timer->WeeksInterval)
2507  next_trigger_time = 7 * 60 * 60 * 24; // 1 week
2508 
2509  timer->NextStartTime.value += (next_trigger_time * 128) / 3.0f;
2510  if (timer->NextStartTime <
2511  pParty->GetPlayingTime()) // make sure in wont fire several
2512  // times in a row if big time
2513  // interval has lapsed
2514  timer->NextStartTime = pParty->GetPlayingTime();
2515 
2516  EventProcessor(timer->timer_evt_ID, 0, 1,
2517  timer->timer_evt_seq_num);
2518  }
2519  }
2520  }
2521 }

Перекрестные ссылки _5773B8_event_timer, Timer::bPaused, EventProcessor(), Party::GetPlayingTime(), MapsLongTimer::IntervalHalfMins, MapsLongTimers_count, MapsLongTimersList, MapsLongTimer::MonthsInterval, MapsLongTimer::NextStartTime, pEventTimer, pParty, MapsLongTimer::time_left_to_fire, MapsLongTimer::timer_evt_ID, MapsLongTimer::timer_evt_seq_num, GameTime::value, MapsLongTimer::WeeksInterval и MapsLongTimer::YearsInterval.

Используется в Application::Game::GameLoop() и Engine::MM7_Initialize().

+ Граф вызовов:
+ Граф вызова функции:

◆ TeleportToNWCDungeon()

void TeleportToNWCDungeon ( )

См. определение в файле Engine.cpp строка 2524

2524  {
2525  // return if we are already in the NWC dungeon
2526  if ("nwc.blv" == pCurrentMapName) {
2527  return;
2528  }
2529 
2530  // reset party teleport
2538 
2539  // start tranistion to dungeon
2543  return;
2544 }

Перекрестные ссылки current_screen_type, GUIProgressBar::Initialize(), MapStartPoint_Party, Party_Teleport_Cam_Pitch, Party_Teleport_Cam_Yaw, Party_Teleport_X_Pos, Party_Teleport_Y_Pos, Party_Teleport_Z_Pos, Party_Teleport_Z_Speed, pCurrentMapName, pGameLoadingUI_ProgressBar, SCREEN_GAME, Start_Party_Teleport_Flag, Transition_StopSound_Autosave() и GUIProgressBar::TYPE_Fullscreen.

Используется в Player::UseItem_DrinkPotion_etc().

+ Граф вызовов:
+ Граф вызова функции:

◆ SetDataPath()

void SetDataPath ( const char *  data_path)

См. определение в файле Engine.cpp строка 124

124 { s_data_path = data_path; }

Перекрестные ссылки s_data_path.

Используется в Engine::Initialize().

+ Граф вызова функции:

◆ MakeDataPath()

std::string MakeDataPath ( const char *  file_rel_path)

См. определение в файле Engine.cpp строка 126

126  {
127  return s_data_path + "\\" + file_rel_path;
128 }

Перекрестные ссылки s_data_path.

Используется в DoSavegame(), GUIWindow_Load::GUIWindow_Load(), GUIWindow_Save::GUIWindow_Save(), SavegameList::Initialize(), RenderBase::Initialize(), MPlayer::Initialize(), Initialize_GamesLOD_NewLOD(), AudioPlayer::LoadAudioSnd(), LoadGame(), AudioPlayer::MusicPlayTrack(), SaveGame() и SaveNewGame().

+ Граф вызова функции:

Переменные

◆ engine

std::shared_ptr<Engine> engine

См. определение в файле Engine.cpp строка 130

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), Engine::_44ED0A_saturate_face_blv(), Engine::_44EEA7(), LightmapBuilder::_45BE86_build_light_polygon(), Engine::_461103_load_level_sub(), PaletteManager::_47C30E_get_palette(), PaletteManager::_47C33F_get_palette(), DecalBuilder::_49B790_build_decal_geometry(), BspRenderer::AddFaceToRenderList_d3d(), Engine::AlterGamma_ODM(), BLV_ProcessPartyActions(), stru10::CalcFaceBounding(), IndoorCameraD3D::CalcPortalShape(), Player::CanCastSpell(), Vis::CheckIntersectBModel(), Engine_::EngineFactory::CreateEngine(), Actor::DamageMonsterFromParty(), DamagePlayerFromMonster(), OutdoorLocation::DoGetTile(), DoPrepareWorld(), Weather::Draw(), OutdoorLocation::Draw(), IndoorLocation::Draw(), Engine::draw_debug_outlines(), RenderOpenGL::DrawBillboards_And_MaybeRenderSpecialEffects_And_EndScene(), Render::DrawBillboards_And_MaybeRenderSpecialEffects_And_EndScene(), Engine::DrawGUI(), RenderOpenGL::DrawIndoorPolygon(), Render::DrawIndoorPolygon(), LightmapBuilder::DrawLightmaps(), RenderOpenGL::DrawPolygon(), Render::DrawPolygon(), Render::DrawTerrainPolygon(), Engine_DeinitializeAndTerminate(), Application::Menu::EventLoop(), OutdoorLocation::ExecDraw(), IndoorLocation::ExecDraw_d3d(), GameUI_DrawMinimap(), PaletteManager::Get_Dark_or_Red_LUT(), PaletteManager::Get_Mist_or_Red_LUT(), GetActorTintColor(), Party::GetFood(), Party::GetGold(), GetGravityStrength(), GetLevelFogColor(), MPlayer::HouseMovieLoop(), Engine::Initialize(), AudioPlayer::Initialize(), VideoList::Initialize(), OutdoorLocation::Load(), LoadGame(), LoadSpellbook(), GUIWindow_MainMenu::Loop(), Application::Menu::MenuLoop(), AudioPlayer::MusicPlayTrack(), ODM_ProcessPartyActions(), ODM_UpdateUserInputAndOther(), Application::GameWindowHandler::OnMouseLeftClick(), Application::GameWindowHandler::OnMouseRightClick(), WinApiWindow::OnOSMenu(), OnPaperdollLeftClick(), OnSelectNPCDialogueOption(), GUIWindow_Spellbook::OpenSpellbook(), MPlayer::PlayFullscreenMovie(), AudioPlayer::PlaySound(), Player::PlaySound(), IndoorCameraD3D::PrepareAndDrawDebugOutline(), RenderOpenGL::PrepareDecorationsRenderList_ODM(), Render::PrepareDecorationsRenderList_ODM(), PrepareDrawLists_BLV(), PrepareToLoadBLV(), PrepareWorld(), Keyboard::ProcessInputActions(), Player::ReceiveDamage(), GUIWindow_House::Release(), Render::RenderTerrainD3D(), Engine::SecondaryInitialization(), Mouse::SetCursorImage(), ShowMM7IntroVideo_and_LoadingScreen(), sub_4451A8_press_any_key(), sub_47C3D7_get_fog_specular(), GUIWindow_TownPortalBook::Update(), GUIWindow_Spellbook::Update(), GUIWindow_GameOptions::Update(), GUIWindow_GameVideoOptions::Update(), GUIWindow_DebugMenu::Update(), UpdateActors_BLV(), UpdateActors_ODM() и Player::UseItem_DrinkPotion_etc().

CHARACTER_ATTRIBUTE_LUCK
@ CHARACTER_ATTRIBUTE_LUCK
Definition: Engine.h:527
SpriteObject
Definition: SpriteObject.h:189
spell_sprite_mapping
std::array< stru324_spell_id_to_sprite_mapping, 103 > spell_sprite_mapping
Definition: Spells.cpp:35
CHARACTER_ATTRIBUTE_SKILL_EARTH
@ CHARACTER_ATTRIBUTE_SKILL_EARTH
Definition: Engine.h:562
Party::uCurrentTimeSecond
unsigned int uCurrentTimeSecond
Definition: Party.h:277
uNumActors
size_t uNumActors
Definition: Actor.cpp:39
IndoorLocation::uNumFaceExtras
unsigned int uNumFaceExtras
Definition: Indoor.h:631
face
GLenum GLuint GLint GLenum face
Definition: SDL_opengl_glext.h:3022
CHARACTER_ATTRIBUTE_RESIST_FIRE
@ CHARACTER_ATTRIBUTE_RESIST_FIRE
Definition: Engine.h:532
dword_4E455C
int dword_4E455C
Definition: mm7_data.cpp:246
Localization::GetString
const char * GetString(unsigned int index) const
Definition: Localization.cpp:13
uSpriteID_Spell11
int uSpriteID_Spell11
Definition: mm7_data.cpp:577
pLevelDecorations
std::array< LevelDecoration, 3000 > pLevelDecorations
Definition: Decoration.cpp:8
GAME_STATE_5
@ GAME_STATE_5
Definition: Engine.h:37
RemoveQuotes
char * RemoveQuotes(char *str)
Definition: Strings.h:17
Party::TakeFood
static void TakeFood(int amount)
Definition: Party.cpp:245
pIconIDs_Turn
std::array< unsigned int, 5 > pIconIDs_Turn
Definition: mm7_data.cpp:570
Timer::uTimeElapsed
unsigned int uTimeElapsed
Definition: Time.h:133
SpriteObject::uFacing
unsigned __int16 uFacing
Definition: SpriteObject.h:220
Party::uCurrentMonth
unsigned int uCurrentMonth
Definition: Party.h:272
ODMRenderParams::outdoor_no_wavy_water
int outdoor_no_wavy_water
Definition: IRender.h:100
Party::GetPlayingTime
GameTime & GetPlayingTime()
Definition: Party.h:230
DecorationList::GetDecoration
DecorationDesc * GetDecoration(unsigned int index)
Definition: DecorationList.h:65
GameTime::GetDays
int GetDays() const
Definition: Time.h:32
PartyHasDragon
bool PartyHasDragon()
Definition: NPC.cpp:750
ITEM_RELIC_HARECS_LEATHER
@ ITEM_RELIC_HARECS_LEATHER
Definition: Items.h:169
PrepareToLoadBLV
void PrepareToLoadBLV(unsigned int bLoading)
Definition: Indoor.cpp:2310
TeleportToStartingPoint
void TeleportToStartingPoint(MapStartPoint point)
Definition: MapInfo.cpp:308
GUIProgressBar::TYPE_Fullscreen
@ TYPE_Fullscreen
Definition: GUIProgressBar.h:11
BLVFaceExtra::sCogNumber
int16_t sCogNumber
Definition: Indoor.h:511
OnMapLoad
void OnMapLoad()
Definition: Engine.cpp:2327
Party::uCurrentMinute
unsigned int uCurrentMinute
Definition: Party.h:276
Timer::Resume
void Resume()
Definition: Time.cpp:27
IconFrameTable::InitializeAnimation
void InitializeAnimation(unsigned int uIconID)
Definition: IconFrameTable.cpp:59
pSpriteFrameTable
struct SpriteFrameTable * pSpriteFrameTable
Definition: Sprites.cpp:22
MapsLongTimer::MinutesInterval
int16_t MinutesInterval
Definition: MapsLongTimer.h:17
CHARACTER_ATTRIBUTE_MANA
@ CHARACTER_ATTRIBUTE_MANA
Definition: Engine.h:529
OutdoorLocation::pBModels
BSPModelList pBModels
Definition: Outdoor.h:119
CHARACTER_ATTRIBUTE_RESIST_SPIRIT
@ CHARACTER_ATTRIBUTE_RESIST_SPIRIT
Definition: Engine.h:557
pSpriteObjects
std::array< SpriteObject, MAX_SPRITE_OBJECTS > pSpriteObjects
Definition: SpriteObject.cpp:34
pSprites_LOD
LODFile_Sprites * pSprites_LOD
Definition: LOD.cpp:20
Start_Party_Teleport_Flag
int Start_Party_Teleport_Flag
Definition: mm7_data.cpp:628
CHARACTER_ATTRIBUTE_SKILL_AIR
@ CHARACTER_ATTRIBUTE_SKILL_AIR
Definition: Engine.h:560
SpriteObject::field_60_distance_related_prolly_lod
char field_60_distance_related_prolly_lod
Definition: SpriteObject.h:234
Party_Teleport_Y_Pos
int Party_Teleport_Y_Pos
Definition: mm7_data.cpp:623
OBJECT_Item
@ OBJECT_Item
Definition: Actor.h:66
Party::GetNextActiveCharacter
int GetNextActiveCharacter()
Definition: Party.cpp:166
PARTY_BUFF_IMMOLATION
@ PARTY_BUFF_IMMOLATION
Definition: Party.h:81
uGameState
unsigned int uGameState
Definition: mm7_data.cpp:695
_evt_raw::v7
unsigned char v7
Definition: Events.h:29
GAME_STATE_FINAL_WINDOW
@ GAME_STATE_FINAL_WINDOW
Definition: Engine.h:41
EVENT_OnMapReload
@ EVENT_OnMapReload
Definition: Events.h:93
CHARACTER_ATTRIBUTE_SKILL_BOW
@ CHARACTER_ATTRIBUTE_SKILL_BOW
Definition: Engine.h:569
SpellBuff
Definition: Spells.h:147
CHARACTER_ATTRIBUTE_ATTACK
@ CHARACTER_ATTRIBUTE_ATTACK
Definition: Engine.h:549
Party::ImmolationActive
bool ImmolationActive()
Definition: Party.h:208
access
GLuint GLint GLboolean GLint GLenum access
Definition: SDL_opengl_glext.h:2165
DMGT_FIRE
@ DMGT_FIRE
Definition: Items.h:11
pIconsFrameTable
struct IconFrameTable * pIconsFrameTable
Definition: mm7_data.cpp:168
ODMRenderParams::bDoNotRenderDecorations
unsigned int bDoNotRenderDecorations
Definition: IRender.h:97
ODMRenderParams::building_gamme
int building_gamme
Definition: IRender.h:102
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
MapsLongTimer::WeeksInterval
int16_t WeeksInterval
Definition: MapsLongTimer.h:15
MapStats::GetMapInfo
MAP_TYPE GetMapInfo(const String &Str2)
Definition: MapInfo.cpp:225
SpriteObject::uSectorID
__int16 uSectorID
Definition: SpriteObject.h:223
ODMRenderParams::terrain_gamma
int terrain_gamma
Definition: IRender.h:103
AudioPlayer::PlaySound
void PlaySound(SoundID eSoundID, int pid, unsigned int uNumRepeats, int x, int y, int a7)
Definition: AudioPlayer.cpp:195
IndoorLocation::stru1
LocationTime_stru1 stru1
Definition: Indoor.h:649
EventIndex::uEventOffsetInEVT
unsigned int uEventOffsetInEVT
Definition: Events.h:9
engine
std::shared_ptr< Engine > engine
Definition: Engine.cpp:130
MapsLongTimer::SecondsInterval
int16_t SecondsInterval
Definition: MapsLongTimer.h:18
IndoorLocation::pFaceExtras
struct BLVFaceExtra * pFaceExtras
Definition: Indoor.h:632
CHARACTER_ATTRIBUTE_LEVEL
@ CHARACTER_ATTRIBUTE_LEVEL
Definition: Engine.h:548
CURRENT_SCREEN::SCREEN_CASTING
@ SCREEN_CASTING
game_viewport_width
unsigned int game_viewport_width
Definition: mm7_data.cpp:194
GameTime::GetDaysOfWeek
int GetDaysOfWeek() const
Definition: Time.h:40
MapsLongTimer::MonthsInterval
int16_t MonthsInterval
Definition: MapsLongTimer.h:14
game_starting_year
int game_starting_year
Definition: mm7_data.cpp:193
_591094_decoration
struct LevelDecoration * _591094_decoration
Definition: mm7_data.cpp:606
MapsLongTimer::YearsInterval
int16_t YearsInterval
Definition: MapsLongTimer.h:13
localization
Localization * localization
Definition: Localization.cpp:11
Party::FlyActive
bool FlyActive()
Definition: Party.h:202
DoPrepareWorld
void DoPrepareWorld(unsigned int bLoading, int _1_fullscreen_loading_2_box)
Definition: Engine.cpp:796
game_viewport_x
int game_viewport_x
Definition: mm7_data.cpp:196
GAME_STATE_LOADING_GAME
@ GAME_STATE_LOADING_GAME
Definition: Engine.h:35
PARTY_BUFF_WATER_WALK
@ PARTY_BUFF_WATER_WALK
Definition: Party.h:89
PLAYER_BUFF_WATER_WALK
@ PLAYER_BUFF_WATER_WALK
Definition: Player.h:37
Timer::bPaused
unsigned int bPaused
Definition: Time.h:127
Party::uCurrentHour
unsigned int uCurrentHour
Definition: Party.h:275
pStartingMapName
char pStartingMapName[32]
Definition: mm7_data.cpp:589
CHARACTER_ATTRIBUTE_AC_BONUS
@ CHARACTER_ATTRIBUTE_AC_BONUS
Definition: Engine.h:530
ObjectList::ObjectIDByItemID
unsigned int ObjectIDByItemID(unsigned int uItemID)
Definition: ObjectList.cpp:7
_evt_raw::_e_type
unsigned char _e_type
Definition: Events.h:26
int64_t
__int64 int64_t
Definition: alext.h:31
Party::pPlayers
std::array< Player, 4 > pPlayers
Definition: Party.h:310
CHARACTER_ATTRIBUTE_SKILL_LEARNING
@ CHARACTER_ATTRIBUTE_SKILL_LEARNING
Definition: Engine.h:571
GUIWindow::Release
virtual void Release()
Definition: GUIWindow.cpp:292
CHARACTER_ATTRIBUTE_SKILL_SPIRIT
@ CHARACTER_ATTRIBUTE_SKILL_SPIRIT
Definition: Engine.h:563
ITEM_EQUIP_TYPE
ITEM_EQUIP_TYPE
Definition: Items.h:226
uIconID_TurnStop
unsigned int uIconID_TurnStop
Definition: mm7_data.cpp:571
bDialogueUI_InitializeActor_NPC_ID
int bDialogueUI_InitializeActor_NPC_ID
Definition: mm7_data.cpp:642
dword_5C3418
int dword_5C3418
Definition: mm7_data.cpp:634
CHARACTER_ATTRIBUTE_SKILL_WATER
@ CHARACTER_ATTRIBUTE_SKILL_WATER
Definition: Engine.h:561
SpriteObject::uType
SPRITE_OBJECT_TYPE uType
Definition: SpriteObject.h:215
Party::uCurrentMonthWeek
unsigned int uCurrentMonthWeek
Definition: Party.h:273
ODMRenderParams::shading_dist_shademist
int shading_dist_shademist
Definition: IRender.h:75
OBJECT_Decoration
@ OBJECT_Decoration
Definition: Actor.h:69
GameTime::GetYears
int GetYears() const
Definition: Time.h:35
ItemGen::Reset
void Reset()
Definition: Items.cpp:133
ITEM_ARTIFACT_MINDS_EYE
@ ITEM_ARTIFACT_MINDS_EYE
Definition: Items.h:185
_evt_raw::v9
unsigned char v9
Definition: Events.h:31
Condition_Paralyzed
@ Condition_Paralyzed
Definition: Conditions.h:20
GameTime::value
int64_t value
Definition: Time.h:99
pPlayers
NZIArray< struct Player *, 5 > pPlayers
Definition: Player.cpp:46
DecorationList::GetDecorIdByName
uint16_t GetDecorIdByName(const char *pName)
Definition: DecorationList.cpp:60
SpriteObject::uSpriteFrameID
unsigned __int16 uSpriteFrameID
Definition: SpriteObject.h:224
game_viewport_height
unsigned int game_viewport_height
Definition: mm7_data.cpp:195
EventIndex::event_sequence_num
int event_sequence_num
Definition: Events.h:8
pIndoor
IndoorLocation * pIndoor
Definition: Indoor.cpp:49
Party::last_regenerated
GameTime last_regenerated
Definition: Party.h:248
sub_44861E_set_texture_indoor
void sub_44861E_set_texture_indoor(unsigned int uFaceCog, const String &filename)
Definition: Engine.cpp:1515
Level_LoadEvtAndStr
void Level_LoadEvtAndStr(const char *pLevelName)
Definition: Engine.cpp:2433
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
current_screen_type
enum CURRENT_SCREEN current_screen_type
Definition: GUIWindow.cpp:83
CHARACTER_ATTRIBUTE_SKILL_SHIELD
@ CHARACTER_ATTRIBUTE_SKILL_SHIELD
Definition: Engine.h:570
_5C35C0_force_party_death
int _5C35C0_force_party_death
Definition: mm7_data.cpp:641
CHARACTER_ATTRIBUTE_SKILL_FIRE
@ CHARACTER_ATTRIBUTE_SKILL_FIRE
Definition: Engine.h:559
sub_44861E_set_texture_outdoor
void sub_44861E_set_texture_outdoor(unsigned int uFaceCog, const String &filename)
Definition: Engine.cpp:1526
EventIndex
Definition: Events.h:6
pMapStats
struct MapStats * pMapStats
Definition: mm7_data.cpp:20
SpriteObject::uObjectDescID
unsigned __int16 uObjectDescID
Definition: SpriteObject.h:217
Party::pPartyBuffs
std::array< SpellBuff, 20 > pPartyBuffs
Definition: Party.h:309
EVENT_OnTimer
@ EVENT_OnTimer
Definition: Events.h:87
OBJECT_Actor
@ OBJECT_Actor
Definition: Actor.h:67
uLevelMapStatsID
unsigned int uLevelMapStatsID
Definition: mm7_data.cpp:713
GameTime::GetMinutesFraction
int GetMinutesFraction() const
Definition: Time.h:38
ViewingParams::uScreen_topL_Y
unsigned int uScreen_topL_Y
Definition: Viewport.h:61
area_of_effect__damage_evaluate
void area_of_effect__damage_evaluate()
Definition: Actor.cpp:5320
SpellBuff::Reset
void Reset()
Definition: Spells.cpp:337
ViewingParams::uScreen_BttmR_X
unsigned int uScreen_BttmR_X
Definition: Viewport.h:62
game_viewport_y
int game_viewport_y
Definition: mm7_data.cpp:197
_evt_raw::v8
unsigned char v8
Definition: Events.h:30
PARTY_FLAGS_1_STANDING_ON_WATER
@ PARTY_FLAGS_1_STANDING_ON_WATER
Definition: Party.h:61
CURRENT_SCREEN::SCREEN_E
@ SCREEN_E
CHARACTER_ATTRIBUTE_HEALTH
@ CHARACTER_ATTRIBUTE_HEALTH
Definition: Engine.h:528
ODMRenderParams
Definition: IRender.h:55
GAME_STATE_A
@ GAME_STATE_A
Definition: Engine.h:42
GameTime::GetSecondsFraction
int GetSecondsFraction() const
Definition: Time.h:37
_evt_raw::v6
unsigned char v6
Definition: Events.h:28
LoadLevel_InitializeLevelStr
void LoadLevel_InitializeLevelStr()
Definition: Engine.cpp:2272
Party_Spec_Motion_status_ids
std::array< int, 2 > Party_Spec_Motion_status_ids
Definition: mm7_data.cpp:473
pGUIWindow2
GUIWindow * pGUIWindow2
Definition: GUIWindow.cpp:60
NPCStats::uNumNewNPCs
unsigned int uNumNewNPCs
Definition: NPC.h:179
BLV_UpdateUserInputAndOther
void BLV_UpdateUserInputAndOther()
Definition: Indoor.cpp:3779
uIconID_TurnStart
unsigned int uIconID_TurnStart
Definition: mm7_data.cpp:574
GUIProgressBar::Initialize
bool Initialize(Type type)
Definition: GUIProgressBar.cpp:22
SpriteObject::vPosition
struct Vec3_int_ vPosition
Definition: SpriteObject.h:218
activeLevelDecoration
LevelDecoration * activeLevelDecoration
Definition: Decoration.cpp:10
ViewingParams::uScreen_topL_X
unsigned int uScreen_topL_X
Definition: Viewport.h:60
pParty
Party * pParty
Definition: Party.cpp:30
Engine_::IocContainer::ResolveVis
static Vis * ResolveVis()
Definition: IocContainer.cpp:110
ODMRenderParams::shading_dist_shade
int shading_dist_shade
Definition: IRender.h:74
MapsLongTimer::time_left_to_fire
int16_t time_left_to_fire
Definition: MapsLongTimer.h:11
Party_Teleport_Cam_Pitch
int Party_Teleport_Cam_Pitch
Definition: mm7_data.cpp:626
MapsLongTimer::IntervalHalfMins
int16_t IntervalHalfMins
Definition: MapsLongTimer.h:12
flt_6BE3AC_debug_recmod1_x_1_6
float flt_6BE3AC_debug_recmod1_x_1_6
Definition: mm7_data.cpp:718
MapsLongTimer::timer_evt_type
int16_t timer_evt_type
Definition: MapsLongTimer.h:19
LEVEL_DECORATION_INVISIBLE
@ LEVEL_DECORATION_INVISIBLE
Definition: Decoration.h:14
CHARACTER_ATTRIBUTE_SKILL_MONSTER_ID
@ CHARACTER_ATTRIBUTE_SKILL_MONSTER_ID
Definition: Engine.h:543
GameTime::GetWeeks
int GetWeeks() const
Definition: Time.h:33
NPCStats::pNewNPCData
NPCData pNewNPCData[501]
Definition: NPC.h:165
Party::days_played_without_rest
unsigned char days_played_without_rest
Definition: Party.h:290
Party::bFlying
unsigned int bFlying
Definition: Party.h:266
LocationTime_stru1::last_visit
GameTime last_visit
Definition: Indoor.h:274
EQUIP_ARMOUR
@ EQUIP_ARMOUR
Definition: Items.h:230
CHARACTER_ATTRIBUTE_SKILL_ITEM_ID
@ CHARACTER_ATTRIBUTE_SKILL_ITEM_ID
Definition: Engine.h:542
Vis
Definition: Vis.h:69
ViewingParams::uSomeY
int uSomeY
Definition: Viewport.h:56
ITEM_ARTIFACT_HERMES_SANDALS
@ ITEM_ARTIFACT_HERMES_SANDALS
Definition: Items.h:182
OutdoorLocation::loc_time
LocationTime_stru1 loc_time
Definition: Outdoor.h:132
Party::_6FC_water_lava_timer
int _6FC_water_lava_timer
Definition: Party.h:264
pDefaultSkyTexture
std::array< char, 777 > pDefaultSkyTexture
Definition: mm7_data.cpp:701
ODMRenderParams::bNoSky
unsigned int bNoSky
Definition: IRender.h:96
pGameLoadingUI_ProgressBar
GUIProgressBar * pGameLoadingUI_ProgressBar
Definition: GUIProgressBar.cpp:14
viewparams
struct ViewingParams * viewparams
Definition: mm7_data.cpp:22
OS_GetTime
unsigned int OS_GetTime()
Definition: Lin.cpp:12
ViewingParams
Definition: Viewport.h:38
no_rightlick_in_inventory
int no_rightlick_in_inventory
Definition: UIPopup.cpp:1815
Viewport::SetFOV
void SetFOV(float fov)
Definition: Viewport.cpp:62
SPRITE_SPELL_FIRE_IMMOLATION
@ SPRITE_SPELL_FIRE_IMMOLATION
Definition: SpriteObject.h:52
PlayLevelMusic
void PlayLevelMusic()
Definition: AudioPlayer.cpp:377
Condition_Dead
@ Condition_Dead
Definition: Conditions.h:22
CURRENT_SCREEN::SCREEN_HOUSE
@ SCREEN_HOUSE
MM7Initialization
void MM7Initialization()
Definition: Engine.cpp:1287
pLevelEVT
std::array< char, 9216 > pLevelEVT
Definition: Events.cpp:54
_5773B8_event_timer
GameTime _5773B8_event_timer
Definition: mm7_data.cpp:601
SPELL_FIRE_IMMOLATION
@ SPELL_FIRE_IMMOLATION
Definition: Spells.h:20
ITEM_ARTIFACT_HEROS_BELT
@ ITEM_ARTIFACT_HEROS_BELT
Definition: Items.h:188
Party::_46A89E_immolation_effect
int _46A89E_immolation_effect(int *affected, int affectedArrSize, int effectRange)
Definition: Party.cpp:1144
Party_Teleport_X_Pos
int Party_Teleport_X_Pos
Definition: mm7_data.cpp:622
CHARACTER_ATTRIBUTE_SKILL_MIND
@ CHARACTER_ATTRIBUTE_SKILL_MIND
Definition: Engine.h:564
PARTY_BUFF_HASTE
@ PARTY_BUFF_HASTE
Definition: Party.h:79
GUIProgressBar::TYPE_Box
@ TYPE_Box
Definition: GUIProgressBar.h:12
GAME_STATE_STARTING_NEW_GAME
@ GAME_STATE_STARTING_NEW_GAME
Definition: Engine.h:38
uIconID_CharacterFrame
int uIconID_CharacterFrame
Definition: mm7_data.cpp:573
Vis::_4C1A02
void _4C1A02()
Definition: Vis.cpp:427
CHARACTER_ATTRIBUTE_RESIST_AIR
@ CHARACTER_ATTRIBUTE_RESIST_AIR
Definition: Engine.h:533
PLAYER_CLASS_LICH
@ PLAYER_CLASS_LICH
Definition: Player.h:251
v1
GLfloat GLfloat v1
Definition: SDL_opengl_glext.h:694
CHARACTER_ATTRIBUTE_SKILL_STEALING
@ CHARACTER_ATTRIBUTE_SKILL_STEALING
Definition: Engine.h:540
SpriteObject::spell_id
int spell_id
Definition: SpriteObject.h:228
CHARACTER_ATTRIBUTE_WILLPOWER
@ CHARACTER_ATTRIBUTE_WILLPOWER
Definition: Engine.h:523
Log::Warning
void Warning(const wchar_t *pFormat,...)
Definition: Log.cpp:28
CURRENT_SCREEN::SCREEN_CHARACTERS
@ SCREEN_CHARACTERS
pIcons_LOD
LODFile_IconsBitmaps * pIcons_LOD
Definition: LOD.cpp:12
AudioPlayer::StopChannels
void StopChannels(int uStartChannel, int uEndChannel)
Definition: AudioPlayer.cpp:331
CHARACTER_ATTRIBUTE_SKILL_ALCHEMY
@ CHARACTER_ATTRIBUTE_SKILL_ALCHEMY
Definition: Engine.h:539
pActors
std::array< Actor, 500 > pActors
Definition: Actor.cpp:38
Condition_Zombie
@ Condition_Zombie
Definition: Conditions.h:25
Party_Teleport_Cam_Yaw
int Party_Teleport_Cam_Yaw
Definition: mm7_data.cpp:625
Party::ImmolationSkillLevel
int ImmolationSkillLevel()
Definition: Party.h:211
ODM_LoadAndInitialize
void ODM_LoadAndInitialize(const String &pFilename, ODMRenderParams *thisa)
Definition: Outdoor.cpp:3788
GUIProgressBar::Reset
void Reset(uint8_t uMaxProgress)
Definition: GUIProgressBar.cpp:78
InitializeTurnBasedAnimations
void InitializeTurnBasedAnimations(void *_this)
Definition: Engine.cpp:1479
uNumLevelDecorations
size_t uNumLevelDecorations
Definition: Decoration.cpp:9
window
EGLSurface EGLNativeWindowType * window
Definition: SDL_egl.h:1580
Party::uFlags
unsigned int uFlags
Definition: Party.h:313
f
GLfloat f
Definition: SDL_opengl_glext.h:1873
CHARACTER_ATTRIBUTE_RESIST_MIND
@ CHARACTER_ATTRIBUTE_RESIST_MIND
Definition: Engine.h:536
GameTime::GetHoursOfDay
int GetHoursOfDay() const
Definition: Time.h:39
_strrev
char * _strrev(char *str)
Definition: PlatformLinux.h:16
MapsLongTimers_count
int MapsLongTimers_count
Definition: mm7_data.cpp:630
_evt_raw::v10
unsigned char v10
Definition: Events.h:32
Transition_StopSound_Autosave
void Transition_StopSound_Autosave(const char *pMapName, MapStartPoint start_point)
Definition: Engine.cpp:2464
stru_50C198
stru319 stru_50C198
Definition: Actor.cpp:41
LEVEL_Outdoor
@ LEVEL_Outdoor
Definition: Indoor.h:287
Timer::Pause
void Pause()
Definition: Time.cpp:19
GAME_STATE_PARTY_DIED
@ GAME_STATE_PARTY_DIED
Definition: Engine.h:40
ODMRenderParams::outdoor_no_mist
int outdoor_no_mist
Definition: IRender.h:101
LoadEventsToBuffer
unsigned int LoadEventsToBuffer(const char *pContainerName, char *pBuffer, unsigned int uBufferSize)
Definition: Events.cpp:59
CHARACTER_ATTRIBUTE_MELEE_DMG_MIN
@ CHARACTER_ATTRIBUTE_MELEE_DMG_MIN
Definition: Engine.h:551
EVENT_OnLongTimer
@ EVENT_OnLongTimer
Definition: Events.h:94
value
EGLSyncKHR EGLint EGLint * value
Definition: SDL_egl.h:899
ViewingParams::uSomeZ
int uSomeZ
Definition: Viewport.h:57
uLevelStrFileSize
unsigned int uLevelStrFileSize
Definition: Events.cpp:50
pGUIWindow_ScrollWindow
GUIWindow * pGUIWindow_ScrollWindow
Definition: GUIWindow.cpp:52
SpellBuff::expire_time
GameTime expire_time
Definition: Spells.h:165
Party::GetFood
int GetFood() const
Definition: Party.cpp:272
LevelDecoration
Definition: Decoration.h:20
CHARACTER_ATTRIBUTE_RANGED_DMG_MIN
@ CHARACTER_ATTRIBUTE_RANGED_DMG_MIN
Definition: Engine.h:555
pCurrentMapName
String pCurrentMapName
Definition: mm7_data.cpp:712
LoadLevel_InitializeLevelEvt
void LoadLevel_InitializeLevelEvt()
Definition: Events.cpp:108
uLevelEVT_Size
unsigned int uLevelEVT_Size
Definition: Events.cpp:52
IconFrameTable::FindIcon
unsigned int FindIcon(const char *pIconName)
Definition: IconFrameTable.cpp:31
pLevelEVT_Index
std::array< EventIndex, 4400 > pLevelEVT_Index
Definition: Events.cpp:55
flt_6BE3A8_debug_recmod2
float flt_6BE3A8_debug_recmod2
Definition: mm7_data.cpp:717
ViewingParams::uSomeX
int uSomeX
Definition: Viewport.h:55
GameTime::GetWeeksOfMonth
int GetWeeksOfMonth() const
Definition: Time.h:42
ViewingParams::_443365
void _443365()
Definition: Viewport.cpp:177
GAME_STATE_PLAYING
@ GAME_STATE_PLAYING
Definition: Engine.h:32
pMiscTimer
Timer * pMiscTimer
Definition: Time.cpp:7
game_viewport_w
int game_viewport_w
Definition: mm7_data.cpp:199
BLVFaceExtra::face_id
int16_t face_id
Definition: Indoor.h:505
CURRENT_SCREEN::SCREEN_INPUT_BLV
@ SCREEN_INPUT_BLV
LevelDecoration::uDecorationDescID
uint16_t uDecorationDescID
Definition: Decoration.h:26
Condition_Cursed
@ Condition_Cursed
Definition: Conditions.h:8
pLevelStr
std::array< char, 9216 > pLevelStr
Definition: Events.cpp:53
LEVEL_Indoor
@ LEVEL_Indoor
Definition: Indoor.h:286
PARTY_FLAGS_2_RUNNING
@ PARTY_FLAGS_2_RUNNING
Definition: Party.h:66
_6807E0_num_decorations_with_sounds_6807B8
int _6807E0_num_decorations_with_sounds_6807B8
Definition: mm7_data.cpp:686
SpriteObject::Create
int Create(int yaw, int pitch, int a4, int a5)
Definition: SpriteObject.cpp:56
SpriteObject::containing_item
struct ItemGen containing_item
Definition: SpriteObject.h:227
CHARACTER_ATTRIBUTE_ENDURANCE
@ CHARACTER_ATTRIBUTE_ENDURANCE
Definition: Engine.h:524
OutdoorLocation::SetFog
void SetFog()
Definition: Outdoor.cpp:483
EventIndex::uEventID
int uEventID
Definition: Events.h:7
Party::pHirelings
std::array< NPCData, 2 > pHirelings
Definition: Party.h:311
OBJECT_Player
@ OBJECT_Player
Definition: Actor.h:68
game_ui_status_bar_event_string_time_left
unsigned int game_ui_status_bar_event_string_time_left
Definition: mm7_data.cpp:639
PLAYER_CLASS_WARLOCK
@ PLAYER_CLASS_WARLOCK
Definition: Player.h:247
uIconID_TurnHour
unsigned int uIconID_TurnHour
Definition: mm7_data.cpp:572
pViewport
struct Viewport * pViewport
Definition: mm7_data.cpp:21
ODMRenderParams::uPickDepth
int uPickDepth
Definition: IRender.h:73
GameTime::GetMonthsOfYear
int GetMonthsOfYear() const
Definition: Time.h:43
CURRENT_SCREEN::SCREEN_CHANGE_LOCATION
@ SCREEN_CHANGE_LOCATION
CURRENT_SCREEN::SCREEN_GAME
@ SCREEN_GAME
SpriteObject::uSoundID
unsigned __int16 uSoundID
Definition: SpriteObject.h:221
_evt_raw::v11
unsigned char v11
Definition: Events.h:33
SpriteFrameTable::FastFindSprite
int FastFindSprite(const char *pSpriteName)
Definition: Sprites.cpp:243
dword_507BF0_is_there_popup_onscreen
int dword_507BF0_is_there_popup_onscreen
Definition: mm7_data.cpp:556
Party::uCurrentDayOfMonth
unsigned int uCurrentDayOfMonth
Definition: Party.h:274
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
pODMRenderParams
ODMRenderParams * pODMRenderParams
Definition: Outdoor.cpp:49
GUIProgressBar::Release
void Release()
Definition: GUIProgressBar.cpp:88
CURRENT_SCREEN::SCREEN_NPC_DIALOGUE
@ SCREEN_NPC_DIALOGUE
EVENT_OnMapLeave
@ EVENT_OnMapLeave
Definition: Events.h:109
Party_Teleport_Z_Speed
int Party_Teleport_Z_Speed
Definition: mm7_data.cpp:627
NPCData::bHasUsedTheAbility
int bHasUsedTheAbility
Definition: NPC.h:100
SpriteObject::spell_level
int spell_level
Definition: SpriteObject.h:229
SpellBuff::uCaster
unsigned __int8 uCaster
Definition: Spells.h:169
Condition_Weak
@ Condition_Weak
Definition: Conditions.h:9
CHARACTER_ATTRIBUTE_ACCURACY
@ CHARACTER_ATTRIBUTE_ACCURACY
Definition: Engine.h:525
free_book_subwindow
void free_book_subwindow()
Definition: GUIWindow.cpp:1025
SpriteObject::spell_target_pid
int spell_target_pid
Definition: SpriteObject.h:233
DecorationDesc_mm6::uSoundID
int16_t uSoundID
Definition: DecorationList.h:45
MapsLongTimer
Definition: MapsLongTimer.h:6
flt_6BE3A4_debug_recmod1
float flt_6BE3A4_debug_recmod1
Definition: mm7_data.cpp:716
pLevelStrOffsets
std::array< unsigned int, 500 > pLevelStrOffsets
Definition: Events.cpp:48
uint
unsigned int uint
Definition: MM7.h:4
GameTime::GetMonths
int GetMonths() const
Definition: Time.h:34
uActiveCharacter
unsigned int uActiveCharacter
Definition: mm7_data.cpp:555
v3
GLfloat GLfloat GLfloat GLfloat v3
Definition: SDL_opengl_glext.h:696
_evt_raw
Definition: Events.h:20
uLevelEVT_NumEvents
signed int uLevelEVT_NumEvents
Definition: Events.cpp:51
CURRENT_SCREEN::SCREEN_REST
@ SCREEN_REST
pNPCStats
struct NPCStats * pNPCStats
Definition: NPC.cpp:29
BSPModel::pFaces
std::vector< ODMFace > pFaces
Definition: BSPModel.h:190
CHARACTER_EXPRESSION_37
@ CHARACTER_EXPRESSION_37
Definition: Player.h:379
ODMFace
Definition: BSPModel.h:93
_6BE3A0_fov
float _6BE3A0_fov
Definition: mm7_data.cpp:715
PLAYER_BUFF_REGENERATION
@ PLAYER_BUFF_REGENERATION
Definition: Player.h:26
ODMRenderParams::outdoor_grid_band_3
int outdoor_grid_band_3
Definition: IRender.h:93
PARTY_BUFF_FLY
@ PARTY_BUFF_FLY
Definition: Party.h:78
pBitmaps_LOD
LODFile_IconsBitmaps * pBitmaps_LOD
Definition: LOD.cpp:16
DecorationList::InitializeDecorationSprite
void InitializeDecorationSprite(unsigned int uDecID)
Definition: DecorationList.cpp:45
SpriteObject::spell_skill
int spell_skill
Definition: SpriteObject.h:230
GAME_STATE_NEWGAME_OUT_GAMEMENU
@ GAME_STATE_NEWGAME_OUT_GAMEMENU
Definition: Engine.h:36
Condition_Unconcious
@ Condition_Unconcious
Definition: Conditions.h:21
AudioPlayer
Definition: AudioPlayer.h:111
MapsLongTimersList
MapsLongTimer MapsLongTimersList[100]
Definition: mm7_data.cpp:165
_evt_raw::v5
unsigned char v5
Definition: Events.h:27
Viewport::SetScreen
void SetScreen(int uX, int uY, int uZ, int uW)
Definition: Viewport.cpp:26
ViewingParams::bRedrawGameUI
int bRedrawGameUI
Definition: Viewport.h:74
ODM_UpdateUserInputAndOther
void ODM_UpdateUserInputAndOther()
Definition: Outdoor.cpp:2115
dword_6BE364_game_settings_1
int dword_6BE364_game_settings_1
Definition: mm7_data.cpp:714
DecorationDesc
Definition: DecorationList.h:49
SoundID
SoundID
Definition: AudioPlayer.h:10
EventProcessor
void EventProcessor(int uEventID, int targetObj, int canShowMessages, int entry_line)
Definition: Events.cpp:260
CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS
@ CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS
Definition: Engine.h:550
uCurrentlyLoadedLevelType
LEVEL_TYPE uCurrentlyLoadedLevelType
Definition: Indoor.cpp:52
CHARACTER_ATTRIBUTE_SKILL_LIGHT
@ CHARACTER_ATTRIBUTE_SKILL_LIGHT
Definition: Engine.h:566
Is_out15odm_underwater
char Is_out15odm_underwater()
Definition: Outdoor.cpp:3377
IndoorLocation::pFaces
struct BLVFace * pFaces
Definition: Indoor.h:630
s_data_path
static std::string s_data_path
Definition: Engine.cpp:122
uLevel_StartingPointType
MapStartPoint uLevel_StartingPointType
Definition: Outdoor.cpp:46
CHARACTER_ATTRIBUTE_SPEED
@ CHARACTER_ATTRIBUTE_SPEED
Definition: Engine.h:526
LODFile_IconsBitmaps::_inlined_sub1
void _inlined_sub1()
Definition: LOD.cpp:42
CHARACTER_ATTRIBUTE_RANGED_DMG_MAX
@ CHARACTER_ATTRIBUTE_RANGED_DMG_MAX
Definition: Engine.h:556
MapsLongTimer::timer_evt_ID
int16_t timer_evt_ID
Definition: MapsLongTimer.h:9
pAudioPlayer
AudioPlayer * pAudioPlayer
Definition: AudioPlayer.cpp:20
v0
GLfloat v0
Definition: SDL_opengl_glext.h:693
Condition_Eradicated
@ Condition_Eradicated
Definition: Conditions.h:24
MapsLongTimer::HoursInterval
int16_t HoursInterval
Definition: MapsLongTimer.h:16
BSPModel
Definition: BSPModel.h:163
SOUND_StartMainChoice02
@ SOUND_StartMainChoice02
Definition: AudioPlayer.h:37
PrepareToLoadODM
void PrepareToLoadODM(unsigned int bLoading, ODMRenderParams *a2)
Definition: Engine.cpp:1319
ITEM_LICH_JAR_FULL
@ ITEM_LICH_JAR_FULL
Definition: Items.h:206
Party::floor_face_pid
int floor_face_pid
Definition: Party.h:262
ITEM_RELIC_ETHRICS_STAFF
@ ITEM_RELIC_ETHRICS_STAFF
Definition: Items.h:168
logger
Log * logger
Definition: IocContainer.cpp:47
CastSpellInfoHelpers::Cancel_Spell_Cast_In_Progress
void Cancel_Spell_Cast_In_Progress()
Definition: CastSpellInfo.cpp:4350
ODMRenderParams::Initialize
void Initialize()
Definition: Outdoor.cpp:2196
Condition_Pertified
@ Condition_Pertified
Definition: Conditions.h:23
Party::uFlags2
int uFlags2
Definition: Party.h:307
pOutdoor
OutdoorLocation * pOutdoor
Definition: Outdoor.cpp:48
ViewingParams::uScreen_BttmR_Y
unsigned int uScreen_BttmR_Y
Definition: Viewport.h:63
GUIProgressBar::Progress
void Progress()
Definition: GUIProgressBar.cpp:83
GameUI_StatusBar_OnEvent_128ms
void GameUI_StatusBar_OnEvent_128ms(const String &str)
Definition: UIStatusBar.cpp:37
SpriteObject::uAttributes
unsigned __int16 uAttributes
Definition: SpriteObject.h:222
CHARACTER_ATTRIBUTE_RANGED_ATTACK
@ CHARACTER_ATTRIBUTE_RANGED_ATTACK
Definition: Engine.h:553
Party::uCurrentYear
unsigned int uCurrentYear
Definition: Party.h:271
CHARACTER_ATTRIBUTE_SKILL_DODGE
@ CHARACTER_ATTRIBUTE_SKILL_DODGE
Definition: Engine.h:545
Actor::DamageMonsterFromParty
static void DamageMonsterFromParty(int a1, unsigned int uActorID_Monster, struct Vec3_int_ *pVelocity)
Definition: Actor.cpp:3379
PLAYER_BUFF_HASTE
@ PLAYER_BUFF_HASTE
Definition: Player.h:21
pGUIWindow_CastTargetedSpell
GUIWindow * pGUIWindow_CastTargetedSpell
Definition: GUIWindow.cpp:56
_6807B8_level_decorations_ids
std::array< int, 777 > _6807B8_level_decorations_ids
Definition: mm7_data.cpp:685
game_viewport_z
int game_viewport_z
Definition: mm7_data.cpp:198
dword_5C341C
int dword_5C341C
Definition: mm7_data.cpp:635
Party_Teleport_Z_Pos
int Party_Teleport_Z_Pos
Definition: mm7_data.cpp:624
uLevelStrNumStrings
unsigned int uLevelStrNumStrings
Definition: Events.cpp:49
ViewingParams::uSomeW
int uSomeW
Definition: Viewport.h:58
PLAYER_BUFF_PRESERVATION
@ PLAYER_BUFF_PRESERVATION
Definition: Player.h:25
MapsLongTimer::timer_evt_seq_num
int16_t timer_evt_seq_num
Definition: MapsLongTimer.h:10
CHARACTER_ATTRIBUTE_SKILL_UNARMED
@ CHARACTER_ATTRIBUTE_SKILL_UNARMED
Definition: Engine.h:546
CHARACTER_ATTRIBUTE_STRENGTH
@ CHARACTER_ATTRIBUTE_STRENGTH
Definition: Engine.h:521
pEventTimer
Timer * pEventTimer
Definition: Time.cpp:8
BLVFace::uAttributes
unsigned int uAttributes
Definition: Indoor.h:475
CHARACTER_ATTRIBUTE_RESIST_BODY
@ CHARACTER_ATTRIBUTE_RESIST_BODY
Definition: Engine.h:537
GameTime
Definition: Time.h:14
MapStartPoint_Party
@ MapStartPoint_Party
Definition: MapInfo.h:28
CHARACTER_ATTRIBUTE_SKILL_MEDITATION
@ CHARACTER_ATTRIBUTE_SKILL_MEDITATION
Definition: Engine.h:568
CHARACTER_ATTRIBUTE_INTELLIGENCE
@ CHARACTER_ATTRIBUTE_INTELLIGENCE
Definition: Engine.h:522
LODFile_Sprites::_inlined_sub1
void _inlined_sub1()
Definition: LOD.cpp:46
pObjectList
struct ObjectList * pObjectList
Definition: ObjectList.cpp:5
Party::WaterWalkActive
bool WaterWalkActive()
Definition: Party.h:205
_493938_regenerate
void _493938_regenerate()
Definition: Engine.cpp:1929
ViewingParams::field_20
int field_20
Definition: Viewport.h:64
SpellBuff::uFlags
unsigned __int8 uFlags
Definition: Spells.h:170
SaveGame
void SaveGame(bool IsAutoSAve, bool NotSaveWorld)
Definition: SaveLoad.cpp:238
CHARACTER_ATTRIBUTE_MELEE_DMG_MAX
@ CHARACTER_ATTRIBUTE_MELEE_DMG_MAX
Definition: Engine.h:552
pDecorationList
struct DecorationList * pDecorationList
Definition: DecorationList.cpp:11
SpriteObject::spell_caster_pid
int spell_caster_pid
Definition: SpriteObject.h:232
CHARACTER_ATTRIBUTE_SKILL_DARK
@ CHARACTER_ATTRIBUTE_SKILL_DARK
Definition: Engine.h:567
_evt_raw::v12
unsigned char v12
Definition: Events.h:34
MapsLongTimer::NextStartTime
GameTime NextStartTime
Definition: MapsLongTimer.h:7
Condition_Sleep
@ Condition_Sleep
Definition: Conditions.h:10
CHARACTER_ATTRIBUTE_SKILL_TRAP_DISARM
@ CHARACTER_ATTRIBUTE_SKILL_TRAP_DISARM
Definition: Engine.h:541
CHARACTER_ATTRIBUTE_RESIST_EARTH
@ CHARACTER_ATTRIBUTE_RESIST_EARTH
Definition: Engine.h:535
render
std::shared_ptr< IRender > render
Definition: RenderOpenGL.cpp:52