151 lines
3.8 KiB
C++
151 lines
3.8 KiB
C++
#ifndef _CGameUserManager_H_
|
|
#define _CGameUserManager_H_
|
|
|
|
#include <vector>
|
|
|
|
#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<CClientUserItem *> 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 |