Files
2022-10-26 12:25:11 +08:00

95 lines
1.8 KiB
C++

#pragma once
#include "gameroom.h"
class GameField;
class Player;
class PVPManager;
class GamePVPRoom : public GameRoom
{
enum { MAX_PVP_TEAM_NUM = 10, };
__DECL_CUSTOMPOOL_PTR(GamePVPRoom)
public:
GamePVPRoom(void);
virtual ~GamePVPRoom(void);
virtual void OnCreate();
virtual void OnDestroy();
PVPManager* GetPVPManager();
void SetAdditionalPVPInfo(
const ADDITIONAL_PVPINFO* pInfo
);
virtual eZONETYPE GetZoneType();
virtual void Ready(
Player* pPlayer,
MAPCODE FieldCode,
WzID AreaID,
WzVector* pwvStartPos
);
virtual BOOL Join(
Player* pPlayer,
MAPCODE FieldCode,
WzID AreaID,
WzVector* pwvStartPos
);
virtual BOOL MoveField(
Player* pPlayer,
MAPCODE FieldCode,
WzID AreaID,
WzVector* pwvStartPos
);
virtual void Leave(
Player* pPlayer
);
virtual void Update(
DWORD dwDeltaTick
);
virtual void ChangeMaster(
DWORD dwNextMasterUserKey
);
virtual void SetZone(
Object* pObject,
MAPCODE FieldCode,
WzID AreaID,
WzVector* pwvStartPos
);
virtual eUSER_RELATION_TYPE IsFriendPVP(
Player* pAttacker,
Player* pTarget
);
virtual const ADDITIONAL_PVPINFO* GetAdditionalPVPInfo();
virtual BOOL IsApplyPenalty();
//_NA_0_20091118_GAMEROOM_BATTLE_RESULT
virtual GameBattleResult* GetBattleResult();
private:
ADDITIONAL_PVPINFO m_AdditionalPVPInfo;
PVPManager* m_pPVPManager;
};
inline PVPManager*
GamePVPRoom::GetPVPManager()
{
return m_pPVPManager;
}
inline void
GamePVPRoom::SetAdditionalPVPInfo(const ADDITIONAL_PVPINFO * pInfo)
{
memcpy(&m_AdditionalPVPInfo, pInfo, sizeof(ADDITIONAL_PVPINFO));
}