Changeset View
Changeset View
Standalone View
Standalone View
source/simulation2/system/SimContext.h
/* Copyright (C) 2016 Wildfire Games. | /* Copyright (C) 2021 Wildfire Games. | ||||
* This file is part of 0 A.D. | * This file is part of 0 A.D. | ||||
* | * | ||||
* 0 A.D. is free software: you can redistribute it and/or modify | * 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 | * it under the terms of the GNU General Public License as published by | ||||
* the Free Software Foundation, either version 2 of the License, or | * the Free Software Foundation, either version 2 of the License, or | ||||
* (at your option) any later version. | * (at your option) any later version. | ||||
* | * | ||||
* 0 A.D. is distributed in the hope that it will be useful, | * 0 A.D. is distributed in the hope that it will be useful, | ||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
* GNU General Public License for more details. | * GNU General Public License for more details. | ||||
* | * | ||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with 0 A.D. If not, see <http://www.gnu.org/licenses/>. | * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>. | ||||
*/ | */ | ||||
#ifndef INCLUDED_SIMCONTEXT | #ifndef INCLUDED_SIMCONTEXT | ||||
#define INCLUDED_SIMCONTEXT | #define INCLUDED_SIMCONTEXT | ||||
#include "Entity.h" | #include "Entity.h" | ||||
class CComponentManager; | class CComponentManager; | ||||
class ComponentTestHelper; | |||||
class CUnitManager; | class CUnitManager; | ||||
class CTerrain; | class CTerrain; | ||||
class ScriptInterface; | class ScriptInterface; | ||||
struct SSimSynchronization; | |||||
/** | /** | ||||
* Contains pointers to various 'global' objects that are needed by the simulation code, | * Contains pointers to various 'global' objects that are needed by the simulation code, | ||||
* to allow easy access without using real (evil) global variables. | * to allow easy access without using real (evil) global variables. | ||||
*/ | */ | ||||
class CSimContext | class CSimContext | ||||
{ | { | ||||
public: | public: | ||||
CSimContext(); | CSimContext(); | ||||
~CSimContext(); | ~CSimContext(); | ||||
CComponentManager& GetComponentManager() const; | CComponentManager& GetComponentManager() const; | ||||
void SetComponentManager(CComponentManager* man); | void SetComponentManager(CComponentManager* man); | ||||
bool HasUnitManager() const; | bool HasUnitManager() const; | ||||
CUnitManager& GetUnitManager() const; | CUnitManager& GetUnitManager() const; | ||||
CTerrain& GetTerrain() const; | CTerrain& GetTerrain() const; | ||||
ScriptInterface& GetScriptInterface() const; | ScriptInterface& GetScriptInterface() const; | ||||
SSimSynchronization& GetSynchronizationData() const; | |||||
void SetSystemEntity(CEntityHandle ent) { m_SystemEntity = ent; } | void SetSystemEntity(CEntityHandle ent) { m_SystemEntity = ent; } | ||||
CEntityHandle GetSystemEntity() const { ASSERT(m_SystemEntity.GetId() == SYSTEM_ENTITY); return m_SystemEntity; } | CEntityHandle GetSystemEntity() const { ASSERT(m_SystemEntity.GetId() == SYSTEM_ENTITY); return m_SystemEntity; } | ||||
/** | /** | ||||
* Returns the player ID that the current display is being rendered for. | * Returns the player ID that the current display is being rendered for. | ||||
* Currently relies on g_Game being initialised (evil globals...) | * Currently relies on g_Game being initialised (evil globals...) | ||||
*/ | */ | ||||
int GetCurrentDisplayedPlayer() const; | int GetCurrentDisplayedPlayer() const; | ||||
private: | private: | ||||
CComponentManager* m_ComponentManager; | CComponentManager* m_ComponentManager = nullptr; | ||||
CUnitManager* m_UnitManager; | CUnitManager* m_UnitManager = nullptr; | ||||
CTerrain* m_Terrain; | CTerrain* m_Terrain = nullptr; | ||||
SSimSynchronization* m_SynchronizationData = nullptr; | |||||
CEntityHandle m_SystemEntity; | CEntityHandle m_SystemEntity; | ||||
friend class CSimulation2Impl; | friend class CSimulation2Impl; | ||||
friend class ComponentTestHelper; | |||||
}; | }; | ||||
#endif // INCLUDED_SIMCONTEXT | #endif // INCLUDED_SIMCONTEXT |
Wildfire Games · Phabricator