World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Структура OutdoorLocation

#include <Outdoor.h>

+ Граф связей класса OutdoorLocation:

Открытые члены

 OutdoorLocation ()
 
void subconstuctor ()
 
void ExecDraw (unsigned int bRedraw)
 
void PrepareActorsDrawList ()
 
void CreateDebugLocation ()
 
void Release ()
 
bool Load (const String &filename, int days_played, int respawn_interval_days, int *thisa)
 
int GetTileIdByTileMapId (signed int a2)
 
int _47ED83 (signed int a2, signed int a3)
 
int ActuallyGetSomeOtherTileInfo (signed int uX, signed int uY)
 
int DoGetHeightOnTerrain (signed int sX, signed int sZ)
 
int GetSoundIdByPosition (signed int X_pos, signed int Y_pos, int a4)
 
int UpdateDiscoveredArea (int a2, int a3, int a4)
 
bool IsMapCellFullyRevealed (signed int a2, signed int a3)
 
bool IsMapCellPartiallyRevealed (signed int a2, signed int a3)
 
bool _47F0E2 ()
 
bool PrepareDecorations ()
 
void ArrangeSpriteObjects ()
 
bool InitalizeActors (int a1)
 
bool LoadRoadTileset ()
 
bool LoadTileGroupIds ()
 
double GetFogDensityByTime ()
 
int GetSomeOtherTileInfo (int sX, int sY)
 
TileDescGetTile (int sX, int sZ)
 
TileDescDoGetTile (int uX, int uZ)
 
int GetHeightOnTerrain (int sX, int sZ)
 
bool Initialize (const String &filename, int days_played, int respawn_interval_days, int *thisa)
 
bool GetTravelDestination (signed int sPartyX, signed int sPartyZ, char *pOut, signed int a5)
 
void MessWithLUN ()
 
void UpdateSunlightVectors ()
 
void UpdateFog ()
 
int GetNumFoodRequiredToRestInCurrentPos (int x, signed int y, int z)
 
void SetFog ()
 
void Draw ()
 

Открытые статические члены

static void LoadActualSkyFrame ()
 

Открытые атрибуты

String level_filename
 
String location_filename
 
String location_file_description
 
String sky_texture_filename
 
String ground_tileset
 
OutdoorLocationTileType pTileTypes [4]
 
struct OutdoorLocationTerrain pTerrain
 
voidpCmap
 
BSPModelList pBModels
 
unsigned int numFaceIDListElems
 
uint16_tpFaceIDLIST
 
unsigned int * pOMAP
 
Texturesky_texture
 
Texturemain_tile_texture
 
int16_t field_F0
 
int16_t field_F2
 
int field_F4
 
char field_F8 [968]
 
unsigned int uNumSpawnPoints
 
struct SpawnPointMM7pSpawnPoints
 
struct DDM_DLV_Header ddm
 
LocationTime_stru1 loc_time
 
unsigned char uFullyRevealedCellOnMap [88][11]
 
unsigned char uPartiallyRevealedCellOnMap [88][11]
 
int field_CB8
 
int max_terrain_dimming_level
 
int field_CC0
 
unsigned int pSpriteIDs_LUN [8]
 
unsigned int uSpriteID_LUNFULL
 
int field_CE8
 
unsigned int uSpriteID_LUN3_4_cp
 
int field_CF0
 
unsigned int uSpriteID_LUN1_2_cp
 
int field_CF8
 
unsigned int uSpriteID_LUN1_4_cp
 
int field_D00
 
uint16_t uSpriteID_LUN_SUN
 
int16_t field_D06
 
int field_D08
 
int field_D0C
 
int field_D10
 
int field_D14
 
int inv_sunlight_x
 
int inv_sunlight_y
 
int inv_sunlight_z
 
int field_D24
 
int field_D28
 
int field_D2C
 
Vec3_int_ vSunlight
 
int field_D3C
 
int field_D40
 
int field_D44
 
int field_D48
 
int field_D4C
 
float field_D50
 
int field_D54
 
int field_D58
 
int field_D5C
 
int field_D60
 
int field_D64
 
char field_D68 [111900]
 
float fFogDensity
 
int uLastSunlightUpdateMinute
 
Loglog = nullptr
 
DecalBuilderdecal_builder = nullptr
 
SpellFxRendererspell_fx_renderer = nullptr
 
LightmapBuilderlightmap_builder = nullptr
 

Подробное описание

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

Конструктор(ы)

◆ OutdoorLocation()

OutdoorLocation::OutdoorLocation ( )

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

Перекрестные ссылки decal_builder, lightmap_builder, log, Engine_::IocContainer::ResolveDecalBuilder(), Engine_::IocContainer::ResolveLightmapBuilder(), Engine_::IocContainer::ResolveLogger(), Engine_::IocContainer::ResolveSpellFxRenderer(), spell_fx_renderer, subconstuctor() и uLastSunlightUpdateMinute.

+ Граф вызовов:

Методы

◆ subconstuctor()

void OutdoorLocation::subconstuctor ( )

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

2168  {
2169  // OutdoorLocationTerrain::OutdoorLocationTerrain(&this->pTerrain);
2170  field_F0 = 0;
2171  field_F4 = 0x40000000u;
2172  // DLVHeader::DLVHeader(&v1->ddm);
2173  pSpawnPoints = 0;
2174  pCmap = 0;
2175  pFaceIDLIST = 0;
2176  pOMAP = 0;
2177 }

Перекрестные ссылки field_F0, field_F4, pCmap, pFaceIDLIST, pOMAP и pSpawnPoints.

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

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

◆ ExecDraw()

void OutdoorLocation::ExecDraw ( unsigned int  bRedraw)

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

84  {
87  pIndoorCameraD3D->debug_flags |= ODM_RENDER_DRAW_D3D_OUTLINES;
88 
89  // if (bRedraw || true /*render->pRenderD3D*/) {
90  // pODMRenderParams->RotationToInts();
91  // sub_481ED9_MessWithODMRenderParams();
92 
93  // inlined
94 
95  //----- (00481ED9) --------------------------------------------------------
96  // void sub_481ED9_MessWithODMRenderParams() {
98  // pODMRenderParams->uNumEdges = 0;
99  // pODMRenderParams->uNumSpans = 0;
100  // pODMRenderParams->uNumSurfs = 0;
102  // pODMRenderParams->field_44 = 0;
103  //}
104 
105  //}
106 
109 
111 
112  // if (bRedraw) {
113  // sub_487DA9(); // wipes poly array feild 108 doesnt do anything
114  //}
115 
118 
119  pOutdoor->UpdateFog();
120  // pIndoorCameraD3D->sr_Reset_list_0037C();
121 
122  // if (render->pRenderD3D) // d3d - redraw always
123  {
124  SkyBillboard.CalcSkyFrustumVec(65536, 0, 0, 0, 65536, 0); // sky box frustum
125  render->DrawOutdoorSkyD3D();
126  render->RenderTerrainD3D();
127  render->DrawBuildingsD3D();
128 
129  // render->DrawBezierTerrain();
130  }
131 
134 
135  engine->PushStationaryLights(-1);
136  // engine->PrepareBloodsplats(); // not used?
137  if (bRedraw)
140  1);
141  engine->SetForceRedraw(false);
142  if (render->IsUsingSpecular())
143  lightmap_builder->uFlags |= LIGHTMAP_FLAGS_USE_SPECULAR;
144  else
145  lightmap_builder->uFlags &= ~LIGHTMAP_FLAGS_USE_SPECULAR;
146 
150 
153  render->PrepareDecorationsRenderList_ODM();
154 
155  render->DrawSpriteObjects_ODM();
156  render->TransformBillboardsAndSetPalettesODM();
157 }

Перекрестные ссылки ODMRenderParams::bDoNotRenderDecorations, SkyBillboardStruct::CalcSkyFrustumVec(), IndoorCameraD3D::debug_flags, ViewingParams::draw_d3d_outlines, engine, lightmap_builder, pIndoorCameraD3D, pMobileLightsStack, pODMRenderParams, pOutdoor, pParty, PrepareActorsDrawList(), pStationaryLightsStack, render, SkyBillboard, Party::uCurrentMinute, LightmapBuilder::uFlags, uLastSunlightUpdateMinute, ODMRenderParams::uMapGridCellX, ODMRenderParams::uMapGridCellZ, ODMRenderParams::uNumBillboards, uNumBillboardsToDraw, uNumDecorationsDrawnThisFrame, LightsStack_StationaryLight_::uNumLightsActive, LightsStack_MobileLight_::uNumLightsActive, ODMRenderParams::uNumPolygons, uNumSpritesDrawnThisFrame, UpdateDiscoveredArea(), UpdateFog(), UpdateSunlightVectors(), viewparams, Party::vPosition, WorldPosToGridCellX() и WorldPosToGridCellZ().

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

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

◆ PrepareActorsDrawList()

void OutdoorLocation::PrepareActorsDrawList ( )

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

1722  {
1723  int z; // esi@5
1724  float v4; // ST48_4@8
1725  unsigned int Angle_To_Cam; // eax@11
1726  signed int Cur_Action_Time; // eax@16
1727  SpriteFrame *v14; // eax@24
1728  SpriteFrame *v15; // ebx@25
1729  // int v22; // ecx@41
1730  // int v23; // ST5C_4@43
1731  int Sprite_Octant; // [sp+24h] [bp-3Ch]@11
1732  // int v48; // [sp+30h] [bp-30h]@41
1733  signed int v49; // [sp+34h] [bp-2Ch]@5
1734  // int v51; // [sp+34h] [bp-2Ch]@41
1735  int y; // [sp+40h] [bp-20h]@5
1736  int x; // [sp+44h] [bp-1Ch]@5
1737  __int16 v62; // [sp+5Ch] [bp-4h]@25
1738 
1739  for (int i = 0; i < uNumActors; ++i) {
1740  pActors[i].uAttributes &= ~ACTOR_VISIBLE;
1741  if (pActors[i].uAIState == Removed || pActors[i].uAIState == Disabled) {
1742  continue;
1743  }
1744 
1745  z = pActors[i].vPosition.z;
1746  v49 = 0;
1747  x = pActors[i].vPosition.x;
1748  y = pActors[i].vPosition.y;
1749  if (pActors[i].uAIState == Summoned) {
1750  if (PID_TYPE(pActors[i].uSummonerID) != OBJECT_Actor ||
1751  pActors[PID_ID(pActors[i].uSummonerID)]
1752  .pMonsterInfo.uSpecialAbilityDamageDiceSides != 1) {
1753  z += floorf(pActors[i].uActorHeight * 0.5f + 0.5f);
1754  } else {
1755  v49 = 1;
1756  spell_fx_renderer->_4A7F74(pActors[i].vPosition.x, pActors[i].vPosition.y, z);
1757  v4 = (1.0 - (double)pActors[i].uCurrentActionTime /
1758  (double)pActors[i].uCurrentActionLength) *
1759  (double)(2 * pActors[i].uActorHeight);
1760  z -= floorf(v4 + 0.5f);
1761  if (z > pActors[i].vPosition.z) z = pActors[i].vPosition.z;
1762  }
1763  }
1764 
1765  Angle_To_Cam = stru_5C6E00->Atan2(
1766  pActors[i].vPosition.x - pIndoorCameraD3D->vPartyPos.x,
1767  pActors[i].vPosition.y - pIndoorCameraD3D->vPartyPos.y);
1768 
1769  // int v9 = 0;
1770  // HEXRAYS_LOWORD(v9) = pActors[i].uYawAngle;
1771  Sprite_Octant = ((signed int)(stru_5C6E00->uIntegerPi +
1772  ((signed int)stru_5C6E00->uIntegerPi >> 3) + pActors[i].uYawAngle -
1773  Angle_To_Cam) >> 8) & 7;
1774 
1775 
1776  if (pParty->bTurnBasedModeOn) {
1777  Cur_Action_Time = pActors[i].uCurrentActionTime;
1778  if (pActors[i].uCurrentActionAnimation == 1)
1779  Cur_Action_Time = 32 * i + pMiscTimer->uTotalGameTimeElapsed;
1780  } else {
1781  Cur_Action_Time = pActors[i].uCurrentActionTime;
1782  if (pActors[i].uCurrentActionAnimation == 1)
1783  Cur_Action_Time = 32 * i + pEventTimer->uTotalGameTimeElapsed;
1784  }
1785 
1786  if (pActors[i].pActorBuffs[ACTOR_BUFF_STONED].Active() ||
1787  pActors[i].pActorBuffs[ACTOR_BUFF_PARALYZED].Active())
1788  Cur_Action_Time = 0;
1789  if (pActors[i].uAIState == Summoned && !v49)
1790  v14 = pSpriteFrameTable->GetFrame(uSpriteID_Spell11, Cur_Action_Time);
1791  else if (pActors[i].uAIState == Resurrected)
1793  pActors[i].pSpriteIDs[pActors[i].uCurrentActionAnimation], Cur_Action_Time);
1794  else
1795  v14 = pSpriteFrameTable->GetFrame(
1796  pActors[i].pSpriteIDs[pActors[i].uCurrentActionAnimation], Cur_Action_Time);
1797 
1798  // no sprite frame to draw
1799  if (v14->icon_name == "null") continue /* __debugbreak()*/;
1800  if (v14->hw_sprites[0] == nullptr) __debugbreak();
1801 
1802  v62 = 0;
1803  v15 = v14;
1804  // v16 = (int *)v14->uFlags;
1805  if (v14->uFlags & 2) v62 = 2;
1806  if (v14->uFlags & 0x40000) v62 |= 0x40;
1807  if (v14->uFlags & 0x20000) v62 |= 0x80;
1808  if ((256 << Sprite_Octant) & v14->uFlags) v62 |= 4;
1809  if (v15->uGlowRadius) {
1810  pMobileLightsStack->AddLight(x, y, z, 0, v15->uGlowRadius, 0xFFu,
1811  0xFFu, 0xFFu, _4E94D3_light_type);
1812  }
1813 
1814  int view_x = 0, view_y = 0, view_z = 0;
1815  bool visible = pIndoorCameraD3D->ViewClip(x, y, z, &view_x, &view_y, &view_z);
1816 
1817  if (visible) {
1818  if (abs(view_x) >= abs(view_y)) {
1819  int projected_x = 0;
1820  int projected_y = 0;
1821  pIndoorCameraD3D->Project(view_x, view_y, view_z, &projected_x,
1822  &projected_y);
1823 
1824  if (uNumBillboardsToDraw >= 500) return;
1827 
1828  pActors[i].uAttributes |= ACTOR_VISIBLE;
1829  pBillboardRenderList[uNumBillboardsToDraw - 1].hwsprite = v15->hw_sprites[Sprite_Octant];
1830 
1831  if (v15->hw_sprites[Sprite_Octant]->texture->GetHeight() == 0 || v15->hw_sprites[Sprite_Octant]->texture->GetWidth() == 0)
1832  __debugbreak();
1833 
1836 
1838  fixed::FromInt(view_x);
1841 
1842  if (pActors[i].pActorBuffs[ACTOR_BUFF_SHRINK].Active() &&
1843  pActors[i].pActorBuffs[ACTOR_BUFF_SHRINK].uPower > 0) {
1845  .screenspace_projection_factor_y = 1.0f / pActors[i].pActorBuffs[ACTOR_BUFF_SHRINK].uPower *
1848  } else if (pActors[i].pActorBuffs[ACTOR_BUFF_MASS_DISTORTION].Active()) {
1852  }
1853 
1863 
1867  pMonsterList->pMonsters[pActors[i].pMonsterInfo.uID - 1].sTintColor; // *((int *)&v35[v36] - 36);
1868  if (pActors[i].pActorBuffs[ACTOR_BUFF_STONED].Active()) {
1870  v62 | 0x200;
1871  }
1872  }
1873  }
1874  }
1875 }

