From a0ac6e51502368792ee8ddfa3b650dd7366b3760 Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Sun, 12 Feb 2012 12:35:29 +0100 Subject: [PATCH] cells were sometimes not fully loaded --- apps/openmw/mwworld/cells.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwworld/cells.cpp b/apps/openmw/mwworld/cells.cpp index 143ce557b5..079c888aa6 100644 --- a/apps/openmw/mwworld/cells.cpp +++ b/apps/openmw/mwworld/cells.cpp @@ -63,10 +63,11 @@ MWWorld::Ptr::CellStore *MWWorld::Cells::getExterior (int x, int y) result = mExteriors.insert (std::make_pair ( std::make_pair (x, y), Ptr::CellStore (cell))).first; - - result->second.load (mStore, mReader); } + if (result->second.mState!=Ptr::CellStore::State_Loaded) + result->second.load (mStore, mReader); + return &result->second; } @@ -79,10 +80,11 @@ MWWorld::Ptr::CellStore *MWWorld::Cells::getInterior (const std::string& name) const ESM::Cell *cell = mStore.cells.findInt (name); result = mInteriors.insert (std::make_pair (name, Ptr::CellStore (cell))).first; - - result->second.load (mStore, mReader); } + if (result->second.mState!=Ptr::CellStore::State_Loaded) + result->second.load (mStore, mReader); + return &result->second; }