From 6d34e61dbd2d34a25d7194ea5507048747d7ea38 Mon Sep 17 00:00:00 2001 From: scrawl Date: Wed, 16 May 2012 19:18:50 +0200 Subject: [PATCH] don't stack gold if it has a script (not used in MW, but some mods might) --- apps/openmw/mwworld/containerstore.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwworld/containerstore.cpp b/apps/openmw/mwworld/containerstore.cpp index 9b5afea74..5dfc9a177 100644 --- a/apps/openmw/mwworld/containerstore.cpp +++ b/apps/openmw/mwworld/containerstore.cpp @@ -75,7 +75,8 @@ MWWorld::ContainerStoreIterator MWWorld::ContainerStore::add (const Ptr& ptr) for (MWWorld::ContainerStoreIterator iter (begin(type)); iter!=end(); ++iter) { - if (MWWorld::Class::get(*iter).getName(*iter) == MWBase::Environment::get().getWorld()->getStore().gameSettings.search("sGold")->str) + if (MWWorld::Class::get(*iter).getName(*iter) == MWBase::Environment::get().getWorld()->getStore().gameSettings.search("sGold")->str + && MWWorld::Class::get(*iter).getScript(*iter) == "" && MWWorld::Class::get(ptr).getScript(ptr) == "") { ESMS::LiveCellRef *ref = iter->get(); @@ -89,6 +90,10 @@ MWWorld::ContainerStoreIterator MWWorld::ContainerStore::add (const Ptr& ptr) return iter; } } + + // if we get here, no already existing gold was found in the container + // we still need special handling because gold in a container should always have the real gold value as reference count. + ptr.getRefData().setCount(goldValue); } // determine whether to stack or not