AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
AuctionEntry Struct Reference

#include "AuctionHouseMgr.h"

Public Member Functions

AuctionHouseId GetHouseId () const
 
AuctionHouseFaction GetFactionId () const
 
uint32 GetAuctionCut () const
 
uint32 GetAuctionOutBid () const
 
void DeleteFromDB (CharacterDatabaseTransaction trans) const
 
void SaveToDB (CharacterDatabaseTransaction trans) const
 
bool LoadFromDB (Field *fields)
 
std::string BuildAuctionMailSubject (MailAuctionAnswers response) const
 

Static Public Member Functions

static uint32 CalculateAuctionOutBid (uint32 bid)
 the sum of outbid is (1% from current bid)*5, if bid is very small, it is 1c
 
static std::string BuildAuctionMailBody (ObjectGuid guid, uint32 bid, uint32 buyout, uint32 deposit=0, uint32 cut=0, uint32 moneyDelay=0, uint32 eta=0)
 

Public Attributes

uint32 Id
 
AuctionHouseId houseId
 
ObjectGuid item_guid
 
uint32 item_template
 
uint32 itemCount
 
ObjectGuid owner
 
uint32 startbid
 
uint32 bid
 
uint32 buyout
 
time_t expire_time
 
ObjectGuid bidder
 
uint32 deposit
 
AuctionHouseEntry const * auctionHouseEntry
 

Detailed Description

Member Function Documentation

◆ BuildAuctionMailBody()

std::string AuctionEntry::BuildAuctionMailBody ( ObjectGuid  guid,
uint32  bid,
uint32  buyout,
uint32  deposit = 0,
uint32  cut = 0,
uint32  moneyDelay = 0,
uint32  eta = 0 
)
static
647{
648 std::ostringstream strm;
649 strm.width(16);
650 strm << std::right << std::hex << guid.GetRawValue();
651 strm << std::dec << ':' << bid << ':' << buyout;
652 strm << ':' << deposit << ':' << cut;
653 strm << ':' << moneyDelay << ':' << eta;
654 return strm.str();
655}
uint64 GetRawValue() const
Definition ObjectGuid.h:142
uint32 bid
Definition AuctionHouseMgr.h:105
uint32 buyout
Definition AuctionHouseMgr.h:106
uint32 deposit
Definition AuctionHouseMgr.h:109

References bid, buyout, deposit, and ObjectGuid::GetRawValue().

Referenced by WorldSession::HandleAuctionRemoveItem(), AuctionHouseMgr::SendAuctionCancelledToBidderMail(), AuctionHouseMgr::SendAuctionExpiredMail(), AuctionHouseMgr::SendAuctionOutbiddedMail(), AuctionHouseMgr::SendAuctionSalePendingMail(), AuctionHouseMgr::SendAuctionSuccessfulMail(), and AuctionHouseMgr::SendAuctionWonMail().

◆ BuildAuctionMailSubject()

std::string AuctionEntry::BuildAuctionMailSubject ( MailAuctionAnswers  response) const
640{
641 std::ostringstream strm;
642 strm << item_template << ":0:" << response << ':' << Id << ':' << itemCount;
643 return strm.str();
644}
uint32 Id
Definition AuctionHouseMgr.h:98
uint32 itemCount
Definition AuctionHouseMgr.h:102
uint32 item_template
Definition AuctionHouseMgr.h:101

References Id, item_template, and itemCount.

Referenced by WorldSession::HandleAuctionRemoveItem(), AuctionHouseMgr::SendAuctionCancelledToBidderMail(), AuctionHouseMgr::SendAuctionExpiredMail(), AuctionHouseMgr::SendAuctionOutbiddedMail(), AuctionHouseMgr::SendAuctionSalePendingMail(), AuctionHouseMgr::SendAuctionSuccessfulMail(), and AuctionHouseMgr::SendAuctionWonMail().

◆ CalculateAuctionOutBid()

uint32 AuctionEntry::CalculateAuctionOutBid ( uint32  bid)
static

the sum of outbid is (1% from current bid)*5, if bid is very small, it is 1c

579{
580 uint32 outbid = CalculatePct(bid, 5);
581 return outbid ? outbid : 1;
582}
std::uint32_t uint32
Definition Define.h:107
T CalculatePct(T base, U pct)
Definition Util.h:52

References bid, and CalculatePct().

Referenced by SearchableAuctionEntry::BuildAuctionInfo(), GetAuctionOutBid(), WorldSession::HandleAuctionPlaceBid(), and AuctionHouseMgr::SendAuctionOutbiddedMail().

◆ DeleteFromDB()

void AuctionEntry::DeleteFromDB ( CharacterDatabaseTransaction  trans) const
585{
587 stmt->SetData(0, Id);
588 trans->Append(stmt);
589}
@ CHAR_DEL_AUCTION
Definition CharacterDatabase.h:106
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Definition DatabaseEnv.cpp:21
Acore::Types::is_default< T > SetData(const uint8 index, T value)
Definition PreparedStatement.h:77
Definition PreparedStatement.h:157

References CHAR_DEL_AUCTION, CharacterDatabase, Id, and PreparedStatementBase::SetData().

Referenced by WorldSession::HandleAuctionPlaceBid(), WorldSession::HandleAuctionRemoveItem(), AuctionHouseMgr::LoadAuctions(), and AuctionHouseObject::Update().

◆ GetAuctionCut()

uint32 AuctionEntry::GetAuctionCut ( ) const
567{
569 return std::max(cut, 0);
570}
std::int32_t int32
Definition Define.h:103
@ RATE_AUCTION_CUT
Definition WorldConfig.h:476
#define sWorld
Definition World.h:317
AuctionHouseEntry const * auctionHouseEntry
Definition AuctionHouseMgr.h:110
uint32 cutPercent
Definition DBCStructure.h:578

References auctionHouseEntry, bid, CalculatePct(), AuctionHouseEntry::cutPercent, RATE_AUCTION_CUT, and sWorld.

Referenced by WorldSession::HandleAuctionRemoveItem(), AuctionHouseMgr::SendAuctionOutbiddedMail(), AuctionHouseMgr::SendAuctionSalePendingMail(), and AuctionHouseMgr::SendAuctionSuccessfulMail().

◆ GetAuctionOutBid()

uint32 AuctionEntry::GetAuctionOutBid ( ) const
573{
575}
static uint32 CalculateAuctionOutBid(uint32 bid)
the sum of outbid is (1% from current bid)*5, if bid is very small, it is 1c
Definition AuctionHouseMgr.cpp:578

References bid, and CalculateAuctionOutBid().

◆ GetFactionId()

AuctionHouseFaction AuctionEntry::GetFactionId ( ) const
562{
564}
static AuctionHouseFaction GetAuctionHouseFactionFromHouseId(AuctionHouseId ahHouseId)
Definition AuctionHouseMgr.cpp:456
AuctionHouseId houseId
Definition AuctionHouseMgr.h:99

References AuctionHouseMgr::GetAuctionHouseFactionFromHouseId(), and houseId.

Referenced by AuctionHouseSearcher::AddAuction(), AuctionHouseSearcher::RemoveAuction(), and AuctionHouseSearcher::UpdateBid().

◆ GetHouseId()

AuctionHouseId AuctionEntry::GetHouseId ( ) const
inline

◆ LoadFromDB()

bool AuctionEntry::LoadFromDB ( Field fields)
608{
609 Id = fields[0].Get<uint32>();
610 houseId = AuctionHouseId(fields[1].Get<uint8>());
611 item_guid = ObjectGuid::Create<HighGuid::Item>(fields[2].Get<uint32>());
612 item_template = fields[3].Get<uint32>();
613 itemCount = fields[4].Get<uint32>();
614 owner = ObjectGuid::Create<HighGuid::Player>(fields[5].Get<uint32>());
615 buyout = fields[6].Get<uint32>();
616 expire_time = fields[7].Get<uint32>();
617 bidder = ObjectGuid::Create<HighGuid::Player>(fields[8].Get<uint32>());
618 bid = fields[9].Get<uint32>();
619 startbid = fields[10].Get<uint32>();
620 deposit = fields[11].Get<uint32>();
621
624 {
625 LOG_ERROR("auctionHouse", "Auction {} has invalid house id {}", Id, houseId);
626 return false;
627 }
628
629 // check if sold item exists for guid
630 // and item_template in fact (GetAItem will fail if problematic in result check in AuctionHouseMgr::LoadAuctionItems)
631 if (!sAuctionMgr->GetAItem(item_guid))
632 {
633 LOG_ERROR("auctionHouse", "Auction {} has not a existing item : {}", Id, item_guid.ToString());
634 return false;
635 }
636 return true;
637}
AuctionHouseId
Definition AuctionHouseMgr.h:88
#define sAuctionMgr
Definition AuctionHouseMgr.h:224
#define LOG_ERROR(filterType__,...)
Definition Log.h:145
static AuctionHouseEntry const * GetAuctionHouseEntryFromHouse(AuctionHouseId ahHouseId)
Definition AuctionHouseMgr.cpp:487
std::enable_if_t< std::is_arithmetic_v< T >, T > Get() const
Definition Field.h:112
std::string ToString() const
Definition ObjectGuid.cpp:47
ObjectGuid bidder
Definition AuctionHouseMgr.h:108
time_t expire_time
Definition AuctionHouseMgr.h:107
ObjectGuid item_guid
Definition AuctionHouseMgr.h:100
uint32 startbid
Definition AuctionHouseMgr.h:104
ObjectGuid owner
Definition AuctionHouseMgr.h:103

References auctionHouseEntry, bid, bidder, buyout, deposit, expire_time, Field::Get(), AuctionHouseMgr::GetAuctionHouseEntryFromHouse(), houseId, Id, item_guid, item_template, itemCount, LOG_ERROR, owner, sAuctionMgr, startbid, and ObjectGuid::ToString().

Referenced by AuctionHouseMgr::LoadAuctions().

◆ SaveToDB()

void AuctionEntry::SaveToDB ( CharacterDatabaseTransaction  trans) const
592{
594 stmt->SetData(0, Id);
595 stmt->SetData(1, houseId);
596 stmt->SetData(2, item_guid.GetCounter());
597 stmt->SetData(3, owner.GetCounter());
598 stmt->SetData (4, buyout);
599 stmt->SetData(5, uint32(expire_time));
600 stmt->SetData(6, bidder.GetCounter());
601 stmt->SetData (7, bid);
602 stmt->SetData (8, startbid);
603 stmt->SetData (9, deposit);
604 trans->Append(stmt);
605}
@ CHAR_INS_AUCTION
Definition CharacterDatabase.h:105
LowType GetCounter() const
Definition ObjectGuid.h:145

References bid, bidder, buyout, CHAR_INS_AUCTION, CharacterDatabase, deposit, expire_time, ObjectGuid::GetCounter(), houseId, Id, item_guid, owner, PreparedStatementBase::SetData(), and startbid.

Referenced by WorldSession::HandleAuctionSellItem().

Member Data Documentation

◆ auctionHouseEntry

AuctionHouseEntry const* AuctionEntry::auctionHouseEntry

◆ bid

◆ bidder

◆ buyout

◆ deposit

◆ expire_time

◆ houseId

◆ Id

◆ item_guid

◆ item_template

◆ itemCount

◆ owner

◆ startbid


The documentation for this struct was generated from the following files: