📄 viewportmanager.h
字号:
#pragma once
#include <Singleton.h>
#include <map>
#include <MemoryPoolFactory.h>
// 甘 肺爹 困秦 眠啊
#include <3DEngine/3DTerrain/3DTerrain.h>
#include <Linkedlist.h>
using namespace util;
class User;
class Zone;
class FieldInfo;
// 角力 冀磐 窜困
class ViewPort
{
enum
{
MAX_NEIGHBOR_SECTOR_NUM = 8,
};
public:
ViewPort(void);
~ViewPort(void);
VOID AddNeighborZone( Zone *pZone );
VOID SendToNeighbors( BYTE *pMsg, WORD wSize );
VOID SendToZone( BYTE *pMSg, WORD wSize );
VOID AddUser( User *pUser );
VOID RemoveUser( User *pUser );
VOID SetZone(eZONETYPE eZoneType, DWORD dwSectorIndex);
DWORD GetKey();
inline Zone* GetZone() { return m_pZone; }
private:
CLinkedlist<Zone*> m_NeighborZone;
Zone *m_pZone;
};
typedef std::map<DWORD, ViewPort*> VIEWPORT_MAP;
typedef VIEWPORT_MAP::iterator VIEWPORT_MAP_ITER;
typedef std::pair<DWORD, ViewPort*> VIEWPORT_MAP_PAIR;
// 冀磐甸阑 包府窍绰 窍唱狼 鞘靛
class ChatField
{
friend class ViewPort;
public:
ChatField(void);
~ChatField(void);
VOID Init(FieldInfo *pFieldInfo);
VOID Release();
VOID RemoveViewPort( DWORD dwZoneID );
BOOL MoveViewPort( User *pUser, DWORD dwFieldCode, DWORD dwZoneID );
ViewPort* GetViewPort( DWORD dwZoneID );
BOOL SendToNeighbors( DWORD dwZoneID, BYTE *pMsg, WORD wSize );
BOOL SendToAll( BYTE *pMsg, WORD wSize );
DWORD GetFieldCode();
BOOL AddUser( User *pUser, DWORD dwSector );
VOID RemoveUser( User *pUser );
private:
FieldInfo *m_pFieldInfo;
VIEWPORT_MAP m_mapZone;
CMemoryPoolFactory<ViewPort> *m_pZonePool;
};
// 捞眶 掘阑 锭 荤侩
typedef std::map<DWORD, ChatField*> FIELDINFO_MAP;
typedef FIELDINFO_MAP::iterator FIELDINFO_MAP_ITER;
typedef std::pair<DWORD, ChatField*> FIELDINFO_MAP_PAIR;
// 傈眉 盲泼 鞘靛甫 包府窍绰 概聪历
class ViewPortManager// : public util::Singleton<ViewPortManager>
{
public:
ViewPortManager(void);
~ViewPortManager(void);
VOID Init();
BOOL TestLoadMap();
VOID Release();
BOOL AddUser(User *pUser, DWORD dwField, DWORD dwSector); // 贸澜 甸绢坷绰 蜡历
BOOL MoveUser(User *pUser, DWORD dwField, DWORD dwSector); // 冀磐 肚绰 鞘靛 捞悼
VOID RemoveUser(User *pUser); // 轰器飘 裹困俊辑 唱皑
BOOL SendViewPort(User *pUser, BYTE *pMsg, WORD wSize); // 轰器飘 救俊 皋矫瘤 傈崔
BOOL SendToAll( DWORD dwFieldCode, BYTE *pMsg, WORD wSize ); // 秦寸 甘 傈眉俊 傈价
// HINSTANCE m_hDll3DTerrain; // DLL Instance
// FUNC_ContactTerrain m_fnContactTerrain; // 甘 沥焊 楷搬 function
private:
FIELDINFO_MAP m_mapChatField;
CMemoryPoolFactory<ChatField> *m_pChatFieldPool;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -