From 4fb897f2f8ea61f3f40a133c9a908d0db8092863 Mon Sep 17 00:00:00 2001
From: Marc Zinnschlag <marc@zpages.de>
Date: Fri, 18 Jul 2014 09:56:58 +0200
Subject: [PATCH] added missing getId functions to classes derived from
 MWWorld::Class

---
 apps/openmw/mwclass/activator.cpp       | 5 +++++
 apps/openmw/mwclass/activator.hpp       | 3 +++
 apps/openmw/mwclass/apparatus.cpp       | 5 +++++
 apps/openmw/mwclass/apparatus.hpp       | 3 +++
 apps/openmw/mwclass/armor.cpp           | 5 +++++
 apps/openmw/mwclass/armor.hpp           | 3 +++
 apps/openmw/mwclass/book.cpp            | 5 +++++
 apps/openmw/mwclass/book.hpp            | 3 +++
 apps/openmw/mwclass/clothing.cpp        | 5 +++++
 apps/openmw/mwclass/clothing.hpp        | 3 +++
 apps/openmw/mwclass/container.cpp       | 5 +++++
 apps/openmw/mwclass/container.hpp       | 3 +++
 apps/openmw/mwclass/creaturelevlist.cpp | 5 +++++
 apps/openmw/mwclass/creaturelevlist.hpp | 3 +++
 apps/openmw/mwclass/door.cpp            | 5 +++++
 apps/openmw/mwclass/door.hpp            | 3 +++
 apps/openmw/mwclass/itemlevlist.cpp     | 5 +++++
 apps/openmw/mwclass/itemlevlist.hpp     | 3 +++
 apps/openmw/mwclass/light.cpp           | 5 +++++
 apps/openmw/mwclass/light.hpp           | 3 +++
 apps/openmw/mwclass/lockpick.cpp        | 5 +++++
 apps/openmw/mwclass/lockpick.hpp        | 3 +++
 apps/openmw/mwclass/misc.cpp            | 5 +++++
 apps/openmw/mwclass/misc.hpp            | 3 +++
 apps/openmw/mwclass/potion.cpp          | 5 +++++
 apps/openmw/mwclass/potion.hpp          | 3 +++
 apps/openmw/mwclass/probe.cpp           | 5 +++++
 apps/openmw/mwclass/probe.hpp           | 3 +++
 apps/openmw/mwclass/repair.cpp          | 5 +++++
 apps/openmw/mwclass/repair.hpp          | 3 +++
 apps/openmw/mwclass/static.cpp          | 5 +++++
 apps/openmw/mwclass/static.hpp          | 3 +++
 32 files changed, 128 insertions(+)

diff --git a/apps/openmw/mwclass/activator.cpp b/apps/openmw/mwclass/activator.cpp
index 043aadd359..0585ced510 100644
--- a/apps/openmw/mwclass/activator.cpp
+++ b/apps/openmw/mwclass/activator.cpp
@@ -25,6 +25,11 @@
 
 namespace MWClass
 {
+    std::string Activator::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Activator>()->mBase->mId;
+    }
+
     void Activator::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/activator.hpp b/apps/openmw/mwclass/activator.hpp
index 1e772ef4f2..3e4bc3de41 100644
--- a/apps/openmw/mwclass/activator.hpp
+++ b/apps/openmw/mwclass/activator.hpp
@@ -13,6 +13,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/apparatus.cpp b/apps/openmw/mwclass/apparatus.cpp
index d61ba038a3..32f2e0bb72 100644
--- a/apps/openmw/mwclass/apparatus.cpp
+++ b/apps/openmw/mwclass/apparatus.cpp
@@ -21,6 +21,11 @@
 
 namespace MWClass
 {
+    std::string Apparatus::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Apparatus>()->mBase->mId;
+    }
+
     void Apparatus::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/apparatus.hpp b/apps/openmw/mwclass/apparatus.hpp
