⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gameroom.h

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 H
字号:
#pragma once

#include "gamezone.h"
#include "SolarHashTable.h"

class Party;


class GameRoom : public GameZone
{
public:
	GameRoom(void);
	virtual ~GameRoom(void);

	VOID Init( KEYTYPE Key, CODETYPE MapCode, const TCHAR * pszRoomTitle, const TCHAR * pszRoomPWD, const BASE_ROOMINFO * IN pRoomInfo );
	virtual VOID		Release();
	virtual eZONETYPE	GetZoneType() = 0;

	virtual VOID		Ready( Player * pPlayer, CODETYPE FieldCode, WzID AreaID )=0;
	virtual BOOL		Join( Player * pPlayer, CODETYPE FieldCode, WzID AreaID );
	virtual	VOID 		Leave( Player * pPlayer );

	inline VOID			SetMasterUserKey( DWORD dwUserKey )				{ m_MasterUserKey = dwUserKey; }
	inline DWORD		GetMasterUserKey()								{ return m_MasterUserKey; }
	virtual VOID		ChangeMaster(DWORD dwNextMasterUserKey );
	virtual WORD		CreateParty( DWORD dwMasterUserKey, BYTE byTeamIndex=0 );
	Party*				GetParty( BYTE byTeamIndex )	{ return m_pPartyHashTable->GetData( byTeamIndex ); }

	inline const TCHAR *				GetRoomTitle()		{ return m_pszRoomTitle; }
	inline const BASE_ROOMINFO *		GetBaseRoomInfo()	{ return &m_RoomInfo; }
	virtual const ADDITIONAL_ROOMINFO *	GetAdditionalInfo()	{ static ADDITIONAL_ROOMINFO info; return &info; }
	virtual const ADDITIONAL_PVPINFO *	GetAdditionalPVPInfo()	{ static ADDITIONAL_PVPINFO info; return &info; }
protected:
	inline VOID			SetRoomTitle(const TCHAR * title)	{ memcpy(m_pszRoomTitle, title, MAX_ROOMTITLE_LENGTH*sizeof(TCHAR)); m_pszRoomTitle[MAX_ROOMTITLE_LENGTH]='\0'; }
	inline VOID			SetRoomPWD(const TCHAR * pw)		{ memcpy(m_pszRoomPWD, pw, MAX_ROOMPASSWORD_LENGTH*sizeof(TCHAR)); m_pszRoomPWD[MAX_ROOMPASSWORD_LENGTH]='\0'; }
	inline VOID			SetBaseRoomInfo(const BASE_ROOMINFO * pInfo) { memcpy(&m_RoomInfo, pInfo, sizeof(BASE_ROOMINFO)); }
	
private:
	DWORD				m_MasterUserKey;	//< 规厘
	TCHAR				m_pszRoomTitle[MAX_ROOMTITLE_LENGTH+1];
	TCHAR				m_pszRoomPWD[MAX_ROOMPASSWORD_LENGTH+1];
	BASE_ROOMINFO		m_RoomInfo;

protected:
	util::SolarHashTable<Party*>*	m_pPartyHashTable;		// 虐蔼篮 评牢郸胶肺 茄促. 叼弃飘 0
};




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -