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
649{
650 std::ostringstream strm;
651 strm.width(16);
652 strm << std::right << std::hex << guid.GetRawValue();
653 strm << std::dec << ':' << bid << ':' << buyout;
654 strm << ':' << deposit << ':' << cut;
655 strm << ':' << moneyDelay << ':' << eta;
656 return strm.str();
657}
uint64 GetRawValue() const
Definition ObjectGuid.h:145
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
642{
643 std::ostringstream strm;
644 strm << item_template << ":0:" << response << ':' << Id << ':' << itemCount;
645 return strm.str();
646}
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

581{
582 uint32 outbid = CalculatePct(bid, 5);
583 return outbid ? outbid : 1;
584}
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
587{
589 stmt->SetData(0, Id);
590 trans->Append(stmt);
591}
@ 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
569{
571 return std::max(cut, 0);
572}
std::int32_t int32
Definition Define.h:103
@ RATE_AUCTION_CUT
Definition WorldConfig.h:487
#define sWorld
Definition World.h:318
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
575{
577}
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:580

References bid, and CalculateAuctionOutBid().

◆ GetFactionId()

AuctionHouseFaction AuctionEntry::GetFactionId ( ) const
564{
566}
static AuctionHouseFaction GetAuctionHouseFactionFromHouseId(AuctionHouseId ahHouseId)
Definition AuctionHouseMgr.cpp:458
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)
610{
611 Id = fields[0].Get<uint32>();
612 houseId = AuctionHouseId(fields[1].Get<uint8>());
613 item_guid = ObjectGuid::Create<HighGuid::Item>(fields[2].Get<uint32>());
614 item_template = fields[3].Get<uint32>();
615 itemCount = fields[4].Get<uint32>();
616 owner = ObjectGuid::Create<HighGuid::Player>(fields[5].Get<uint32>());
617 buyout = fields[6].Get<uint32>();
618 expire_time = fields[7].Get<uint32>();
619 bidder = ObjectGuid::Create<HighGuid::Player>(fields[8].Get<uint32>());
620 bid = fields[9].Get<uint32>();
621 startbid = fields[10].Get<uint32>();
622 deposit = fields[11].Get<uint32>();
623
626 {
627 LOG_ERROR("auctionHouse", "Auction {} has invalid house id {}", Id, houseId);
628 return false;
629 }
630
631 // check if sold item exists for guid
632 // and item_template in fact (GetAItem will fail if problematic in result check in AuctionHouseMgr::LoadAuctionItems)
633 if (!sAuctionMgr->GetAItem(item_guid))
634 {
635 LOG_ERROR("auctionHouse", "Auction {} has not a existing item : {}", Id, item_guid.ToString());
636 return false;
637 }
638 return true;
639}
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:489
std::enable_if_t< std::is_arithmetic_v< T >, T > Get() const
Definition Field.h:112
std::string ToString() const
Definition ObjectGuid.cpp:48
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
594{
596 stmt->SetData(0, Id);
597 stmt->SetData(1, houseId);
598 stmt->SetData(2, item_guid.GetCounter());
599 stmt->SetData(3, owner.GetCounter());
600 stmt->SetData (4, buyout);
601 stmt->SetData(5, uint32(expire_time));
602 stmt->SetData(6, bidder.GetCounter());
603 stmt->SetData (7, bid);
604 stmt->SetData (8, startbid);
605 stmt->SetData (9, deposit);
606 trans->Append(stmt);
607}
@ CHAR_INS_AUCTION
Definition CharacterDatabase.h:105
LowType GetCounter() const
Definition ObjectGuid.h:149

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: