124 lines
2.8 KiB
C++
124 lines
2.8 KiB
C++
#pragma once
|
|
|
|
/*
|
|
占领前拍卖类:拍卖信息及拍卖处理器
|
|
*/
|
|
|
|
|
|
#ifndef DOMINATION_AUCTION_H
|
|
#define DOMINATION_AUCTION_H
|
|
|
|
#ifdef _NA001385_20090924_DOMINATION
|
|
|
|
#include "SystemMemo.h"
|
|
|
|
typedef STLX_MAP<GUILDGUID, DominationAuctionInfo> AuctionInfoMap;
|
|
typedef AuctionInfoMap::iterator AuctionInfoIterator;
|
|
typedef AuctionInfoMap::const_iterator ConstAuctionInfoIterator;
|
|
|
|
class DominationAuction
|
|
{
|
|
public:
|
|
DominationAuction(MAPCODE map_code);
|
|
~DominationAuction();
|
|
|
|
//拍卖信息设置
|
|
void SetInfo(const DominationAuctionInfo* auction_info, int data_count);
|
|
|
|
//获取拍卖区域地图代码
|
|
MAPCODE GetMapCode()const;
|
|
|
|
//拍卖信息是否已加载
|
|
bool IsLoaded()const;
|
|
|
|
//请求拍卖信息
|
|
void RequestData()const;
|
|
|
|
//拍卖数据输入:分别返回新出价和重复出价。
|
|
eDOMINATION_TENDER_TYPE EntryAuction(const DominationAuctionInfo& auction_info);
|
|
|
|
//公会拍卖金额
|
|
MONEY GetTenderCost(GUILDGUID guild_guid)const;
|
|
|
|
//该地区最高拍卖价
|
|
MONEY GetBestTenderCost()const;
|
|
|
|
//选择公会
|
|
const DominationAuctionInfo* SelectAttackGuild()const;
|
|
|
|
//请求拍卖清单
|
|
BYTE GetAuctionList(DOMINATION_ACTION_INFO* OUT auction_list, BYTE max_count)const;
|
|
|
|
//删除拍卖数据
|
|
void DeleteAuctionInfo(GUILDGUID guild_guid);
|
|
|
|
//拍卖数据初始化
|
|
void ClearAuctionInfo();
|
|
|
|
//发送拍卖奖励备忘录
|
|
void SendRewardMemo(SLOTCODE item_code, eSYSTEM_MEMO_TYPE memo_type)const;
|
|
|
|
//拍卖次数
|
|
BYTE CountAuctionList()const;
|
|
|
|
//GUILDGUID的公会是否出价:返回true(出价历史存在)/false(出价历史不存在)
|
|
bool IsApplyToGuild(GUILDGUID guild_guid)const;
|
|
|
|
private:
|
|
//输入拍卖信息
|
|
void _InsertData();
|
|
|
|
//is_load_auction_info_
|
|
bool _IsLoadData()const;
|
|
void _IsLoadData(bool set_value);
|
|
|
|
//拍卖数据控制(输入/更改)
|
|
void _InsertData(const DominationAuctionInfo& auction_info);
|
|
void _ChangeData(const DominationAuctionInfo& auction_info);
|
|
|
|
//查找/访问拍卖信息
|
|
const DominationAuctionInfo* _GetInfo(GUILDGUID guild_guid)const;
|
|
DominationAuctionInfo* _AccessInfo(GUILDGUID guild_guid);
|
|
|
|
//比较拍卖出价(如果 true:first 大于或等于,false:first 小于)
|
|
bool _Comp(const DominationAuctionInfo* first_data,
|
|
const DominationAuctionInfo* second_data)const;
|
|
|
|
//查找最高出价金额数据
|
|
const DominationAuctionInfo* _FindBestCostGuild()const;
|
|
|
|
//根据投标项目数量随机选择
|
|
const DominationAuctionInfo* _ProbabilityFindGuild()const;
|
|
|
|
private:
|
|
MAPCODE map_code_;//拍卖区地图代码
|
|
AuctionInfoMap auction_info_map_;//拍卖地图
|
|
bool is_load_data_;//已加载占用前拍卖信息
|
|
SystemMemo system_memo_;//系统说明
|
|
};
|
|
|
|
inline bool
|
|
DominationAuction::_IsLoadData()const
|
|
{
|
|
return is_load_data_;
|
|
}
|
|
|
|
inline void
|
|
DominationAuction::_IsLoadData(bool set_value)
|
|
{
|
|
is_load_data_ = set_value;
|
|
}
|
|
|
|
inline MAPCODE
|
|
DominationAuction::GetMapCode()const
|
|
{
|
|
return map_code_;
|
|
}
|
|
|
|
inline bool
|
|
DominationAuction::IsLoaded()const
|
|
{
|
|
return _IsLoadData();
|
|
}
|
|
#endif//_NA001385_20090924_DOMINATION
|
|
#endif//DOMINATION_AUCTION_H
|