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

349 lines
8.0 KiB
Objective-C

#ifndef __USER_INTERFACE_PARTYMEMBER_H__
#define __USER_INTERFACE_PARTYMEMBER_H__
//------------------------------------------------------------------------------
/**
@class uiPartyMember
interface for a party's member.
(C) 2005 ckbang
*/
#include "uiBase.h"
#include "uiPartyMember_def.h"
#include "..\\uiPartyMan\\uiPartyMan_def.h"
class Character;
class uiPartyMan;
class uiPartyMember :
public uiBase
{
enum eDIALOG_POS
{
DLGPOS_HPBAR,
DLGPOS_BUFF01,
DLGPOS_BUFF02,
DLGPOS_BUFF03,
DLGPOS_BUFF04,
DLGPOS_BUFF05,
DLGPOS_BUFF06,
DLGPOS_BUFF07,
DLGPOS_BUFF08,
DLGPOS_BUFF09,
DLGPOS_BUFF10,
DLGPOS_FACE00,
DLGPOS_FACE01,
DLGPOS_FACE02,
DLGPOS_FACE03,
DLGPOS_FACE04,
DLGPOS_FACE05, //_NA_004965_20120613_NEW_CHARACTER_MYSTIC
#ifdef _NA_000000_20130812_NEW_CHARACTER_HELLROID
DLGPOS_FACE06,
#endif //_NA_000000_20130812_NEW_CHARACTER_HELLROID
#ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE
DLGPOS_FACE07,
#endif // _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE
DLGPOS_CLASS_MARK00,
DLGPOS_CLASS_MARK01,
DLGPOS_CLASS_MARK02,
DLGPOS_CLASS_MARK03,
DLGPOS_CLASS_MARK04,
DLGPOS_CLASS_MARK05, //_NA_004965_20120613_NEW_CHARACTER_MYSTIC
#ifdef _NA_000000_20130812_NEW_CHARACTER_HELLROID
DLGPOS_CLASS_MARK06,
#endif //_NA_000000_20130812_NEW_CHARACTER_HELLROID
#ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE
DLGPOS_CLASS_MARK07,
#endif // _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE
DLGPOS_TXT,
DLGPOS_LEAVE,
DLGPOS_MINE,
DLGPOS_TARGETSHARE,
DLGPOS_PCMARK,
#ifdef _NA_000000_20130114_RENEWER_UI
#else
DLGPOS_MIC_ON,
#endif
DLGPOS_MASTER_MARK,
DLGPOS_BTN_SELECTED_MARK,
DLGPOS_MPBAR,
DLGPOS_LEVEL_TEXT,
DLGPOS_HPBAR_BK,
#ifdef _NA_000000_20130114_RENEWER_UI
#else
DLGPOS_LV_BK,
DLGPOS_FACE_BK,
#endif
DLGPOS_NAME,
#ifdef _DH_BATTLEZONE2_
DLGPOS_BATTLEZONE_READY, //배틀존 레디
#endif //_DH_BATTLEZONE2_
#ifdef _NA_000000_20130114_RENEWER_UI
//추가 버프 스테이트
DLGPOS_BUFF19,
DLGPOS_BUFF20,
DLGPOS_BUFF21,
DLGPOS_BUFF22,
DLGPOS_BUFF23,
DLGPOS_BUFF24,
DLGPOS_BUFF25,
DLGPOS_BUFF26,
DLGPOS_BUFF27,
DLGPOS_BUFF28,
DLGPOS_SPBAR,
#endif
DIALOG_MAX,
};
enum BUF_CONTROLS
{
BUFF01 = 0,
BUFF02,
BUFF03,
BUFF04,
BUFF05,
BUFF06,
BUFF07,
BUFF08,
BUFF09,
BUFF10,
#ifdef _NA_000000_20130114_RENEWER_UI
BUFF11,
BUFF12,
BUFF13,
BUFF14,
BUFF15,
BUFF16,
BUFF17,
BUFF18,
BUFF19,
BUFF20,
#endif
BUF_MAX,
};
enum FACE_CONTROLS
{
FACE00 = 0,
FACE01,
FACE02,
FACE03,
FACE04,
FACE05,
FACEBK,
FACE_MAX,
};
enum GAGUE_CONTROLS
{
HPBAR = 0,
MPBAR,
HPMP_BK,
GAGUE_MAX,
};
#ifdef _DH_BATTLEZONE2_
enum OUTPUT_ZONE_TYPE
{
OUTPUT_ZONE_NONE, // 히어로와 같음 (출력 안함)
OUTPUT_ZONE_FILED, // 히어로는 배틀존, 대상은 필드
OUTPUT_ZONE_BATTLEZONE, // 히어로는 필드, 대상은 배틀존
};
#endif //_DH_BATTLEZONE2_
public:
uiPartyMember(InterfaceManager *pUIMan);
virtual ~uiPartyMember();
//--------------------------------------------------------------------------
// init/release~
//
public:
virtual void Init(CDrawBase* pDrawBase);
virtual void Release();
void InitPartViewPos();
void ShowFaceControl(bool visibility);
void ShowGagueControl(bool visibility);
//--------------------------------------------------------------------------
// helper/comms.
//
public:
uiPartyMan* GetManager();
short GetMyDlgPos();
const uicPartyMemberInfoPlus& GetMyMemberInfo();
//--------------------------------------------------------------------------
// functions
//
public:
void SetTargeting();
void doLeave();
void TargetShare(bool bAttack);
//--------------------------------------------------------------------------
// dialog functions
//
public:
void ResetHPGauge();
void ResetMPGauge();
void OnChangeInfo();
void SetGap( int gap ) { m_nGap = gap; }
int GetGap() const { return m_nGap; }
void SetPartView();
void UpdateStatusIcon();
#ifdef _DH_BATTLEZONE2_
void SetOutputZoneType(OUTPUT_ZONE_TYPE output_zone_type);
void CheckOutputZoneType();
#endif //_DH_BATTLEZONE2_
protected:
virtual void OnShowWindow( BOOL val );
virtual void OnRenderSolarDialog();
virtual void OnUpdateSolarDialog();
void updateInfos();
void updateHP();
void updateMP();
#ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS
void updateSD();
#endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS
void renderStringInfo();
void SetHP( float fHPPercent );
void SetMP( float fMPPercent );
#ifdef _NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS
void SetSD( float fSDPercent );
#endif //_NA_20111220_CHANGE_DISCONNECTED_USER_PROCESS
CCtrlButtonWZ* GetCtrlBtnLeave();
protected:
CControlWZ * getControl( POSTYPE AtPos );
POSTYPE getCtrlIDToPos( WzID wzId );
static WzID m_wzId[DIALOG_MAX];
//--------------------------------------------------------------------------
// procedure
//
public:
virtual void NetworkProc( MSG_BASE * pMsg ); // Pure
virtual void MessageProc( SI_MESSAGE * pMessage ); // Pure
virtual void MoveDefaultWindowPos();
//--------------------------------------------------------------------------
// member vars
//
private:
CCtrlButtonWZ* m_ctrlBtnMaster;
CCtrlStaticWZ* m_ctrlLevelStatic;
CCtrlPictureWZ* m_ctrlGaugeBackground;
float m_fGaugeSize;
RECT m_rcInit;
float m_fMPGaugeSize;
RECT m_rcMPInit;
vector<SKILL_EFFECT_IMAGE> status_icon_container_;
int m_nGap;
DWORD m_blinkTick;
float m_fTop;
float m_fLeft;
bool m_bIsShowFace;
bool m_bIsShowGague;
bool m_bIsShowBuf;
RECT m_rcName;
RECT m_rcGague;
RECT m_rcBuf;
bool m_bInitPartPos;
bool m_bHpBlinkType;
RECT rect_pos_init[4];
RECT rect_pos_string;
#ifdef _DH_BATTLEZONE2_
bool mouse_over_;
OUTPUT_ZONE_TYPE output_zone_type_;
#endif //_DH_BATTLEZONE2_
};
//------------------------------------------------------------------------------
/**
*/
inline
POSTYPE
uiPartyMember::getCtrlIDToPos( WzID wzId )
{
for( POSTYPE i = 0 ; i < DIALOG_MAX ; ++i )
{
if( m_wzId[i] == wzId )
{
return i;
}
}
return DIALOG_MAX;
}
//------------------------------------------------------------------------------
/**
*/
inline
CControlWZ *
uiPartyMember::getControl( POSTYPE AtPos )
{
assert( AtPos < DIALOG_MAX );
return GetControlWZ( m_wzId[AtPos] );
}
//------------------------------------------------------------------------------
/**
*/
inline
void
uiPartyMember::ResetHPGauge()
{
this->m_fGaugeSize = -1;
}
//------------------------------------------------------------------------------
/**
*/
inline
void
uiPartyMember::ResetMPGauge()
{
this->m_fMPGaugeSize = -1;
}
//------------------------------------------------------------------------------
#ifdef _DH_BATTLEZONE2_
inline
void
uiPartyMember::SetOutputZoneType(OUTPUT_ZONE_TYPE output_zone_type)
{
output_zone_type_ = output_zone_type;
}
#endif //_DH_BATTLEZONE2_
//------------------------------------------------------------------------------
#endif // __USER_INTERFACE_PARTYMEMBER_H__