|
- #ifndef GLOBAL_USER_MANAGER_HEAD_FILE
- #define GLOBAL_USER_MANAGER_HEAD_FILE
-
- #pragma once
-
- #include "Stdafx.h"
- #include "AfxTempl.h"
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //类说明
- class CGlobalUserItem;
- class CGlobalPlazaItem;
- class CGlobalServerItem;
- class CAttemperEngineSink;
-
- //数组定义
- typedef CWHArray<CGlobalUserItem *> CGlobalUserItemArray;
- typedef CWHArray<CGlobalPlazaItem *> CGlobalPlazaItemArray;
- typedef CWHArray<CGlobalServerItem *> CGlobalServerItemArray;
-
- //索引定义
- typedef CMap<DWORD, DWORD, CGlobalUserItem *, CGlobalUserItem *> CMapUserID;
- typedef CMap<DWORD, DWORD, CGlobalUserItem *, CGlobalUserItem *> CMapGameID;
- typedef CMap<WORD, WORD, CGlobalPlazaItem *, CGlobalPlazaItem *> CMapPlazaID;
- typedef CMap<WORD, WORD, CGlobalServerItem *, CGlobalServerItem *> CMapServerID;
- typedef CMap<DWORD, DWORD, JN_GR_RoomListGroup, JN_GR_RoomListGroup> CMapRoomList;
- typedef CMap<DWORD, DWORD, JN_GR_RoomListBig, JN_GR_RoomListBig> CPrivateRoomList;
-
- //////////////////////////////////////////////////////////////////////////////////
- //结构定义
-
- //用户信息
- struct tagGlobalUserInfo
- {
- //用户信息
- DWORD dwUserID; //用户标识
- DWORD dwGameID; //游戏标识
- //TCHAR szNickName[LEN_NICKNAME]; //用户昵称
- //辅助信息
- BYTE cbGender; //用户性别
- BYTE cbMemberOrder; //会员等级
- BYTE cbMasterOrder; //管理等级
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //用户子项
- class CGlobalUserItem
- {
- //友元定义
- friend class CGlobalInfoManager;
-
- //用户属性
- public:
- DWORD m_dwUserID; //用户标识
- DWORD m_dwGameID; //游戏标识
- //TCHAR m_szNickName[LEN_NICKNAME]; //用户昵称
- bool IsPlaying; //是否在桌子里打牌
- //辅助信息
- public:
- BYTE m_cbGender; //用户性别
- BYTE m_cbMemberOrder; //会员等级
- BYTE m_cbMasterOrder; //管理等级
-
- //房间信息
- public:
- CGlobalServerItemArray m_GlobalServerItemArray; //游戏服务数组
- WORD m_ServerID; //最后登录的服务器
-
- //链表属性
- protected:
- CGlobalUserItem * m_pNextUserItemPtr; //对象指针
-
- //函数定义
- protected:
- //构造函数
- CGlobalUserItem();
- //析构函数
- virtual ~CGlobalUserItem();
-
- //功能函数
- public:
- //用户标识
- DWORD GetUserID() { return m_dwUserID; }
- //游戏标识
- DWORD GetGameID() { return m_dwGameID; }
- //用户昵称
- //LPCTSTR GetNickName() { return m_szNickName; }
-
- //用户信息
- public:
- //用户性别
- BYTE GetGender() { return m_cbGender; }
- //会员等级
- BYTE GetMemberOrder() { return m_cbMemberOrder; }
- //会员等级
- BYTE GetMasterOrder() { return m_cbMasterOrder; }
-
- //其他信息
- public:
- //枚举服务器
- CGlobalServerItem * EnumServerItem(WORD wIndex);
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //广场子项
- class CGlobalPlazaItem
- {
- //友元定义
- friend class CGlobalInfoManager;
-
- //变量定义
- public:
- WORD m_wIndex; //绑定索引
- tagGamePlaza m_GamePlaza; //游戏广场
- ///[---add by yd
- WORD GetPlazaServerID() { return m_GamePlaza.wServerID; }
- ///---]
- //索引变量
- public:
- CMapUserID m_MapUserID; //用户索引
-
- //链表属性
- protected:
- CGlobalPlazaItem * m_pNextPlazaItemPtr; //对象指针
-
- //函数定义
- protected:
- //构造函数
- CGlobalPlazaItem();
- //析构函数
- virtual ~CGlobalPlazaItem();
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //房间子项
- class CGlobalServerItem
- {
- //友元定义
- friend class CGlobalInfoManager;
-
- //变量定义
- public:
- WORD m_wIndex; //绑定索引
- tagGameServer m_GameServer; //游戏房间
- tagGameMatch m_GameMatch; //游戏比赛
-
- //索引变量
- public:
- CMapUserID m_MapUserID; //用户索引
-
- //链表属性
- protected:
- CGlobalServerItem * m_pNextServerItemPtr; //对象指针
-
- //函数定义
- protected:
- //构造函数
- CGlobalServerItem();
- //析构函数
- virtual ~CGlobalServerItem();
-
- //功能函数
- public:
- //绑定索引
- WORD GetIndex() { return m_wIndex; }
- //获取类型
- WORD GetKindID() { return m_GameServer.wKindID; }
- //获取房间
- WORD GetServerID() { return m_GameServer.wServerID; }
- //用户数目
- DWORD GetUserItemCount() { return (DWORD)m_MapUserID.GetCount(); }
- //比赛房间
- bool IsMatchServer() { return (m_GameMatch.wServerID == m_GameServer.wServerID) && m_GameMatch.dwMatchID != 0; }
- //查找函数
- public:
- //寻找用户
- CGlobalUserItem * SearchUserItem(DWORD dwUserID);
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //全局信息
- class CGlobalInfoManager
- {
- //索引变量
- protected:
- CMapUserID m_MapUserID; //用户标识
- CMapPlazaID m_MapPlazaID; //登陆服务器标识
- CMapServerID m_MapServerID; //中心服务器标识
- CMapRoomList m_RoomList; //私人房间列表 以用户为KEY
- CPrivateRoomList m_PrivateRoom; //以房间号为标识
-
- //辅助索引
- protected:
- CMapGameID m_MapGameID; //标识索引
- /// CMapStringToPtr m_MapNickName; //昵称索引
-
- //存储变量
- protected:
- CGlobalUserItem * m_pGlobalUserItem; //用户存储
- CGlobalPlazaItem * m_pGlobalPlazaItem; //广场存储
- CGlobalServerItem * m_pGlobalServerItem; //房间存储
-
- //框架
- public:
- CAttemperEngineSink* m_pCAttemperEngineSink; //框架
- //函数定义
- public:
- //构造函数
- CGlobalInfoManager();
- //析构函数
- virtual ~CGlobalInfoManager();
-
- //管理函数
- public:
- //重置数据
- VOID ResetData();
- //用户数目
- DWORD GetUserItemCount() { return (DWORD)m_MapUserID.GetCount(); }
- //大厅数目
- DWORD GetPlazaItemCount() { return (DWORD)m_MapPlazaID.GetCount(); }
- //房间数目
- DWORD GetServerItemCount() { return (DWORD)m_MapServerID.GetCount(); }
-
- //用户管理
- public:
- //删除用户
- bool DeleteUserItem(DWORD dwUserID, WORD wServerID);
- //删除用户
- bool DeleteUserItem(DWORD dwUserID);
- //激活用户
- int ActiveUserItem(tagGlobalUserInfo & GlobalUserInfo, WORD wServerID);
-
- //广场管理
- public:
- //删除广场
- bool DeletePlazaItem(WORD wPlazaID);
- ///[---add by yd 通过serverID删除
- bool DeletePlazaItemByServerID(WORD wServerID);
- ///---]
- //激活广场
- bool ActivePlazaItem(WORD wBindIndex, tagGamePlaza & GamePlaza);
-
- //房间管理
- public:
- //删除房间
- bool DeleteServerItem(WORD wServerID);
- //激活房间
- bool ActiveServerItem(WORD wBindIndex, tagGameServer & GameServer);
-
- //服务查找
- public:
- //寻找广场
- CGlobalPlazaItem * SearchPlazaItem(WORD wPlazaID);
-
- ///[---add by yd
- //获取房间
- CGlobalPlazaItem * SearchPlazaItemByServerID(WORD wServerID);
- ///---]
-
- //寻找房间
- CGlobalServerItem * SearchServerItem(WORD wServerID);
- //设置框架
- void SetFromP(CAttemperEngineSink* pCAttemperEngineSink) { m_pCAttemperEngineSink = pCAttemperEngineSink; }
- //用户查找
- public:
- //寻找用户
- CGlobalUserItem * SearchUserItemByUserID(DWORD dwUserID);
- //寻找用户
- CGlobalUserItem * SearchUserItemByGameID(DWORD dwGameID);
- //寻找用户
- // CGlobalUserItem * SearchUserItemByNickName(LPCTSTR pszNickName);
-
- //枚举函数
- public:
- //枚举用户
- CGlobalUserItem * EnumUserItem(POSITION & Position);
- //枚举广场
- CGlobalPlazaItem * EnumPlazaItem(POSITION & Position);
- //枚举房间
- CGlobalServerItem * EnumServerItem(POSITION & Position);
-
- //创建函数
- private:
- //创建用户
- CGlobalUserItem * CreateGlobalUserItem();
- //创建广场
- CGlobalPlazaItem * CreateGlobalPlazaItem();
- //创建房间
- CGlobalServerItem * CreateGlobalServerItem();
-
- //释放函数
- private:
- //释放用户
- bool FreeGlobalUserItem(CGlobalUserItem * pGlobalUserItem);
- //释放广场
- bool FreeGlobalPlazaItem(CGlobalPlazaItem * pGlobalPlazaItem);
- //释放房间
- bool FreeGlobalServerItem(CGlobalServerItem * pGlobalServerItem);
- //私人房间列表
- public:
- //获取用户创建的房间MAP
- CMapRoomList* GetRoomData(){ return &m_RoomList; }
- //以房间号为标识MAP
- CPrivateRoomList* GetPrivateRoom(){ return &m_PrivateRoom; }
- CMapServerID* GetMapServerID(){ return &m_MapServerID; }
- CMapUserID* GetMapUserID(){ return &m_MapUserID; }
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- #endif
|