diff --git a/apps/openmw/mwworld/inventorystore.cpp b/apps/openmw/mwworld/inventorystore.cpp index 6867c71ce..db45dbf54 100644 --- a/apps/openmw/mwworld/inventorystore.cpp +++ b/apps/openmw/mwworld/inventorystore.cpp @@ -110,7 +110,7 @@ void MWWorld::InventoryStore::equip (int slot, const ContainerStoreIterator& ite flagAsModified(); } -void MWWorld::InventoryStore::unequipAll() +void MWWorld::InventoryStore::unequipAll(const MWWorld::Ptr& actor) { for (int slot=0; slot < MWWorld::InventoryStore::Slots; ++slot) { @@ -121,7 +121,7 @@ void MWWorld::InventoryStore::unequipAll() std::string script = MWWorld::Class::get(*it).getScript(*it); // Unset OnPCEquip Variable on item's script, if it has a script with that variable declared - if(script != "") + if((actor.getRefData().getHandle() == "player") && (script != "")) (*it).mRefData->getLocals().setVarByInt(script, "onpcequip", 0); } } diff --git a/apps/openmw/mwworld/inventorystore.hpp b/apps/openmw/mwworld/inventorystore.hpp index 07d5f321e..713c72955 100644 --- a/apps/openmw/mwworld/inventorystore.hpp +++ b/apps/openmw/mwworld/inventorystore.hpp @@ -78,7 +78,7 @@ namespace MWWorld ContainerStoreIterator getSlot (int slot); - void unequipAll(); + void unequipAll(const MWWorld::Ptr& actor); ///< Unequip all currently equipped items. void autoEquip (const MWWorld::Ptr& npc); diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index ca38393f0..93eaebbcc 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -1861,9 +1861,7 @@ namespace MWWorld MWWorld::InventoryStore& invStore = MWWorld::Class::get(actor).getInventoryStore(actor); if (werewolf) - invStore.unequipAll(); - else - invStore.autoEquip(actor); + invStore.unequipAll(actor); if (actor.getRefData().getHandle() == "player") {