#pragma once #include "uibase.h" #include "RiderContainer.h" #include "uiInventoryMan/uiInventoryMan.h" //------------------------------------------------------------------------------ /** ¶óÀÌ´õ Ŭ·¡½º @author ±¤¼ö @since 09.10.15 @remarks */ typedef map USE_TOOLTIP_CTRL_EQUIP_WINDOW; class SCItemSlot; class Rider; class RiderInventoryDialog: public uiBase ,public RiderContainer { enum RIDER_ROTATE_TYPE { R_ROTATE_NONE=0, R_ROTATE_LEFT, R_ROTATE_RIGHT, MAX_BUTTON }; public: RiderInventoryDialog(InterfaceManager * pUIMan ); ~RiderInventoryDialog(); public: virtual VOID Init( CDrawBase * pDrawBase ); virtual VOID Release(); virtual VOID MessageProc( SI_MESSAGE * pMessage ); virtual VOID MouseOver_MsgProc( SI_MESSAGE * pMessage ); virtual void OnUpdateSolarDialog(); virtual void OnRenderSolarDialog(); virtual void ReloadRider(SCItemSlot &RiderSlot); virtual ItemUnitRenderer * GetItemUnitRender() const { return m_pItemUnitRenderer; } virtual RC::eSLOT_INSERT_RESULT InsertSlot( POSTYPE AtPos, SCSlot & IN rSlot ); // ½½·Ô¿¡ °´Ã¼ Ãß°¡ virtual BOOL DeleteSlot( POSTYPE AtPos, SCSlot * pSlotOut ); void SetInvenPos(POSTYPE pos){m_InvenPos = pos;} POSTYPE GetInvenPos(){return m_InvenPos; } RiderContainer* GetSlotContainer(); void RenderRider(); virtual void OnShowWindow(BOOL val); virtual VOID Process(DWORD dwTick); void UpdateData(); //µð½ºÇ÷¹ÀÌ¿ë ¶óÀÌ´õ Á¦°Å void DeleteViewRider(); //µð½ºÇ÷¹ÀÌ¿ë ¶óÀÌ´õ ¼Òȯ½½·ÔÀ§Ä¡ POSTYPE GetRiderSummonPos(); //½½·ÔÀǷκÎÅÍ ¶óÀÌ´õº¹»ç void CopySlotRider(POSTYPE pos); //ÁÖÀΰø¶óÀÌ´õ·ÎºÎÅÍ º¹»ç void CopyHeroRider(Rider *pRIder); //½½·ÔÀǺÎÅÍ ¼ÒȯµÈ ¶óÀÌ´õLockÇØÁ¦ void UnlockSlotRider(BOOL bRemove=FALSE); //ÇöÀç½½·ÔÀǷκÎÅͼÒȯµÈ¶óÀÌ´õÀΰ¡(±â°£Á¦¾ÆÀÌÅÛ¸¸·á½Ã) BOOL IsSlotRider(){return m_bSlotRider;} private: void updateRotate(); void rotateRider(float fAngle); void renderToolTip(); void InitRenderer(); void InitControls(); POSTYPE getCtrlIDToPos( WzID wzId ); CControlWZ * getControl( POSTYPE AtPos ); void FlushUnitDraw(); int getTooltipString(POSTYPE pos); private: RIDER_ROTATE_TYPE m_eRotateType; USE_TOOLTIP_CTRL_EQUIP_WINDOW m_UseTooltipCtrls; int m_iTooltipStringCode; POSTYPE m_InvenPos; CDrawBase * m_pDraw; ItemUnitRenderer * m_pItemUnitRenderer; SCItemSlot * m_pItemToolTip; CCtrlButtonWZ * m_pCtrlCloseBtn; CCtrlStaticWZ* m_TxtCtrlTitle; CCtrlButtonWZ * m_pRotateBtn[2]; float m_fAngleZ; float m_fScale; BOOL m_bSlotRider; //±â°£¸¸·á(Á×Àº¶óÀÌ´õ°¡¼ÒȯµÇ¾ú³Ä?) POSTYPE m_SummmonPos; //¼ÒȯµÈÀ§Ä¡ Rider* m_pDisplayRider; //µð½ºÇ÷¹ÀÌ¿ë¶óÀÌ´õ }; //------------------------------------------------------------------------------ /** */ inline POSTYPE RiderInventoryDialog::getCtrlIDToPos( WzID wzId ) { for( POSTYPE i = 0 ; i < RIDER_MAX ; ++i ) { if( m_wzId[i] == wzId ) { return i; } } return RIDER_MAX; } //------------------------------------------------------------------------------ /** */ inline CControlWZ * RiderInventoryDialog::getControl( POSTYPE AtPos ) { assert( AtPos < RIDER_MAX ); return GetControlWZ( m_wzId[AtPos] ); }