#ifndef _CGameUserManager_H_ #define _CGameUserManager_H_ #include #include "IUserManagerSink.h" #include "IClientUserItem.h" #include "PlatformHeader.h" ////////////////////////////////////////////////////////////////////////////////// //用户信息 class CClientUserItem : public IClientUserItem { //友元定义 friend class CGameUserManager; //属性变量 protected: tagUserInfo m_UserInfo; //用户信息 //函数定义 public: //构造函数 CClientUserItem(); //析构函数 virtual ~CClientUserItem(); //属性接口 public: //用户信息 virtual tagUserInfo * GetUserInfo() { return &m_UserInfo; } //头像信息 public: //头像索引 virtual uint16 GetFaceID() { return m_UserInfo.wFaceID; } //自定索引 virtual uint32 GetCustomID() { return m_UserInfo.dwCustomID; } //属性信息 public: //用户性别 virtual uint8 GetGender() { return m_UserInfo.cbGender; } //用户标识 virtual uint32 GetUserID() { return m_UserInfo.dwUserID; } //游戏标识 virtual uint32 GetGameID() { return m_UserInfo.dwGameID; } //用户昵称 virtual const char* GetNickName() { return m_UserInfo.szNickName; } //社团名称 virtual const char* GetGroupName() { return m_UserInfo.szGroupName; } //用户状态 public: //用户桌子 virtual uint16 GetTableID() { return m_UserInfo.wTableID; } //用户椅子 virtual uint16 GetChairID() { return m_UserInfo.wChairID; } //用户状态 virtual uint8 GetUserStatus() { return m_UserInfo.cbUserStatus; } //积分信息 public: //积分数值 virtual SCORE GetUserScore() { return m_UserInfo.lScore; } //设置积分 virtual SCORE SetUserScore(SCORE score){ m_UserInfo.lScore += score; if (m_UserInfo.lScore < 0) { m_UserInfo.lScore = 0; } return m_UserInfo.lScore; } //银行数值 virtual SCORE GetUserInsure() { return m_UserInfo.lInsureScore; } virtual SCORE GetUserGrade(){ return m_UserInfo.lGrade; } }; //用户数组 typedef std::vector ClientUserItemVector; ////////////////////////////////////////////////////////////////////////////////// //用户管理 class CGameUserManager { //变量定义 protected: ClientUserItemVector m_UserItemActive; //活动数组 ClientUserItemVector m_PoolItem; //删除数组 //组件接口 protected: IUserManagerSink * m_pIUserManagerSink; //通知接口 //函数定义 public: //构造函数 CGameUserManager(); //析构函数 virtual ~CGameUserManager(); void addPool(CClientUserItem * pIClientUserItem); CClientUserItem * getPool(); //配置接口 public: //设置接口 virtual bool SetUserManagerSink(IUserManagerSink * pIUserManagerSink); //管理接口 public: //重置用户 virtual bool ResetUserItem(); //删除用户 virtual bool DeleteUserItem(IClientUserItem * pIClientUserItem); //增加用户 virtual IClientUserItem * ActiveUserItem(const tagUserInfo & UserInfo, const tagCustomFaceInfo & CustomFaceInfo); //更新接口 public: //更新积分 virtual bool UpdateUserItemScore(IClientUserItem * pIClientUserItem, const tagUserScore * pUserScore); //更新状态 virtual bool UpdateUserItemStatus(IClientUserItem * pIClientUserItem, const tagUserStatus * pUserStatus); //更新属性 virtual bool UpdateUserItemAttrib(IClientUserItem * pIClientUserItem, const tagUserAttrib * pUserAttrib); //查找接口 public: //枚举用户 virtual IClientUserItem * EnumUserItem(uint16 wEnumIndex); //查找用户 virtual IClientUserItem * SearchUserByUserID(uint32 dwUserID); //查找用户 virtual IClientUserItem * SearchUserByGameID(uint32 dwGameID); //查找用户 virtual IClientUserItem * SearchUserByNickName(const char* pszNickName); public: //获得人数 virtual uint32 GetActiveUserCount(){return (uint32)m_UserItemActive.size();} }; ////////////////////////////////////////////////////////////////////////////////// #endif