]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/Helpers/InventoryManager.h
Finished up the InventoryManager class, removed the Inventory handling from PlayerGO...
[irc/gameservirc.git] / gameserv-2.0 / libgameservgldl / include / GameServ / GameLayer / Helpers / InventoryManager.h
index 85ff78d31cc6fd08878be97d8a6d14829996ea90..c880fba01439dad9850dcea803c7ec94b06a06dc 100644 (file)
@@ -17,22 +17,29 @@ using std::map;
 namespace GameServ { namespace GameLayer { namespace Helpers {\r
 \r
 \r
-       typedef list< shared_ptr<ItemGO> > PlayerInventory;\r
-       typedef map<shared_ptr<PlayerGO>, PlayerInventory> InventoryMap;\r
+typedef list< shared_ptr<ItemGO> > ItemList;\r
+typedef map<string, ItemList> PlayerInventoryMap;\r
+\r
 \r
 class InventoryManager\r
 {\r
 public:\r
-       InventoryManager();\r
+\r
+\r
        ~InventoryManager();\r
 \r
+       static shared_ptr<InventoryManager> Instance();\r
+\r
        void AddItem(shared_ptr<PlayerGO> spPlayer, shared_ptr<ItemGO> spItem);\r
        void RemoveItem(shared_ptr<PlayerGO> spPlayer, shared_ptr<ItemGO> spItem);\r
-       PlayerInventory GetInventory(shared_ptr<PlayerGO> spPlayer) const;      \r
+       ItemList GetInventory(shared_ptr<PlayerGO> spPlayer) const;     \r
 \r
+protected:\r
+       InventoryManager();\r
 private:\r
 \r
-       InventoryMap mInventoryTable;\r
+       PlayerInventoryMap mInventoryTable;\r
+       static shared_ptr<InventoryManager> mInstance;\r
 \r
 }; // InventoryManager\r
 \r