gamezone.h
来自「奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码」· C头文件 代码 · 共 65 行
H
65 行
#pragma once
//=============================================================================================================================
/// GameZone class
/**
@author Kim Min Wook < taiyo@webzen.com >
@since 2004. 12. 29
@remark
- GameServer俊辑 粮阑 包府窍绰 弥惑困 眠惑 努贰胶
@note
-
@history
-
*/
//=============================================================================================================================
#include "GameZoneCommon.h"
class GameZone
{
public:
GameZone(void);
virtual ~GameZone(void);
VOID Init( KEYTYPE Key, CODETYPE MapCode );
virtual VOID Release();
virtual VOID Update( DWORD dwDeltaTick );
VOID LoadMap( int iActiveFieldIndex = -1 );
virtual eZONETYPE GetZoneType() = 0;
inline KEYTYPE GetKey() { return m_Key; }
inline VOID SetKey( KEYTYPE Key ) { m_Key = Key; }
inline CODETYPE GetMapCode() { return m_MapCode; }
inline VOID SetMapCode(CODETYPE MapCode) { m_MapCode=MapCode; }
virtual VOID Ready( Player * pPlayer, CODETYPE FieldCode, WzID AreaID )=0;
virtual BOOL Join( Player * pPlayer, CODETYPE FieldCode, WzID AreaID );
virtual VOID Leave( Player * pPlayer );
virtual VOID Warp( Player * pPlayer, CODETYPE FieldCode, WzID AreaID );
DWORD GetEntryAreaID();
virtual CODETYPE GetEntryFieldCode();
Map * GetMap(){ return m_pMap; }
virtual BOOL CheckMapVersion( CODETYPE FieldCode, DWORD checksum );
template <class Executer>
VOID ForeachPlayer( Executer & Opr );
private:
Map * m_pMap;
KEYTYPE m_Key;
CODETYPE m_MapCode;
protected:
util::SolarHashTable<Player *> m_PlayerHash;
};
template <class Executer>
VOID GameZone::ForeachPlayer( Executer & exe )
{
Player * pPlayer = NULL;
m_PlayerHash.SetFirst();
while( ( pPlayer = m_PlayerHash.GetNext() ) != NULL )
{
exe( pPlayer );
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?