Files
Leviathan/Client/Game/game/Interface/SUIMixWnd.h
T
2026-06-01 12:46:52 +02:00

116 lines
3.9 KiB
C++

#pragma once
//#include "SUIWnd.h"
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// class SUIInvCombineWnd
//
// * 조합창.
//
//
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
class SUIInvCombineWnd : public SUIWnd
{
private:
KUIControl * m_pFormalTextControl; // 공식출력 static 컨트롤.
int m_FormalHeight; // 공식출력 static 컨트롤 기본 높이.
std::string m_strDecoFormal; // 공식 텍스트 꾸미기 태그.
std::string m_strFontNameFormal; // 공식 텍스트 폰트명.
std::string m_strFormal; // 공식.
KUIWnd * m_pCtrlFormalResult; // 결과출력 static 컨트롤.
std::string m_strDecoResult; // 결과 꾸미기 태그.
KUIWnd * m_pCtrlMixState; // 조합 상태.
std::string m_strDecoState; // 조합 상태 꾸미기 태그.
KUIControlVScrollSmallEx * m_pScrollFormal; // 스크롤바.
int m_nScrollPos; // 현재 스크롤 값.
std::vector< std::string > m_vLineList; // 공식 리스트 배열.
bool m_bMoveItemToInventory; //servantes 2010.10.19
AR_HANDLE m_hRecvItem;
AR_HANDLE m_hLeaveItem;
std::string m_sLeaveItemWnd;
public:
void SetMoveItemToInventoryFlag(bool b) { m_bMoveItemToInventory = b; }
bool GetMoveItemToInventoryFlag() { return m_bMoveItemToInventory; }
public:
public:
SUIInvCombineWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo ) : SUIWnd( pGameManager )
, m_pDisplayInfo( pDisplayInfo ), m_CombineItemHandel(0)
, m_bMoveItemToInventory(false) //servantes 2010.10.19
, m_hRecvItem(0)
, m_hLeaveItem(0)
{};
virtual bool InitControls( KPoint kPos );
virtual bool InitData( bool bReload = false );
virtual void* Perform( KID id, KArg& msg );
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
private:
SUIDisplayInfo* m_pDisplayInfo;
struct COMBINEITEM
{
AR_HANDLE handle;
count_t usiCount;
COMBINEITEM()
: handle( NULL ), usiCount( 0 ) { }
COMBINEITEM( AR_HANDLE _handle, count_t _usiCount = count_t( 1 ) )
: handle( _handle ), usiCount( _usiCount ) { }
};
typedef std::vector<COMBINEITEM> COMBINEITEM_VECTOR;
COMBINEITEM m_SourceItem;
COMBINEITEM_VECTOR m_CombineItemsVector;
AR_HANDLE GetItemHandle( const char* szControlID ) const;
SUIInvCombineWnd::COMBINEITEM_VECTOR::iterator GetItemIterator( AR_HANDLE hItem );
void AddCombineItem( AR_HANDLE hItem, count_t usiCount );
void RemoveCombineItem( AR_HANDLE hItem );
void RemoveAllCombineItems( bool bRefreshSlot = true );
void RefreshSlots();
void SetItemIconStatic( class KUIControlMultiIcon* pIconStatic, KUIWnd* pItemCountControl, count_t nCount = count_t( 0 ), SInventorySlot* pSlot = NULL );
bool IsEquipItem( class SInventorySlot* pSlot, count_t usiCount );
void AddMainCombineItem( AR_HANDLE hItem, count_t usiCount );
void AddSubCombineItem( AR_HANDLE hItem, count_t usiCount );
bool AbleAddSlot( COMBINEITEM Item );
bool AbleMainSlot( class SInventorySlot* pSlot );
bool AbleSubSlot( class SInventorySlot* pSlot );
AR_HANDLE m_CombineItemHandel;
private:
// 공식텍스트 출력.
void RefreshFormal();
};