#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_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(); };