server/game/src/shop_manager.h
2022-03-05 12:44:06 +02:00

40 lines
942 B
C++

#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<CShopManager>
{
public:
typedef std::map<DWORD, CShop *> 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