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

176 lines
4.9 KiB
C++

#ifndef _SUICreatureCardWnd_h_
#define _SUICreatureCardWnd_h_
//#include "SUIWnd.h"
class SUIDisplayInfo;
class SInventorySlot;
//////////////////////////////////////////////////////////////////////////
class SUICreatureCardBaseWnd : public SUIWnd
{
public:
SUICreatureCardBaseWnd( SGameManager* pGameManager ) : SUIWnd( pGameManager ), m_spTexture(NULL) {}
virtual ~SUICreatureCardBaseWnd() {}
virtual void OnDeviceLost();
protected:
void initIllustTexture();
void refreshInitImg();
void refreshCardImg();
void modifyIllustImg(int enhance);
protected:
K3DTextureSPtr m_spTexture;
std::string m_strIllustImg;
};
//////////////////////////////////////////////////////////////////////////
class SUICreatureCardFrontWnd : public SUICreatureCardBaseWnd
{
public:
SUICreatureCardFrontWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo );
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual bool InitControls( KPoint kPos );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
virtual bool InitData( bool bReload = false );
protected:
void setData( AR_HANDLE cardHandle,
int nSummonID,
int itemCode,
bool isSummon,
int const* socket,
int enhance,
int creatureLevel );
void setData( void );
private:
SUIDisplayInfo* m_pDisplayInfo;
AR_HANDLE m_handle;
bool m_needReqSkillTreeData;
KUIControlStatic* m_pAffiliation; // 계열 컨트롤
KUIControlIconStatic* m_pAffiliationIcon; // 계열 아이콘
KUIControlStatic* m_pOverBreed; // 오버 브리드 컨트롤
KUIControlStatic* m_pOverBreedIcon; // 오버 브리드 아이콘
std::string m_strAffiliationNamePropertyTag; // 계열 속성 태그 <font:>,<size:>.. <etc>
std::string m_strOverBreedPropertyTag; // 오버브리드 속성 태그 <font:>,<size:>.. <etc>
};
//////////////////////////////////////////////////////////////////////////
class SUICreatureCardBackWnd : public SUIWnd
{
public:
SUICreatureCardBackWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo );
virtual ~SUICreatureCardBackWnd( void );
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual bool InitControls( KPoint kPos );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
virtual bool InitData( bool bReload = false );
private:
void setCreatureEnhance(int _etherealDurability, int _enhance);
void RefreshScrollbar();
void setSkillTree(SMSG_SKILL_LEVEL_LIST* info);
void setSkillData(int index, int skillId, int skillLevel);
void setData( AR_HANDLE cardHandle,
AR_HANDLE creatureHandle,
int itemCode,
int nSummonID,
bool isSummon,
int const* socket,
int etherealDurability,
int enhance,
int creatureLevel,
const std::vector<class SSkillSlot*>& vecSkillList );
private:
SUIDisplayInfo* m_pDisplayInfo;
int m_nSkillDataSize;
int m_nScrollPos;
int m_maxDurGageSize;
KUIControlIconStatic* m_pAffiliationIcon; // 계열 아이콘
KUIControlStatic* m_pOverBreed; // 오버 브리드 컨트롤
KUIControlStatic* m_pOverBreedIcon; // 오버 브리드 아이콘
std::string m_strOverBreedPropertyTag; // 오버브리드 속성 태그 <font:>,<size:>.. <etc>
std::vector< class SSkillSlot* > m_vSkillSlotList;
std::vector<struct SMSG_SKILL_LEVEL_LIST::SkillLevelInfo> m_skillLevelList; /// 2011.05.12 m_vSkillSlotList를 쓸 수 없는 이유는 m_vSkillSlotList는 포인터를 넣기 때문이다 - prodongi
};
class SUIBossMonsterCardWnd : public SUICreatureCardBaseWnd
{
public:
SUIBossMonsterCardWnd( SGameManager* pGameManager, class SUIDisplayInfo* displayInfo )
: SUICreatureCardBaseWnd( pGameManager )
, m_displayInfo(displayInfo)
, m_pAffiliationIcon( NULL )
{}
virtual ~SUIBossMonsterCardWnd() {}
virtual bool InitControls( KPoint kPos );
virtual bool InitData( bool bReload = false );
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
protected:
SUIDisplayInfo* m_displayInfo;
KUIControlIconStatic* m_pAffiliationIcon; // 계열 아이콘
};
#endif