#ifndef __INC_METIN_II_GAME_SHOP_MANAGER_H__ #define __INC_METIN_II_GAME_SHOP_MANAGER_H__ class CShop; typedef class CShop * LPSHOP; class CShopManager : public singleton { public: typedef std::map TShopMap; public: CShopManager(); virtual ~CShopManager(); bool Initialize(TShopTable * table, int size); void Destroy(); LPSHOP Get(DWORD dwVnum); LPSHOP GetByNPCVnum(DWORD dwVnum); bool StartShopping(LPCHARACTER pkChr, LPCHARACTER pkShopKeeper, int iShopVnum = 0); void StopShopping(LPCHARACTER ch); void Buy(LPCHARACTER ch, BYTE pos); void Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount=0); LPSHOP CreatePCShop(LPCHARACTER ch, TShopItemTable * pTable, BYTE bItemCount); LPSHOP FindPCShop(DWORD dwVID); void DestroyPCShop(LPCHARACTER ch); private: TShopMap m_map_pkShop; TShopMap m_map_pkShopByNPCVnum; TShopMap m_map_pkShopByPC; bool ReadShopTableEx(const char* stFileName); }; #endif