From 37e91a278e1390c47488f28e14ff16d8e47609ef Mon Sep 17 00:00:00 2001
From: Emanuel Guevel <guevel.emanuel@gmail.com>
Date: Fri, 1 Nov 2013 00:21:15 +0100
Subject: [PATCH] Add InventoryStore::unequipItem()

---
 apps/openmw/mwworld/inventorystore.cpp | 12 ++++++++++++
 apps/openmw/mwworld/inventorystore.hpp |  8 ++++++++
 2 files changed, 20 insertions(+)

diff --git a/apps/openmw/mwworld/inventorystore.cpp b/apps/openmw/mwworld/inventorystore.cpp
index 4d7fa2d64..4291c120f 100644
--- a/apps/openmw/mwworld/inventorystore.cpp
+++ b/apps/openmw/mwworld/inventorystore.cpp
@@ -386,3 +386,15 @@ MWWorld::ContainerStoreIterator MWWorld::InventoryStore::unequipSlot(int slot, c
 
     return it;
 }
+
+MWWorld::ContainerStoreIterator MWWorld::InventoryStore::unequipItem(const MWWorld::Ptr& item, const MWWorld::Ptr& actor)
+{
+    for (int slot=0; slot<MWWorld::InventoryStore::Slots; ++slot)
+    {
+        MWWorld::ContainerStoreIterator equipped = getSlot(slot);
+        if (equipped != end() && *equipped == item)
+            return unequipSlot(slot, actor);
+    }
+
+    throw std::runtime_error ("attempt to unequip an item that is not currently equipped");
+}
diff --git a/apps/openmw/mwworld/inventorystore.hpp b/apps/openmw/mwworld/inventorystore.hpp
index 1b11d9dce..199c42243 100644
--- a/apps/openmw/mwworld/inventorystore.hpp
+++ b/apps/openmw/mwworld/inventorystore.hpp
@@ -119,6 +119,14 @@ namespace MWWorld
             /// @return an iterator to the item that was previously in the slot
             /// (it can be re-stacked so its count may be different than when it
             /// was equipped).
+
+            ContainerStoreIterator unequipItem(const Ptr& item, const Ptr& actor);
+            ///< Unequip an item identified by its Ptr. An exception is thrown
+            /// if the item is not currently equipped.
+            ///
+            /// @return an iterator to the item that was previously in the slot
+            /// (it can be re-stacked so its count may be different than when it
+            /// was equipped).
     };
 }