Changeset View
Changeset View
Standalone View
Standalone View
source/graphics/MapReader.h
Show All 20 Lines | |||||
#include "MapIO.h" | #include "MapIO.h" | ||||
#include "graphics/LightEnv.h" | #include "graphics/LightEnv.h" | ||||
#include "ps/CStr.h" | #include "ps/CStr.h" | ||||
#include "ps/FileIo.h" | #include "ps/FileIo.h" | ||||
#include "scriptinterface/ScriptTypes.h" | #include "scriptinterface/ScriptTypes.h" | ||||
#include "simulation2/system/Entity.h" | #include "simulation2/system/Entity.h" | ||||
#include <memory> | |||||
class CTerrain; | class CTerrain; | ||||
class WaterManager; | class WaterManager; | ||||
class SkyManager; | class SkyManager; | ||||
class CLightEnv; | class CLightEnv; | ||||
class CCinemaManager; | class CCinemaManager; | ||||
class CPostprocManager; | class CPostprocManager; | ||||
class CTriggerManager; | class CTriggerManager; | ||||
class CSimulation2; | class CSimulation2; | ||||
class CSimContext; | class CSimContext; | ||||
class CTerrainTextureEntry; | class CTerrainTextureEntry; | ||||
class CGameView; | class CGameView; | ||||
class CXMLReader; | class CXMLReader; | ||||
class CMapGenerator; | |||||
class ScriptContext; | class ScriptContext; | ||||
class ScriptInterface; | class ScriptInterface; | ||||
vladislavbelov: Too common name in the global space. | |||||
class CMapReader : public CMapIO | class CMapReader : public CMapIO | ||||
{ | { | ||||
friend class CXMLReader; | friend class CXMLReader; | ||||
public: | public: | ||||
// constructor | // constructor | ||||
CMapReader(); | CMapReader(); | ||||
~CMapReader(); | ~CMapReader(); | ||||
Show All 29 Lines | private: | ||||
// read entity data from the XML file | // read entity data from the XML file | ||||
int ReadXMLEntities(); | int ReadXMLEntities(); | ||||
// Copy random map settings over to sim | // Copy random map settings over to sim | ||||
int LoadRMSettings(); | int LoadRMSettings(); | ||||
// Generate random map | // Generate random map | ||||
int GenerateMap(const CStrW& scriptFile); | int StartMapGeneration(const CStrW& scriptFile); | ||||
int PollMapGeneration(); | |||||
// Parse script data into terrain | // Parse script data into terrain | ||||
int ParseTerrain(); | int ParseTerrain(); | ||||
// Parse script data into entities | // Parse script data into entities | ||||
int ParseEntities(); | int ParseEntities(); | ||||
// Parse script data into environment | // Parse script data into environment | ||||
int ParseEnvironment(); | int ParseEnvironment(); | ||||
// Parse script data into camera | // Parse script data into camera | ||||
int ParseCamera(); | int ParseCamera(); | ||||
// size of map | // size of map | ||||
ssize_t m_PatchesPerSide; | ssize_t m_PatchesPerSide{0}; | ||||
// heightmap for map | // heightmap for map | ||||
std::vector<u16> m_Heightmap; | std::vector<u16> m_Heightmap; | ||||
// list of terrain textures used by map | // list of terrain textures used by map | ||||
std::vector<CTerrainTextureEntry*> m_TerrainTextures; | std::vector<CTerrainTextureEntry*> m_TerrainTextures; | ||||
// tile descriptions for each tile | // tile descriptions for each tile | ||||
std::vector<STileDesc> m_Tiles; | std::vector<STileDesc> m_Tiles; | ||||
// lightenv stored in file | // lightenv stored in file | ||||
CLightEnv m_LightEnv; | CLightEnv m_LightEnv; | ||||
// startup script | // startup script | ||||
CStrW m_Script; | CStrW m_Script; | ||||
// random map data | // random map data | ||||
JS::PersistentRootedValue m_ScriptSettings; | JS::PersistentRootedValue m_ScriptSettings; | ||||
JS::PersistentRootedValue m_MapData; | JS::PersistentRootedValue m_MapData; | ||||
CMapGenerator* m_MapGen; | struct GeneratorState; | ||||
std::unique_ptr<GeneratorState> m_GeneratorState; | |||||
Done Inline ActionsIt sounds like Generator and GeneratorState have different meanings. vladislavbelov: It sounds like `Generator` and `GeneratorState` have different meanings. | |||||
CFileUnpacker unpacker; | CFileUnpacker unpacker; | ||||
CTerrain* pTerrain; | CTerrain* pTerrain; | ||||
WaterManager* pWaterMan; | WaterManager* pWaterMan; | ||||
SkyManager* pSkyMan; | SkyManager* pSkyMan; | ||||
CPostprocManager* pPostproc; | CPostprocManager* pPostproc; | ||||
CLightEnv* pLightEnv; | CLightEnv* pLightEnv; | ||||
CGameView* pGameView; | CGameView* pGameView; | ||||
CCinemaManager* pCinema; | CCinemaManager* pCinema; | ||||
CTriggerManager* pTrigMan; | CTriggerManager* pTrigMan; | ||||
CSimulation2* pSimulation2; | CSimulation2* pSimulation2; | ||||
const CSimContext* pSimContext; | const CSimContext* pSimContext; | ||||
int m_PlayerID; | int m_PlayerID; | ||||
bool m_SkipEntities; | bool m_SkipEntities; | ||||
VfsPath filename_xml; | VfsPath filename_xml; | ||||
bool only_xml; | bool only_xml; | ||||
u32 file_format_version; | u32 file_format_version; | ||||
entity_id_t m_StartingCameraTarget; | entity_id_t m_StartingCameraTarget; | ||||
CVector3D m_StartingCamera; | CVector3D m_StartingCamera; | ||||
// UnpackTerrain generator state | // UnpackTerrain generator state | ||||
size_t cur_terrain_tex; | // It's important to initialize it to 0 - resets generator state | ||||
size_t cur_terrain_tex{0}; | |||||
size_t num_terrain_tex; | size_t num_terrain_tex; | ||||
CXMLReader* xml_reader; | CXMLReader* xml_reader{nullptr}; | ||||
}; | }; | ||||
/** | /** | ||||
* A restricted map reader that returns various summary information | * A restricted map reader that returns various summary information | ||||
* for use by scripts (particularly the GUI). | * for use by scripts (particularly the GUI). | ||||
*/ | */ | ||||
class CMapSummaryReader | class CMapSummaryReader | ||||
{ | { | ||||
Show All 22 Lines |
Wildfire Games · Phabricator
Too common name in the global space.