Перекрестные ссылки SpellFxRenderer::_4A7F74(), SpellFxRenderer::_4A806F_get_mass_distortion_value(), _4E94D3_light_type, __debugbreak(), ACTOR_BUFF_MASS_DISTORTION, ACTOR_BUFF_PARALYZED, ACTOR_BUFF_SHRINK, ACTOR_BUFF_STONED, LightsStack_MobileLight_::AddLight(), stru193_math::Atan2(), Party::bTurnBasedModeOn, RenderBillboard::dimming_level, Disabled, RenderBillboard::field_14_actor_id, RenderBillboard::field_1E, fixed::FromInt(), fixed::GetFloat(), SpriteFrameTable::GetFrame(), SpriteFrameTable::GetFrameBy_x(), Image::GetHeight(), Image::GetWidth(), SpriteFrame::hw_sprites, RenderBillboard::hwsprite, SpriteFrame::icon_name, ODMRenderParams::int_fov_rad, OBJECT_Actor, RenderBillboard::object_pid, pActors, pBillboardRenderList, pEventTimer, pIndoorCameraD3D, pMiscTimer, pMobileLightsStack, pMonsterList, MonsterList::pMonsters, pODMRenderParams, pParty, IndoorCameraD3D::Project(), RenderBillboard::pSpriteFrame, pSpriteFrameTable, Removed, Resurrected, SpriteFrame::scale, RenderBillboard::screen_space_x, RenderBillboard::screen_space_y, RenderBillboard::screen_space_z, RenderBillboard::screenspace_projection_factor_x, RenderBillboard::screenspace_projection_factor_y, spell_fx_renderer, RenderBillboard::sTintColor, MonsterDesc::sTintColor, stru_5C6E00, Summoned, Sprite::texture, SpriteFrame::uFlags, SpriteFrame::uGlowRadius, RenderBillboard::uIndoorSectorID, stru193_math::uIntegerPi, uNumActors, uNumBillboardsToDraw, uNumSpritesDrawnThisFrame, RenderBillboard::uPalette, SpriteFrame::uPaletteIndex, uSpriteID_Spell11, Timer::uTotalGameTimeElapsed, IndoorCameraD3D::ViewClip(), IndoorCameraD3D::vPartyPos, RenderBillboard::world_x, RenderBillboard::world_y, RenderBillboard::world_z, Vec2< T >::x и Vec2< T >::y.

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

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

◆ CreateDebugLocation()

void OutdoorLocation::CreateDebugLocation ( )

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

902  {
903  this->level_filename = "blank";
904  this->location_filename = "i6.odm";
905  this->location_file_description = "MM6 Outdoor v1.00";
906 
907  this->pTileTypes[0].tileset = Tileset_Grass;
908  this->pTileTypes[1].tileset = Tileset_Water;
911  this->LoadTileGroupIds();
912  this->LoadRoadTileset();
913  free(this->pSpawnPoints);
914  this->pSpawnPoints = 0;
915  this->pTerrain.Initialize();
916  this->pTerrain.ZeroLandscape();
917  this->pTerrain.FillDMap(0, 0, 128, 128);
918 
919  free(this->pCmap);
920  this->pCmap = malloc(0x8000);
921 
922  free(this->pOMAP);
923  this->pOMAP = (unsigned int *)malloc(0x10000);
924  if (this->pOMAP == nullptr) {
925  log->Warning(L"Malloc error - pOMAP");
926  __debugbreak();
927  } else {
928  memset(this->pOMAP, 0, 0x10000);
929  }
930 
931  this->numFaceIDListElems = 0;
932 
933  free(this->pFaceIDLIST);
934  this->pFaceIDLIST = (unsigned __int16 *)malloc(2);
935  if (this->pFaceIDLIST == nullptr) {
936  logger->Warning(L"Malloc fail - pfaceidlist");
937  __debugbreak();
938  } else {
939  this->pFaceIDLIST[0] = 0;
940  }
941 
944 
946  // this->sMainTile_BitmapID =
947  // pBitmaps_LOD->LoadTexture(this->ground_tileset.c_str());
949 }

Перекрестные ссылки __debugbreak(), assets, byte_6BE124_cfg_textures_DefaultGroundTexture, OutdoorLocationTerrain::FillDMap(), AssetsManager::GetBitmap(), ground_tileset, OutdoorLocationTerrain::Initialize(), level_filename, LoadRoadTileset(), LoadTileGroupIds(), location_file_description, location_filename, log, logger, main_tile_texture, numFaceIDListElems, pCmap, pDefaultSkyTexture, pFaceIDLIST, pOMAP, pSpawnPoints, pTerrain, pTileTypes, sky_texture, sky_texture_filename, OutdoorLocationTileType::tileset, Tileset_Badlands, Tileset_Grass, Tileset_RoadGrassCobble, Tileset_Water, Log::Warning() и OutdoorLocationTerrain::ZeroLandscape().

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

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

◆ Release()

void OutdoorLocation::Release ( )

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

952  {
953  this->level_filename = "blank";
954  this->location_filename = "default.odm";
955  this->location_file_description = "MM6 Outdoor v1.00";
956  this->sky_texture_filename = "sky043";
957  this->ground_tileset = "hm005";
958 
959  while (!pBModels.empty()) {
960  pBModels.back().Release();
961  pBModels.pop_back();
962  }
963 
964  free(pSpawnPoints);
965  pSpawnPoints = nullptr;
966  uNumSpawnPoints = 0;
967 
968  pTerrain.Release();
969 
970  free(pCmap);
971  pCmap = nullptr;
972  free(pOMAP);
973  pOMAP = nullptr;
974  free(pFaceIDLIST);
975  pFaceIDLIST = nullptr;
976  free(pTerrainNormals);
977  pTerrainNormals = nullptr;
978 }

Перекрестные ссылки ground_tileset, level_filename, location_file_description, location_filename, pBModels, pCmap, pFaceIDLIST, pOMAP, pSpawnPoints, pTerrain, pTerrainNormals, OutdoorLocationTerrain::Release(), sky_texture_filename и uNumSpawnPoints.

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

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

◆ Load()

bool OutdoorLocation::Load ( const String filename,
int  days_played,
int  respawn_interval_days,
int *  thisa 
)

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

