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

313 lines
7.5 KiB
C++

#ifndef __UIDEF_MANAGER_BATTLEZONE_H__
#define __UIDEF_MANAGER_BATTLEZONE_H__
struct IM_BATTLEZONE_MANAGER
{
static const DWORD BATTLEZONE_READY_PVP_CFG;
static const DWORD BATTLEZONE_LIST;
static const DWORD BATTLEZONE_CREATE;
static const DWORD BATTLEZONE_PASSWORD;
static const DWORD BATTLEZONE_READY_MISSION_CFG;
static const DWORD BATTLEZONE_READY_CHUNTING_CFG;
static const DWORD BATTLEZONE_CHUNTING_WIN;
static const DWORD BATTLEZONE_CHUNTING_SCORE_BOARD;
static const DWORD BATTLEZONE_CHUNTING_DOING;
static const DWORD BATTLEZONE_CREATE_EP2;
};
// Packet I/O Boolean
//
enum
{
ePKBOOL_BATTLEZONE_BASE = 0,
ePKBOOL_BATTLEZONE_LIST_CG_ZONE_SHORTCUT_SYN,
ePKBOOL_BATTLEZONE_LIST_CG_ZONE_FIND_ROOM_FROM_CHARID_SYN,
ePKBOOL_BATTLEZONE_LIST_CG_ZONE_LIST_MISSIONLOBBY_SYN,
ePKBOOL_BATTLEZONE_LIST_CG_ZONE_LIST_PVPLOBBY_SYN,
ePKBOOL_BATTLEZONE_LIST_CG_ZONE_LIST_CHUNTINGLOBBY_SYN,
ePKBOOL_BATTLEZONE_LIST_CG_ZONE_LIST_CHUNTING_SYN,
ePKBOOL_BATTLEZONE_CREATE_CG_ZONE_LOBBY_CREATE_SYN,
ePKBOOL_BATTLEZONE_CG_ZONE_LOBBY_CHANGE_MAP_SYN,
ePKBOOL_BATTLEZONE_CG_ZONE_LOBBY_CHUNTING_CONFIG_SYN,
ePKBOOL_BATTLEZONE_CG_ZONE_LOBBY_PVP_CONFIG_SYN,
PACKET_STATUS_NON,
PACKET_STATUS_SEND_BAN, // 강퇴 패킷
PACKET_STATUS_SEND_LEAVE, // 나가기 패킷
PACKET_STATUS_SEND_READY, // 준비 패킷
PACKET_STATUS_SEND_CREATE, // 미션/헌팅 만들기
PACKET_STATUS_SEND_PLAYER_NUM, // 유저 인원수 체크
PACKET_STATUS_SEND_READY_CANCLE, // 준비 취소 패킷
PACKET_STATUS_SEND_CHANGE_TEAM, // 팀 교체
ePKBOOL_BATTLEZONE_MAX,
};
enum
{
eBATTLE_ZONE_LIST_ITEM_MISSION_LOBBY = 0, // 미션 조인
eBATTLE_ZONE_LIST_ITEM_PVP = 3, // pvp 조인
eBATTLE_ZONE_LIST_ITEM_CHUNTING_LOBBY = 4, // 경쟁헌팅 조인
eBATTLE_ZONE_LIST_ITEM_MAX,
};
#pragma pack(push,1)
class cBattleZoneListItem
{
public:
cBattleZoneListItem() {iType = -1;}
int iType;
MISSION_ROOMINFO m_MissionLobbyRoomInfo;
HUNTING_ROOMINFO m_HuntingLobbyRoomInfo;
HUNTING_ROOMINFO m_HuntingRoomInfo;
PVP_ROOMINFO m_PVPRoomInfo;
CHUNTING_ROOMINFO m_CHuntingLobbyRoomInfo;
CHUNTING_ROOMINFO m_CHuntingRoomInfo;
cBattleZoneListItem& operator=(const cBattleZoneListItem& rhs);
cBattleZoneListItem& operator=(cBattleZoneListItem* prhs);
bool operator==(const cBattleZoneListItem& rhs);
bool operator==(KEYTYPE key);
void setM (const MISSION_ROOMINFO& rhs);
void setP (const PVP_ROOMINFO& rhs);
void setCH (const CHUNTING_ROOMINFO& rhs, int type);
};
//------------------------------------------------------------------------------
/**
*/
inline
cBattleZoneListItem&
cBattleZoneListItem::operator=(const cBattleZoneListItem& rhs)
{
this->iType = rhs.iType;
switch (this->iType)
{
case eBATTLE_ZONE_LIST_ITEM_MISSION_LOBBY:
{
memcpy ((MISSION_ROOMINFO *)&this->m_MissionLobbyRoomInfo,
(MISSION_ROOMINFO *)&rhs.m_MissionLobbyRoomInfo,
sizeof (MISSION_ROOMINFO));
}
break;
case eBATTLE_ZONE_LIST_ITEM_PVP:
{
memcpy ((PVP_ROOMINFO *)&this->m_PVPRoomInfo,
(PVP_ROOMINFO *)&rhs.m_PVPRoomInfo,
sizeof (PVP_ROOMINFO));
}
break;
case eBATTLE_ZONE_LIST_ITEM_CHUNTING_LOBBY:
{
memcpy ((CHUNTING_ROOMINFO *)&this->m_CHuntingLobbyRoomInfo,
(CHUNTING_ROOMINFO *)&rhs.m_CHuntingLobbyRoomInfo,
sizeof (CHUNTING_ROOMINFO));
}
break;
default:
{
assert(!"존재하지 않는 Zone Type 입니다!!!");
}
break;
}
return *this;
}
//------------------------------------------------------------------------------
/**
*/
inline
cBattleZoneListItem&
cBattleZoneListItem::operator=(cBattleZoneListItem* prhs)
{
assert (prhs);
this->iType = prhs->iType;
switch (this->iType)
{
case eBATTLE_ZONE_LIST_ITEM_MISSION_LOBBY:
{
memcpy ((MISSION_ROOMINFO *)&this->m_MissionLobbyRoomInfo,
(MISSION_ROOMINFO *)&prhs->m_MissionLobbyRoomInfo,
sizeof (MISSION_ROOMINFO));
}
break;
case eBATTLE_ZONE_LIST_ITEM_PVP:
{
memcpy ((PVP_ROOMINFO *)&this->m_PVPRoomInfo,
(PVP_ROOMINFO *)&prhs->m_PVPRoomInfo,
sizeof (PVP_ROOMINFO));
}
break;
case eBATTLE_ZONE_LIST_ITEM_CHUNTING_LOBBY:
{
memcpy ((CHUNTING_ROOMINFO *)&this->m_CHuntingLobbyRoomInfo,
(CHUNTING_ROOMINFO *)&prhs->m_CHuntingLobbyRoomInfo,
sizeof (CHUNTING_ROOMINFO));
}
break;
default:
{
assert(!"존재하지 않는 Zone Type 입니다!!!");
}
break;
}
return *this;
}
//------------------------------------------------------------------------------
/**
*/
inline
void
cBattleZoneListItem::setM(const MISSION_ROOMINFO& rhs)
{
this->iType = eBATTLE_ZONE_LIST_ITEM_MISSION_LOBBY;
memcpy ((MISSION_ROOMINFO *)&this->m_MissionLobbyRoomInfo,
(MISSION_ROOMINFO *)&rhs,
sizeof (MISSION_ROOMINFO));
}
//------------------------------------------------------------------------------
/**
*/
inline
void
cBattleZoneListItem::setP(const PVP_ROOMINFO& rhs)
{
this->iType = eBATTLE_ZONE_LIST_ITEM_PVP;
memcpy ((PVP_ROOMINFO *)&this->m_PVPRoomInfo,
(PVP_ROOMINFO *)&rhs,
sizeof (PVP_ROOMINFO));
}
//------------------------------------------------------------------------------
/**
*/
inline
void
cBattleZoneListItem::setCH(const CHUNTING_ROOMINFO& rhs, int type)
{
this->iType = eBATTLE_ZONE_LIST_ITEM_CHUNTING_LOBBY;
memcpy ((CHUNTING_ROOMINFO *)&this->m_CHuntingLobbyRoomInfo,
(CHUNTING_ROOMINFO *)&rhs,
sizeof (CHUNTING_ROOMINFO));
}
//------------------------------------------------------------------------------
/**
*/
inline
bool
cBattleZoneListItem::operator==(const cBattleZoneListItem& rhs)
{
if (this->iType != rhs.iType)
return false;
switch (this->iType)
{
case eBATTLE_ZONE_LIST_ITEM_MISSION_LOBBY:
{
if (this->m_MissionLobbyRoomInfo.m_Key != rhs.m_MissionLobbyRoomInfo.m_Key)
return false;
}
break;
case eBATTLE_ZONE_LIST_ITEM_PVP:
{
if (this->m_PVPRoomInfo.m_Key != rhs.m_PVPRoomInfo.m_Key)
return false;
}
break;
case eBATTLE_ZONE_LIST_ITEM_CHUNTING_LOBBY:
{
if (this->m_CHuntingLobbyRoomInfo.m_Key != rhs.m_CHuntingLobbyRoomInfo.m_Key)
return false;
}
break;
default:
{
assert(!"존재하지 않는 Zone Type 입니다!!!");
}
break;
}
return true;
}
//------------------------------------------------------------------------------
/**
*/
inline
bool
cBattleZoneListItem::operator==(KEYTYPE key)
{
switch (this->iType)
{
case eBATTLE_ZONE_LIST_ITEM_MISSION_LOBBY:
{
if (this->m_MissionLobbyRoomInfo.m_Key != key)
return false;
}
break;
case eBATTLE_ZONE_LIST_ITEM_PVP:
{
if (this->m_PVPRoomInfo.m_Key != key)
return false;
}
break;
case eBATTLE_ZONE_LIST_ITEM_CHUNTING_LOBBY:
{
if (this->m_CHuntingLobbyRoomInfo.m_Key != key)
return false;
}
break;
default:
{
assert(!"존재하지 않는 Zone Type 입니다!!!");
}
break;
}
return true;
}
#pragma pack(pop)
#endif