1
0
forked from 0ad/0ad

Make the CSimContext constructor take a CTerrain and a CUnitManager

`CSimulationImpl` doesn't has to be a friend anymore.

Comments by: @Stan
Differential Revision: https://code.wildfiregames.com/D5296
This was SVN commit r28138.
This commit is contained in:
phosit 2024-07-05 16:55:33 +00:00
parent a4d9993e86
commit 9e328ec617
3 changed files with 9 additions and 12 deletions

View File

@ -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<SimulationComman
m_SecondaryTerrain = std::make_unique<CTerrain>();
m_SecondaryContext = std::make_unique<CSimContext>();
m_SecondaryContext->m_Terrain = m_SecondaryTerrain.get();
m_SecondaryContext = std::make_unique<CSimContext>(m_SecondaryTerrain.get());
m_SecondaryComponentManager = std::make_unique<CComponentManager>(*m_SecondaryContext, scriptInterface.GetContext());
m_SecondaryComponentManager->LoadComponentTypes();

View File

@ -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}
{
}

View File

@ -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