From 87ae03b5d4273b4358b67416ae97faa51ec57163 Mon Sep 17 00:00:00 2001
From: Marc Zinnschlag <marc@zpages.de>
Date: Sat, 22 Mar 2014 16:39:24 +0100
Subject: [PATCH] fix for previous commit

---
 apps/openmw/mwworld/livecellref.cpp | 12 +++++++++++-
 apps/openmw/mwworld/refdata.cpp     |  6 ------
 apps/openmw/mwworld/refdata.hpp     |  2 --
 3 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/apps/openmw/mwworld/livecellref.cpp b/apps/openmw/mwworld/livecellref.cpp
index c15f63abe..0fbb26c84 100644
--- a/apps/openmw/mwworld/livecellref.cpp
+++ b/apps/openmw/mwworld/livecellref.cpp
@@ -3,8 +3,12 @@
 
 #include <components/esm/objectstate.hpp>
 
+#include "../mwbase/environment.hpp"
+#include "../mwbase/world.hpp"
+
 #include "ptr.hpp"
 #include "class.hpp"
+#include "esmstore.hpp"
 
 void MWWorld::LiveCellRefBase::loadImp (const ESM::ObjectState& state)
 {
@@ -14,7 +18,13 @@ void MWWorld::LiveCellRefBase::loadImp (const ESM::ObjectState& state)
     Ptr ptr (this);
 
     if (state.mHasLocals)
-        mData.setLocals (state.mLocals, mClass->getScript (ptr));
+    {
+        std::string scriptId = mClass->getScript (ptr);
+
+        mData.setLocals (*MWBase::Environment::get().getWorld()->getStore().
+            get<ESM::Script>().search (scriptId));
+        mData.getLocals().read (state.mLocals, scriptId);
+    }
 
     mClass->readAdditionalState (ptr, state);
 }
diff --git a/apps/openmw/mwworld/refdata.cpp b/apps/openmw/mwworld/refdata.cpp
index 907204739..008782130 100644
--- a/apps/openmw/mwworld/refdata.cpp
+++ b/apps/openmw/mwworld/refdata.cpp
@@ -152,12 +152,6 @@ namespace MWWorld
         }
     }
 
-    void RefData::setLocals (const ESM::Locals& locals, const std::string& scriptId)
-    {
-        mHasLocals = true;
-        mLocals.read (locals, scriptId);
-    }
-
     void RefData::setCount (int count)
     {
         if(count == 0)
diff --git a/apps/openmw/mwworld/refdata.hpp b/apps/openmw/mwworld/refdata.hpp
index a74eb838c..82371b056 100644
--- a/apps/openmw/mwworld/refdata.hpp
+++ b/apps/openmw/mwworld/refdata.hpp
@@ -83,8 +83,6 @@ namespace MWWorld
 
             void setLocals (const ESM::Script& script);
 
-            void setLocals (const ESM::Locals& locals, const std::string& scriptId);
-
             void setCount (int count);
             /// Set object count (an object pile is a simple object with a count >1).
             ///