#ifndef __INC_METIN_II_GAME_SHOP_H__ #define __INC_METIN_II_GAME_SHOP_H__ enum { SHOP_MAX_DISTANCE = 1000 }; class CGrid; /* ---------------------------------------------------------------------------------- */ class CShop { public: typedef struct shop_item { DWORD vnum; // ¾ÆÀÌÅÛ ¹øÈ£ long price; // °¡°Ý BYTE count; // ¾ÆÀÌÅÛ °³¼ö LPITEM pkItem; int itemid; // ¾ÆÀÌÅÛ °íÀ¯¾ÆÀ̵ð shop_item() { vnum = 0; price = 0; count = 0; itemid = 0; pkItem = NULL; } } SHOP_ITEM; CShop(); ~CShop(); bool Create(DWORD dwVnum, DWORD dwNPCVnum, TShopItemTable * pItemTable); void SetShopItems(TShopItemTable * pItemTable, BYTE bItemCount); virtual void SetPCShop(LPCHARACTER ch); virtual bool IsPCShop() { return m_pkPC ? true : false; } // °Ô½ºÆ® Ãß°¡/»èÁ¦ virtual bool AddGuest(LPCHARACTER ch,DWORD owner_vid, bool bOtherEmpire); void RemoveGuest(LPCHARACTER ch); // ¹°°Ç ±¸ÀÔ virtual int Buy(LPCHARACTER ch, BYTE pos); // °Ô½ºÆ®¿¡°Ô ÆÐŶÀ» º¸³¿ void BroadcastUpdateItem(BYTE pos); // ÆǸÅÁßÀÎ ¾ÆÀÌÅÛÀÇ °¹¼ö¸¦ ¾Ë·ÁÁØ´Ù. int GetNumberByVnum(DWORD dwVnum); // ¾ÆÀÌÅÛÀÌ »óÁ¡¿¡ µî·ÏµÇ¾î ÀÖ´ÂÁö ¾Ë·ÁÁØ´Ù. virtual bool IsSellingItem(DWORD itemID); DWORD GetVnum() { return m_dwVnum; } DWORD GetNPCVnum() { return m_dwNPCVnum; } protected: void Broadcast(const void * data, int bytes); protected: DWORD m_dwVnum; DWORD m_dwNPCVnum; CGrid * m_pGrid; typedef std::unordered_map GuestMapType; GuestMapType m_map_guest; std::vector m_itemVector; // ÀÌ »óÁ¡¿¡¼­ Ãë±ÞÇÏ´Â ¹°°Çµé LPCHARACTER m_pkPC; }; #endif