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
634{
635 std::ostringstream strm;
636 strm.width(16);
637 strm << std::right << std::hex << guid.GetRawValue();
638 strm << std::dec << ':' << bid << ':' << buyout;
639 strm << ':' << deposit << ':' << cut;
640 strm << ':' << moneyDelay << ':' << eta;
641 return strm.str();
642}
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
627{
628 std::ostringstream strm;
629 strm << item_template << ":0:" << response << ':' << Id << ':' << itemCount;
630 return strm.str();
631}
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

566{
567 uint32 outbid = CalculatePct(bid, 5);
568 return outbid ? outbid : 1;
569}
std::uint32_t uint32
Definition Define.h:107
T CalculatePct(T base, U pct)
Definition Util.h:61

References bid, and CalculatePct().

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

◆ DeleteFromDB()

void AuctionEntry::DeleteFromDB ( CharacterDatabaseTransaction  trans) const
572{
574 stmt->SetData(0, Id);
575 trans->Append(stmt);
576}
@ 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
554{
556 return std::max(cut, 0);
557}
std::int32_t int32
Definition Define.h:103
@ RATE_AUCTION_CUT
Definition IWorld.h:513
#define sWorld
Definition World.h:363
AuctionHouseEntry const * auctionHouseEntry
Definition AuctionHouseMgr.h:110
uint32 cutPercent
Definition DBCStructure.h:577

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
560{
562}
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:565

References bid, and CalculateAuctionOutBid().

◆ GetFactionId()

AuctionHouseFaction AuctionEntry::GetFactionId ( ) const
549{
551}
static AuctionHouseFaction GetAuctionHouseFactionFromHouseId(AuctionHouseId ahHouseId)
Definition AuctionHouseMgr.cpp:443
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)
595{
596 Id = fields[0].Get<uint32>();
597 houseId = AuctionHouseId(fields[1].Get<uint8>());
598 item_guid = ObjectGuid::Create<HighGuid::Item>(fields[2].Get<uint32>());
599 item_template = fields[3].Get<uint32>();
600 itemCount = fields[4].Get<uint32>();
601 owner = ObjectGuid::Create<HighGuid::Player>(fields[5].Get<uint32>());
602 buyout = fields[6].Get<uint32>();
603 expire_time = fields[7].Get<uint32>();
604 bidder = ObjectGuid::Create<HighGuid::Player>(fields[8].Get<uint32>());
605 bid = fields[9].Get<uint32>();
606 startbid = fields[10].Get<uint32>();
607 deposit = fields[11].Get<uint32>();
608
611 {
612 LOG_ERROR("auctionHouse", "Auction {} has invalid house id {}", Id, houseId);
613 return false;
614 }
615
616 // check if sold item exists for guid
617 // and item_template in fact (GetAItem will fail if problematic in result check in AuctionHouseMgr::LoadAuctionItems)
618 if (!sAuctionMgr->GetAItem(item_guid))
619 {
620 LOG_ERROR("auctionHouse", "Auction {} has not a existing item : {}", Id, item_guid.ToString());
621 return false;
622 }
623 return true;
624}
AuctionHouseId
Definition AuctionHouseMgr.h:88
#define sAuctionMgr
Definition AuctionHouseMgr.h:224
#define LOG_ERROR(filterType__,...)
Definition Log.h:157
static AuctionHouseEntry const * GetAuctionHouseEntryFromHouse(AuctionHouseId ahHouseId)
Definition AuctionHouseMgr.cpp:474
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
579{
581 stmt->SetData(0, Id);
582 stmt->SetData(1, houseId);
583 stmt->SetData(2, item_guid.GetCounter());
584 stmt->SetData(3, owner.GetCounter());
585 stmt->SetData (4, buyout);
586 stmt->SetData(5, uint32(expire_time));
587 stmt->SetData(6, bidder.GetCounter());
588 stmt->SetData (7, bid);
589 stmt->SetData (8, startbid);
590 stmt->SetData (9, deposit);
591 trans->Append(stmt);
592}
@ 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: