Files
2026-06-01 12:46:52 +02:00

165 lines
4.5 KiB
C++

#pragma once
//#include "SUIWnd.h"
#include <mmo/ArType.h>
class SUIDisplayInfo;
namespace
{
const float c_fSummonedTime = 30.f;
};
class SUICreatureInfoWnd : public SUIWnd
{
public:
SUICreatureInfoWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo )
: SUIWnd( pGameManager )
, m_pDisplayInfo( pDisplayInfo )
, m_bUnSummonedCheck(false)
, m_hUnSummonedCreature(0)
{
m_dwTime = m_dwBeginTime = m_dwRemainTime = m_dwStartTime = 0;
m_nProcessCount = m_nSelectIndex = 0;
}
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
virtual void Process( DWORD dwTime );
virtual bool InitData( bool bReload = false );
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
public:
/// 리스트 ===============================
void RefreshSlots();
void EnableSlot( int nIndex, bool bEnable = false, bool bEnableRemainTimeDisplay = false ); // 2011.04.18 - servantes
void SetSummonedCreautreData( int nIndex, AR_HANDLE hCreature );
void RefreshHPMP( int nIndex, struct SIMSG_UI_TARGET_STAT * pMsg );
void RefreshGauge( std::string strControl, __int64 nCurValue, __int64 nMaxValue );
/// 선택
AR_HANDLE CheckCreature( int nX, int nY );
void SelectCreature( int nX, int nY );
/// 카운트
void ShowCountNumber( int nCountNumber = static_cast<int>(c_fSummonedTime) );
std::string GetRemainTime( int nRemainTime );
void ClearSummonedCreautreData();
protected:
void setShowSelectControl(AR_HANDLE handle); /// 2011.02.15 - prodongi
private:
SUIDisplayInfo* m_pDisplayInfo;
AR_HANDLE m_hCreature[2/*SCreatureSlotMgr::MAX_SUMMON_SLOT*/];
AR_HANDLE m_hLendingCreature[2/*SCreatureSlotMgr::MAX_SUMMON_SLOT*/];
bool m_bUnSummonedCheck;
AR_HANDLE m_hUnSummonedCreature;
AR_HANDLE m_hSummonedCreature;
DWORD m_dwTime;
DWORD m_dwBeginTime;
DWORD m_dwRemainTime;
DWORD m_dwStartTime;
int m_nProcessCount;
int m_nSelectIndex;
};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//크리쳐 스킬 퀵슬롯 제거 2009.03.24 sfreer
/*
class SUIHCreatureQuickSlotWnd : public SUIWnd
{
public:
SUIHCreatureQuickSlotWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo );
~SUIHCreatureQuickSlotWnd();
public:
virtual bool InitData( bool bReload = false );
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
virtual void PumpUpMessage( LPCSTR lspzControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual void* Perform( KID id, KArg& msg );
virtual void Process( DWORD dwTime );
public:
void RefreshQuickInfo();
void UpdateQuickSlot( AR_HANDLE hCreature );
void RefreshQuickSlot( AR_HANDLE hCreature );
void RefreshCreatureIcon( AR_HANDLE hCreature );
void UseSkill( int nQuickSlotNum );
void ShowClockBox( int nSkillID, bool bDiable = false );
void CancelSkill( int nSkillID );
int GetSlotIndex( const char* szControlID );
struct QUICK_SKILL* GetSlotSkillInfo( int index );
bool IsActive( int nID );
void CheckEffect( int nSkillID, int nSkillStatus );
void ToggleEffect( int nSkillID, bool bToggle );
void SkillToggleMode( int nQuickSlotNum );
private:
SUIDisplayInfo* m_pDisplayInfo;
bool m_bFaceCut;
bool m_bCtrlKey;
struct SLOT_INFO //크리처 귓슬롯 정보 표현용 control들의 ID
{
std::string strIconControl;
};
SLOT_INFO* m_pSlotControlIDs;
void UpdateSkillStatus( int nSkillStatus, QUICK_SKILL* pSlot );
void UpdateSkillToggle( int nStatus, QUICK_SKILL* pSlot );
void RefreshQuickEffect( int nSlot, QUICK_SKILL* pQuickSkill );
void DeleteToggleQuickSlotList( int nSkillID );
bool m_bIsQuickSlot;
enum
{
QUICK_SLOT_MAX = 12,
};
struct UsingSkill
{
bool m_bActivate;
bool m_bSendMsg;
int m_nSkillID;
int m_nSkillLevel;
AR_HANDLE m_hOwner;
bool operator == ( const int& index ) const
{
return ( m_nSkillID == index );
}
UsingSkill( AR_HANDLE owner, int skillid, int skilllv )
: m_hOwner( owner )
, m_nSkillID( skillid )
, m_bSendMsg( false )
, m_bActivate( false )
, m_nSkillLevel( skilllv )
{
}
};
int m_vToggleQuickSlotList[QUICK_SLOT_MAX];
std::vector< UsingSkill > m_vUseSkillList;
bool m_bCasting;
DWORD m_dwTime;
};*/