diff --git a/apps/openmw/mwrender/renderingmanager.cpp b/apps/openmw/mwrender/renderingmanager.cpp index fb8f30294b..2cfa5291af 100644 --- a/apps/openmw/mwrender/renderingmanager.cpp +++ b/apps/openmw/mwrender/renderingmanager.cpp @@ -762,10 +762,12 @@ namespace MWRender mWater->removeCell(store); } - void RenderingManager::enableTerrain(bool enable) + void RenderingManager::enableTerrain(bool enable, ESM::RefId worldspace) { if (!enable) mWater->setCullCallback(nullptr); + else + mTerrain = getWorldspaceTerrain(worldspace); mTerrain->enable(enable); } diff --git a/apps/openmw/mwrender/renderingmanager.hpp b/apps/openmw/mwrender/renderingmanager.hpp index 8aed274468..02824fe34d 100644 --- a/apps/openmw/mwrender/renderingmanager.hpp +++ b/apps/openmw/mwrender/renderingmanager.hpp @@ -150,7 +150,7 @@ namespace MWRender void addCell(const MWWorld::CellStore* store); void removeCell(const MWWorld::CellStore* store); - void enableTerrain(bool enable); + void enableTerrain(bool enable, ESM::RefId worldspace); void updatePtr(const MWWorld::Ptr& old, const MWWorld::Ptr& updated); diff --git a/apps/openmw/mwworld/scene.cpp b/apps/openmw/mwworld/scene.cpp index 5112fad252..f08b4d2a97 100644 --- a/apps/openmw/mwworld/scene.cpp +++ b/apps/openmw/mwworld/scene.cpp @@ -784,7 +784,7 @@ namespace MWWorld mHalfGridSize = cell.getCell()->isEsm4() ? Constants::ESM4CellGridRadius : Constants::CellGridRadius; mCurrentCell = &cell; - mRendering.enableTerrain(cell.isExterior()); + mRendering.enableTerrain(cell.isExterior(), cell.getCell()->getWorldSpace()); MWWorld::Ptr old = mWorld.getPlayerPtr(); mWorld.getPlayer().setCell(&cell);