diff --git a/apps/openmw/mwworld/scene.cpp b/apps/openmw/mwworld/scene.cpp index 312fb9e36b..ee107e1f2a 100644 --- a/apps/openmw/mwworld/scene.cpp +++ b/apps/openmw/mwworld/scene.cpp @@ -403,22 +403,21 @@ namespace MWWorld void Scene::changeToInteriorCell (const std::string& cellName, const ESM::Position& position) { - Nif::NIFFile::CacheLock lock; - MWBase::Environment::get().getWindowManager()->fadeScreenOut(0.5); - - Loading::Listener* loadingListener = MWBase::Environment::get().getWindowManager()->getLoadingScreen(); - Loading::ScopedLoad load(loadingListener); - - mRendering.enableTerrain(false); - - std::string loadingInteriorText = "#{sLoadingMessage2}"; - loadingListener->setLabel(loadingInteriorText); - CellStore *cell = MWBase::Environment::get().getWorld()->getInterior(cellName); bool loadcell = (mCurrentCell == NULL); if(!loadcell) loadcell = *mCurrentCell != *cell; + Nif::NIFFile::CacheLock lock; + MWBase::Environment::get().getWindowManager()->fadeScreenOut(0.5); + + Loading::Listener* loadingListener = MWBase::Environment::get().getWindowManager()->getLoadingScreen(); + std::string loadingInteriorText = "#{sLoadingMessage2}"; + loadingListener->setLabel(loadingInteriorText); + Loading::ScopedLoad load(loadingListener); + + mRendering.enableTerrain(false); + if(!loadcell) { MWBase::World *world = MWBase::Environment::get().getWorld();