981  {
982  if (engine->IsUnderwater()) {
986  pPaletteManager->SetMistColor(37, 143, 92);
987  } else {
991  if (pPaletteManager->pPalette_mistColor[0] != 0x80 ||
992  pPaletteManager->pPalette_mistColor[1] != 0x80 ||
993  pPaletteManager->pPalette_mistColor[2] != 0x80) {
994  pPaletteManager->SetMistColor(128, 128, 128);
996  }
997  }
998 
1000 
1001  assert(sizeof(BSPModelData) == 188);
1002 
1003  if (!pGames_LOD->DoesContainerExist(filename)) {
1004  Error("Unable to find %s in Games.LOD", filename.c_str());
1005  }
1006 
1007  String minimap_filename = filename.substr(0, filename.length() - 4);
1008  viewparams->location_minimap = assets->GetImage_Solid(minimap_filename);
1009 
1010  auto odm_filename = String(filename);
1011  odm_filename.replace(odm_filename.length() - 4, 4, ".odm");
1012 
1013  void *pSrcMem = pGames_LOD->LoadCompressed(odm_filename);
1014  uint8_t *pSrc = (uint8_t*)pSrcMem;
1015 
1016 #pragma pack(push, 1)
1017  struct ODMInfo {
1018  char level_filename[32];
1019  char location_filename[32];
1020  char location_file_description[32];
1021  char sky_texture_filename[32];
1022  char ground_tileset[32];
1023  };
1024 #pragma pack(pop)
1025 
1026  static_assert(sizeof(ODMInfo) == 160, "Wrong type size");
1027  ODMInfo *odm_info = (ODMInfo*)pSrc;
1028  this->level_filename = String(odm_info->level_filename, 32);
1029  this->location_filename = String(odm_info->level_filename, 32);
1030  this->location_file_description = String(odm_info->location_file_description, 32);
1031  this->sky_texture_filename = String(odm_info->sky_texture_filename, 32);
1032  this->ground_tileset = String(odm_info->ground_tileset, 32);
1033  pSrc += sizeof(ODMInfo);
1034 
1035  static_assert(sizeof(OutdoorLocationTileType) == 4, "Wrong type size");
1036  memcpy(pTileTypes, pSrc, sizeof(pTileTypes));
1037  pSrc += sizeof(pTileTypes);
1038 
1039  LoadTileGroupIds();
1040  LoadRoadTileset();
1041  this->ground_tileset = "grastyl";
1042 
1043  pGameLoadingUI_ProgressBar->Progress(); // прогресс загрузки
1044 
1045  // *******************Terrain**************************//
1046  pTerrain.Initialize();
1047  memcpy(pTerrain.pHeightmap, pSrc, 0x4000); // карта высот
1048  pSrc += 0x4000;
1049 
1050  memcpy(pTerrain.pTilemap, pSrc, 0x4000); // карта тайлов
1051  pSrc += 0x4000;
1052 
1053  memcpy(pTerrain.pAttributemap, pSrc, 0x4000); // карта аттрибутов
1054  pSrc += 0x4000;
1055 
1056  // v43 = (char *)v43 + 16384;
1057  // v108 = (int)ptr_D4;
1058  free(pCmap);
1059  pCmap = malloc(0x8000);
1060  pTerrain.FillDMap(0, 0, 128, 128); //
1061 
1062  pGameLoadingUI_ProgressBar->Progress(); // прогресс загрузки
1063 
1064  memcpy(&uNumTerrainNormals, pSrc, 4); // количество нормалей
1065  pSrc += 4;
1066  memcpy(pTerrainSomeOtherData.data(), pSrc, 0x20000);
1067  pSrc += 0x20000;
1068 
1069  memcpy(pTerrainNormalIndices.data(), pSrc, 0x10000); //индексы нормалей
1070  pSrc += 0x10000;
1071 
1072  pTerrainNormals = (Vec3_float_ *)malloc(
1073  sizeof(Vec3_float_) * uNumTerrainNormals); //карта нормалей
1074  memcpy(pTerrainNormals, pSrc, 12 * uNumTerrainNormals);
1075  pSrc += 12 * uNumTerrainNormals;
1076 
1077  pGameLoadingUI_ProgressBar->Progress(); // прогресс загрузки
1078 
1079  // ************BModels************************//
1080  pSrc = pBModels.Load(pSrc);
1081  pGameLoadingUI_ProgressBar->Progress(); // прогресс загрузки
1082 
1083  // ******************Decorations**********************//
1084  memcpy(&uNumLevelDecorations, pSrc, 4);
1085  // uSourceLen = (char *)uSourceLen + 4;
1086  if (uNumLevelDecorations > 3000) logger->Warning(L"Can't load file! Too many decorations");
1087 
1088  assert(sizeof(LevelDecoration) == 32);
1089  // pFilename = (char *)(32 * uNumLevelDecorations);
1090  memcpy(pLevelDecorations.data(), pSrc + 4,
1092  pSrc += 4 + sizeof(LevelDecoration) * uNumLevelDecorations;
1093 
1095 
1096  // v151 = 0;
1097  // uSourceLen = (char *)uSourceLen + (int)pFilename;
1098  for (uint i = 0; i < uNumLevelDecorations; ++i) {
1099  char name[256];
1100  memcpy(name, pSrc, sizeof(LevelDecoration));
1101  pSrc += sizeof(LevelDecoration);
1102  pLevelDecorations[i].uDecorationDescID =
1104  }
1105 
1106  pGameLoadingUI_ProgressBar->Progress(); // прогресс загрузки
1107 
1108  memcpy(&numFaceIDListElems, pSrc, 4);
1109 
1110  // uSourceLen = (char *)uSourceLen + 4;
1111  // v108 = (int)pFaceIDLIST;
1112  free(pFaceIDLIST);
1113  pFaceIDLIST = nullptr;
1114 
1115  uint faceIDListSize = 2 * numFaceIDListElems;
1116  pFaceIDLIST = (unsigned short *)malloc(faceIDListSize);
1117 
1118  memcpy(pFaceIDLIST, pSrc + 4, faceIDListSize);
1119  pSrc += 4 + faceIDListSize;
1120 
1121  // uSourceLen = (char *)uSourceLen + (int)pFilename;
1122  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1123 
1124  free(pOMAP);
1125  // v69 = malloc(0, 0x10000u, "OMAP");
1126  pOMAP = (unsigned int *)malloc(0x10000);
1127  // v108 = 65536;
1128  // pOMAP = (unsigned int *)v69;
1129  memcpy(pOMAP, pSrc, 65536);
1130  pSrc += 65536;
1131 
1132  // uSourceLen = (char *)uSourceLen + 65536;
1134 
1135  memcpy(&uNumSpawnPoints, pSrc, 4);
1136  // uSourceLen = (char *)uSourceLen + 4;
1137  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1138 
1139  assert(sizeof(SpawnPointMM7) == 24);
1140  uint spawnPointsSize = uNumSpawnPoints * sizeof(SpawnPointMM7);
1141  pSpawnPoints = (SpawnPointMM7 *)malloc(spawnPointsSize);
1142  // v72 = uNumSpawnPoints;
1143  // pSpawnPoints = v71;
1144  memcpy(pSpawnPoints, pSrc + 4, spawnPointsSize);
1145  pSrc += 4 + spawnPointsSize;
1146 
1147  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1148 
1149  // ****************.ddm file*********************//
1150  free(pSrcMem);
1151 
1152  auto ddm_filename = filename;
1153  ddm_filename = ddm_filename.replace(ddm_filename.length() - 4, 4, ".ddm");
1154  pSrcMem = pNew_LOD->LoadCompressed(ddm_filename);
1155 
1156  if (pSrcMem != nullptr) {
1157  pSrc = (uint8_t*)pSrcMem;
1158 
1159  static_assert(sizeof(DDM_DLV_Header) == 40, "Wrong type size");
1160  memcpy(&ddm, pSrc, sizeof(DDM_DLV_Header));
1161  pSrc += sizeof(DDM_DLV_Header);
1162  }
1163  uint actualNumFacesInLevel = 0;
1164  for (BSPModel &model : pBModels) {
1165  actualNumFacesInLevel += model.pFaces.size();
1166  }
1167 
1168  bool Str2 = false;
1169  if (ddm.uNumFacesInBModels) {
1170  if (ddm.uNumBModels) {
1171  if (ddm.uNumDecorations) {
1172  if (ddm.uNumFacesInBModels != actualNumFacesInLevel ||
1173  ddm.uNumBModels != pBModels.size() ||
1175  Str2 = true;
1176  }
1177  }
1178  }
1179 
1180  if (dword_6BE364_game_settings_1 & GAME_SETTINGS_2000) {
1181  respawn_interval_days = 0x1BAF800;
1182  }
1183 
1184  char Src[968];
1185  char Dst[968];
1186  int v108;
1187 
1188  if (Str2 || days_played - ddm.uLastRepawnDay >= respawn_interval_days ||
1189  !ddm.uLastRepawnDay) {
1190  if (Str2) {
1191  memset(Dst, 0, 968);
1192  memset(Src, 0, 968);
1193  }
1194  if (days_played - ddm.uLastRepawnDay >= respawn_interval_days ||
1195  !ddm.uLastRepawnDay) {
1196  memcpy(Dst, pSrc, 968);
1197  memcpy(Src, pSrc + 968, 968);
1198  }
1199  free(pSrcMem);
1200 
1201  ddm.uLastRepawnDay = days_played;
1202  if (Str2 == 0) ++ddm.uNumRespawns;
1203  v108 = 0;
1204  *thisa = 1;
1205  pSrcMem = pGames_LOD->LoadCompressed(ddm_filename);
1206  pSrc = (uint8_t*)pSrcMem;
1207  pSrc += sizeof(DDM_DLV_Header);
1208  } else {
1209  *thisa = 0;
1210  }
1211  memcpy(uFullyRevealedCellOnMap, pSrc, 968);
1212  memcpy(uPartiallyRevealedCellOnMap, pSrc + 968, 968);
1213  pSrc += 2 * 968;
1214 
1215  pGameLoadingUI_ProgressBar->Progress(); // прогресс загрузки
1216 
1217  if (*thisa) {
1218  memcpy(uFullyRevealedCellOnMap, Dst, 968);
1219  memcpy(uPartiallyRevealedCellOnMap, Src, 968);
1220  }
1221 
1222  for (BSPModel &model : pBModels) {
1223  for (ODMFace &face : model.pFaces) {
1224  memcpy(&face.uAttributes, pSrc, 4);
1225  pSrc += 4;
1226  }
1227 
1228  for (ODMFace &face : model.pFaces) {
1229  if (face.sCogTriggeredID) {
1230  if (face.HasEventHint()) {
1231  face.uAttributes |= FACE_HAS_EVENT_HINT;
1232  } else {
1233  face.uAttributes &= ~FACE_HAS_EVENT_HINT; // ~0x00001000
1234  }
1235  }
1236  }
1237  }
1238 
1239  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1240 
1241  for (uint i = 0; i < uNumLevelDecorations; ++i) {
1242  memcpy(&pLevelDecorations[i].uFlags, pSrc, 2);
1243  pSrc += 2;
1244  }
1245 
1246  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1247 
1248  memcpy(&uNumActors, pSrc, 4);
1249  if (uNumActors > 500) logger->Warning(L"Can't load file!");
1250 
1251  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1252 
1253  assert(sizeof(Actor) == 836);
1254  // pFilename = (char *)(836 * uNumActors);
1255  memcpy(pActors.data(), pSrc + 4, uNumActors * sizeof(Actor));
1256  pSrc += 4 + uNumActors * sizeof(Actor);
1257  // v92 = (char *)v91 + (int)pFilename;
1258  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1259 
1260  memcpy(&uNumSpriteObjects, pSrc, 4);
1261  assert(uNumSpriteObjects <= 1000 && "Too many objects");
1262  assert(sizeof(SpriteObject) == 112);
1263 
1264  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1265 
1266  // pFilename = (char *)(112 * uNumSpriteObjects);
1267  memcpy(pSpriteObjects.data(), pSrc + 4,
1268  uNumSpriteObjects * sizeof(SpriteObject));
1269  pSrc += 4 + uNumSpriteObjects * sizeof(SpriteObject);
1270 
1271  // v94 = (char *)v93 + (int)pFilename;
1272  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1273 
1274  pSrc = (uint8_t*)ChestsDeserialize((char*)pSrc);
1275 
1276  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1277 
1278  memcpy(&stru_5E4C90_MapPersistVars, pSrc, 0xC8);
1279  pSrc += 0xC8;
1280 
1281  pGameLoadingUI_ProgressBar->Progress(); //прогресс загрузки
1282  memcpy(&loc_time, pSrc, 0x38u);
1283 
1284  free(pSrcMem);
1285 
1293  TileDesc *v98 = pTileTable->GetTileById(pTileTypes[0].uTileID);
1294 
1295  main_tile_texture = v98->GetTexture();
1296  // sMainTile_BitmapID = pBitmaps_LOD->LoadTexture(v98->pTileName,
1297  // TEXTURE_DEFAULT); if (sMainTile_BitmapID != -1)
1298  // pBitmaps_LOD->pTextures[sMainTile_BitmapID].palette_id2 =
1299  // pPaletteManager->LoadPalette(pBitmaps_LOD->pTextures[sMainTile_BitmapID].palette_id1);
1300 
1301  _47F0E2();
1302 
1303  // LABEL_150:
1304  if (pWeather->bRenderSnow) { // Ritor1: it's include for snow
1305  strcpy(loc_time.sky_texture_name, "sky19");
1306  } else if (loc_time.last_visit) {
1308  if (rand() % 100 >= 20)
1309  v108 = dword_4EC268[rand() % dword_4EC2A8];
1310  else
1311  v108 = dword_4EC28C[rand() % dword_4EC2AC];
1312  sprintf(loc_time.sky_texture_name, "plansky%d", v108);
1313  }
1314  } else {
1315  strcpy(loc_time.sky_texture_name, "plansky3");
1316  }
1317 
1319 
1321  // pSoundList->LoadSound(SOUND_RunDirt, 0); //For Dirt
1322  // tyle(для звука хождения по грязи)
1323  // pSoundList->LoadSound(SOUND_WalkDirt, 0); //для
1324  // бега
1325  // pSoundList->LoadSound(SOUND_RunRoad, 0); //для звука
1326  // хождения по дороге pSoundList->LoadSound(SOUND_WalkRoad, 0);
1327  // pSoundList->LoadSound(SOUND_RunWood, 0); //для звука
1328  // хождения по дереву pSoundList->LoadSound(SOUND_WalkWood, 0);
1329  for (int i = 0; i < 3; ++i) {
1330  switch (pTileTypes[i].tileset) {
1331  case Tileset_Grass:
1332  // pSoundList->LoadSound(SOUND_RunGrass, 0); //для
1333  // звука хождения по траве
1334  // pSoundList->LoadSound(SOUND_WalkGrass, 0);
1335  break;
1336  case Tileset_Snow:
1337  // pSoundList->LoadSound(SOUND_RunSnow, 0); //по
1338  // снегу pSoundList->LoadSound(SOUND_WalkSnow, 0);
1339  break;
1340  case Tilset_Desert:
1341  // pSoundList->LoadSound(SOUND_RunDesert, 0); //по
1342  // пустыне pSoundList->LoadSound(SOUND_WalkDesert,
1343  // 0);
1344  break;
1345  case Tileset_CooledLava:
1346  // pSoundList->LoadSound(SOUND_RunCooledLava, 0);//по
1347  // лаве pSoundList->LoadSound(SOUND_WalkCooledLava,
1348  // 0);
1349  break;
1350  case Tileset_Water:
1351  // pSoundList->LoadSound(SOUND_RunWater, 0); //по
1352  // воде pSoundList->LoadSound(SOUND_WalkWater, 0);
1353  break;
1354  case Tileset_Badlands:
1355  // pSoundList->LoadSound(SOUND_RunBadlands, 0);
1356  // //для звука ходьбы по бесплодным землям
1357  // pSoundList->LoadSound(SOUND_WalkBadlands, 0);
1358  break;
1359  case Tileset_Swamp:
1360  // pSoundList->LoadSound(SOUND_RunSwamp, 0); //по
1361  // болоту pSoundList->LoadSound(SOUND_WalkSwamp, 0);
1362  break;
1363  }
1364  }
1365  return true;
1366 }

Перекрестные ссылки _47F0E2(), _6807E0_num_decorations_with_sounds_6807B8, assets, Weather::bRenderSnow, byte_6BE124_cfg_textures_DefaultGroundTexture, ChestsDeserialize(), ddm, LOD::File::DoesContainerExist(), dword_4EC268, dword_4EC28C, dword_4EC2A8, dword_4EC2AC, dword_6BE364_game_settings_1, engine, OutdoorLocationTerrain::FillDMap(), AssetsManager::GetBitmap(), GameTime::GetDays(), DecorationList::GetDecorIdByName(), AssetsManager::GetImage_Solid(), TileDesc::GetTexture(), TileTable::GetTileById(), ground_tileset, OutdoorLocationTerrain::Initialize(), TileTable::InitializeTileset(), LocationTime_stru1::last_visit, level_filename, BSPModelList::Load(), LOD::File::LoadCompressed(), LoadRoadTileset(), LoadTileGroupIds(), loc_time, location_file_description, location_filename, ViewingParams::location_minimap, logger, main_tile_texture, numFaceIDListElems, pActors, OutdoorLocationTerrain::pAttributemap, pBModels, pCmap, pDecorationList, pFaceIDLIST, pGameLoadingUI_ProgressBar, pGames_LOD, OutdoorLocationTerrain::pHeightmap, pLevelDecorations, pNew_LOD, pOMAP, PaletteManager::pPalette_mistColor, PaletteManager::pPalette_tintColor, pPaletteManager, pParty, GUIProgressBar::Progress(), pSpawnPoints, pSpriteObjects, pTerrain, pTerrainNormalIndices, pTerrainNormals, pTerrainSomeOtherData, OutdoorLocationTerrain::pTilemap, pTileTable, pTileTypes, pWeather, PaletteManager::RecalculateAll(), PaletteManager::SetMistColor(), sky_texture, sky_texture_filename, LocationTime_stru1::sky_texture_name, stru_5E4C90_MapPersistVars, Tileset_Badlands, Tileset_CooledLava, Tileset_Dirt, Tileset_Grass, Tileset_Snow, Tileset_Swamp, Tileset_Water, Tilset_Desert, Party::uCurrentDayOfMonth, uFullyRevealedCellOnMap, DDM_DLV_Header::uLastRepawnDay, uNumActors, DDM_DLV_Header::uNumBModels, DDM_DLV_Header::uNumDecorations, DDM_DLV_Header::uNumFacesInBModels, uNumLevelDecorations, DDM_DLV_Header::uNumRespawns, uNumSpawnPoints, uNumSpriteObjects, uNumTerrainNormals, uPartiallyRevealedCellOnMap, viewparams и Log::Warning().

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

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

◆ GetTileIdByTileMapId()

int OutdoorLocation::GetTileIdByTileMapId ( signed int  a2)

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

1368  {
1369  int result; // eax@2
1370  int v3; // eax@3
1371 
1372  if (a2 >= 90) {
1373  v3 = (a2 - 90) / 36;
1374  if (v3 && v3 != 1 && v3 != 2) {
1375  if (v3 == Tileset_CooledLava)
1376  result = this->pTileTypes[3].uTileID;
1377  else
1378  result = a2;
1379  } else {
1380  result = this->pTileTypes[v3].uTileID;
1381  }
1382  } else {
1383  result = 0;
1384  }
1385  return result;
1386 }

Перекрестные ссылки pTileTypes, Tileset_CooledLava и OutdoorLocationTileType::uTileID.

Используется в GetNumFoodRequiredToRestInCurrentPos() и GetSoundIdByPosition().

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

◆ _47ED83()

int OutdoorLocation::_47ED83 ( signed int  a2,
signed int  a3 
)

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

1451  {
1452  if (a2 < 0 || a2 > 127 || a3 < 0 || a3 > 127)
1453  return 0;
1454 
1455  return *(&this->pTerrain.pTilemap[128 * a3] + a2);
1456 }

Перекрестные ссылки pTerrain и OutdoorLocationTerrain::pTilemap.

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

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

◆ ActuallyGetSomeOtherTileInfo()

int OutdoorLocation::ActuallyGetSomeOtherTileInfo ( signed int  uX,
signed int  uY 
)

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

1460  {
1461  int v3; // esi@5
1462 
1463  if (sX < 0 || sX > 127 || sY < 0 || sY > 127)
1464  return 0;
1465 
1466  v3 = this->pTerrain.pTilemap[sY * 128 + sX];
1467  if (v3 >= 90)
1468  v3 = v3 + this->pTileTypes[(v3 - 90) / 36].uTileID -
1469  36 * ((v3 - 90) / 36) - 90;
1470  return pTileTable->pTiles[v3].uAttributes;
1471 }

Перекрестные ссылки pTerrain, OutdoorLocationTerrain::pTilemap, TileTable::pTiles, pTileTable, pTileTypes и TileDesc::uAttributes.

Используется в GetSomeOtherTileInfo(), GetTerrainHeightsAroundParty2(), ODM_ProcessPartyActions() и UpdateActors_ODM().

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

◆ DoGetHeightOnTerrain()

int OutdoorLocation::DoGetHeightOnTerrain ( signed int  sX,
signed int  sZ 
)

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

1474  {
1475  if (sX < 0 || sX > 127 || sZ < 0 || sZ > 127)
1476  return 0;
1477 
1478  return 32 * pTerrain.pHeightmap[sZ * 128 + sX];
1479 }

Перекрестные ссылки OutdoorLocationTerrain::pHeightmap и pTerrain.

Используется в GetHeightOnTerrain(), GetTerrainHeightsAroundParty2(), IsTerrainSlopeTooHigh() и ODM_GetTerrainNormalAt().

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

◆ GetSoundIdByPosition()

int OutdoorLocation::GetSoundIdByPosition ( signed int  X_pos,
signed int  Y_pos,
int  a4 
)

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

1483  {
1484  signed int v4; // eax@5
1485  signed int v5; // eax@7
1486  // int v6; // eax@8
1487  signed int v8; // eax@9
1488  int modif = 0;
1489 
1490  if (X_pos < 0 || X_pos > 127 || Y_pos < 0 || Y_pos > 127)
1491  v4 = 0;
1492  else
1493  v4 = this->pTerrain.pTilemap[128 * Y_pos + X_pos];
1494  v5 = GetTileIdByTileMapId(v4);
1495  if (running) modif = -39;
1496  if (!v5) return 92 + modif;
1497 
1498  switch (pTileTable->pTiles[v5].tileset) {
1499  case 0:
1500  return 93 + modif;
1501  case 1:
1502  return 97 + modif;
1503  case 2:
1504  return 91 + modif;
1505  case 3:
1506  return 90 + modif;
1507  case 4:
1508  return 101 + modif;
1509  case 5:
1510  return 95 + modif;
1511  case 6:
1512  return 88 + modif;
1513  case 7:
1514  return 100 + modif;
1515  case 8:
1516  return 93 + modif;
1517  default:
1518  v8 = pTileTable->pTiles[v5].tileset;
1519  if ((v8 > 9 && v8 <= 17) || (v8 > 21 && v8 <= 27))
1520  return 96 + modif;
1521  else
1522  return 95 + modif;
1523  }
1524 }

Перекрестные ссылки GetTileIdByTileMapId(), pTerrain, OutdoorLocationTerrain::pTilemap, TileTable::pTiles, pTileTable и TileDesc::tileset.

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

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

◆ UpdateDiscoveredArea()

int OutdoorLocation::UpdateDiscoveredArea ( int  a2,
int  a3,
int  a4 
)

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

1528  {
1529  for (int i = -10; i < 10; i++) {
1530  int currYpos = Y_grid_poa + i - 20;
1531  for (int j = -10; j < 10; j++) {
1532  int currXpos = X_grid_pos + j - 20;
1533  int distanceSquared = i * i + j * j;
1534  if (distanceSquared <= 100 && currYpos >= 0 && currYpos <= 87 &&
1535  currXpos >= 0 && currXpos <= 87) {
1536  unsigned char v13 = 1 << (7 - currXpos % 8);
1537  this->uPartiallyRevealedCellOnMap[currYpos][currXpos / 8] |=
1538  v13;
1539  if (distanceSquared <= 49)
1540  this->uFullyRevealedCellOnMap[currYpos][currXpos / 8] |=
1541  v13;
1542  }
1543  }
1544  }
1545  return 1;
1546 }

Перекрестные ссылки uFullyRevealedCellOnMap и uPartiallyRevealedCellOnMap.

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

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

◆ IsMapCellFullyRevealed()

bool OutdoorLocation::IsMapCellFullyRevealed ( signed int  a2,
signed int  a3 
)

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

1550  {
1551  if (x_pos < 0 || x_pos >= 88 || y_pos < 0 || y_pos >= 88)
1552  return false;
1553  else
1554  return (uFullyRevealedCellOnMap[y_pos][x_pos / 8] &
1555  (1 << (7 - (x_pos) % 8))) != 0;
1556 }

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

Используется в DrawBook_Map_sub() и GetMapBookHintText().

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

◆ IsMapCellPartiallyRevealed()

bool OutdoorLocation::IsMapCellPartiallyRevealed ( signed int  a2,
signed int  a3 
)

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

1560  {
1561  if (x_pos < 0 || x_pos >= 88 || y_pos < 0 || y_pos >= 88)
1562  return false;
1563  else
1564  return (uPartiallyRevealedCellOnMap[y_pos][x_pos / 8] &
1565  (1 << (7 - (x_pos) % 8))) != 0;
1566 }

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

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

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

◆ _47F0E2()

bool OutdoorLocation::_47F0E2 ( )

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

1569  {
1570  for (uint i = 0; i < (signed int)pBitmaps_LOD->uNumLoadedFiles; ++i) {
1571  // if ( i != -1 ? (int)&pBitmaps_LOD->pTextures[i] : 0 )
1573  this->pTerrain._47CB57(
1578  }
1579  return 1;
1580 }

Перекрестные ссылки OutdoorLocationTerrain::_47CB57(), Texture_MM7::header, TextureHeader::palette_id2, Texture_MM7::paletted_pixels, pBitmaps_LOD, pTerrain, LODFile_IconsBitmaps::pTextures, TextureHeader::uDecompressedSize, LODFile_IconsBitmaps::uNumLoadedFiles, TextureHeader::uTextureHeight и TextureHeader::uTextureWidth.

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

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

◆ PrepareDecorations()

bool OutdoorLocation::PrepareDecorations ( )

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

1583  {
1584  int v1 = 0;
1585  int v8 = 0;
1586  if (pCurrentMapName == "out09.odm") {
1587  v8 = 1;
1588  }
1589 
1590  for (uint i = 0; i < uNumLevelDecorations; ++i) {
1591  LevelDecoration *decor = &pLevelDecorations[i];
1592 
1595  if (decoration->uSoundID && _6807E0_num_decorations_with_sounds_6807B8 < 9) {
1596  // pSoundList->LoadSound(decoration.uSoundID, 0);
1598  }
1599  if (v8 && decor->uCog == 20)
1601  if (!decor->uEventID) {
1602  if (decor->IsInteractive()) {
1603  if (v1 < 124) {
1604  decor->_idx_in_stru123 = v1 + 75;
1607  }
1608  }
1609  }
1610  }
1611 
1613  return true;
1614 }

Перекрестные ссылки _6807B8_level_decorations_ids, _6807E0_num_decorations_with_sounds_6807B8, stru123::_decor_events, LevelDecoration::_idx_in_stru123, DecorationList::GetDecoration(), DecorationList::InitializeDecorationSprite(), LevelDecoration::IsInteractive(), LEVEL_DECORATION_INVISIBLE, LEVEL_DECORATION_OBELISK_CHEST, pCurrentMapName, pDecorationList, pGameLoadingUI_ProgressBar, pLevelDecorations, GUIProgressBar::Progress(), stru_5E4C90_MapPersistVars, LevelDecoration::uCog, LevelDecoration::uDecorationDescID, LevelDecoration::uEventID, LevelDecoration::uFlags, uNumLevelDecorations и DecorationDesc_mm6::uSoundID.

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

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

◆ ArrangeSpriteObjects()

void OutdoorLocation::ArrangeSpriteObjects ( )

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

1616  {
1617  if ((int)uNumSpriteObjects > 0) {
1618  for (int i = 0; i < (signed int)uNumSpriteObjects; ++i) {
1619  if (pSpriteObjects[i].uObjectDescID) {
1620  if (!(pSpriteObjects[i].uAttributes & 8) && !pSpriteObjects[i].IsUnpickable()) {
1621  bool bOnWater = false;
1622  pSpriteObjects[i].vPosition.z =
1624  pSpriteObjects[i].vPosition.x,
1625  pSpriteObjects[i].vPosition.y, &bOnWater, 0);
1626  }
1627  if (pSpriteObjects[i].containing_item.uItemID) {
1628  if (pSpriteObjects[i].containing_item.uItemID != 220 &&
1629  pItemsTable->pItems[pSpriteObjects[i].containing_item.uItemID].uEquipType == EQUIP_POTION &&
1630  !pSpriteObjects[i].containing_item.uEnchantmentType)
1631  pSpriteObjects[i].containing_item.uEnchantmentType = rand() % 15 + 5;
1632  pItemsTable->SetSpecialBonus(&pSpriteObjects[i].containing_item);
1633  }
1634  }
1635  }
1636  }
1638 }

Перекрестные ссылки EQUIP_POTION, GetTerrainHeightsAroundParty2(), pGameLoadingUI_ProgressBar, ItemsTable::pItems, pItemsTable, GUIProgressBar::Progress(), pSpriteObjects, ItemsTable::SetSpecialBonus() и uNumSpriteObjects.

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

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

◆ InitalizeActors()

bool OutdoorLocation::InitalizeActors ( int  a1)

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

1641  {
1642  int alert_status; // [sp+348h] [bp-8h]@1
1643  // int v9; // [sp+34Ch] [bp-4h]@1
1644 
1645  alert_status = 0;
1646  for (int i = 0; i < uNumActors; ++i) {
1647  if (!(pActors[i].uAttributes & ACTOR_UNKNOW7)) {
1648  if (alert_status != 1) {
1649  pActors[i].uCurrentActionTime = 0;
1650  pActors[i].uCurrentActionLength = 0;
1651  if (pActors[i].uAttributes & ACTOR_UNKNOW11)
1652  pActors[i].uAIState = AIState::Disabled;
1653  if (pActors[i].uAIState != AIState::Removed &&
1654  pActors[i].uAIState != AIState::Disabled &&
1655  (pActors[i].sCurrentHP == 0 ||
1656  pActors[i].pMonsterInfo.uHP == 0))
1657  pActors[i].uAIState = AIState::Dead;
1658  pActors[i].vVelocity.x = 0;
1659  pActors[i].vVelocity.y = 0;
1660  pActors[i].vVelocity.z = 0;
1661  pActors[i].UpdateAnimation();
1662  pActors[i].pMonsterInfo.uHostilityType =
1664  pActors[i].PrepareSprites(0);
1665  } else {
1666  pActors[i].uAIState = AIState::Disabled;
1667  pActors[i].uAttributes |= ACTOR_UNKNOW11;
1668  }
1669  } else if (a1 == 0) {
1670  pActors[i].uAIState = AIState::Disabled;
1671  pActors[i].uAttributes |= ACTOR_UNKNOW11;
1672  } else if (alert_status != 0) {
1673  pActors[i].uCurrentActionTime = 0;
1674  pActors[i].uCurrentActionLength = 0;
1675  if (pActors[i].uAttributes & ACTOR_UNKNOW11)
1676  pActors[i].uAIState = AIState::Disabled;
1677  if (pActors[i].uAIState != AIState::Removed &&
1678  pActors[i].uAIState != AIState::Disabled &&
1679  (pActors[i].sCurrentHP == 0 ||
1680  pActors[i].pMonsterInfo.uHP == 0))
1681  pActors[i].uAIState = AIState::Dead;
1682  pActors[i].vVelocity.x = 0;
1683  pActors[i].vVelocity.y = 0;
1684  pActors[i].vVelocity.z = 0;
1685  pActors[i].UpdateAnimation();
1686  pActors[i].pMonsterInfo.uHostilityType =
1688  pActors[i].PrepareSprites(0);
1689  } else {
1690  pActors[i].uAIState = AIState::Disabled;
1691  pActors[i].uAttributes |= ACTOR_UNKNOW11;
1692  alert_status = GetAlertStatus();
1693  }
1694  }
1695 
1697  // no use for this
1698  // Actor thisa;
1699  // thisa.pMonsterInfo.uID = 45;
1700  // thisa.PrepareSprites(0);
1701  return 1;
1702 }

Перекрестные ссылки Dead, Disabled, GetAlertStatus(), MonsterInfo::Hostility_Friendly, pActors, pGameLoadingUI_ProgressBar, GUIProgressBar::Progress(), Removed и uNumActors.

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

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

◆ LoadRoadTileset()

bool OutdoorLocation::LoadRoadTileset ( )

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

1705  {
1706  pTileTypes[3].uTileID =
1709  return 1;
1710 }

Перекрестные ссылки TileTable::GetTileForTerrainType(), TileTable::InitializeTileset(), pTileTable, pTileTypes и OutdoorLocationTileType::uTileID.

Используется в CreateDebugLocation() и Load().

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

◆ LoadTileGroupIds()

bool OutdoorLocation::LoadTileGroupIds ( )

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

1713  {
1714  for (uint i = 0; i < 3; ++i)
1715  pTileTypes[i].uTileID =
1717 
1718  return true;
1719 }

Перекрестные ссылки TileTable::GetTileForTerrainType(), pTileTable, pTileTypes и OutdoorLocationTileType::tileset.

Используется в CreateDebugLocation() и Load().

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

◆ GetFogDensityByTime()

double OutdoorLocation::GetFogDensityByTime ( )

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

172  {
173  if (pParty->uCurrentHour < 5) { // ночь
174  pWeather->bNight = true;
175  return 60.0 * 0.016666668;
176  } else if (pParty->uCurrentHour >= 5 && pParty->uCurrentHour < 6) { // рассвет
177  pWeather->bNight = false;
178  return (60.0 - (double)(60 * pParty->uCurrentHour +
179  pParty->uCurrentMinute - 300)) *
180  0.016666668;
181  } else if (pParty->uCurrentHour >= 6 && pParty->uCurrentHour < 20) { // день
182  pWeather->bNight = false;
183  return 0.0;
184  } else if (pParty->uCurrentHour >= 20 &&
185  pParty->uCurrentHour < 21) { // сумерки
186  pWeather->bNight = false;
187  return ((double)(pParty->uCurrentHour - 20) * 60.0 +
188  (double)(signed int)pParty->uCurrentMinute) *
189  0.016666668;
190  } else { // ночь
191  pWeather->bNight = true;
192  return 60.0 * 0.016666668;
193  }
194 }

Перекрестные ссылки Weather::bNight, pParty, pWeather, Party::uCurrentHour и Party::uCurrentMinute.

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

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

◆ GetSomeOtherTileInfo()

int OutdoorLocation::GetSomeOtherTileInfo ( int  sX,
int  sY 
)

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

197  {
198  // OutdoorLocation *v3; // esi@1
199  unsigned int v4; // edi@1
200  unsigned int v5; // eax@1
201  // int result; // eax@5
202 
203  /* v3 = this;
204  v4 = WorldPosToGridCellZ(sY);
205  v5 = WorldPosToGridCellX(sX);
206  if ( (v5 & 0x80000000u) != 0 || (signed int)v5 > 127 || (v4 & 0x80000000u)
207  != 0 || (signed int)v4 > 127 ) result = 0; else result =
208  ActuallyGetSomeOtherTileInfo(v5, v4); return result;*/
209  v4 = WorldPosToGridCellZ(sY);
210  v5 = WorldPosToGridCellX(sX);
211  if (v5 < 0 || v5 > 127 || v4 < 0 || v4 > 127) return 0;
212  return ActuallyGetSomeOtherTileInfo(v5, v4);
213 }

Перекрестные ссылки ActuallyGetSomeOtherTileInfo(), WorldPosToGridCellX() и WorldPosToGridCellZ().

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

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

◆ GetTile()

TileDesc * OutdoorLocation::GetTile ( int  sX,
int  sZ 
)

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

216  {
217  signed int v4; // edi@1
218  signed int v5; // eax@1
219 
220  v4 = WorldPosToGridCellZ(sY);
221  v5 = WorldPosToGridCellX(sX);
222  if (v5 < 0 || v5 > 127 || v4 < 0 || v4 > 127) return nullptr;
223 
224  return this->DoGetTile(v5, v4);
225 }

Перекрестные ссылки DoGetTile(), WorldPosToGridCellX() и WorldPosToGridCellZ().

+ Граф вызовов:

◆ DoGetTile()

TileDesc * OutdoorLocation::DoGetTile ( int  uX,
int  uZ 
)

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

1389  {
1390  int v3; // esi@5
1391  // unsigned int result; // eax@9
1392 
1393  if (sX < 0 || sX > 127 || sY < 0 || sY > 127)
1394  return 0;
1395 
1396  v3 = this->pTerrain.pTilemap[sY * 128 + sX];
1397  if (v3 < 198) { // < Tileset_3
1398  if (v3 >= 90)
1399  v3 = v3 + this->pTileTypes[(v3 - 90) / 36].uTileID -
1400  36 * ((v3 - 90) / 36) - 90;
1401  } else {
1402  v3 = v3 + this->pTileTypes[3].uTileID - 198;
1403  }
1404 
1405  if (engine->config->seasons_change) {
1406  switch (pParty->uCurrentMonth) {
1407  case 11:
1408  case 0:
1409  case 1: // winter
1410  if (v3 >= 90) { // Tileset_Grass begins at TileID = 90
1411  if (v3 <= 95) // some grastyl entries
1412  v3 = 348;
1413  else if (v3 <= 113) // rest of grastyl & all grdrt*
1414  v3 = 348 + (v3 - 96);
1415  }
1416  /*switch (v3)
1417  {
1418  case 102: v3 = 354; break; // grdrtNE -> SNdrtne
1419  case 104: v3 = 356; break; // grdrtNW -> SNdrtnw
1420  case 108: v3 = 360; break; // grdrtN -> SNdrtn
1421  }*/
1422  break;
1423 
1424  case 2:
1425  case 3:
1426  case 4: // spring
1427  case 8:
1428  case 9:
1429  case 10: // autumn
1430  if (v3 >= 90 &&
1431  v3 <= 113) // just convert all Tileset_Grass to dirt
1432  v3 = 1;
1433  break;
1434 
1435  case 5:
1436  case 6:
1437  case 7: // summer
1438  // all tiles are green grass by default
1439  break;
1440 
1441  default:
1442  assert(pParty->uCurrentMonth >= 0 &&
1443  pParty->uCurrentMonth < 12);
1444  }
1445  }
1446 
1447  return &pTileTable->pTiles[v3];
1448 }

Перекрестные ссылки engine, pParty, pTerrain, OutdoorLocationTerrain::pTilemap, TileTable::pTiles, pTileTable, pTileTypes, Party::uCurrentMonth и OutdoorLocationTileType::uTileID.

Используется в GetTile(), RenderOpenGL::RenderTerrainD3D() и Render::RenderTerrainD3D().

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

◆ GetHeightOnTerrain()

int OutdoorLocation::GetHeightOnTerrain ( int  sX,
int  sZ 
)

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

228  {
229 /* Функция предоставляет возможность перемещать камеру таким образом, чтобы она
230 имитировала ходьбу по ландшафту. То есть нам надо менять высоту камеры
231 (координату Y) в зависимости от того, в каком месте ландшафта мы находимся. Для
232 этого мы сначала должны определить по координатам X и Z камеры квадрат ландшафта
233 в котором мы находимся. Все это делает функция Terrain::getHeight; в своих
234 параметрах она получает координаты X и Z камеры и возвращает высоту,
235 на которой должна быть расположена камера, чтобы она оказалась над ландшафтом.*/
236  int result; // eax@5
237 
238  if (sX < 0 || sX > 127 || sZ < 0 || sZ > 127)
239  result = 0;
240  else
241  result = DoGetHeightOnTerrain(sX, sZ);
242  return result;
243 }

Перекрестные ссылки DoGetHeightOnTerrain().

+ Граф вызовов:

◆ Initialize()

bool OutdoorLocation::Initialize ( const String filename,
int  days_played,
int  respawn_interval_days,
int *  thisa 
)

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

247  {
248  decal_builder->Reset(0);
249 
250  if (!filename.empty()) {
251  Release();
255 
256  if (!this->Load(filename, days_played, respawn_interval_days, thisa)) {
257  logger->Warning(L"Couldn't Load Map!");
259  }
260 
266 
267  return true;
268  }
269 
270  return false;
271 }

Перекрестные ссылки _6BE134_odm_main_tile_group, assets, CreateDebugLocation(), LocationTime_stru1::day_attrib, day_attrib, LocationTime_stru1::day_fogrange_1, day_fogrange_1, LocationTime_stru1::day_fogrange_2, day_fogrange_2, decal_builder, LODFile_Sprites::DeleteSomeOtherSprites(), Is_out15odm_underwater(), Load(), loc_time, logger, pSpriteFrameTable, pSprites_LOD, pTileTypes, Release(), AssetsManager::ReleaseAllImages(), DecalBuilder::Reset(), SpriteFrameTable::ResetSomeSpriteFlags(), SetUnderwaterFog(), OutdoorLocationTileType::tileset и Log::Warning().

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

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

◆ GetTravelDestination()

bool OutdoorLocation::GetTravelDestination ( signed int  sPartyX,
signed int  sPartyZ,
char *  pOut,
signed int  a5 
)

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

332  {
333  char *mapNumberAsStr; // eax@3
334  int mapNumberAsInt; // eax@3
335  signed int direction; // esi@7
336  signed int destinationMap; // eax@23
337  char Str[140]; // [sp+8h] [bp-78h]@3
338 
339  strcpy(Str, this->level_filename.c_str());
340  _strlwr(Str);
341  mapNumberAsStr = strtok(Str, "out");
342  mapNumberAsStr[2] = 0;
343  mapNumberAsInt = atoi(mapNumberAsStr);
344  if (a5 < 10 || this->level_filename.length() != 9 || mapNumberAsInt < 1 ||
345  mapNumberAsInt > 15) //длина .odm и количество локаций
346  return 0;
347  if (sPartyX < -22528) //граница карты
348  direction = 4;
349  else if (sPartyX > 22528)
350  direction = 3;
351  else if (sPartyZ < -22528)
352  direction = 2;
353  else if (sPartyZ > 22528)
354  direction = 1;
355  else
356  return false;
357 
358  if (mapNumberAsInt == MAP_AVLEE && direction == 4) { // to Shoals
359  if (pPlayers[1]->HasUnderwaterSuitEquipped() &&
360  pPlayers[2]->HasUnderwaterSuitEquipped() &&
361  pPlayers[3]->HasUnderwaterSuitEquipped() &&
362  pPlayers[4]->HasUnderwaterSuitEquipped()) {
364  strcpy(pOut, "out15.odm"); // Shoals
366  HEXRAYS_LOWORD(pParty->uFlags) &= 0xFD7Bu;
367  return true;
368  }
369  } else if (mapNumberAsInt == MAP_SHOALS && direction == 3) { // from Shoals
371  strcpy(pOut, "out14.odm"); // Avlee
373  HEXRAYS_LOWORD(pParty->uFlags) &= 0xFD7Bu;
374  return true;
375  }
376  destinationMap = foot_travel_destinations[mapNumberAsInt - 1][direction - 1];
377  if (destinationMap == MAP_INVALID)
378  return false;
379 
380  assert(destinationMap <= MAP_SHOALS);
381 
382  uDefaultTravelTime_ByFoot = foot_travel_times[mapNumberAsInt - 1][direction - 1];
383  uLevel_StartingPointType = foot_travel_arrival_points[mapNumberAsInt - 1][direction - 1];
384  sprintf(pOut, "out%02d.odm", destinationMap); //локация направления
385  return true;
386 }

Перекрестные ссылки _strlwr(), foot_travel_arrival_points, foot_travel_destinations, foot_travel_times, level_filename, MAP_AVLEE, MAP_INVALID, MAP_SHOALS, MapStartPoint_East, MapStartPoint_West, pParty, pPlayers, uDefaultTravelTime_ByFoot, Party::uFlags и uLevel_StartingPointType.

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

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

◆ MessWithLUN()

void OutdoorLocation::MessWithLUN ( )

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

389  {
390  this->pSpriteIDs_LUN[0] = -1;
391  this->pSpriteIDs_LUN[1] = 0;
392  this->pSpriteIDs_LUN[2] = pSpriteFrameTable->FastFindSprite("LUN1-4");
393  this->pSpriteIDs_LUN[3] = 0;
394  this->pSpriteIDs_LUN[4] = pSpriteFrameTable->FastFindSprite("LUN1-2");
395  this->pSpriteIDs_LUN[5] = 0;
396  this->pSpriteIDs_LUN[6] = pSpriteFrameTable->FastFindSprite("LUN3-4");
397  this->pSpriteIDs_LUN[7] = 0;
402  this->field_D60 = -1;
403  this->field_CF0 = 4;
404  this->field_CF8 = 4;
405  this->field_D00 = 4;
406  this->field_CE8 = 0;
407  this->field_D3C = (int)this->pSpriteIDs_LUN;
408  this->field_D40 = 0;
409  this->field_D44 = 0;
410  this->field_D48 = 0;
411  this->field_D4C = 131072;
412  this->field_D5C = 0;
413  this->field_D64 = 0;
414  this->field_D28 = -1;
415  this->field_D08 = 0;
416  this->field_D0C = 0;
417  this->field_D10 = 0;
418  this->field_D24 = 0;
419  this->field_D2C = 0;
421  this->field_D14 = -131072;
422  for (uint i = 0; i < 8; i++)
424  this->pSpriteIDs_LUN[i]); // v2 += 2;
426 }

