Files
Sun1602/Server/GameServer/DominationMember.h
T
2022-10-26 12:25:11 +08:00

80 lines
1.6 KiB
C++

#pragma once
/*
占领战参与成员管理类
*/
#ifndef DOMINATION_MEMBER_H
#define DOMINATION_MEMBER_H
//_NA_20110406_CHANGE_RULE_FOR_DOMINATION_JOIN
typedef STLX_MULTIMAP<CHARGUID, DominationMemberInfo> MemberMap;
typedef MemberMap::iterator MemberMapIterator;
typedef MemberMap::const_iterator ConstMemberMapIterator;
class DominationMember
{
public:
DominationMember(MAPCODE map_code);
~DominationMember();
//本地地图代码
MAPCODE GetMapCode()const;
//成员信息加载相关的方法
bool IsLoaded()const;
void RequestData()const;
void SetInfo(const DominationMemberInfo* member_info, int data_count);
//获得相当于guild type的占领战成员的数量.
BYTE MemberCount(const bool guild_type)const;
BYTE MemberCount(const bool guild_type, const CHARGUID char_guid) const;
//成员节点访问方法
const DominationMemberInfo* FindMember(CHARGUID char_guid)const;
//创建成员列表
BYTE GetMemberList(DominationMemberInfo* OUT member_list, int max_count)const;
//成员额外删除方法
void MemberInsert(const DominationMemberInfo* member_info);
void MemberDelete(CHARGUID char_guid);
//清除成员映射
void ClearMember();
private:
//is_lad_data_
bool _IsLoadData()const;
void _IsLoadData(bool set_value);
private:
MAPCODE map_code_;
MemberMap member_map_;
bool is_load_data_;
};
inline bool
DominationMember::_IsLoadData()const
{
return is_load_data_;
}
inline void
DominationMember::_IsLoadData(bool set_value)
{
is_load_data_ = set_value;
}
inline bool
DominationMember::IsLoaded()const
{
return _IsLoadData();
}
inline MAPCODE
DominationMember::GetMapCode()const
{
return map_code_;
}
#endif//DOMINATION_MEMBER_H