1 #ifndef __GS__INVENTORYMANAGER_H__
2 #define __GS__INVENTORYMANAGER_H__
4 #include <boost/smart_ptr/shared_ptr.hpp>
5 using boost::shared_ptr
;
6 #include <GameServ/GameLayer/GameObjects/ItemGO.h>
7 using GameServ::GameLayer::GameObjects::ItemGO
;
8 #include <GameServ/GameLayer/GameObjects/PlayerGO.h>
9 using GameServ::GameLayer::GameObjects::PlayerGO
;
17 namespace GameServ
{ namespace GameLayer
{ namespace Helpers
{
20 typedef list
< shared_ptr
<ItemGO
> > ItemList
;
21 typedef map
<string
, ItemList
> PlayerInventoryMap
;
24 class InventoryManager
31 static shared_ptr
<InventoryManager
> Instance();
33 void AddItem(shared_ptr
<PlayerGO
> spPlayer
, shared_ptr
<ItemGO
> spItem
);
34 void RemoveItem(shared_ptr
<PlayerGO
> spPlayer
, shared_ptr
<ItemGO
> spItem
);
35 ItemList
GetInventory(shared_ptr
<PlayerGO
> spPlayer
) const;
41 PlayerInventoryMap mInventoryTable
;
42 static shared_ptr
<InventoryManager
> mInstance
;
44 }; // InventoryManager
46 }}} // GameServ::GameLayer::Helpers