]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/pouch.cpp
added items to the tavern.dat, added the filename option to the config file
[irc/gameservirc.git] / gameserv / pouch.cpp
index 20bf3af0b96ce06b7681024769ab2261c190707e..51306843c0792760e8b35b6ba0f4392fe6648a0f 100644 (file)
@@ -1,5 +1,7 @@
 #include "pouch.h"
 #include "item.h"
+#include <list>
+#include <algorithm>
 
 pouch::pouch()
 {
@@ -25,32 +27,32 @@ bool pouch::isEmpty()
   return items.empty();
 }
 
-item *pouch::Find(char *n)
+itemContainer *pouch::Find(char *n)
 {
-  list<item *>::iterator item_iter;
+  list<itemContainer>::iterator item_iter;
   item_iter = items.begin();
 
   while (item_iter != items.end())
     {
-      if ((*item_iter)->getName() == n)
+      if ((*item_iter).getItem()->getName() == n)
        {
-         return (*item_iter);
+         return &(*item_iter);
        }
       item_iter++;
     }
   return NULL;
 }
 
-item *pouch::Find(string &n)
+itemContainer *pouch::Find(string &n)
 {
-  list<item *>::iterator item_iter;
+  list<itemContainer>::iterator item_iter;
   item_iter = items.begin();
   
   while (item_iter != items.end())
     {
-      if ((*item_iter)->getName() == n)
+      if ((*item_iter).getItem()->getName() == n)
         {
-          return (*item_iter);
+          return &(*item_iter);
         }
       item_iter++;
     }
@@ -58,14 +60,16 @@ item *pouch::Find(string &n)
   return NULL;
 }
 
-void pouch::addItem(item *i)
+itemContainer *pouch::addItem(item *i)
 {
-  items.push_front(i);
+  itemContainer it(i);
+  items.push_front(it);
+  return &items.front();
 }
 
 void pouch::deleteItem(item *i)
 {
-  list<item *>::iterator item_iter;
+  list<itemContainer>::iterator item_iter;
 
   item_iter = find(items.begin(), items.end(), i);