Index: source/simulation2/Simulation2.cpp =================================================================== --- source/simulation2/Simulation2.cpp +++ source/simulation2/Simulation2.cpp @@ -54,12 +54,11 @@ { public: CSimulation2Impl(CUnitManager* unitManager, ScriptContext& cx, CTerrain* terrain) : + m_SimContext{terrain, unitManager}, m_ComponentManager{m_SimContext, cx}, m_MapSettings{cx.GetGeneralJSContext()}, m_InitAttributes{cx.GetGeneralJSContext()} { - m_SimContext.m_UnitManager = unitManager; - m_SimContext.m_Terrain = terrain; m_ComponentManager.LoadComponentTypes(); RegisterFileReloadFunc(ReloadChangedFileCB, this); @@ -406,8 +405,7 @@ m_SecondaryTerrain = std::make_unique(); - m_SecondaryContext = std::make_unique(); - m_SecondaryContext->m_Terrain = m_SecondaryTerrain.get(); + m_SecondaryContext = std::make_unique(m_SecondaryTerrain.get()); m_SecondaryComponentManager = std::make_unique(*m_SecondaryContext, scriptInterface.GetContext()); m_SecondaryComponentManager->LoadComponentTypes(); Index: source/simulation2/system/SimContext.h =================================================================== --- source/simulation2/system/SimContext.h +++ source/simulation2/system/SimContext.h @@ -32,7 +32,7 @@ class CSimContext { public: - CSimContext(); + CSimContext(CTerrain* terrain = nullptr, CUnitManager* unitManager = nullptr); ~CSimContext(); CComponentManager& GetComponentManager() const; @@ -60,8 +60,6 @@ CTerrain* m_Terrain; CEntityHandle m_SystemEntity; - - friend class CSimulation2Impl; }; #endif // INCLUDED_SIMCONTEXT Index: source/simulation2/system/SimContext.cpp =================================================================== --- source/simulation2/system/SimContext.cpp +++ source/simulation2/system/SimContext.cpp @@ -23,8 +23,9 @@ #include "ps/Game.h" -CSimContext::CSimContext() : - m_ComponentManager(NULL), m_UnitManager(NULL), m_Terrain(NULL) +CSimContext::CSimContext(CTerrain* terrain /*= nullptr*/, CUnitManager* unitManager /*= nullptr*/) : + m_UnitManager{unitManager}, + m_Terrain{terrain} { }