183 lines
4.5 KiB
C++
183 lines
4.5 KiB
C++
#pragma once
|
|
/*
|
|
拥有占领前地区信息管理类、DominationAuction.
|
|
*/
|
|
|
|
#ifndef DOMINATION_AREA_H
|
|
#define DOMINATION_AREA_H
|
|
|
|
#ifdef _NA001385_20090924_DOMINATION
|
|
#include "DominationAuction.h"
|
|
#include "DominationMember.h"
|
|
|
|
class DominationArea
|
|
{
|
|
public:
|
|
DominationArea(MAPCODE map_code);
|
|
~DominationArea();
|
|
|
|
//占领战基本/拍卖信息加载状态确认
|
|
bool IsLoaded()const;
|
|
|
|
//Data Load请求
|
|
void DataLoad()const;
|
|
|
|
//占领战情报SET
|
|
void SetInfo(const DOMINATION_INFO& domination_info);
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
void SetInfo(const DOMINATION_INFO& domination_info, const eDOMINATION_EVENT_STATE domi_state);
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
//占领战信息Update
|
|
void UpdateInfo(const DOMINATION_INFO& domination_info);
|
|
|
|
//获取占领战基本信息
|
|
const DOMINATION_INFO& GetInfo()const;
|
|
|
|
//占领战基本信息访问
|
|
DOMINATION_INFO& GetInfo();
|
|
|
|
//本地地图代码
|
|
MAPCODE GetMapCode()const;
|
|
|
|
//屏障点交易标志值设置
|
|
void SetTransactionToDeffenseWall(bool set_value);
|
|
|
|
//是否可以增加障碍点?
|
|
bool CanIncreaseDeffenseWall()const;
|
|
|
|
//获取本地拍卖类实例
|
|
DominationAuction* GetAuction();
|
|
const DominationAuction* GetAuction()const;
|
|
|
|
const RC::eDOMINATION_RESULT CanJoinMember(const GUILDGUID guild_guid, const CHARGUID char_guid)const;
|
|
|
|
//_NA_20110406_CHANGE_RULE_FOR_DOMINATION_JOIN
|
|
//获取本地成员类实例
|
|
DominationMember* GetMember();
|
|
const DominationMember* GetMember()const;
|
|
|
|
//GUILDGUID 参与征服战争
|
|
bool IsDeffenseGuild(GUILDGUID guild_guid)const;
|
|
bool IsAttackGuild(GUILDGUID guild_guid)const;
|
|
bool IsApplyGuild(GUILDGUID guild_guid)const;
|
|
#ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION
|
|
//这是当前地图上以前占领的公会吗??
|
|
bool IsPrevInGuild(GUILDGUID guild_guid)const;
|
|
#endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION
|
|
|
|
//GUILDGUID对应的公会是否存在于职业或攻击公会中??
|
|
bool ExistGuild(GUILDGUID guild_guid)const;
|
|
|
|
//入职前地区信息变更(公会标志、公会名称、公会会长)
|
|
void ChangeGuildMark(GUILDGUID guild_guid, GUILDMARKIDX pattern_index, GUILDMARKIDX background_index);
|
|
void ChangeGuildName(GUILDGUID guild_guid, TCHAR* guild_name);
|
|
void ChangeGuildMaster(GUILDGUID guild_guid, TCHAR* master_name);
|
|
|
|
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
|
|
eDOMINATION_PROGRESS_STATE GetAreaProgressState() { return domination_info_.progress_state_; }
|
|
void ChangeAreaProgressState(const eDOMINATION_PROGRESS_STATE area_state);
|
|
#endif //_NA_006826_20130722_DOMINATION_RENEWAL
|
|
|
|
private:
|
|
//is_load_data_ 访问方法
|
|
bool _IsLoadData()const;
|
|
void _IsLoadData(bool set_value);
|
|
|
|
//占用前请求加载信息
|
|
void _RequestData()const;
|
|
|
|
//GUILDGUID 返回公会对应的公会(占领或攻击)信息的指针。
|
|
DOMINATION_BASIC_GUILD_INFO* _WhatGuild(GUILDGUID guild_guid);
|
|
|
|
private:
|
|
MAPCODE map_code_;
|
|
DOMINATION_INFO domination_info_;//占领战基本信息
|
|
bool transaction_increase_deffense_wall_; //与屏障更新相关的事务标志
|
|
bool is_load_data_;//占领战基本信息加载状态
|
|
DominationAuction auction_;//拍卖
|
|
//_NA_20110406_CHANGE_RULE_FOR_DOMINATION_JOIN
|
|
DominationMember member_;//占领战成员
|
|
#ifdef _NA_007128_20140326_MONDSCHIEN_DOMINATION
|
|
//DOMINATION INFO拥有太大(要从DBP开始考虑同步)
|
|
//该信息不需要存储在DB中,只在蒙特夏恩占领战时使用,因此在该类中作为成员
|
|
DOMINATION_BASIC_GUILD_INFO m_PrevInGuildInfo; //先前占领帮派信息
|
|
#endif //_NA_007128_20140326_MONDSCHIEN_DOMINATION
|
|
};
|
|
|
|
inline void
|
|
DominationArea::UpdateInfo(const DOMINATION_INFO& domination_info)
|
|
{
|
|
domination_info_ = domination_info;
|
|
}
|
|
|
|
inline const DOMINATION_INFO&
|
|
DominationArea::GetInfo() const
|
|
{
|
|
return domination_info_;
|
|
}
|
|
|
|
inline DOMINATION_INFO&
|
|
DominationArea::GetInfo()
|
|
{
|
|
return domination_info_;
|
|
}
|
|
|
|
inline void
|
|
DominationArea::SetTransactionToDeffenseWall(bool set_value)
|
|
{
|
|
transaction_increase_deffense_wall_ = set_value;
|
|
}
|
|
|
|
inline bool
|
|
DominationArea::_IsLoadData()const
|
|
{
|
|
return is_load_data_;
|
|
}
|
|
|
|
inline void
|
|
DominationArea::_IsLoadData(bool set_value)
|
|
{
|
|
is_load_data_ = set_value;
|
|
}
|
|
|
|
inline bool
|
|
DominationArea::IsLoaded()const
|
|
{
|
|
//_NA_20110406_CHANGE_RULE_FOR_DOMINATION_JOIN
|
|
return _IsLoadData() && auction_.IsLoaded() && member_.IsLoaded();
|
|
}
|
|
|
|
inline MAPCODE
|
|
DominationArea::GetMapCode()const
|
|
{
|
|
return map_code_;
|
|
}
|
|
|
|
inline DominationAuction*
|
|
DominationArea::GetAuction()
|
|
{
|
|
return &auction_;
|
|
}
|
|
|
|
inline const DominationAuction*
|
|
DominationArea::GetAuction()const
|
|
{
|
|
return &auction_;
|
|
}
|
|
|
|
//_NA_20110406_CHANGE_RULE_FOR_DOMINATION_JOIN
|
|
inline DominationMember*
|
|
DominationArea::GetMember()
|
|
{
|
|
return &member_;
|
|
}
|
|
|
|
inline const DominationMember*
|
|
DominationArea::GetMember()const
|
|
{
|
|
return &member_;
|
|
}
|
|
|
|
#endif//_NA001385_20090924_DOMINATION
|
|
#endif//DOMINATION_AREA_H
|