1. #ifndef __INC_METIN_II_GAME_EXCHANGE_H__
  2. #define __INC_METIN_II_GAME_EXCHANGE_H__
  3. class CGrid;
  4. enum EExchangeValues
  5. {
  6. EXCHANGE_ITEM_MAX_NUM = 36,
  7. EXCHANGE_MAX_DISTANCE = 1000
  8. };
  9. class CExchange
  10. {
  11. public:
  12. CExchange(LPCHARACTER pOwner);
  13. ~CExchange();
  14. bool Accept(bool bIsAccept = true);
  15. void Cancel();
  16. bool AddGold(long lGold);
  17. bool AddItem(TItemPos item_pos, BYTE display_pos);
  18. bool RemoveItem(BYTE pos);
  19. LPCHARACTER GetOwner() { return m_pOwner; }
  20. CExchange * GetCompany() { return m_pCompany; }
  21. bool GetAcceptStatus() { return m_bAccept; }
  22. void SetCompany(CExchange * pExchange) { m_pCompany = pExchange; }
  23. private:
  24. bool Done();
  25. bool Check(int * piItemCount);
  26. bool CheckSpace();
  27. private:
  28. CExchange * m_pCompany; // 상대방의 CExchange 포인터
  29. LPCHARACTER m_pOwner;
  30. TItemPos m_aItemPos[EXCHANGE_ITEM_MAX_NUM];
  31. LPITEM m_apItems[EXCHANGE_ITEM_MAX_NUM];
  32. BYTE m_abItemDisplayPos[EXCHANGE_ITEM_MAX_NUM];
  33. bool m_bAccept;
  34. long m_lGold;
  35. CGrid * m_pGrid;
  36. };
  37. #endif