Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
BlackMarketMgr.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef BLACK_MARKET_H
7#define BLACK_MARKET_H
8
9#include "Common.h"
10#include "DatabaseEnv.h"
11#include "DBCStructure.h"
12#include "Platform/Singleton.h"
13#include "World.h"
14
15class Item;
16class Player;
17class WorldPacket;
18
24
25#define BLACKMARKET_AUCTION_HOUSE 7
26
39
41{
42public:
43 BlackMarketAuction(uint32 auctionId, uint32 templateId, uint32 startTime, uint32 currentBidder, uint64 currentBid,
44 uint64 minIncrement, uint32 numBids) :
45 _auctionId(auctionId), _templateId(templateId), _startTime(startTime), _currentBidder(currentBidder), _currentBid(currentBid),
46 _minIncrement(minIncrement), _numBids(numBids), _template(NULL) { }
47
50
51 void SetAuctionId(uint32 auctionId) { _auctionId = auctionId; }
52 uint32 GetAuctionId() const { return _auctionId; }
53
54 void SetTemplateId(uint32 templateId) { _templateId = templateId; }
55 uint32 GetTemplateId() const { return _templateId; }
56
57 void SetStartTime(uint32 startTime) { _startTime = startTime; }
58 uint32 GetStartTime() const { return _startTime; }
59
60 void SetCurrentBidder(uint32 currentBidder) { _currentBidder = currentBidder; }
62
63 void SetCurrentBid(uint64 currentBid) { _currentBid = currentBid; }
64 uint64 GetCurrentBid() const { return _currentBid; }
65
66 void SetMinIncrement(uint64 minIncrement) { _minIncrement = minIncrement; }
68
69 void SetNumBids(uint32 numBids) { _numBids = numBids; }
70 uint32 GetNumBids() const { return _numBids; }
71
73
74 void DeleteFromDB(SQLTransaction& trans);
75 void SaveToDB(SQLTransaction& trans);
76 bool LoadFromDB(Field* fields);
77 void UpdateToDB(SQLTransaction& trans);
78
81 bool IsActive() const { return (time(NULL) >= GetStartTime()); }
82 bool IsExpired() const { return GetEndTime() < time(NULL); }
83
85 std::string BuildAuctionMailBody(uint32 lowGuid);
86
87private:
96};
98typedef std::map<uint32, BlackMarketAuctionTemplate*> BMAuctionTemplateStore;
99typedef std::map<uint32, BlackMarketAuction*> BMAuctionStore;
100
102{
103 friend class Skyfire::Singleton<BlackMarketMgr, Skyfire::NullMutex>;
104
105private:
108
111
112public:
113 void Update();
114
117
118 BlackMarketAuctionTemplate* GetTemplate(uint32 templateId) const;
120 BMAuctionTemplateStore::iterator GetTemplatesBegin() { return _templates.begin(); }
121 BMAuctionTemplateStore::iterator GetTemplatesEnd() { return _templates.end(); }
122
123 BlackMarketAuction* GetAuction(uint32 auctionId) const;
124 uint32 GetAuctionCount() { return _auctions.size(); }
125 BMAuctionStore::iterator GetAuctionsBegin() { return _auctions.begin(); }
126 BMAuctionStore::iterator GetAuctionsEnd() { return _auctions.end(); }
127
129
130 void CreateAuctions(uint32 number, SQLTransaction& trans);
131 void UpdateAuction(BlackMarketAuction* auction, uint64 newPrice, uint64 requiredIncrement, Player* newBidder);
132
134
135 void SendAuctionWon(BlackMarketAuction* auction, SQLTransaction& trans);
137
139};
140
141#define sBlackMarketMgr Skyfire::Singleton<BlackMarketMgr, Skyfire::NullMutex>::instance()
142
143#endif
BMMailAuctionAnswers
std::map< uint32, BlackMarketAuction * > BMAuctionStore
std::map< uint32, BlackMarketAuctionTemplate * > BMAuctionTemplateStore
std::uint32_t uint32
Definition Define.h:77
std::uint64_t uint64
Definition Define.h:76
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
Definition Transaction.h:42
void SendAuctionWon(BlackMarketAuction *auction, SQLTransaction &trans)
void SendAuctionOutbidded(BlackMarketAuction *auction, SQLTransaction &trans)
BlackMarketAuction * GetAuction(uint32 auctionId) const
BMAuctionStore::iterator GetAuctionsEnd()
uint32 GetFreeAuctionId()
BMAuctionTemplateStore _templates
uint32 GetTemplatesCount()
void UpdateAuction(BlackMarketAuction *auction, uint64 newPrice, uint64 requiredIncrement, Player *newBidder)
BMAuctionStore _auctions
uint32 GetAuctionCount()
void CreateAuctions(uint32 number, SQLTransaction &trans)
BMAuctionTemplateStore::iterator GetTemplatesBegin()
void LoadBlackMarketAuctions()
void LoadBlackMarketTemplates()
BMAuctionStore::iterator GetAuctionsBegin()
void BuildBlackMarketRequestItemsResult(WorldPacket &data, uint32 guidLow)
BlackMarketAuctionTemplate * GetTemplate(uint32 templateId) const
BMAuctionTemplateStore::iterator GetTemplatesEnd()
Definition Field.h:16
Definition Item.h:202
#define sWorld
Definition World.h:910
@ CONFIG_BLACK_MARKET_OPEN
Definition World.h:166
void SetStartTime(uint32 startTime)
uint32 GetStartTime() const
void UpdateToDB(SQLTransaction &trans)
void SaveToDB(SQLTransaction &trans)
uint32 GetTemplateId() const
uint32 GetCurrentBidder() const
bool IsActive() const
uint32 GetEndTime() const
void SetCurrentBid(uint64 currentBid)
BlackMarketAuction(uint32 auctionId, uint32 templateId, uint32 startTime, uint32 currentBidder, uint64 currentBid, uint64 minIncrement, uint32 numBids)
BlackMarketAuctionTemplate * _template
uint32 GetNumBids() const
std::string BuildAuctionMailBody(uint32 lowGuid)
void SetNumBids(uint32 numBids)
uint64 GetCurrentBid() const
void SetCurrentBidder(uint32 currentBidder)
void SetTemplateId(uint32 templateId)
BlackMarketAuctionTemplate * GetTemplate() const
uint32 GetAuctionId() const
bool LoadFromDB(Field *fields)
bool IsExpired() const
void DeleteFromDB(SQLTransaction &trans)
void SetMinIncrement(uint64 minIncrement)
std::string BuildAuctionMailSubject(BMMailAuctionAnswers response)
uint64 GetMinIncrement() const
void SetAuctionId(uint32 auctionId)