Перекрестные ссылки SpriteFrameTable::FastFindSprite(), field_CE8, field_CF0, field_CF8, field_D00, field_D08, field_D0C, field_D10, field_D14, field_D24, field_D28, field_D2C, field_D3C, field_D40, field_D44, field_D48, field_D4C, field_D5C, field_D60, field_D64, SpriteFrameTable::InitializeSprite(), pSpriteFrameTable, pSpriteIDs_LUN, uSpriteID_LUN1_2_cp, uSpriteID_LUN1_4_cp, uSpriteID_LUN3_4_cp, uSpriteID_LUN_SUN и uSpriteID_LUNFULL.

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

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

◆ UpdateSunlightVectors()

void OutdoorLocation::UpdateSunlightVectors ( )

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

429  {
430  unsigned int v3; // edi@3
431  double v8; // st7@4
432 
433  if (pParty->uCurrentHour >= 5 && pParty->uCurrentHour < 21) {
434  v3 = pParty->uCurrentMinute + 60 * (pParty->uCurrentHour - 5);
435  this->inv_sunlight_y = 0;
436  this->inv_sunlight_x =
437  stru_5C6E00->Cos((v3 * stru_5C6E00->uIntegerPi) / 960);
438  this->inv_sunlight_z =
439  stru_5C6E00->Sin((v3 * stru_5C6E00->uIntegerPi) / 960);
440  this->vSunlight.x = -this->inv_sunlight_x;
441  this->vSunlight.y = -this->inv_sunlight_y;
442  this->vSunlight.z = -this->inv_sunlight_z;
443  if (v3 >= 480)
444  v8 = 960 - v3;
445  else
446  v8 = v3;
447  this->max_terrain_dimming_level = (int)(20.0 - v8 / 480.0 * 20.0);
449  }
450 }

Перекрестные ссылки stru193_math::Cos(), inv_sunlight_x, inv_sunlight_y, inv_sunlight_z, max_terrain_dimming_level, pParty, stru193_math::Sin(), stru_5C6E00, Party::uCurrentHour, Party::uCurrentMinute, stru193_math::uIntegerPi, uLastSunlightUpdateMinute и vSunlight.

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

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

◆ UpdateFog()

void OutdoorLocation::UpdateFog ( )

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

453  {
455 }

Перекрестные ссылки fFogDensity и GetFogDensityByTime().

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

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

◆ GetNumFoodRequiredToRestInCurrentPos()

int OutdoorLocation::GetNumFoodRequiredToRestInCurrentPos ( int  x,
signed int  y,
int  z 
)

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

457  {
458  bool is_on_water = false;
459  int bmodel_standing_on_pid = 0;
460  ODM_GetFloorLevel(x, y, z, pParty->uDefaultPartyHeight, &is_on_water, &bmodel_standing_on_pid, 0);
461  if (pParty->uFlags & 8 || bmodel_standing_on_pid || is_on_water) // на bmodel, и или на воде
462  return 2;
465  switch (pTileTable->pTiles[GetTileIdByTileMapId(v7)].tileset) {
466  case Tileset_Grass: // на траве
467  return 1;
468  case Tileset_Snow: // на снегу
469  return 3;
470  case Tilset_Desert: // на песке
471  return 5;
472  case Tileset_CooledLava:
473  case Tileset_Dirt: // на грязи
474  return 4;
475  case Tileset_Water: // on water (на воде)
476  return 3; // еденицы еды
477  default:
478  return 2;
479  }
480 }

Перекрестные ссылки _47ED83(), GetTileIdByTileMapId(), ODM_GetFloorLevel(), pParty, TileTable::pTiles, pTileTable, Tileset_CooledLava, Tileset_Dirt, Tileset_Grass, Tileset_Snow, Tileset_Water, Tilset_Desert, Party::uDefaultPartyHeight, Party::uFlags, Party::vPosition, WorldPosToGridCellX() и WorldPosToGridCellZ().

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

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

◆ SetFog()

void OutdoorLocation::SetFog ( )

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

483  {
485 
487  if (map_id == MAP_INVALID || map_id == MAP_CELESTIA ||
488  map_id == MAP_THE_PIT || map_id > MAP_SHOALS)
489  return;
490 
491  uint chance = rand() % 100;
492 
493  if (chance < fog_probability_table[map_id - 1].small_fog_chance) {
494  ::day_fogrange_1 = 4096;
495  ::day_fogrange_2 = 8192;
496  ::day_attrib |= DAY_ATTRIB_FOG;
497  } else if (chance <
498  fog_probability_table[map_id - 1].small_fog_chance +
499  fog_probability_table[map_id - 1].average_fog_chance) {
500  ::day_fogrange_2 = 4096;
501  ::day_fogrange_1 = 0;
502  ::day_attrib |= DAY_ATTRIB_FOG;
503  } else if (fog_probability_table[map_id - 1].dense_fog_chance &&
504  chance <
505  fog_probability_table[map_id - 1].small_fog_chance +
506  fog_probability_table[map_id - 1].average_fog_chance +
507  fog_probability_table[map_id - 1].dense_fog_chance) {
508  ::day_fogrange_2 = 2048;
509  ::day_fogrange_1 = 0;
510  ::day_attrib |= DAY_ATTRIB_FOG;
511  } else {
512  ::day_attrib &= ~DAY_ATTRIB_FOG;
513  }
514 
519 }

Перекрестные ссылки LocationTime_stru1::day_attrib, day_attrib, LocationTime_stru1::day_fogrange_1, day_fogrange_1, LocationTime_stru1::day_fogrange_2, day_fogrange_2, fog_probability_table, MapStats::GetMapInfo(), Is_out15odm_underwater(), level_filename, loc_time, MAP_CELESTIA, MAP_INVALID, MAP_SHOALS, MAP_THE_PIT, pCurrentMapName, pMapStats, pOutdoor и SetUnderwaterFog().

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

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

◆ Draw()

void OutdoorLocation::Draw ( )

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

160  {
161  bool redrawWorld = true;
162  if (!(pParty->uFlags & 2) && !engine->config->ForceRedraw())
163  redrawWorld = false;
164  pOutdoor->ExecDraw(redrawWorld);
165 
166  engine->DrawParticles();
167  // pWeather->Draw();//если раскомментировать скорость снега быстрее
169 }

Перекрестные ссылки engine, ExecDraw(), pOutdoor, pParty, trail_particle_generator, Party::uFlags и TrailParticleGenerator::UpdateParticles().

Используется в ArenaFight(), Engine::Draw() и Render::MakeScreenshot().

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

◆ LoadActualSkyFrame()

void OutdoorLocation::LoadActualSkyFrame ( )
static

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

