Files
Sun1602/Server/AgentServer/Zone/HuntingRoom.h
T
2022-10-26 12:25:11 +08:00

76 lines
2.0 KiB
C++

#pragma once
//=============================================================================================================================
/// HuntingRoom 클래스
/**
@author Kim Min Wook < taiyo@webzen.com >
@since 2005. 9. 20
@remark
- 헌팅방에 대한 존 정보 관리
@note
-
@history
-
@usage
-
*/
//=============================================================================================================================
#include "roominterface.h"
class HuntingRoom : public RoomInterface
{
_DECLARE_POOL(HuntingRoom)
public:
HuntingRoom(void);
virtual ~HuntingRoom(void);
virtual RC::eROOM_RESULT Migrate( KEYTYPE key, RoomInterface * pPreviousRoom, ServerSession * pServerSession );
inline virtual eZONETYPE GetType() { return eZONETYPE_HUNTING; }
virtual VOID Invite( User *pUser );
VOID SerializeLoad( HUNTING_ROOMINFO & OUT rRoomInfo );
RC::eROOM_RESULT Create( User * pUser,
KEYTYPE key,
MAPCODE MapCode,
eZONEPUBLIC ePublic,
TCHAR * pszRoomTitle,
TCHAR * pszRoomPWD,
BASE_ROOMINFO & IN BaseRoomInfo,
ADDITIONAL_ROOMINFO & IN AdditionalRoomInfo,
ServerSession * pServerSession );
protected:
virtual RC::eROOM_RESULT _CanJoinEach( User* pUser, eZONEPUBLIC RoomPublic, TCHAR * pszRoomPWD );
RC::eROOM_RESULT CanCreate( User * pUser, MAPCODE MapCode, eZONETYPE eZoneType, eZONEPUBLIC ePublic, BASE_ROOMINFO & IN BaseRoomInfo, ADDITIONAL_ROOMINFO & IN AdditionalRoomInfo );
virtual VOID On_create();
virtual VOID On_destroy();
virtual VOID On_readyuser( User * pUser );
virtual VOID On_enteruser( User * pUser );
virtual VOID On_leaveuser( User * pUser );
virtual BOOL RecommendLevel( LEVELTYPE LV );
inline const ADDITIONAL_ROOMINFO * GetAdditionalInfo() { return &m_AdditionalRoomInfo; }
inline VOID SetAdditionalInfo(const ADDITIONAL_ROOMINFO * IN pInfo) { memcpy(&m_AdditionalRoomInfo, pInfo, sizeof(m_AdditionalRoomInfo)); }
private:
ADDITIONAL_ROOMINFO m_AdditionalRoomInfo;
};