1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-21 09:09:43 +00:00

Make MWWorld:Cells and MWWorld::Scene to be accessible via Environment

This commit is contained in:
Petr Mikheev 2022-11-06 17:57:01 +01:00
parent ff142b6009
commit 2df993004c
3 changed files with 17 additions and 0 deletions

View file

@ -772,6 +772,8 @@ void OMW::Engine::prepareEngine()
mWorld->setupPlayer();
mWorld->setRandomSeed(mRandomSeed);
mEnvironment.setWorld(*mWorld);
mEnvironment.setWorldModel(mWorld->getWorldModel());
mEnvironment.setWorldScene(mWorld->getWorldScene());
mWindowManager->setStore(mWorld->getStore());
mWindowManager->initUI();

View file

@ -15,6 +15,12 @@ namespace l10n
class Manager;
}
namespace MWWorld
{
class Cells;
class Scene;
}
namespace MWBase
{
class World;
@ -37,6 +43,8 @@ namespace MWBase
static Environment* sThis;
World* mWorld = nullptr;
MWWorld::Cells* mWorldModel = nullptr; // TODO: rename Cells -> WorldModel
MWWorld::Scene* mWorldScene = nullptr;
SoundManager* mSoundManager = nullptr;
ScriptManager* mScriptManager = nullptr;
WindowManager* mWindowManager = nullptr;
@ -61,6 +69,8 @@ namespace MWBase
Environment& operator=(const Environment&) = delete;
void setWorld(World& value) { mWorld = &value; }
void setWorldModel(MWWorld::Cells& value) { mWorldModel = &value; }
void setWorldScene(MWWorld::Scene& value) { mWorldScene = &value; }
void setSoundManager(SoundManager& value) { mSoundManager = &value; }
@ -85,6 +95,8 @@ namespace MWBase
void setL10nManager(l10n::Manager& value) { mL10nManager = &value; }
Misc::NotNullPtr<World> getWorld() const { return mWorld; }
Misc::NotNullPtr<MWWorld::Cells> getWorldModel() const { return mWorldModel; }
Misc::NotNullPtr<MWWorld::Scene> getWorldScene() const { return mWorldScene; }
Misc::NotNullPtr<SoundManager> getSoundManager() const { return mSoundManager; }

View file

@ -189,6 +189,9 @@ namespace MWWorld
MWWorld::ConstPtr getClosestMarkerFromExteriorPosition(const osg::Vec3f& worldPos, std::string_view id);
public:
Cells& getWorldModel() { return mCells; }
Scene& getWorldScene() { return *mWorldScene; }
// FIXME
void addContainerScripts(const Ptr& reference, CellStore* cell) override;
void removeContainerScripts(const Ptr& reference) override;