176 lines
5.2 KiB
C++
176 lines
5.2 KiB
C++
|
|
/// 2010.12.17 - prodongi
|
|
|
|
#pragma once
|
|
|
|
//#include "SUIWnd.h"
|
|
#include "SUIDefine.h"
|
|
#include "SSkillSlot.h"
|
|
/// 2010.12.02 - prodongi
|
|
#include "SUIAniJobLevelUpWnd.h"
|
|
|
|
class SUIDisplayInfo;
|
|
class KUIControlCheck;
|
|
|
|
namespace
|
|
{
|
|
enum{
|
|
JOP_0 = 0,
|
|
JOP_1,
|
|
JOP_2,
|
|
JOP_3, /// 2010.12.17 - prodongi
|
|
JOP_ALL,
|
|
JOP_TP, /// 2011.03.28 특성 스킬 - PRODONGI
|
|
JOP_CNT
|
|
};
|
|
};
|
|
|
|
class SUISkillWnd : public SUIWnd
|
|
{
|
|
public:
|
|
SUISkillWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo )
|
|
: SUIWnd( pGameManager ), m_pDisplayInfo( pDisplayInfo ), m_nSelectJopIndex(JOP_ALL), m_nScrollPos(0), m_nJopRank(-1)
|
|
{ }
|
|
|
|
virtual ~SUISkillWnd();
|
|
|
|
virtual void* Perform( KID id, KArg& msg );
|
|
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
|
|
virtual bool InitControls( KPoint kPos );
|
|
virtual bool InitData( bool bReload = false );
|
|
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
|
|
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
|
|
virtual void Process(DWORD dwTime); /// 2010.12.17 - prodongi
|
|
|
|
bool CheckCurrentJobIndex() const
|
|
{
|
|
if( m_nSelectJopIndex < 0 || m_nSelectJopIndex >= JOP_CNT ) return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
protected:
|
|
// SKILL_VECTOR m_vecActiveSkillList;
|
|
// SKILL_VECTOR m_vecPassiveSkillList;
|
|
|
|
SKILL_VECTOR m_vecActiveSkillList[JOP_CNT];
|
|
SKILL_VECTOR m_vecPassiveSkillList[JOP_CNT];
|
|
|
|
void _setSkillLevel( int nIndex, int nLevel, SSkillSlot* pSkill );
|
|
|
|
// 스킬 리스트 ==========================
|
|
void FreeSkillList ();
|
|
void RefreshSkillSlot ();
|
|
|
|
void RefreshAddedSkillList();
|
|
|
|
void UpdateSkillList();
|
|
void AddSkillList( SSkillSlot* pSlot );
|
|
|
|
void SetSkillData ( SSkillSlot* pSkill, int nIndex, bool bShow );
|
|
|
|
void EnableSlot ( int nMode = -1, bool bShow = false, bool bPassive = 1/*TAB_PASSIVE*/, int nSkillID = -1 );
|
|
void DisableSlot ( int nIndex );
|
|
void DisableAllSlot ( bool bShow = false );
|
|
void RefreshActiveSkillSlot ();
|
|
void RefreshPassiveSkillSlot();
|
|
|
|
bool IsExistSkill( int nSkillID, int nJopID );
|
|
bool IsExistSkill( int nSkillID, bool bActive );
|
|
int GetSkillID( int nIndex );
|
|
int GetSkillLevel( int nIndex );
|
|
|
|
/// 윈도우 ================================
|
|
void CreateControls ();
|
|
|
|
/// 잡레벨 ================================
|
|
void RequestJobLvUP ();
|
|
|
|
/// 스킬사용 ==============================
|
|
void RequestUseSkill();
|
|
void RequestUseSkill(int index);
|
|
void RequestUseSkill(char const* strID); /// 2010.12.20 - prodongi
|
|
|
|
/// 탭 ====================================
|
|
void SelectTab();
|
|
const int GetTabType () const { return m_nTabType; }
|
|
const bool IsActiveTab () const;
|
|
|
|
/// 스크롤바 ==============================
|
|
void RefreshScrollbar ();
|
|
void ResizeScrollbar ( int nOldHeight );
|
|
|
|
/// 직업 ==================================
|
|
void SetJP ();
|
|
void SetJName ();
|
|
void SetJLevel ();
|
|
void SetJLvHistory ();
|
|
void SetPrevJLevel ( int nLevel );
|
|
void SetCurJLevel ( int nLevel, __int64 nJP ); /// 2011.04.29 int->__int64 - prodongi
|
|
void SetNextJLevel ( int nLevel );
|
|
bool ShowCurJLevel ( std::string str, int nLevel );
|
|
|
|
bool ChangeJop();
|
|
int GetUserJopRank();
|
|
void SetControlEnable( const char * pControlName, bool bEnable );
|
|
void SetControlEnableColor( const char * pControlName, const char* lpColor, bool bEnable );
|
|
|
|
/// 선택바 ================================
|
|
void HideSelectBar ();
|
|
void ShowSelectBar ( int nIndex );
|
|
|
|
/// 스킬업/다운 ===========================
|
|
void SkillUp ( int nIndex );
|
|
void SkillDown ( int nIndex );
|
|
|
|
/// 드래그앤드랍 ==========================
|
|
const int GetSkillIDByCtrlName ( const char* szCtrlName ) const;
|
|
const int GetUseLevel ( int nSkillID ) const;
|
|
const int GetActiveSkillID ( const char* szCtrlName ) const;
|
|
const int GetPassiveSkillID ( const char* szCtrlName ) const;
|
|
|
|
/// 스킬 쿨링 타임 ==========================
|
|
void ShowClockBox( int nSkillID, bool bDiable = false );
|
|
void CancelSkill( int nSkillID );
|
|
|
|
/// 스킬 카드 ================================
|
|
const int GetCardSlotIndex( const char* szControl, bool bSend = false ) const;
|
|
void RequestEquipCard( int nIndex, AR_HANDLE hItem );
|
|
const bool IsSkillCard( int nIndex, AR_HANDLE hItem ) const;
|
|
const AR_HANDLE GetSkillCardItem( int nIndex ) const;
|
|
|
|
/// 2010.12.15 - prodongi
|
|
void toggleSkillTreeFundWnd();
|
|
void selectTabButton(int type);
|
|
void setSelectedSheetTabItem(int type);
|
|
void selectJobRankButton(int rank);
|
|
void refreshJobRank(); /// 2010.12.21 - prodongi
|
|
void addSkillList(bool isPassive, SSkillSlot* slot, int listIndex); /// 2011.03.28 - prodongi
|
|
void reorderSelectTabLayer(int type);/// 2010.12.22 탭 버튼과 탭 선택 컨트롤의 레이어 순서를 설정한다 - prodongi
|
|
|
|
private:
|
|
SUIDisplayInfo* m_pDisplayInfo;
|
|
|
|
int m_nSysMenuPosX; ///< 좌측 메뉴의 좌표
|
|
int m_nSysMenuPosY;
|
|
|
|
int m_nMaxLine; ///< 화면에 표시되는 라인 갯수
|
|
int m_nTabType;
|
|
int m_nSelSkillPos; ///< 선택한 스킬의 위치
|
|
int m_nScrollPos; ///< 스크롤 위치
|
|
|
|
bool m_bIsOpenSkillFund; ///< 스킬펄드 차일드 오픈 유무
|
|
bool m_bShowChildWnd;
|
|
|
|
int m_nChangeJob; ///< 전직 횟수
|
|
int m_nSelectJopIndex;
|
|
|
|
int m_nJopRank;
|
|
|
|
/// 2010.12.02 - prodongi
|
|
sAniJobLevelUp m_aniJobLevelUp;
|
|
DWORD m_lastTime;
|
|
KUIControlCheck* m_jobRankButton[JOP_CNT];
|
|
};
|
|
|