Files
2026-06-01 12:46:52 +02:00

94 lines
3.4 KiB
C++

#pragma once
//#include "SUIWnd.h"
#include "SNetMessage.h"
class SUIDisplayInfo;
class SUITradeWnd : public SUIWnd
{
public:
SUITradeWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo )
: SUIWnd( pGameManager )
, m_pDisplayInfo( pDisplayInfo )
, m_iCurAd(0)
{ }
virtual bool InitControls( KPoint kPos );
virtual bool InitData( bool bReload = false );
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
virtual void* Perform( KID id, KArg& msg );
virtual void Process( DWORD dwTime );
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
// operators
private:
void CreateItemCount();
void SetFreeze( AR_HANDLE hTarget );
void SetConfirm( AR_HANDLE hTarget );
void SetGold( AR_HANDLE hTarget, count_t nValue );
void SetItem( AR_HANDLE hTarget, TS_ITEM_INFO& rItem, bool bRemove=false );
void ModifyItem( AR_HANDLE hTarget, TS_ITEM_INFO& rItem ); // 2011. 10. 4 - marine 아이템 수량 변경
void SetModfyItem( TS_ITEM_INFO& rItem, bool bSelf = true ); // 2011. 10. 4 - marine
// void RefreshScrollBar( bool bSelf = true );
void RefreshSlot( int nPos = 0, bool bSelf = true );
void RefreshSelfSlot( int nPos = 0 );
void RefreshHisSlot( int nPos = 0 );
void SetSelfItem( TS_ITEM_INFO& rItem, int nPos );
void SetHisItem( TS_ITEM_INFO& rItem, int nPos );
void DisableItemSlot( int nPos, bool bSelf = true );
void AddItem( TS_ITEM_INFO& rItem, bool bSelf = true );
void AddItem( std::vector<TS_ITEM_INFO>& ItemList, TS_ITEM_INFO& rItem );
void RemoveItem( TS_ITEM_INFO& rItem, bool bSelf = true );
void RemoveItem( std::vector<TS_ITEM_INFO>& ItemList, TS_ITEM_INFO& rItem );
void Free();
void InitSlotControls();
void RequestItem( AR_HANDLE hItem, count_t nValue = count_t( 1 ) );
void RequestModifyCountItem( AR_HANDLE hItem, count_t nValue = count_t( 1 ) ); // 2011. 10. 4 - marine
count_t GetValidItemCount(AR_HANDLE hitem, count_t nCount); // 2011. 10. 4 - marine 수입력기로 아이템 거래창에 등록시 가지고 있는 수보다 클경우 최대치를 리턴
bool IsRegisterTradeWnd(AR_HANDLE hitem); // 2011. 10 .5 - marine 거래창에 등록된 아이템인지 확인
void RequestRemoveItem( AR_HANDLE hItem, count_t nValue = count_t( 0 ) );
/// 2011.05.13 self 추가 - prodongi
int GetCtrIndex( const char* pCtrName, bool& self );
/// 2011.01.20 - prodongi
bool rejectIfTaming() const;
bool cancelIfTaming(AR_HANDLE targetHandle, char const* targetName) const;
std::string CutTagCaption(std::string str, char* tag); // 2012. 1. 2 - marine 캡션의 태그를 삭제해주는 함수..
// attribute
private:
enum TRADE_STATE{
STATE_NONE,
STATE_INPUTMONEY,
STATE_SENDITEM,
STATE_TRADECONFIRM,
STATE_MOVEITEM, //servantes 2010.10.19
};
std::vector<TS_ITEM_INFO> m_vecSelfItemList;
std::vector<TS_ITEM_INFO> m_vecHisItemList;
SUIDisplayInfo* m_pDisplayInfo;
TRADE_STATE m_InputState;
AR_HANDLE m_hSelItem;
bool m_bHisFreezed;
bool m_bSelfFreezed;
bool m_bConfirmWait;
bool m_bHisConfirm;
bool m_bSelfConfirm;
DWORD m_dwTime;
KUIControlStatic* m_pEdit_Advertise; // 2011. 9. 5 - marine 거래 주의사항 광고 컨트롤
int m_iCurAd; // 2011. 9. 5 - marine
void SetCaptionAd(const char* pAdString); // 2011. 9. 5 - marine
const char* GetCurAd(); // 2011. 9. 5 - marine 현재 어떤 광고가 나오는지..
};