diff --git a/source/simulation2/Simulation2.cpp b/source/simulation2/Simulation2.cpp index 27c8c90f5b..af4964506f 100644 --- a/source/simulation2/Simulation2.cpp +++ b/source/simulation2/Simulation2.cpp @@ -54,12 +54,11 @@ class CSimulation2Impl { 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 @@ void CSimulation2Impl::Update(int turnLength, const std::vector(); - 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(); diff --git a/source/simulation2/system/SimContext.cpp b/source/simulation2/system/SimContext.cpp index 8836b73ecb..caefc4fb60 100644 --- a/source/simulation2/system/SimContext.cpp +++ b/source/simulation2/system/SimContext.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Wildfire Games. +/* Copyright (C) 2024 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -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} { } diff --git a/source/simulation2/system/SimContext.h b/source/simulation2/system/SimContext.h index b50d0f71da..137bacd9a5 100644 --- a/source/simulation2/system/SimContext.h +++ b/source/simulation2/system/SimContext.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Wildfire Games. +/* Copyright (C) 2024 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -32,7 +32,7 @@ class ScriptInterface; class CSimContext { public: - CSimContext(); + CSimContext(CTerrain* terrain = nullptr, CUnitManager* unitManager = nullptr); ~CSimContext(); CComponentManager& GetComponentManager() const; @@ -55,13 +55,11 @@ public: int GetCurrentDisplayedPlayer() const; private: - CComponentManager* m_ComponentManager; + CComponentManager* m_ComponentManager{nullptr}; CUnitManager* m_UnitManager; CTerrain* m_Terrain; CEntityHandle m_SystemEntity; - - friend class CSimulation2Impl; }; #endif // INCLUDED_SIMCONTEXT