Files
Sun1602/Client/GameClient/Interface/uiSkillTree/uiSkillTree_second.h
T
2022-10-26 12:25:11 +08:00

126 lines
2.9 KiB
C++

#pragma once
#ifdef _NA_0_20120321_SKILLTREE_SECOND_RENEWAL
#include "uiBase.h"
#include "uiBaseMan_def.h"
#include "SkillSlotContainer.h"
#include "DropdownControl.h"
class SkillScriptInfo;
class SkillSlot;
class SkillDataSet;
struct SkillInven_s;
#include "DrawTexture.h"
class uiSkillTree : public uiBase
{
private:
nDrawTexture::DrawTextureManager m_DrawTextureManager;
SkillSlotContainer skill_slot_container_;
public:
uiSkillTree(InterfaceManager* ui_man);
virtual ~uiSkillTree();
// UI기본(슬롯포함)
virtual void Init(CDrawBase* draw_base);
virtual void Release();
virtual void MessageProc(SI_MESSAGE* message);
virtual ItemUnitRenderer* GetItemUnitRender() const { return item_renderer_; }
virtual RC::eSLOT_INSERT_RESULT InsertSlot(POSTYPE at_pos, SCSlot& IN slot);
virtual BOOL DeleteSlot(POSTYPE at_pos, SCSlot* slot_clone_before_delete);
// 데이터 로드 & 갱신
void SetSkillTotalInfo(const SKILL_TOTAL_INFO& skil_Info);
void LoadSkillTreeSlot(const SkillInven_s* data);
void RefreshUI();
void Clear();
BOOL IsSkillSlot(SCSkillSlot* slot);
private:
VOID ShowDialog( BOOL val ); // override SolarDialog
virtual void OnShowWindow( BOOL val );
virtual void OnRenderSolarDialog();
virtual void OnUpdateSolarDialog();
SCSlotContainer* GetSlotContainer(); // override uiBase
private:
// UI 갱신
void RefreshSkillIcon();
void RefreshBackGround();
void RefreshTab();
void RefreshControlText();
void RefreshPlusButton();
public:
void RefreshTree(bool data_clear = true);
void RefreshSkillSlot();
private:
// 마우스처리
void MouseClickButton(POSTYPE pos);
void MouseClickSlot(POSTYPE pos, bool pickup);
void OnClickPlusButton(POSTYPE pos);
void MouseClickTab(POSTYPE pos);
// 갱신
void UpdateMouse();
void UpdateUnitRender();
void RenderSlotImage();
void RenderToolTip();
// 레벨업 이펙트 연출
void RenderTreeEffect();
// 아이템렌더러
void InitItemRender();
void FlushUnitDraw();
// 컨트롤러
CControlWZ* GetControlByPosition(POSTYPE pos);
POSTYPE GetControlPosition(WzID wzid);
public:
SkillSlot* GetSkillSlot( int skill_slot_position );
static int GetMaxRowCount();
void StartAnimation( int old_left_level, int left_level, int old_right_level, int right_level );
private:
ItemUnitRenderer* item_renderer_;
int is_mouse_overed_on_button_;
int mouse_overed_control_;
// 특성 관련 (임시)
DropdownControl dropdwon_attaib_;
int actived_attrib_index_; // 활성화된 특성의 인덱스
void SetComboIndex( int index );
void RefreshComboText();
void OnChangedCombo();
void _InitializeDrawTexture();
void _ReleaseDrawTexture();
int sound_handle_;
BOOL is_animate_;
int old_left_level_;
int old_right_level_;
int animate_start_time_;
};
#endif //_NA_0_20120321_SKILLTREE_SECOND_RENEWAL