80 lines
1.6 KiB
C++
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
|