2143  {
2146  rest_ui_sky_frame_current = nullptr;
2147  }
2151  }
2152 
2154  StringPrintf("TERRA%03d", pParty->uCurrentMinute / 6 + 10 * pParty->uCurrentHour),
2155  0x7FF);
2156 }

Перекрестные ссылки assets, AssetsManager::GetImage_ColorKey(), pParty, Image::Release(), rest_ui_hourglass_frame_current, rest_ui_sky_frame_current, StringPrintf(), Party::uCurrentHour и Party::uCurrentMinute.

Используется в GUIWindow_Rest::GUIWindow_Rest() и Party::Sleep8Hours().

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

Данные класса

◆ level_filename

String OutdoorLocation::level_filename

◆ location_filename

String OutdoorLocation::location_filename

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

Используется в CreateDebugLocation(), Load() и Release().

◆ location_file_description

String OutdoorLocation::location_file_description

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

Используется в CreateDebugLocation(), Load() и Release().

◆ sky_texture_filename

String OutdoorLocation::sky_texture_filename

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

Используется в CreateDebugLocation(), Load() и Release().

◆ ground_tileset

String OutdoorLocation::ground_tileset

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

Используется в CreateDebugLocation(), Load() и Release().

◆ pTileTypes

OutdoorLocationTileType OutdoorLocation::pTileTypes[4]

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

Используется в ActuallyGetSomeOtherTileInfo(), CreateDebugLocation(), DoGetTile(), GetTileIdByTileMapId(), Initialize(), Load(), LoadRoadTileset() и LoadTileGroupIds().

◆ pTerrain

◆ pCmap

void* OutdoorLocation::pCmap

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

Используется в CreateDebugLocation(), Load(), Release() и subconstuctor().

◆ pBModels

◆ numFaceIDListElems

unsigned int OutdoorLocation::numFaceIDListElems

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

Используется в CreateDebugLocation() и Load().

◆ pFaceIDLIST

uint16_t* OutdoorLocation::pFaceIDLIST

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

Используется в _46E26D_collide_against_sprites(), CreateDebugLocation(), Load(), Release() и subconstuctor().

◆ pOMAP

unsigned int* OutdoorLocation::pOMAP

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

Используется в _46E26D_collide_against_sprites(), CreateDebugLocation(), Load(), Release() и subconstuctor().

◆ sky_texture

Texture* OutdoorLocation::sky_texture

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

Используется в CreateDebugLocation(), RenderOpenGL::DrawOutdoorSkyD3D(), Render::DrawOutdoorSkyD3D() и Load().

◆ main_tile_texture

Texture* OutdoorLocation::main_tile_texture

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

Используется в CreateDebugLocation() и Load().

◆ field_F0

int16_t OutdoorLocation::field_F0

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

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

◆ field_F2

int16_t OutdoorLocation::field_F2

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

◆ field_F4

int OutdoorLocation::field_F4

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

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

◆ field_F8

char OutdoorLocation::field_F8[968]

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

◆ uNumSpawnPoints

unsigned int OutdoorLocation::uNumSpawnPoints

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

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

◆ pSpawnPoints

struct SpawnPointMM7* OutdoorLocation::pSpawnPoints

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

Используется в CreateDebugLocation(), Load(), ODM_LoadAndInitialize(), Release() и subconstuctor().

◆ ddm

◆ loc_time

LocationTime_stru1 OutdoorLocation::loc_time

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

Используется в Initialize(), Load(), OnMapLoad(), SaveGame() и SetFog().

◆ uFullyRevealedCellOnMap

unsigned char OutdoorLocation::uFullyRevealedCellOnMap[88][11]

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

Используется в IsMapCellFullyRevealed(), Load(), SaveGame() и UpdateDiscoveredArea().

◆ uPartiallyRevealedCellOnMap

unsigned char OutdoorLocation::uPartiallyRevealedCellOnMap[88][11]

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

Используется в IsMapCellPartiallyRevealed(), Load(), SaveGame() и UpdateDiscoveredArea().

◆ field_CB8

int OutdoorLocation::field_CB8

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

◆ max_terrain_dimming_level

int OutdoorLocation::max_terrain_dimming_level

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

Используется в Render::DrawIndoorSkyPolygon(), GetActorTintColor(), LightmapBuilder::StackLights_TerrainFace() и UpdateSunlightVectors().

◆ field_CC0

int OutdoorLocation::field_CC0

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

◆ pSpriteIDs_LUN

unsigned int OutdoorLocation::pSpriteIDs_LUN[8]

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

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

◆ uSpriteID_LUNFULL

unsigned int OutdoorLocation::uSpriteID_LUNFULL

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

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

◆ field_CE8

int OutdoorLocation::field_CE8

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

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

◆ uSpriteID_LUN3_4_cp

unsigned int OutdoorLocation::uSpriteID_LUN3_4_cp

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

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

◆ field_CF0

int OutdoorLocation::field_CF0

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

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

◆ uSpriteID_LUN1_2_cp

unsigned int OutdoorLocation::uSpriteID_LUN1_2_cp

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

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

◆ field_CF8

int OutdoorLocation::field_CF8

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

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

◆ uSpriteID_LUN1_4_cp

unsigned int OutdoorLocation::uSpriteID_LUN1_4_cp

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

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

◆ field_D00

int OutdoorLocation::field_D00

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

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

◆ uSpriteID_LUN_SUN

uint16_t OutdoorLocation::uSpriteID_LUN_SUN

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

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

◆ field_D06

int16_t OutdoorLocation::field_D06

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

◆ field_D08

int OutdoorLocation::field_D08

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

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

◆ field_D0C

int OutdoorLocation::field_D0C

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

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

◆ field_D10

int OutdoorLocation::field_D10

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

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

◆ field_D14

int OutdoorLocation::field_D14

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

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

◆ inv_sunlight_x

int OutdoorLocation::inv_sunlight_x

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

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

◆ inv_sunlight_y

int OutdoorLocation::inv_sunlight_y

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

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

◆ inv_sunlight_z

int OutdoorLocation::inv_sunlight_z

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

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

◆ field_D24

int OutdoorLocation::field_D24

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

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

◆ field_D28

int OutdoorLocation::field_D28

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

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

◆ field_D2C

int OutdoorLocation::field_D2C

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

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

◆ vSunlight

Vec3_int_ OutdoorLocation::vSunlight

◆ field_D3C

int OutdoorLocation::field_D3C

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

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

◆ field_D40

int OutdoorLocation::field_D40

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

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

◆ field_D44

int OutdoorLocation::field_D44

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

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

◆ field_D48

int OutdoorLocation::field_D48

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

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

◆ field_D4C

int OutdoorLocation::field_D4C

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

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

◆ field_D50

float OutdoorLocation::field_D50

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

◆ field_D54

int OutdoorLocation::field_D54

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

◆ field_D58

int OutdoorLocation::field_D58

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

◆ field_D5C

int OutdoorLocation::field_D5C

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

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

◆ field_D60

int OutdoorLocation::field_D60

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

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

◆ field_D64

int OutdoorLocation::field_D64

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

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

◆ field_D68

char OutdoorLocation::field_D68[111900]

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

◆ fFogDensity

float OutdoorLocation::fFogDensity

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

Используется в GetActorTintColor(), GetLevelFogColor() и UpdateFog().

◆ uLastSunlightUpdateMinute

int OutdoorLocation::uLastSunlightUpdateMinute

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

Используется в ExecDraw(), OutdoorLocation() и UpdateSunlightVectors().

◆ log

Log* OutdoorLocation::log = nullptr

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

Используется в CreateDebugLocation() и OutdoorLocation().

◆ decal_builder

DecalBuilder* OutdoorLocation::decal_builder = nullptr

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

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

◆ spell_fx_renderer

SpellFxRenderer* OutdoorLocation::spell_fx_renderer = nullptr

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

Используется в OutdoorLocation() и PrepareActorsDrawList().

◆ lightmap_builder

LightmapBuilder* OutdoorLocation::lightmap_builder = nullptr

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

Используется в ExecDraw() и OutdoorLocation().


