Index: ps/trunk/source/ps/World.cpp =================================================================== --- ps/trunk/source/ps/World.cpp (revision 19930) +++ ps/trunk/source/ps/World.cpp (revision 19931) @@ -1,124 +1,123 @@ -/* Copyright (C) 2013 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * 0 A.D. is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with 0 A.D. If not, see . */ /** * File : World.cpp * Project : engine * Description : Contains the CWorld Class implementation. * **/ #include "precompiled.h" #include "graphics/GameView.h" #include "graphics/LightEnv.h" #include "graphics/MapReader.h" #include "graphics/MapWriter.h" #include "graphics/Terrain.h" #include "graphics/Terrain.h" #include "graphics/UnitManager.h" #include "lib/timer.h" #include "ps/CLogger.h" #include "ps/CStr.h" #include "ps/Errors.h" #include "ps/Game.h" #include "ps/Loader.h" #include "ps/LoaderThunks.h" #include "ps/World.h" #include "renderer/Renderer.h" #include "simulation2/Simulation2.h" /** * Global light settings. * It is not a member of CWorld because it is passed * to the renderer before CWorld exists. **/ CLightEnv g_LightEnv; /** * Constructor. * * @param pGame CGame * pGame pointer to the container game object. **/ CWorld::CWorld(CGame *pGame): m_pGame(pGame), m_Terrain(new CTerrain()), - m_UnitManager(new CUnitManager()), - m_TerritoryManager(NULL) + m_UnitManager(new CUnitManager()) { } /** * Initializes the game world with the attributes provided. **/ void CWorld::RegisterInit(const CStrW& mapFile, JSRuntime* rt, JS::HandleValue settings, int playerID) { // Load the map, if one was specified if (mapFile.length()) { VfsPath mapfilename = VfsPath(mapFile).ChangeExtension(L".pmp"); CMapReader* reader = 0; try { reader = new CMapReader; CTriggerManager* pTriggerManager = NULL; reader->LoadMap(mapfilename, rt, settings, m_Terrain, CRenderer::IsInitialised() ? g_Renderer.GetWaterManager() : NULL, CRenderer::IsInitialised() ? g_Renderer.GetSkyManager() : NULL, &g_LightEnv, m_pGame->GetView(), m_pGame->GetView() ? m_pGame->GetView()->GetCinema() : NULL, pTriggerManager, CRenderer::IsInitialised() ? &g_Renderer.GetPostprocManager() : NULL, m_pGame->GetSimulation2(), &m_pGame->GetSimulation2()->GetSimContext(), playerID, false); // fails immediately, or registers for delay loading } catch (PSERROR_File& err) { delete reader; LOGERROR("Failed to load map %s: %s", mapfilename.string8(), err.what()); throw PSERROR_Game_World_MapLoadFailed("Failed to load map.\nCheck application log for details."); } } } void CWorld::RegisterInitRMS(const CStrW& scriptFile, JSRuntime* rt, JS::HandleValue settings, int playerID) { // If scriptFile is empty, a blank map will be generated using settings (no RMS run) CMapReader* reader = 0; reader = new CMapReader; CTriggerManager* pTriggerManager = NULL; reader->LoadRandomMap(scriptFile, rt, settings, m_Terrain, CRenderer::IsInitialised() ? g_Renderer.GetWaterManager() : NULL, CRenderer::IsInitialised() ? g_Renderer.GetSkyManager() : NULL, &g_LightEnv, m_pGame->GetView(), m_pGame->GetView() ? m_pGame->GetView()->GetCinema() : NULL, pTriggerManager, CRenderer::IsInitialised() ? &g_Renderer.GetPostprocManager() : NULL, m_pGame->GetSimulation2(), playerID); // registers for delay loading } /** * Destructor. * **/ CWorld::~CWorld() { delete m_Terrain; delete m_UnitManager; } Index: ps/trunk/source/ps/World.h =================================================================== --- ps/trunk/source/ps/World.h (revision 19930) +++ ps/trunk/source/ps/World.h (revision 19931) @@ -1,111 +1,99 @@ -/* Copyright (C) 2013 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * 0 A.D. is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with 0 A.D. If not, see . */ /** * File : World.h * Project : engine * Description : Contains the CWorld Class which contains all the entities and represents them at a specific moment in time. * **/ #ifndef INCLUDED_WORLD #define INCLUDED_WORLD #include "ps/Errors.h" #include "scriptinterface/ScriptInterface.h" #ifndef ERROR_GROUP_GAME_DEFINED #define ERROR_GROUP_GAME_DEFINED ERROR_GROUP(Game); #endif ERROR_SUBGROUP(Game, World); ERROR_TYPE(Game_World, MapLoadFailed); class CGame; class CUnitManager; -class CTerritoryManager; class CTerrain; class CStrW; /** * CWorld is a general data class containing whatever is needed to accurately represent the world. * This includes the map, entities, influence maps, tiles, heightmap, etc. **/ class CWorld { NONCOPYABLE(CWorld); /** * pointer to the CGame object representing the game. **/ CGame *m_pGame; /** * pointer to the CTerrain object representing the height map. **/ CTerrain *m_Terrain; /** * pointer to the CUnitManager that holds all the units in the world. **/ CUnitManager *m_UnitManager; - /** - * pointer to the CTerritoryManager that holds territory matrix for the world. - **/ - CTerritoryManager *m_TerritoryManager; public: CWorld(CGame *pGame); ~CWorld(); /* Initialize the World - load the map and all objects */ void RegisterInit(const CStrW& mapFile, JSRuntime* rt, JS::HandleValue settings, int playerID); /* Initialize the World - generate and load the random map */ void RegisterInitRMS(const CStrW& scriptFile, JSRuntime* rt, JS::HandleValue settings, int playerID); /** * Get the pointer to the terrain object. * * @return CTerrain * the value of m_Terrain. **/ inline CTerrain *GetTerrain() { return m_Terrain; } /** * Get a reference to the unit manager object. * * @return CUnitManager & dereferenced m_UnitManager. **/ inline CUnitManager &GetUnitManager() { return *m_UnitManager; } - /** - * Get the pointer to the territory manager object. - * - * @return CTerritoryManager * the value of m_TerritoryManager. - **/ - inline CTerritoryManager *GetTerritoryManager() - { return m_TerritoryManager; } }; // rationale: see definition. class CLightEnv; extern CLightEnv g_LightEnv; #endif