#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