Объявления и описания членов структур находятся в файлах:
Tileset_Snow
@ Tileset_Snow
Definition: TileFrameTable.h:27
SpriteFrameTable::GetFrameBy_x
SpriteFrame * GetFrameBy_x(unsigned int uSpriteID, signed int a3)
Definition: Sprites.cpp:304
SpriteObject
Definition: SpriteObject.h:189
OutdoorLocationTerrain::ZeroLandscape
bool ZeroLandscape()
Definition: Outdoor.cpp:875
LightsStack_StationaryLight_::uNumLightsActive
unsigned int uNumLightsActive
Definition: Lights.h:65
OutdoorLocationTerrain::pHeightmap
uint8_t * pHeightmap
Definition: Outdoor.h:55
OutdoorLocation::uSpriteID_LUN1_4_cp
unsigned int uSpriteID_LUN1_4_cp
Definition: Outdoor.h:149
Vec3_float_
Definition: VectorTypes.h:74
uNumActors
size_t uNumActors
Definition: Actor.cpp:39
TileTable::InitializeTileset
void InitializeTileset(Tileset tileset)
Definition: TileTable.cpp:27
Party::vPosition
Vec3_int_ vPosition
Definition: Party.h:250
face
GLenum GLuint GLint GLenum face
Definition: SDL_opengl_glext.h:3022
pNew_LOD
LOD::WriteableFile * pNew_LOD
Definition: LOD.cpp:24
OutdoorLocation::uNumSpawnPoints
unsigned int uNumSpawnPoints
Definition: Outdoor.h:129
Tileset_Swamp
@ Tileset_Swamp
Definition: TileFrameTable.h:33
uSpriteID_Spell11
int uSpriteID_Spell11
Definition: mm7_data.cpp:577
SpriteFrame::hw_sprites
Sprite * hw_sprites[8]
Definition: Sprites.h:46
pLevelDecorations
std::array< LevelDecoration, 3000 > pLevelDecorations
Definition: Decoration.cpp:8
RenderBillboard::hwsprite
Sprite * hwsprite
Definition: IRender.h:32
OutdoorLocation::pOMAP
unsigned int * pOMAP
Definition: Outdoor.h:122
TrailParticleGenerator::UpdateParticles
void UpdateParticles()
Definition: ParticleEngine.cpp:37
Party::uCurrentMonth
unsigned int uCurrentMonth
Definition: Party.h:272
Image::GetHeight
unsigned int GetHeight()
Definition: Image.cpp:230
DecorationList::GetDecoration
DecorationDesc * GetDecoration(unsigned int index)
Definition: DecorationList.h:65
RenderBillboard::screen_space_x
int16_t screen_space_x
Definition: IRender.h:39
GameTime::GetDays
int GetDays() const
Definition: Time.h:32
Vec2::x
T x
Definition: VectorTypes.h:12
SpriteFrame::uGlowRadius
int uGlowRadius
Definition: Sprites.h:49
ODMRenderParams::uNumBillboards
unsigned int uNumBillboards
Definition: IRender.h:90
AssetsManager::GetImage_Solid
Texture * GetImage_Solid(const String &name)
Definition: AssetsManager.cpp:51
Party::uCurrentMinute
unsigned int uCurrentMinute
Definition: Party.h:276
SpriteFrame::icon_name
String icon_name
Definition: Sprites.h:43
OutdoorLocation::inv_sunlight_y
int inv_sunlight_y
Definition: Outdoor.h:158
pSpriteFrameTable
struct SpriteFrameTable * pSpriteFrameTable
Definition: Sprites.cpp:22
OutdoorLocation::pBModels
BSPModelList pBModels
Definition: Outdoor.h:119
pSpriteObjects
std::array< SpriteObject, MAX_SPRITE_OBJECTS > pSpriteObjects
Definition: SpriteObject.cpp:34
pSprites_LOD
LODFile_Sprites * pSprites_LOD
Definition: LOD.cpp:20
LODFile_IconsBitmaps::uNumLoadedFiles
unsigned int uNumLoadedFiles
Definition: LOD.h:159
RenderBillboard::uIndoorSectorID
int16_t uIndoorSectorID
Definition: IRender.h:34
MAP_CELESTIA
@ MAP_CELESTIA
Definition: MapInfo.h:13
Tileset_Grass
@ Tileset_Grass
Definition: TileFrameTable.h:26
uNumBillboardsToDraw
unsigned int uNumBillboardsToDraw
Definition: RenderOpenGL.cpp:55
uNumTerrainNormals
uint32_t uNumTerrainNormals
Definition: mm7_data.cpp:755
ItemsTable::SetSpecialBonus
void SetSpecialBonus(ItemGen *pItem)
Definition: Items.cpp:472
OutdoorLocation::GetFogDensityByTime
double GetFogDensityByTime()
Definition: Outdoor.cpp:172
OutdoorLocationTerrain::Initialize
bool Initialize()
Definition: Outdoor.cpp:890
OutdoorLocation::field_D44
int field_D44
Definition: Outdoor.h:166
OutdoorLocation::field_D64
int field_D64
Definition: Outdoor.h:174
OutdoorLocation::uFullyRevealedCellOnMap
unsigned char uFullyRevealedCellOnMap[88][11]
Definition: Outdoor.h:134
Weather::bRenderSnow
bool bRenderSnow
Definition: Weather.h:18
day_fogrange_2
int day_fogrange_2
Definition: mm7_data.cpp:699
ViewingParams::location_minimap
class Image * location_minimap
Definition: Viewport.h:73
Tileset_CooledLava
@ Tileset_CooledLava
Definition: TileFrameTable.h:29
TileDesc::tileset
Tileset tileset
Definition: TileFrameTable.h:49
OutdoorLocation::inv_sunlight_z
int inv_sunlight_z
Definition: Outdoor.h:159
_4E94D3_light_type
char _4E94D3_light_type
Definition: mm7_data.cpp:307
z
GLdouble GLdouble z
Definition: SDL_opengl_glext.h:407
Engine_::IocContainer::ResolveLogger
static Log * ResolveLogger()
Definition: IocContainer.cpp:51
ODMRenderParams::bDoNotRenderDecorations
unsigned int bDoNotRenderDecorations
Definition: IRender.h:97
ODMRenderParams::uNumPolygons
int uNumPolygons
Definition: IRender.h:86
MapStats::GetMapInfo
MAP_TYPE GetMapInfo(const String &Str2)
Definition: MapInfo.cpp:225
ODMRenderParams::uMapGridCellX
unsigned int uMapGridCellX
Definition: IRender.h:105
Actor
Definition: Actor.h:151
OutdoorLocation::sky_texture
Texture * sky_texture
Definition: Outdoor.h:123
uDefaultTravelTime_ByFoot
int uDefaultTravelTime_ByFoot
Definition: mm7_data.cpp:696
LightmapBuilder::uFlags
int uFlags
Definition: LightmapBuilder.h:97
OutdoorLocationTileType::tileset
Tileset tileset
Definition: Outdoor.h:23
MonsterInfo::Hostility_Friendly
@ Hostility_Friendly
Definition: Monsters.h:111
BSPModelData
Definition: BSPModel.h:58
day_attrib
int day_attrib
Definition: mm7_data.cpp:697
WorldPosToGridCellX
unsigned int WorldPosToGridCellX(int sWorldPosX)
Definition: Outdoor.cpp:3955
engine
std::shared_ptr< Engine > engine
Definition: Engine.cpp:130
SpriteFrame::scale
fixed scale
Definition: Sprites.h:47
LevelDecoration::IsInteractive
bool IsInteractive()
Definition: Decoration.cpp:345
AssetsManager::ReleaseAllImages
bool ReleaseAllImages()
Definition: AssetsManager.cpp:14
OutdoorLocation::PrepareActorsDrawList
void PrepareActorsDrawList()
Definition: Outdoor.cpp:1722
day_fogrange_1
int day_fogrange_1
Definition: mm7_data.cpp:698
RenderBillboard::dimming_level
uint16_t dimming_level
Definition: IRender.h:43
OutdoorLocationTerrain::pAttributemap
uint8_t * pAttributemap
Definition: Outdoor.h:57
Party::uDefaultPartyHeight
unsigned int uDefaultPartyHeight
Definition: Party.h:238
ViewingParams::draw_d3d_outlines
int draw_d3d_outlines
Definition: Viewport.h:78
LOD::File::DoesContainerExist
bool DoesContainerExist(const String &filename)
Definition: LOD.cpp:833
SetUnderwaterFog
void SetUnderwaterFog()
Definition: Outdoor.cpp:3382
Party::uCurrentHour
unsigned int uCurrentHour
Definition: Party.h:275
RenderBillboard::screen_space_z
int16_t screen_space_z
Definition: IRender.h:41
OutdoorLocation::uSpriteID_LUNFULL
unsigned int uSpriteID_LUNFULL
Definition: Outdoor.h:143
OutdoorLocation::field_CE8
int field_CE8
Definition: Outdoor.h:144
RenderBillboard::world_z
int16_t world_z
Definition: IRender.h:38
LevelDecoration::uEventID
uint16_t uEventID
Definition: Decoration.h:31
OutdoorLocation::decal_builder
DecalBuilder * decal_builder
Definition: Outdoor.h:180
SpriteFrame::uPaletteIndex
int uPaletteIndex
Definition: Sprites.h:51
SpawnPointMM7
Definition: Indoor.h:304
OutdoorLocation::fFogDensity
float fFogDensity
Definition: Outdoor.h:176
SpellFxRenderer::_4A7F74
void _4A7F74(int x, int y, int z)
Definition: SpellFxRenderer.cpp:611
Tileset_Water
@ Tileset_Water
Definition: TileFrameTable.h:31
dword_4EC2AC
int dword_4EC2AC
Definition: Outdoor.cpp:81
BSPModelList::Load
uint8_t * Load(uint8_t *data)
Definition: BSPModel.cpp:45
WorldPosToGridCellZ
unsigned int WorldPosToGridCellZ(int sWorldPosZ)
Definition: Outdoor.cpp:3962
Sprite::texture
Texture * texture
Definition: Sprites.h:28
OutdoorLocation::UpdateFog
void UpdateFog()
Definition: Outdoor.cpp:453
RenderBillboard::pSpriteFrame
SpriteFrame * pSpriteFrame
Definition: IRender.h:45
pPlayers
NZIArray< struct Player *, 5 > pPlayers
Definition: Player.cpp:46
Texture_MM7::paletted_pixels
uint8_t * paletted_pixels
Definition: Image.h:102
DecorationList::GetDecorIdByName
uint16_t GetDecorIdByName(const char *pName)
Definition: DecorationList.cpp:60
TileTable::pTiles
TileDesc * pTiles
Definition: TileFrameTable.h:91
OutdoorLocation::UpdateSunlightVectors
void UpdateSunlightVectors()
Definition: Outdoor.cpp:429
OutdoorLocation::field_F4
int field_F4
Definition: Outdoor.h:127
Dead
@ Dead
Definition: Actor.h:80
Resurrected
@ Resurrected
Definition: Actor.h:91
ACTOR_BUFF_SHRINK
@ ACTOR_BUFF_SHRINK
Definition: Actor.h:41
result
GLuint64EXT * result
Definition: SDL_opengl_glext.h:9435
pMapStats
struct MapStats * pMapStats
Definition: mm7_data.cpp:20
MAP_AVLEE
@ MAP_AVLEE
Definition: MapInfo.h:20
OutdoorLocation::DoGetTile
TileDesc * DoGetTile(int uX, int uZ)
Definition: Outdoor.cpp:1389
OBJECT_Actor
@ OBJECT_Actor
Definition: Actor.h:67
RenderBillboard::field_1E
int16_t field_1E
Definition: IRender.h:35
trail_particle_generator
TrailParticleGenerator trail_particle_generator
Definition: ParticleEngine.cpp:13
OutdoorLocation::inv_sunlight_x
int inv_sunlight_x
Definition: Outdoor.h:157
fixed::FromInt
static fixed FromInt(int value)
Definition: OurMath.h:29
OutdoorLocation::ground_tileset
String ground_tileset
Definition: Outdoor.h:115
OutdoorLocation::field_D4C
int field_D4C
Definition: Outdoor.h:168
OutdoorLocation::LoadTileGroupIds
bool LoadTileGroupIds()
Definition: Outdoor.cpp:1713
OutdoorLocation::main_tile_texture
Texture * main_tile_texture
Definition: Outdoor.h:124
OutdoorLocation::pCmap
void * pCmap
Definition: Outdoor.h:118
OutdoorLocation::uPartiallyRevealedCellOnMap
unsigned char uPartiallyRevealedCellOnMap[88][11]
Definition: Outdoor.h:138
pItemsTable
struct ItemsTable * pItemsTable
Definition: Items.cpp:37
TileDesc::GetTexture
Texture * GetTexture()
Definition: TileFrameTable.h:53
Tilset_Desert
@ Tilset_Desert
Definition: TileFrameTable.h:28
GetAlertStatus
int GetAlertStatus()
Definition: Indoor.cpp:5287
Texture_MM7::header
TextureHeader header
Definition: Image.h:101
pWeather
Weather * pWeather
Definition: Weather.cpp:8
MAP_INVALID
@ MAP_INVALID
Definition: MapInfo.h:6
y
EGLSurface EGLint EGLint y
Definition: SDL_egl.h:1596
DecalBuilder::Reset
void Reset(bool bPreserveBloodsplats)
Definition: DecalBuilder.cpp:58
OutdoorLocation::ActuallyGetSomeOtherTileInfo
int ActuallyGetSomeOtherTileInfo(signed int uX, signed int uY)
Definition: Outdoor.cpp:1459
Image::GetWidth
unsigned int GetWidth()
Definition: Image.cpp:217
rest_ui_hourglass_frame_current
Image * rest_ui_hourglass_frame_current
Definition: UIRest.cpp:32
IndoorCameraD3D::vPartyPos
Vec3< int > vPartyPos
Definition: IndoorCameraD3D.h:253
Tileset_Badlands
@ Tileset_Badlands
Definition: TileFrameTable.h:32
OutdoorLocation::pSpriteIDs_LUN
unsigned int pSpriteIDs_LUN[8]
Definition: Outdoor.h:142
Vec2::y
T y
Definition: VectorTypes.h:13
MapStartPoint_East
@ MapStartPoint_East
Definition: MapInfo.h:31
OutdoorLocation::pFaceIDLIST
uint16_t * pFaceIDLIST
Definition: Outdoor.h:121
OutdoorLocation::ExecDraw
void ExecDraw(unsigned int bRedraw)
Definition: Outdoor.cpp:84
pParty
Party * pParty
Definition: Party.cpp:30
OutdoorLocation::log
Log * log
Definition: Outdoor.h:179
DDM_DLV_Header::uNumFacesInBModels
unsigned int uNumFacesInBModels
Definition: Indoor.h:98
OutdoorLocation::uLastSunlightUpdateMinute
int uLastSunlightUpdateMinute
Definition: Outdoor.h:177
DDM_DLV_Header::uNumRespawns
int uNumRespawns
Definition: Indoor.h:94
PaletteManager::pPalette_mistColor
uint8_t pPalette_mistColor[3]
Definition: PaletteManager.h:35
OutdoorLocation::uSpriteID_LUN_SUN
uint16_t uSpriteID_LUN_SUN
Definition: Outdoor.h:151
OutdoorLocation::_47F0E2
bool _47F0E2()
Definition: Outdoor.cpp:1569
dword_4EC268
std::array< int, 9 > dword_4EC268
Definition: Outdoor.cpp:78
LEVEL_DECORATION_INVISIBLE
@ LEVEL_DECORATION_INVISIBLE
Definition: Decoration.h:14
RenderBillboard::uPalette
int16_t uPalette
Definition: IRender.h:33
LocationTime_stru1::last_visit
GameTime last_visit
Definition: Indoor.h:274
OutdoorLocation::location_filename
String location_filename
Definition: Outdoor.h:112
OutdoorLocation::lightmap_builder
LightmapBuilder * lightmap_builder
Definition: Outdoor.h:182
TileTable::GetTileForTerrainType
int GetTileForTerrainType(signed int a1, bool a2)
Definition: TileTable.cpp:40
RenderBillboard::object_pid
uint16_t object_pid
Definition: IRender.h:42
ACTOR_BUFF_PARALYZED
@ ACTOR_BUFF_PARALYZED
Definition: Actor.h:44
pTerrainNormals
struct Vec3_float_ * pTerrainNormals
Definition: mm7_data.cpp:756
ACTOR_BUFF_MASS_DISTORTION
@ ACTOR_BUFF_MASS_DISTORTION
Definition: Actor.h:48
OutdoorLocation::loc_time
LocationTime_stru1 loc_time
Definition: Outdoor.h:132
x
EGLSurface EGLint x
Definition: SDL_egl.h:1596
pDefaultSkyTexture
std::array< char, 777 > pDefaultSkyTexture
Definition: mm7_data.cpp:701
SkyBillboardStruct::CalcSkyFrustumVec
void CalcSkyFrustumVec(int a2, int a3, int a4, int a5, int a6, int a7)
Definition: RenderOpenGL.cpp:62
SpriteFrameTable::GetFrame
SpriteFrame * GetFrame(unsigned int uSpriteID, unsigned int uTime)
Definition: Sprites.cpp:277
pGameLoadingUI_ProgressBar
GUIProgressBar * pGameLoadingUI_ProgressBar
Definition: GUIProgressBar.cpp:14
viewparams
struct ViewingParams * viewparams
Definition: mm7_data.cpp:22
OutdoorLocationTerrain::_47CB57
int _47CB57(unsigned char *pixels_8bit, int a2, int num_pixels)
Definition: Outdoor.cpp:784
Disabled
@ Disabled
Definition: Actor.h:94
OutdoorLocation::field_D5C
int field_D5C
Definition: Outdoor.h:172
MAP_SHOALS
@ MAP_SHOALS
Definition: MapInfo.h:21
SpriteFrameTable::ResetSomeSpriteFlags
void ResetSomeSpriteFlags()
Definition: Sprites.cpp:32
OutdoorLocation::field_D0C
int field_D0C
Definition: Outdoor.h:154
Engine_::IocContainer::ResolveDecalBuilder
static DecalBuilder * ResolveDecalBuilder()
Definition: IocContainer.cpp:60
AssetsManager::GetImage_ColorKey
Texture * GetImage_ColorKey(const String &name, uint16_t colorkey)
Definition: AssetsManager.cpp:34
stru123::_decor_events
std::array< unsigned char, 125 > _decor_events
Definition: stru123.h:8
IndoorCameraD3D::ViewClip
bool ViewClip(int x, int y, int z, int *transformed_x, int *transformed_y, int *transformed_z, bool dont_show=false)
Definition: IndoorCameraD3D.cpp:172
_strlwr
void _strlwr(char *src)
Definition: PlatformLinux.h:8
v1
GLfloat GLfloat v1
Definition: SDL_opengl_glext.h:694
TileDesc
Definition: TileFrameTable.h:43
Log::Warning
void Warning(const wchar_t *pFormat,...)
Definition: Log.cpp:28
MAP_THE_PIT
@ MAP_THE_PIT
Definition: MapInfo.h:14
OutdoorLocation::location_file_description
String location_file_description
Definition: Outdoor.h:113
DDM_DLV_Header::uNumDecorations
unsigned int uNumDecorations
Definition: Indoor.h:99
TileDesc::uAttributes
uint16_t uAttributes
Definition: TileFrameTable.h:51
IndoorCameraD3D::Project
void Project(int x, int y, int z, int *screenspace_x, int *screenspace_y)
Definition: IndoorCameraD3D.cpp:1137
LevelDecoration::uFlags
uint16_t uFlags
Definition: Decoration.h:27
OutdoorLocation::uSpriteID_LUN3_4_cp
unsigned int uSpriteID_LUN3_4_cp
Definition: Outdoor.h:145
OutdoorLocationTerrain::Release
void Release()
Definition: Outdoor.cpp:609
OutdoorLocation::Load
bool Load(const String &filename, int days_played, int respawn_interval_days, int *thisa)
Definition: Outdoor.cpp:980
OutdoorLocation::field_CF8
int field_CF8
Definition: Outdoor.h:148
DDM_DLV_Header::uLastRepawnDay
int uLastRepawnDay
Definition: Indoor.h:95
pActors
std::array< Actor, 500 > pActors
Definition: Actor.cpp:38
LocationTime_stru1::day_fogrange_1
int day_fogrange_1
Definition: Indoor.h:277
uNumLevelDecorations
size_t uNumLevelDecorations
Definition: Decoration.cpp:9
Party::uFlags
unsigned int uFlags
Definition: Party.h:313
f
GLfloat f
Definition: SDL_opengl_glext.h:1873
SpellFxRenderer::_4A806F_get_mass_distortion_value
float _4A806F_get_mass_distortion_value(struct Actor *pActor)
Definition: SpellFxRenderer.cpp:648
EQUIP_POTION
@ EQUIP_POTION
Definition: Items.h:241
pTileTable
struct TileTable * pTileTable
Definition: mm7_data.cpp:700
OutdoorLocation::uSpriteID_LUN1_2_cp
unsigned int uSpriteID_LUN1_2_cp
Definition: Outdoor.h:147
OutdoorLocation::field_D14
int field_D14
Definition: Outdoor.h:156
TextureHeader::uDecompressedSize
uint32_t uDecompressedSize
Definition: Image.h:90
fog_probability_table
struct FogProbabilityTableEntry fog_probability_table[15]
DDM_DLV_Header
Definition: Indoor.h:82
rest_ui_sky_frame_current
Image * rest_ui_sky_frame_current
Definition: UIRest.cpp:31
AssetsManager::GetBitmap
Texture * GetBitmap(const String &name)
Definition: AssetsManager.cpp:126
OutdoorLocation::field_F0
int16_t field_F0
Definition: Outdoor.h:125
pGames_LOD
LOD::File * pGames_LOD
Definition: LOD.cpp:25
LevelDecoration
Definition: Decoration.h:20
OutdoorLocationTerrain::FillDMap
void FillDMap(int X, int Y, int W, int Z)
Definition: Outdoor.cpp:623
_6BE134_odm_main_tile_group
int _6BE134_odm_main_tile_group
Definition: mm7_data.cpp:703
pCurrentMapName
String pCurrentMapName
Definition: mm7_data.cpp:712
LEVEL_DECORATION_OBELISK_CHEST
@ LEVEL_DECORATION_OBELISK_CHEST
Definition: Decoration.h:15
Removed
@ Removed
Definition: Actor.h:86
dword_4EC2A8
int dword_4EC2A8
Definition: Outdoor.cpp:80
pPaletteManager
PaletteManager * pPaletteManager
Definition: PaletteManager.cpp:7
OutdoorLocation::GetTileIdByTileMapId
int GetTileIdByTileMapId(signed int a2)
Definition: Outdoor.cpp:1368
GetTerrainHeightsAroundParty2
int GetTerrainHeightsAroundParty2(int a1, int a2, bool *pIsOnWater, int bFloatAboveWater)
Definition: Outdoor.cpp:4044
OutdoorLocation::vSunlight
Vec3_int_ vSunlight
Definition: Outdoor.h:163
OutdoorLocation::sky_texture_filename
String sky_texture_filename
Definition: Outdoor.h:114
LocationTime_stru1::day_fogrange_2
int day_fogrange_2
Definition: Indoor.h:278
OutdoorLocation::field_D40
int field_D40
Definition: Outdoor.h:165
LocationTime_stru1::sky_texture_name
char sky_texture_name[12]
Definition: Indoor.h:275
LevelDecoration::uCog
uint16_t uCog
Definition: Decoration.h:30
OutdoorLocationTerrain::pTilemap
uint8_t * pTilemap
Definition: Outdoor.h:56
TextureHeader::uTextureWidth
uint16_t uTextureWidth
Definition: Image.h:82
pMiscTimer
Timer * pMiscTimer
Definition: Time.cpp:7
OutdoorLocation::field_D60
int field_D60
Definition: Outdoor.h:173
SpriteFrameTable::InitializeSprite
void InitializeSprite(signed int uSpriteID)
Definition: Sprites.cpp:46
OutdoorLocation::max_terrain_dimming_level
int max_terrain_dimming_level
Definition: Outdoor.h:140
TileTable::GetTileById
TileDesc * GetTileById(unsigned int uTileID)
Definition: TileTable.cpp:21
RenderBillboard::screenspace_projection_factor_y
float screenspace_projection_factor_y
Definition: IRender.h:28
LevelDecoration::uDecorationDescID
uint16_t uDecorationDescID
Definition: Decoration.h:26
OutdoorLocation::ddm
struct DDM_DLV_Header ddm
Definition: Outdoor.h:131
_6807E0_num_decorations_with_sounds_6807B8
int _6807E0_num_decorations_with_sounds_6807B8
Definition: mm7_data.cpp:686
OutdoorLocation::field_D08
int field_D08
Definition: Outdoor.h:153
RenderBillboard::screen_space_y
int16_t screen_space_y
Definition: IRender.h:40
SkyBillboard
SkyBillboardStruct SkyBillboard
Definition: Outdoor.cpp:51
Party::bTurnBasedModeOn
bool bTurnBasedModeOn
Definition: Party.h:305
Summoned
@ Summoned
Definition: Actor.h:92
TextureHeader::uTextureHeight
uint16_t uTextureHeight
Definition: Image.h:83
OutdoorLocationTileType
Definition: Outdoor.h:22
PaletteManager::RecalculateAll
void RecalculateAll()
Definition: PaletteManager.cpp:784
SpriteFrameTable::FastFindSprite
int FastFindSprite(const char *pSpriteName)
Definition: Sprites.cpp:243
uNumDecorationsDrawnThisFrame
int uNumDecorationsDrawnThisFrame
Definition: RenderOpenGL.cpp:53
OutdoorLocation::pSpawnPoints
struct SpawnPointMM7 * pSpawnPoints
Definition: Outdoor.h:130
Weather::bNight
bool bNight
Definition: Weather.h:17
uint8_t
unsigned __int8 uint8_t
Definition: SDL_config.h:35
Party::uCurrentDayOfMonth
unsigned int uCurrentDayOfMonth
Definition: Party.h:274
OutdoorLocation::spell_fx_renderer
SpellFxRenderer * spell_fx_renderer
Definition: Outdoor.h:181
LightsStack_MobileLight_::uNumLightsActive
unsigned int uNumLightsActive
Definition: Lights.h:88
MonsterList::pMonsters
struct MonsterDesc * pMonsters
Definition: Monsters.h:237
dword_4EC28C
std::array< int, 7 > dword_4EC28C
Definition: Outdoor.cpp:79
uNumSpriteObjects
size_t uNumSpriteObjects
Definition: SpriteObject.cpp:33
LOD::File::LoadCompressed
void * LoadCompressed(const String &pContainer, size_t *data_size=nullptr)
Definition: LOD.cpp:965
stru193_math::Atan2
unsigned int Atan2(int x, int y)
Definition: OurMath.cpp:46
Tileset_Dirt
@ Tileset_Dirt
Definition: TileFrameTable.h:30
MapStartPoint_West
@ MapStartPoint_West
Definition: MapInfo.h:32
OutdoorLocation::numFaceIDListElems
unsigned int numFaceIDListElems
Definition: Outdoor.h:120
name
EGLImageKHR EGLint * name
Definition: SDL_egl.h:1497
OutdoorLocation::Release
void Release()
Definition: Outdoor.cpp:952
RenderBillboard::world_y
int16_t world_y
Definition: IRender.h:37
pODMRenderParams
ODMRenderParams * pODMRenderParams
Definition: Outdoor.cpp:49
RenderBillboard::field_14_actor_id
int field_14_actor_id
Definition: IRender.h:31
MAP_TYPE
MAP_TYPE
Definition: MapInfo.h:5
PaletteManager::SetMistColor
void SetMistColor(unsigned char r, unsigned char g, unsigned char b)
Definition: PaletteManager.cpp:776
TextureHeader::palette_id2
int16_t palette_id2
Definition: Image.h:89
pTerrainSomeOtherData
std::array< unsigned int, 128 *128 *2 > pTerrainSomeOtherData
Definition: mm7_data.cpp:758
ACTOR_BUFF_STONED
@ ACTOR_BUFF_STONED
Definition: Actor.h:43
pMonsterList
struct MonsterList * pMonsterList
Definition: Monsters.cpp:9
LevelDecoration::_idx_in_stru123
int16_t _idx_in_stru123
Definition: Decoration.h:34
DecorationDesc_mm6::uSoundID
int16_t uSoundID
Definition: DecorationList.h:45
OutdoorLocation::field_D2C
int field_D2C
Definition: Outdoor.h:162
ODMRenderParams::uMapGridCellZ
unsigned int uMapGridCellZ
Definition: IRender.h:106
SpriteFrame
Definition: Sprites.h:39
assets
AssetsManager * assets
Definition: AssetsManager.cpp:12
uint
unsigned int uint
Definition: MM7.h:4
v3
GLfloat GLfloat GLfloat GLfloat v3
Definition: SDL_opengl_glext.h:696
OutdoorLocation::pTileTypes
OutdoorLocationTileType pTileTypes[4]
Definition: Outdoor.h:116
pStationaryLightsStack
LightsStack_StationaryLight_ * pStationaryLightsStack
Definition: LightmapBuilder.cpp:11
__debugbreak
void __cdecl __debugbreak(void)
IndoorCameraD3D::debug_flags
int debug_flags
Definition: IndoorCameraD3D.h:255
OutdoorLocation::pTerrain
struct OutdoorLocationTerrain pTerrain
Definition: Outdoor.h:117
fixed::GetFloat
float GetFloat() const
Definition: OurMath.h:37
OutdoorLocation::subconstuctor
void subconstuctor()
Definition: Outdoor.cpp:2168
OutdoorLocation::LoadRoadTileset
bool LoadRoadTileset()
Definition: Outdoor.cpp:1705
OutdoorLocation::field_D48
int field_D48
Definition: Outdoor.h:167
LODFile_Sprites::DeleteSomeOtherSprites
void DeleteSomeOtherSprites()
Definition: LOD.cpp:232
OutdoorLocation::field_D24
int field_D24
Definition: Outdoor.h:160
OutdoorLocation::UpdateDiscoveredArea
int UpdateDiscoveredArea(int a2, int a3, int a4)
Definition: Outdoor.cpp:1527
ODMFace
Definition: BSPModel.h:93
pBitmaps_LOD
LODFile_IconsBitmaps * pBitmaps_LOD
Definition: LOD.cpp:16
foot_travel_destinations
char foot_travel_destinations[15][4]
Definition: Outdoor.cpp:273
OutdoorLocation::CreateDebugLocation
void CreateDebugLocation()
Definition: Outdoor.cpp:902
DecorationList::InitializeDecorationSprite
void InitializeDecorationSprite(unsigned int uDecID)
Definition: DecorationList.cpp:45
uNumSpritesDrawnThisFrame
int uNumSpritesDrawnThisFrame
Definition: RenderOpenGL.cpp:56
stru193_math::Cos
int Cos(int angle)
Definition: OurMath.cpp:28
ChestsDeserialize
char * ChestsDeserialize(char *pData)
Definition: Chest.cpp:500
byte_6BE124_cfg_textures_DefaultGroundTexture
std::array< char, 16 > byte_6BE124_cfg_textures_DefaultGroundTexture
Definition: mm7_data.cpp:702
stru_5C6E00
struct stru193_math * stru_5C6E00
Definition: mm7_data.cpp:19
ODM_GetFloorLevel
int ODM_GetFloorLevel(int X, signed int Y, int Z, int __unused, bool *pIsOnWater, int *bmodel_pid, int bWaterWalk)
Definition: Outdoor.cpp:1877
OutdoorLocation::_47ED83
int _47ED83(signed int a2, signed int a3)
Definition: Outdoor.cpp:1451
OutdoorLocation::field_D00
int field_D00
Definition: Outdoor.h:150
dword_6BE364_game_settings_1
int dword_6BE364_game_settings_1
Definition: mm7_data.cpp:714
OutdoorLocation::level_filename
String level_filename
Definition: Outdoor.h:111
foot_travel_times
unsigned char foot_travel_times[15][4]
Definition: Outdoor.cpp:291
DecorationDesc
Definition: DecorationList.h:49
pBillboardRenderList
RenderBillboard pBillboardRenderList[500]
Definition: RenderOpenGL.cpp:54
pTerrainNormalIndices
std::array< unsigned short, 128 *128 *2 > pTerrainNormalIndices
Definition: mm7_data.cpp:757
ODMRenderParams::int_fov_rad
int int_fov_rad
Definition: IRender.h:79
Is_out15odm_underwater
char Is_out15odm_underwater()
Definition: Outdoor.cpp:3377
OutdoorLocation::field_D28
int field_D28
Definition: Outdoor.h:161
uLevel_StartingPointType
MapStartPoint uLevel_StartingPointType
Definition: Outdoor.cpp:46
RenderBillboard::screenspace_projection_factor_x
float screenspace_projection_factor_x
Definition: IRender.h:27
stru193_math::Sin
int Sin(int angle)
Definition: OurMath.cpp:133
BSPModel
Definition: BSPModel.h:163
logger
Log * logger
Definition: IocContainer.cpp:47
pMobileLightsStack
LightsStack_MobileLight_ * pMobileLightsStack
Definition: LightmapBuilder.cpp:14
stru_5E4C90_MapPersistVars
stru123 stru_5E4C90_MapPersistVars
Definition: mm7_data.cpp:23
OutdoorLocation::field_D10
int field_D10
Definition: Outdoor.h:155
Engine_::IocContainer::ResolveSpellFxRenderer
static SpellFxRenderer * ResolveSpellFxRenderer()
Definition: IocContainer.cpp:74
LocationTime_stru1::day_attrib
int day_attrib
Definition: Indoor.h:276
OutdoorLocation::field_CF0
int field_CF0
Definition: Outdoor.h:146
pOutdoor
OutdoorLocation * pOutdoor
Definition: Outdoor.cpp:48
GUIProgressBar::Progress
void Progress()
Definition: GUIProgressBar.cpp:83
PaletteManager::pPalette_tintColor
unsigned char pPalette_tintColor[3]
Definition: PaletteManager.h:36
LODFile_IconsBitmaps::pTextures
Texture_MM7 pTextures[MAX_LOD_TEXTURES]
Definition: LOD.h:158
DDM_DLV_Header::uNumBModels
unsigned int uNumBModels
Definition: Indoor.h:100
Engine_::IocContainer::ResolveLightmapBuilder
static LightmapBuilder * ResolveLightmapBuilder()
Definition: IocContainer.cpp:81
pIndoorCameraD3D
IndoorCameraD3D * pIndoorCameraD3D
Definition: IndoorCameraD3D.cpp:21
OutdoorLocation::DoGetHeightOnTerrain
int DoGetHeightOnTerrain(signed int sX, signed int sZ)
Definition: Outdoor.cpp:1474
_6807B8_level_decorations_ids
std::array< int, 777 > _6807B8_level_decorations_ids
Definition: mm7_data.cpp:685
OutdoorLocationTileType::uTileID
uint16_t uTileID
Definition: Outdoor.h:24
StringPrintf
String StringPrintf(const char *fmt,...)
Definition: Strings.cpp:9
MonsterDesc::sTintColor
unsigned int sTintColor
Definition: Monsters.h:218
foot_travel_arrival_points
MapStartPoint foot_travel_arrival_points[15][4]
Definition: Outdoor.cpp:310
Timer::uTotalGameTimeElapsed
unsigned int uTotalGameTimeElapsed
Definition: Time.h:135
stru193_math::uIntegerPi
static const unsigned int uIntegerPi
Definition: OurMath.h:88
String
std::string String
Definition: Strings.h:10
LightsStack_MobileLight_::AddLight
bool AddLight(int16_t x, int16_t y, int16_t z, int16_t uSectorID, int uRadius, uint8_t r, uint8_t g, uint8_t b, char a10)
Definition: LightsStack.cpp:6
Tileset_RoadGrassCobble
@ Tileset_RoadGrassCobble
Definition: TileFrameTable.h:36
pEventTimer
Timer * pEventTimer
Definition: Time.cpp:8
RenderBillboard::world_x
int16_t world_x
Definition: IRender.h:36
SpriteFrame::uFlags
int uFlags
Definition: Sprites.h:48
Image::Release
bool Release()
Definition: Image.cpp:335
RenderBillboard::sTintColor
unsigned int sTintColor
Definition: IRender.h:44
ItemsTable::pItems
NZIArray< ItemDesc, 800 > pItems
Definition: Items.h:460
pDecorationList
struct DecorationList * pDecorationList
Definition: DecorationList.cpp:11
OutdoorLocation::field_D3C
int field_D3C
Definition: Outdoor.h:164
render
std::shared_ptr< IRender > render
Definition: RenderOpenGL.cpp:52