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

158 lines
4.9 KiB
Objective-C

#ifndef _PARTY_H
#define _PARTY_H
//------------------------------------------------------------------------------
/**
@class Party
파티 클래스
파티 초대, 탈퇴, 강제 탈퇴 등을 처리하는 클래스
(C) 2005 ckbang
*/
#include "PacketStruct_CG.h"
#include "ResultCode.h"
#include "InterfaceManager.h"
using namespace RC;
class Party
{
public:
Party();
~Party();
void Init (); /// 파티 초기화
void ShowPartyInfoDlgs (BOOL bFlag); /// 파티 정보 다이얼로그들 띄우기
void SetInfos (MSG_CG_PARTY_MEMBER_INFO_CMD *pAck); /// 파티 정보들 채우기
void AddInfo (MSG_CG_PARTY_MEMBER_JOIN_BRD *pAck); /// 추가 정보 채우기
void DelInfo (DWORD objKey);
void ClearInfos (); /// 파티 구성 초기화
void SetMaster (DWORD objKey); /// 파티장 새로 설정
void LeaveParty (); /// 파티 떠나기
PARTY_MEMBER_INFO* GetInfo (DWORD objKey); /// 파티원 정보 얻기
DWORD GetPartyMasterObjKey (); /// 파티장 키값 얻기
BYTE GetDistributionType (); /// 파티 분배방식 얻기
BYTE GetPartyNum (); /// 파티 구성원 수 얻기
InterfaceManager::eDIALOG_ID GetStartPartyDialog (); /// 파티창 첫번째 값 얻기
const char * GetInviterName (); /// 초대한 사람의 이름
DWORD GetInviterKey (); /// 초대한 사람의 키값
BOOL IsMaster (); /// 파티장인가
BOOL IsVisable (); /// 파티 인터페이스가 활성화 되었는가
BOOL VisableSwap (); /// 파티 인터페이스의 활성화 상태 자동변환
DWORD name2key (char *pname); /// 파티원의 이름을 키값으로 컨버팅
char * key2name (DWORD key); /// 파티원의 키값을 이름으로 컨버팅
/// 알림
void Notice (TCHAR *pnotice, WzColor Color=WzColor_RGBA( 255, 255, 0, 255 ));
/// 이유
void Reason (ePARTY_RESULT eReason, WzColor Color=WzColor_RGBA( 0, 0, 255, 255 ));
//
// PARTY ACTION
//
bool actForcedExplusion (DWORD objKey); /// 강제 탈퇴
bool actLeave (); /// 탈퇴
void actInvite (char *pname); /// 초대
void actAskInviting(char *strInviterName, DWORD dwInviterKey); /// 초대 수락여부
void actInvitedYes (); /// 초대에 응함
void actInvitedNo (); /// 초대에 불응
bool actMigration (DWORD objKey); /// 방장 위임
bool actToggleShowBuffInfo (); /// 버프 정보 보이기/숨기기
bool actDestroyParty (); /// 파티 해체
//
// PARTY PARSE PACKET
//
void Parse (MSG_BASE * pMsg);
protected:
BOOL m_bVisable; /// 파티 인터페이스 활성화 플렉
DWORD m_dwMasterObjKey; /// 파티장 오브젝트 키
BYTE m_byDistributionType; /// 아이템 분배방식
BYTE m_byMemberNum; /// 파티원 수(파티장 포함)
vector<PARTY_MEMBER_INFO> m_MemberInfo; /// 파티 구성원들의 목록
BOOL m_bShowBuffInfo; /// 파티 버프창 보이기
std::string m_strInviterName; /// 초대한 사람 이름
DWORD m_dwInviterKey; /// 초대한 사람 키
};
//------------------------------------------------------------------------------
/**
*/
inline
BOOL
Party::VisableSwap()
{
if (m_bVisable)
m_bVisable = FALSE;
else
m_bVisable = TRUE;
return m_bVisable;
}
//------------------------------------------------------------------------------
/**
*/
inline
BOOL
Party::IsVisable()
{
return m_bVisable;
}
//------------------------------------------------------------------------------
/**
*/
inline
DWORD
Party::GetPartyMasterObjKey()
{
return m_dwMasterObjKey;
}
//------------------------------------------------------------------------------
/**
*/
inline
const char *
Party::GetInviterName()
{
return m_strInviterName.c_str();
}
//------------------------------------------------------------------------------
/**
*/
inline
DWORD
Party::GetInviterKey()
{
return m_dwInviterKey;
}
//------------------------------------------------------------------------------
/**
*/
inline
BYTE
Party::GetDistributionType()
{
return m_byDistributionType;
}
//------------------------------------------------------------------------------
/**
*/
inline
BYTE
Party::GetPartyNum()
{
return m_MemberInfo.size();
}
//------------------------------------------------------------------------------
#endif // _PARTY_H