index 17b8b9254f..5cdda8f26a 100644
--- a/apps/openmw/mwclass/apparatus.hpp
+++ b/apps/openmw/mwclass/apparatus.hpp
@@ -13,6 +13,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual float getWeight (const MWWorld::Ptr& ptr) const;
 
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
diff --git a/apps/openmw/mwclass/armor.cpp b/apps/openmw/mwclass/armor.cpp
index b29bf36b2e..79766e9ec6 100644
--- a/apps/openmw/mwclass/armor.cpp
+++ b/apps/openmw/mwclass/armor.cpp
@@ -25,6 +25,11 @@
 
 namespace MWClass
 {
+    std::string Armor::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Armor>()->mBase->mId;
+    }
+
     void Armor::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/armor.hpp b/apps/openmw/mwclass/armor.hpp
index e9164f920b..8b7804c63f 100644
--- a/apps/openmw/mwclass/armor.hpp
+++ b/apps/openmw/mwclass/armor.hpp
@@ -12,6 +12,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual float getWeight (const MWWorld::Ptr& ptr) const;
 
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
diff --git a/apps/openmw/mwclass/book.cpp b/apps/openmw/mwclass/book.cpp
index 0adee57e31..91b5707837 100644
--- a/apps/openmw/mwclass/book.cpp
+++ b/apps/openmw/mwclass/book.cpp
@@ -22,6 +22,11 @@
 
 namespace MWClass
 {
+    std::string Book::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Book>()->mBase->mId;
+    }
+
     void Book::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/book.hpp b/apps/openmw/mwclass/book.hpp
index b60ef41d64..49d21e8bf7 100644
--- a/apps/openmw/mwclass/book.hpp
+++ b/apps/openmw/mwclass/book.hpp
@@ -12,6 +12,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/clothing.cpp b/apps/openmw/mwclass/clothing.cpp
index dc98e323e1..1a9a497d76 100644
--- a/apps/openmw/mwclass/clothing.cpp
+++ b/apps/openmw/mwclass/clothing.cpp
@@ -22,6 +22,11 @@
 
 namespace MWClass
 {
+    std::string Clothing::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Clothing>()->mBase->mId;
+    }
+
     void Clothing::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/clothing.hpp b/apps/openmw/mwclass/clothing.hpp
index 052928238e..99ce61ece3 100644
--- a/apps/openmw/mwclass/clothing.hpp
+++ b/apps/openmw/mwclass/clothing.hpp
@@ -12,6 +12,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/container.cpp b/apps/openmw/mwclass/container.cpp
index 53add42746..044d675369 100644
--- a/apps/openmw/mwclass/container.cpp
+++ b/apps/openmw/mwclass/container.cpp
@@ -43,6 +43,11 @@ namespace
 
 namespace MWClass
 {
+    std::string Container::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Container>()->mBase->mId;
+    }
+
     void Container::ensureCustomData (const MWWorld::Ptr& ptr) const
     {
         if (!ptr.getRefData().getCustomData())
diff --git a/apps/openmw/mwclass/container.hpp b/apps/openmw/mwclass/container.hpp
index 9fc013e45e..e926a71fe3 100644
--- a/apps/openmw/mwclass/container.hpp
+++ b/apps/openmw/mwclass/container.hpp
@@ -15,6 +15,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/creaturelevlist.cpp b/apps/openmw/mwclass/creaturelevlist.cpp
index 7843048044..754780b1df 100644
--- a/apps/openmw/mwclass/creaturelevlist.cpp
+++ b/apps/openmw/mwclass/creaturelevlist.cpp
@@ -27,6 +27,11 @@ namespace
 
 namespace MWClass
 {
+    std::string CreatureLevList::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::CreatureLevList>()->mBase->mId;
+    }
+
     std::string CreatureLevList::getName (const MWWorld::Ptr& ptr) const
     {
         return "";
diff --git a/apps/openmw/mwclass/creaturelevlist.hpp b/apps/openmw/mwclass/creaturelevlist.hpp
index 6c51a31891..7016524eb9 100644
--- a/apps/openmw/mwclass/creaturelevlist.hpp
+++ b/apps/openmw/mwclass/creaturelevlist.hpp
@@ -11,6 +11,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual std::string getName (const MWWorld::Ptr& ptr) const;
             ///< \return name (the one that is to be presented to the user; not the internal one);
             /// can return an empty string.
diff --git a/apps/openmw/mwclass/door.cpp b/apps/openmw/mwclass/door.cpp
index 677ad462e0..889268a9a5 100644
--- a/apps/openmw/mwclass/door.cpp
+++ b/apps/openmw/mwclass/door.cpp
@@ -42,6 +42,11 @@ namespace
 
 namespace MWClass
 {
+    std::string Door::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Door>()->mBase->mId;
+    }
+
     void Door::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/door.hpp b/apps/openmw/mwclass/door.hpp
index 12b360aa8c..23e11d3368 100644
--- a/apps/openmw/mwclass/door.hpp
+++ b/apps/openmw/mwclass/door.hpp
@@ -16,6 +16,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/itemlevlist.cpp b/apps/openmw/mwclass/itemlevlist.cpp
index 6ed9ab2e53..d31080bb2c 100644
--- a/apps/openmw/mwclass/itemlevlist.cpp
+++ b/apps/openmw/mwclass/itemlevlist.cpp
@@ -5,6 +5,11 @@
 
 namespace MWClass
 {
+    std::string ItemLevList::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::ItemLevList>()->mBase->mId;
+    }
+
     std::string ItemLevList::getName (const MWWorld::Ptr& ptr) const
     {
         return "";
diff --git a/apps/openmw/mwclass/itemlevlist.hpp b/apps/openmw/mwclass/itemlevlist.hpp
index 0b71b072c8..2b507135fd 100644
--- a/apps/openmw/mwclass/itemlevlist.hpp
+++ b/apps/openmw/mwclass/itemlevlist.hpp
@@ -9,6 +9,9 @@ namespace MWClass
     {
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual std::string getName (const MWWorld::Ptr& ptr) const;
             ///< \return name (the one that is to be presented to the user; not the internal one);
             /// can return an empty string.
diff --git a/apps/openmw/mwclass/light.cpp b/apps/openmw/mwclass/light.cpp
index 8a2c20f699..6178984cf2 100644
--- a/apps/openmw/mwclass/light.cpp
+++ b/apps/openmw/mwclass/light.cpp
@@ -47,6 +47,11 @@ namespace
 
 namespace MWClass
 {
+    std::string Light::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Light>()->mBase->mId;
+    }
+
     void Light::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/light.hpp b/apps/openmw/mwclass/light.hpp
index 5568e1727e..5840393368 100644
--- a/apps/openmw/mwclass/light.hpp
+++ b/apps/openmw/mwclass/light.hpp
@@ -14,6 +14,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
              virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/lockpick.cpp b/apps/openmw/mwclass/lockpick.cpp
index bc68551291..9cce5694d4 100644
--- a/apps/openmw/mwclass/lockpick.cpp
+++ b/apps/openmw/mwclass/lockpick.cpp
@@ -22,6 +22,11 @@
 
 namespace MWClass
 {
+    std::string Lockpick::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Lockpick>()->mBase->mId;
+    }
+
     void Lockpick::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/lockpick.hpp b/apps/openmw/mwclass/lockpick.hpp
index 8f5a699d9d..d4bdf3fa69 100644
--- a/apps/openmw/mwclass/lockpick.hpp
+++ b/apps/openmw/mwclass/lockpick.hpp
@@ -12,6 +12,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/misc.cpp b/apps/openmw/mwclass/misc.cpp
index 1044fb01d4..7bd2f9b674 100644
--- a/apps/openmw/mwclass/misc.cpp
+++ b/apps/openmw/mwclass/misc.cpp
@@ -38,6 +38,11 @@ bool isGold (const MWWorld::Ptr& ptr)
 
 namespace MWClass
 {
+    std::string Miscellaneous::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Miscellaneous>()->mBase->mId;
+    }
+
     void Miscellaneous::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/misc.hpp b/apps/openmw/mwclass/misc.hpp
index 16e9ca10b0..53a8e050bd 100644
--- a/apps/openmw/mwclass/misc.hpp
+++ b/apps/openmw/mwclass/misc.hpp
@@ -12,6 +12,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/potion.cpp b/apps/openmw/mwclass/potion.cpp
index 440121d35b..b0b15193d9 100644
--- a/apps/openmw/mwclass/potion.cpp
+++ b/apps/openmw/mwclass/potion.cpp
@@ -24,6 +24,11 @@
 
 namespace MWClass
 {
+    std::string Potion::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Potion>()->mBase->mId;
+    }
+
     void Potion::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/potion.hpp b/apps/openmw/mwclass/potion.hpp
index 0f0578ca02..4c407d161c 100644
--- a/apps/openmw/mwclass/potion.hpp
+++ b/apps/openmw/mwclass/potion.hpp
@@ -12,6 +12,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/probe.cpp b/apps/openmw/mwclass/probe.cpp
index ed8625eec0..030426dee1 100644
--- a/apps/openmw/mwclass/probe.cpp
+++ b/apps/openmw/mwclass/probe.cpp
@@ -22,6 +22,11 @@
 
 namespace MWClass
 {
+    std::string Probe::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Probe>()->mBase->mId;
+    }
+
     void Probe::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/probe.hpp b/apps/openmw/mwclass/probe.hpp
index a959e6c42e..047cb8ed4f 100644
--- a/apps/openmw/mwclass/probe.hpp
+++ b/apps/openmw/mwclass/probe.hpp
@@ -12,6 +12,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/repair.cpp b/apps/openmw/mwclass/repair.cpp
index d7a0805349..f62d5f6cf5 100644
--- a/apps/openmw/mwclass/repair.cpp
+++ b/apps/openmw/mwclass/repair.cpp
@@ -21,6 +21,11 @@
 
 namespace MWClass
 {
+    std::string Repair::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Repair>()->mBase->mId;
+    }
+
     void Repair::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         const std::string model = getModel(ptr);
diff --git a/apps/openmw/mwclass/repair.hpp b/apps/openmw/mwclass/repair.hpp
index 28ca5ad4c0..17730d6ecf 100644
--- a/apps/openmw/mwclass/repair.hpp
+++ b/apps/openmw/mwclass/repair.hpp
@@ -12,6 +12,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering
 
diff --git a/apps/openmw/mwclass/static.cpp b/apps/openmw/mwclass/static.cpp
index 8768bde063..c241935ab2 100644
--- a/apps/openmw/mwclass/static.cpp
+++ b/apps/openmw/mwclass/static.cpp
@@ -12,6 +12,11 @@
 
 namespace MWClass
 {
+    std::string Static::getId (const MWWorld::Ptr& ptr) const
+    {
+        return ptr.get<ESM::Static>()->mBase->mId;
+    }
+
     void Static::insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const
     {
         MWWorld::LiveCellRef<ESM::Static> *ref =
diff --git a/apps/openmw/mwclass/static.hpp b/apps/openmw/mwclass/static.hpp
index e36b3d1426..2ac2e86825 100644
--- a/apps/openmw/mwclass/static.hpp
+++ b/apps/openmw/mwclass/static.hpp
@@ -12,6 +12,9 @@ namespace MWClass
 
         public:
 
+            /// Return ID of \a ptr
+            virtual std::string getId (const MWWorld::Ptr& ptr) const;
+
             virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const;
             ///< Add reference into a cell for rendering