Logs::Trading to LogTrading

This commit is contained in:
Akkadius 2019-09-02 02:57:55 -05:00
parent c8e673c6d4
commit b402e8f33d
5 changed files with 102 additions and 104 deletions

View File

@ -3630,7 +3630,7 @@ namespace RoF2
OUT(TraderID); OUT(TraderID);
snprintf(eq->SerialNumber, sizeof(eq->SerialNumber), "%016d", emu->ItemID); snprintf(eq->SerialNumber, sizeof(eq->SerialNumber), "%016d", emu->ItemID);
Log(Logs::Detail, Logs::Trading, "ENCODE(OP_TraderDelItem): TraderID %d, SerialNumber: %d", emu->TraderID, emu->ItemID); LogTrading("ENCODE(OP_TraderDelItem): TraderID [{}], SerialNumber: [{}]", emu->TraderID, emu->ItemID);
FINISH_ENCODE(); FINISH_ENCODE();
} }
@ -3661,7 +3661,7 @@ namespace RoF2
eq->Traders2 = emu->Traders; eq->Traders2 = emu->Traders;
eq->Items2 = emu->Items; eq->Items2 = emu->Items;
Log(Logs::Detail, Logs::Trading, "ENCODE(OP_TraderShop): BazaarWelcome_Struct Code %d, Traders %d, Items %d", LogTrading("ENCODE(OP_TraderShop): BazaarWelcome_Struct Code [{}], Traders [{}], Items [{}]",
eq->Code, eq->Traders, eq->Items); eq->Code, eq->Traders, eq->Items);
FINISH_ENCODE(); FINISH_ENCODE();
@ -3684,14 +3684,14 @@ namespace RoF2
OUT(Quantity); OUT(Quantity);
snprintf(eq->SerialNumber, sizeof(eq->SerialNumber), "%016d", emu->ItemID); snprintf(eq->SerialNumber, sizeof(eq->SerialNumber), "%016d", emu->ItemID);
Log(Logs::Detail, Logs::Trading, "ENCODE(OP_TraderShop): Buy Action %d, Price %d, Trader %d, ItemID %d, Quantity %d, ItemName, %s", LogTrading("ENCODE(OP_TraderShop): Buy Action [{}], Price [{}], Trader [{}], ItemID [{}], Quantity [{}], ItemName, [{}]",
eq->Action, eq->Price, eq->TraderID, eq->ItemID, eq->Quantity, emu->ItemName); eq->Action, eq->Price, eq->TraderID, eq->ItemID, eq->Quantity, emu->ItemName);
FINISH_ENCODE(); FINISH_ENCODE();
} }
else else
{ {
Log(Logs::Detail, Logs::Trading, "ENCODE(OP_TraderShop): Encode Size Unknown (%d)", psize); LogTrading("ENCODE(OP_TraderShop): Encode Size Unknown ([{}])", psize);
} }
} }
@ -5245,7 +5245,7 @@ namespace RoF2
IN(Code); IN(Code);
IN(TraderID); IN(TraderID);
IN(Approval); IN(Approval);
Log(Logs::Detail, Logs::Trading, "DECODE(OP_TraderShop): TraderClick_Struct Code %d, TraderID %d, Approval %d", LogTrading("DECODE(OP_TraderShop): TraderClick_Struct Code [{}], TraderID [{}], Approval [{}]",
eq->Code, eq->TraderID, eq->Approval); eq->Code, eq->TraderID, eq->Approval);
FINISH_DIRECT_DECODE(); FINISH_DIRECT_DECODE();
@ -5259,7 +5259,7 @@ namespace RoF2
emu->Beginning.Action = eq->Code; emu->Beginning.Action = eq->Code;
IN(Traders); IN(Traders);
IN(Items); IN(Items);
Log(Logs::Detail, Logs::Trading, "DECODE(OP_TraderShop): BazaarWelcome_Struct Code %d, Traders %d, Items %d", LogTrading("DECODE(OP_TraderShop): BazaarWelcome_Struct Code [{}], Traders [{}], Items [{}]",
eq->Code, eq->Traders, eq->Items); eq->Code, eq->Traders, eq->Items);
FINISH_DIRECT_DECODE(); FINISH_DIRECT_DECODE();
@ -5276,20 +5276,20 @@ namespace RoF2
memcpy(emu->ItemName, eq->ItemName, sizeof(emu->ItemName)); memcpy(emu->ItemName, eq->ItemName, sizeof(emu->ItemName));
IN(ItemID); IN(ItemID);
IN(Quantity); IN(Quantity);
Log(Logs::Detail, Logs::Trading, "DECODE(OP_TraderShop): TraderBuy_Struct (Unknowns) Unknown004 %d, Unknown008 %d, Unknown012 %d, Unknown076 %d, Unknown276 %d", LogTrading("DECODE(OP_TraderShop): TraderBuy_Struct (Unknowns) Unknown004 [{}], Unknown008 [{}], Unknown012 [{}], Unknown076 [{}], Unknown276 [{}]",
eq->Unknown004, eq->Unknown008, eq->Unknown012, eq->Unknown076, eq->Unknown276); eq->Unknown004, eq->Unknown008, eq->Unknown012, eq->Unknown076, eq->Unknown276);
Log(Logs::Detail, Logs::Trading, "DECODE(OP_TraderShop): TraderBuy_Struct Buy Action %d, Price %d, Trader %d, ItemID %d, Quantity %d, ItemName, %s", LogTrading("DECODE(OP_TraderShop): TraderBuy_Struct Buy Action [{}], Price [{}], Trader [{}], ItemID [{}], Quantity [{}], ItemName, [{}]",
eq->Action, eq->Price, eq->TraderID, eq->ItemID, eq->Quantity, eq->ItemName); eq->Action, eq->Price, eq->TraderID, eq->ItemID, eq->Quantity, eq->ItemName);
FINISH_DIRECT_DECODE(); FINISH_DIRECT_DECODE();
} }
else if (psize == 4) else if (psize == 4)
{ {
Log(Logs::Detail, Logs::Trading, "DECODE(OP_TraderShop): Forwarding packet as-is with size 4"); LogTrading("DECODE(OP_TraderShop): Forwarding packet as-is with size 4");
} }
else else
{ {
Log(Logs::Detail, Logs::Trading, "DECODE(OP_TraderShop): Decode Size Unknown (%d)", psize); LogTrading("DECODE(OP_TraderShop): Decode Size Unknown ([{}])", psize);
} }
} }

View File

@ -3585,7 +3585,7 @@ void Client::Handle_OP_Barter(const EQApplicationPacket *app)
default: default:
Message(Chat::Red, "Unrecognised Barter action."); Message(Chat::Red, "Unrecognised Barter action.");
Log(Logs::Detail, Logs::Trading, "Unrecognised Barter Action %i", Action); LogTrading("Unrecognised Barter Action [{}]", Action);
} }
} }
@ -3647,7 +3647,7 @@ void Client::Handle_OP_BazaarSearch(const EQApplicationPacket *app)
return; return;
} }
else { else {
Log(Logs::Detail, Logs::Trading, "Malformed BazaarSearch_Struct packe, Action %it received, ignoring..."); LogTrading("Malformed BazaarSearch_Struct packe, Action [{}]t received, ignoring");
LogError("Malformed BazaarSearch_Struct packet received, ignoring\n"); LogError("Malformed BazaarSearch_Struct packet received, ignoring\n");
} }
@ -13931,7 +13931,7 @@ void Client::Handle_OP_Trader(const EQApplicationPacket *app)
{ {
case BazaarTrader_EndTraderMode: { case BazaarTrader_EndTraderMode: {
Trader_EndTrader(); Trader_EndTrader();
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: End Trader Session"); LogTrading("Client::Handle_OP_Trader: End Trader Session");
break; break;
} }
case BazaarTrader_EndTransaction: { case BazaarTrader_EndTransaction: {
@ -13940,20 +13940,20 @@ void Client::Handle_OP_Trader(const EQApplicationPacket *app)
if (c) if (c)
{ {
c->WithCustomer(0); c->WithCustomer(0);
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: End Transaction"); LogTrading("Client::Handle_OP_Trader: End Transaction");
} }
else else
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: Null Client Pointer"); LogTrading("Client::Handle_OP_Trader: Null Client Pointer");
break; break;
} }
case BazaarTrader_ShowItems: { case BazaarTrader_ShowItems: {
Trader_ShowItems(); Trader_ShowItems();
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: Show Trader Items"); LogTrading("Client::Handle_OP_Trader: Show Trader Items");
break; break;
} }
default: { default: {
Log(Logs::Detail, Logs::Trading, "Unhandled action code in OP_Trader ShowItems_Struct"); LogTrading("Unhandled action code in OP_Trader ShowItems_Struct");
break; break;
} }
} }
@ -13972,7 +13972,7 @@ void Client::Handle_OP_Trader(const EQApplicationPacket *app)
{ {
GetItems_Struct* gis = GetTraderItems(); GetItems_Struct* gis = GetTraderItems();
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: Start Trader Mode"); LogTrading("Client::Handle_OP_Trader: Start Trader Mode");
// Verify there are no NODROP or items with a zero price // Verify there are no NODROP or items with a zero price
bool TradeItemsValid = true; bool TradeItemsValid = true;
@ -14035,7 +14035,7 @@ void Client::Handle_OP_Trader(const EQApplicationPacket *app)
} }
} }
else { else {
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: Unknown TraderStruct code of: %i\n", LogTrading("Client::Handle_OP_Trader: Unknown TraderStruct code of: [{}]\n",
ints->Code); ints->Code);
LogError("Unknown TraderStruct code of: [{}]\n", ints->Code); LogError("Unknown TraderStruct code of: [{}]\n", ints->Code);
@ -14045,22 +14045,22 @@ void Client::Handle_OP_Trader(const EQApplicationPacket *app)
{ {
TraderStatus_Struct* tss = (TraderStatus_Struct*)app->pBuffer; TraderStatus_Struct* tss = (TraderStatus_Struct*)app->pBuffer;
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: Trader Status Code: %d", tss->Code); LogTrading("Client::Handle_OP_Trader: Trader Status Code: [{}]", tss->Code);
switch (tss->Code) switch (tss->Code)
{ {
case BazaarTrader_EndTraderMode: { case BazaarTrader_EndTraderMode: {
Trader_EndTrader(); Trader_EndTrader();
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: End Trader Session"); LogTrading("Client::Handle_OP_Trader: End Trader Session");
break; break;
} }
case BazaarTrader_ShowItems: { case BazaarTrader_ShowItems: {
Trader_ShowItems(); Trader_ShowItems();
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: Show Trader Items"); LogTrading("Client::Handle_OP_Trader: Show Trader Items");
break; break;
} }
default: { default: {
Log(Logs::Detail, Logs::Trading, "Unhandled action code in OP_Trader ShowItems_Struct"); LogTrading("Unhandled action code in OP_Trader ShowItems_Struct");
break; break;
} }
} }
@ -14069,11 +14069,11 @@ void Client::Handle_OP_Trader(const EQApplicationPacket *app)
} }
else if (app->size == sizeof(TraderPriceUpdate_Struct)) else if (app->size == sizeof(TraderPriceUpdate_Struct))
{ {
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: Trader Price Update"); LogTrading("Client::Handle_OP_Trader: Trader Price Update");
HandleTraderPriceUpdate(app); HandleTraderPriceUpdate(app);
} }
else { else {
Log(Logs::Detail, Logs::Trading, "Unknown size for OP_Trader: %i\n", app->size); LogTrading("Unknown size for OP_Trader: [{}]\n", app->size);
LogError("Unknown size for OP_Trader: [{}]\n", app->size); LogError("Unknown size for OP_Trader: [{}]\n", app->size);
DumpPacket(app); DumpPacket(app);
return; return;
@ -14097,10 +14097,10 @@ void Client::Handle_OP_TraderBuy(const EQApplicationPacket *app)
if (Client* Trader = entity_list.GetClientByID(tbs->TraderID)) { if (Client* Trader = entity_list.GetClientByID(tbs->TraderID)) {
BuyTraderItem(tbs, Trader, app); BuyTraderItem(tbs, Trader, app);
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_TraderBuy: Buy Trader Item "); LogTrading("Client::Handle_OP_TraderBuy: Buy Trader Item ");
} }
else { else {
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_TraderBuy: Null Client Pointer"); LogTrading("Client::Handle_OP_TraderBuy: Null Client Pointer");
} }
@ -14171,12 +14171,12 @@ void Client::Handle_OP_TraderShop(const EQApplicationPacket *app)
TraderClick_Struct* tcs = (TraderClick_Struct*)app->pBuffer; TraderClick_Struct* tcs = (TraderClick_Struct*)app->pBuffer;
Log(Logs::Detail, Logs::Trading, "Handle_OP_TraderShop: TraderClick_Struct TraderID %d, Code %d, Unknown008 %d, Approval %d", LogTrading("Handle_OP_TraderShop: TraderClick_Struct TraderID [{}], Code [{}], Unknown008 [{}], Approval [{}]",
tcs->TraderID, tcs->Code, tcs->Unknown008, tcs->Approval); tcs->TraderID, tcs->Code, tcs->Unknown008, tcs->Approval);
if (tcs->Code == BazaarWelcome) if (tcs->Code == BazaarWelcome)
{ {
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_TraderShop: Sent Bazaar Welcome Info"); LogTrading("Client::Handle_OP_TraderShop: Sent Bazaar Welcome Info");
SendBazaarWelcome(); SendBazaarWelcome();
} }
else else
@ -14192,10 +14192,10 @@ void Client::Handle_OP_TraderShop(const EQApplicationPacket *app)
if (Trader) if (Trader)
{ {
outtcs->Approval = Trader->WithCustomer(GetID()); outtcs->Approval = Trader->WithCustomer(GetID());
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_TraderShop: Shop Request (%s) to (%s) with Approval: %d", GetCleanName(), Trader->GetCleanName(), outtcs->Approval); LogTrading("Client::Handle_OP_TraderShop: Shop Request ([{}]) to ([{}]) with Approval: [{}]", GetCleanName(), Trader->GetCleanName(), outtcs->Approval);
} }
else { else {
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_TraderShop: entity_list.GetClientByID(tcs->traderid)" LogTrading("Client::Handle_OP_TraderShop: entity_list.GetClientByID(tcs->traderid)"
" returned a nullptr pointer"); " returned a nullptr pointer");
safe_delete(outapp); safe_delete(outapp);
return; return;
@ -14212,12 +14212,12 @@ void Client::Handle_OP_TraderShop(const EQApplicationPacket *app)
this->BulkSendTraderInventory(Trader->CharacterID()); this->BulkSendTraderInventory(Trader->CharacterID());
Trader->Trader_CustomerBrowsing(this); Trader->Trader_CustomerBrowsing(this);
TraderID = tcs->TraderID; TraderID = tcs->TraderID;
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_TraderShop: Trader Inventory Sent"); LogTrading("Client::Handle_OP_TraderShop: Trader Inventory Sent");
} }
else else
{ {
MessageString(Chat::Yellow, TRADER_BUSY); MessageString(Chat::Yellow, TRADER_BUSY);
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_TraderShop: Trader Busy"); LogTrading("Client::Handle_OP_TraderShop: Trader Busy");
} }
safe_delete(outapp); safe_delete(outapp);
@ -14230,7 +14230,7 @@ void Client::Handle_OP_TraderShop(const EQApplicationPacket *app)
// RoF+ // RoF+
// Client requested Bazaar Welcome Info (Trader and Item Total Counts) // Client requested Bazaar Welcome Info (Trader and Item Total Counts)
SendBazaarWelcome(); SendBazaarWelcome();
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_TraderShop: Sent Bazaar Welcome Info"); LogTrading("Client::Handle_OP_TraderShop: Sent Bazaar Welcome Info");
} }
else if (app->size == sizeof(TraderBuy_Struct)) else if (app->size == sizeof(TraderBuy_Struct))
{ {
@ -14242,12 +14242,12 @@ void Client::Handle_OP_TraderShop(const EQApplicationPacket *app)
if (Client* Trader = entity_list.GetClientByID(tbs->TraderID)) if (Client* Trader = entity_list.GetClientByID(tbs->TraderID))
{ {
BuyTraderItem(tbs, Trader, app); BuyTraderItem(tbs, Trader, app);
Log(Logs::Detail, Logs::Trading, "Handle_OP_TraderShop: Buy Action %d, Price %d, Trader %d, ItemID %d, Quantity %d, ItemName, %s", LogTrading("Handle_OP_TraderShop: Buy Action [{}], Price [{}], Trader [{}], ItemID [{}], Quantity [{}], ItemName, [{}]",
tbs->Action, tbs->Price, tbs->TraderID, tbs->ItemID, tbs->Quantity, tbs->ItemName); tbs->Action, tbs->Price, tbs->TraderID, tbs->ItemID, tbs->Quantity, tbs->ItemName);
} }
else else
{ {
Log(Logs::Detail, Logs::Trading, "OP_TraderShop: Null Client Pointer"); LogTrading("OP_TraderShop: Null Client Pointer");
} }
} }
else if (app->size == 4) else if (app->size == 4)
@ -14263,23 +14263,23 @@ void Client::Handle_OP_TraderShop(const EQApplicationPacket *app)
if (c) if (c)
{ {
c->WithCustomer(0); c->WithCustomer(0);
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: End Transaction - Code %d", Command); LogTrading("Client::Handle_OP_Trader: End Transaction - Code [{}]", Command);
} }
else else
{ {
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: Null Client Pointer for Trader - Code %d", Command); LogTrading("Client::Handle_OP_Trader: Null Client Pointer for Trader - Code [{}]", Command);
} }
EQApplicationPacket empty(OP_ShopEndConfirm); EQApplicationPacket empty(OP_ShopEndConfirm);
QueuePacket(&empty); QueuePacket(&empty);
} }
else else
{ {
Log(Logs::Detail, Logs::Trading, "Client::Handle_OP_Trader: Unhandled Code %d", Command); LogTrading("Client::Handle_OP_Trader: Unhandled Code [{}]", Command);
} }
} }
else else
{ {
Log(Logs::Detail, Logs::Trading, "Unknown size for OP_TraderShop: %i\n", app->size); LogTrading("Unknown size for OP_TraderShop: [{}]\n", app->size);
LogError("Unknown size for OP_TraderShop: [{}]\n", app->size); LogError("Unknown size for OP_TraderShop: [{}]\n", app->size);
DumpPacket(app); DumpPacket(app);
return; return;

View File

@ -709,7 +709,7 @@ void Client::OnDisconnect(bool hard_disconnect) {
Mob *Other = trade->With(); Mob *Other = trade->With();
if(Other) if(Other)
{ {
Log(Logs::Detail, Logs::Trading, "Client disconnected during a trade. Returning their items."); LogTrading("Client disconnected during a trade. Returning their items");
FinishTrade(this); FinishTrade(this);
if(Other->IsClient()) if(Other->IsClient())
@ -976,7 +976,7 @@ uint8 Client::WithCustomer(uint16 NewCustomer){
Client* c = entity_list.GetClientByID(CustomerID); Client* c = entity_list.GetClientByID(CustomerID);
if(!c) { if(!c) {
Log(Logs::Detail, Logs::Trading, "Previous customer has gone away."); LogTrading("Previous customer has gone away");
CustomerID = NewCustomer; CustomerID = NewCustomer;
return 1; return 1;
} }

View File

@ -127,7 +127,7 @@ void Trade::AddEntity(uint16 trade_slot_id, uint32 stack_size) {
inst2->SetCharges(stack_size + inst2->GetCharges()); inst2->SetCharges(stack_size + inst2->GetCharges());
} }
Log(Logs::Detail, Logs::Trading, "%s added partial item '%s' stack (qty: %i) to trade slot %i", owner->GetName(), inst->GetItem()->Name, stack_size, trade_slot_id); LogTrading("[{}] added partial item [{}] stack (qty: [{}]) to trade slot [{}]", owner->GetName(), inst->GetItem()->Name, stack_size, trade_slot_id);
if (_stack_size > 0) if (_stack_size > 0)
inst->SetCharges(_stack_size); inst->SetCharges(_stack_size);
@ -144,7 +144,7 @@ void Trade::AddEntity(uint16 trade_slot_id, uint32 stack_size) {
SendItemData(inst, trade_slot_id); SendItemData(inst, trade_slot_id);
Log(Logs::Detail, Logs::Trading, "%s added item '%s' to trade slot %i", owner->GetName(), inst->GetItem()->Name, trade_slot_id); LogTrading("[{}] added item [{}] to trade slot [{}]", owner->GetName(), inst->GetItem()->Name, trade_slot_id);
client->PutItemInInventory(trade_slot_id, *inst); client->PutItemInInventory(trade_slot_id, *inst);
client->DeleteItemInInventory(EQEmu::invslot::slotCursor); client->DeleteItemInInventory(EQEmu::invslot::slotCursor);
@ -297,7 +297,7 @@ void Trade::LogTrade()
void Trade::DumpTrade() void Trade::DumpTrade()
{ {
Mob* with = With(); Mob* with = With();
Log(Logs::Detail, Logs::Trading, "Dumping trade data: '%s' in TradeState %i with '%s'", LogTrading("Dumping trade data: [{}] in TradeState [{}] with [{}]",
this->owner->GetName(), state, ((with==nullptr)?"(null)":with->GetName())); this->owner->GetName(), state, ((with==nullptr)?"(null)":with->GetName()));
if (!owner->IsClient()) if (!owner->IsClient())
@ -308,7 +308,7 @@ void Trade::DumpTrade()
const EQEmu::ItemInstance* inst = trader->GetInv().GetItem(i); const EQEmu::ItemInstance* inst = trader->GetInv().GetItem(i);
if (inst) { if (inst) {
Log(Logs::Detail, Logs::Trading, "Item %i (Charges=%i, Slot=%i, IsBag=%s)", LogTrading("Item [{}] (Charges=[{}], Slot=[{}], IsBag=[{}])",
inst->GetItem()->ID, inst->GetCharges(), inst->GetItem()->ID, inst->GetCharges(),
i, ((inst->IsClassBag()) ? "True" : "False")); i, ((inst->IsClassBag()) ? "True" : "False"));
@ -316,7 +316,7 @@ void Trade::DumpTrade()
for (uint8 j = EQEmu::invbag::SLOT_BEGIN; j <= EQEmu::invbag::SLOT_END; j++) { for (uint8 j = EQEmu::invbag::SLOT_BEGIN; j <= EQEmu::invbag::SLOT_END; j++) {
inst = trader->GetInv().GetItem(i, j); inst = trader->GetInv().GetItem(i, j);
if (inst) { if (inst) {
Log(Logs::Detail, Logs::Trading, "\tBagItem %i (Charges=%i, Slot=%i)", LogTrading("\tBagItem [{}] (Charges=[{}], Slot=[{}])",
inst->GetItem()->ID, inst->GetCharges(), inst->GetItem()->ID, inst->GetCharges(),
EQEmu::InventoryProfile::CalcSlotId(i, j)); EQEmu::InventoryProfile::CalcSlotId(i, j));
} }
@ -325,7 +325,7 @@ void Trade::DumpTrade()
} }
} }
Log(Logs::Detail, Logs::Trading, "\tpp:%i, gp:%i, sp:%i, cp:%i", pp, gp, sp, cp); LogTrading("\tpp:[{}], gp:[{}], sp:[{}], cp:[{}]", pp, gp, sp, cp);
} }
@ -459,7 +459,7 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
bool qs_log = false; bool qs_log = false;
if(other) { if(other) {
Log(Logs::Detail, Logs::Trading, "Finishing trade with client %s", other->GetName()); LogTrading("Finishing trade with client [{}]", other->GetName());
this->AddMoneyToPP(other->trade->cp, other->trade->sp, other->trade->gp, other->trade->pp, true); this->AddMoneyToPP(other->trade->cp, other->trade->sp, other->trade->gp, other->trade->pp, true);
@ -492,7 +492,7 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
const EQEmu::ItemInstance* inst = m_inv[trade_slot]; const EQEmu::ItemInstance* inst = m_inv[trade_slot];
if (inst && inst->IsClassBag()) { if (inst && inst->IsClassBag()) {
Log(Logs::Detail, Logs::Trading, "Giving container %s (%d) in slot %d to %s", inst->GetItem()->Name, inst->GetItem()->ID, trade_slot, other->GetName()); LogTrading("Giving container [{}] ([{}]) in slot [{}] to [{}]", inst->GetItem()->Name, inst->GetItem()->ID, trade_slot, other->GetName());
// TODO: need to check bag items/augments for no drop..everything for attuned... // TODO: need to check bag items/augments for no drop..everything for attuned...
if (inst->GetItem()->NoDrop != 0 || Admin() >= RuleI(Character, MinStatusForNoDropExemptions) || RuleI(World, FVNoDropFlag) == 1 || other == this) { if (inst->GetItem()->NoDrop != 0 || Admin() >= RuleI(Character, MinStatusForNoDropExemptions) || RuleI(World, FVNoDropFlag) == 1 || other == this) {
@ -500,7 +500,7 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
if (free_slot != INVALID_INDEX) { if (free_slot != INVALID_INDEX) {
if (other->PutItemInInventory(free_slot, *inst, true)) { if (other->PutItemInInventory(free_slot, *inst, true)) {
Log(Logs::Detail, Logs::Trading, "Container %s (%d) successfully transferred, deleting from trade slot.", inst->GetItem()->Name, inst->GetItem()->ID); LogTrading("Container [{}] ([{}]) successfully transferred, deleting from trade slot", inst->GetItem()->Name, inst->GetItem()->ID);
if (qs_log) { if (qs_log) {
auto detail = new QSTradeItems_Struct; auto detail = new QSTradeItems_Struct;
@ -552,17 +552,17 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
} }
} }
else { else {
Log(Logs::Detail, Logs::Trading, "Transfer of container %s (%d) to %s failed, returning to giver.", inst->GetItem()->Name, inst->GetItem()->ID, other->GetName()); LogTrading("Transfer of container [{}] ([{}]) to [{}] failed, returning to giver", inst->GetItem()->Name, inst->GetItem()->ID, other->GetName());
PushItemOnCursor(*inst, true); PushItemOnCursor(*inst, true);
} }
} }
else { else {
Log(Logs::Detail, Logs::Trading, "%s's inventory is full, returning container %s (%d) to giver.", other->GetName(), inst->GetItem()->Name, inst->GetItem()->ID); LogTrading("[{}]'s inventory is full, returning container [{}] ([{}]) to giver", other->GetName(), inst->GetItem()->Name, inst->GetItem()->ID);
PushItemOnCursor(*inst, true); PushItemOnCursor(*inst, true);
} }
} }
else { else {
Log(Logs::Detail, Logs::Trading, "Container %s (%d) is NoDrop, returning to giver.", inst->GetItem()->Name, inst->GetItem()->ID); LogTrading("Container [{}] ([{}]) is NoDrop, returning to giver", inst->GetItem()->Name, inst->GetItem()->ID);
PushItemOnCursor(*inst, true); PushItemOnCursor(*inst, true);
} }
@ -588,7 +588,7 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
break; break;
if (partial_inst->GetID() != inst->GetID()) { if (partial_inst->GetID() != inst->GetID()) {
Log(Logs::Detail, Logs::Trading, "[CLIENT] Client::ResetTrade() - an incompatible location reference was returned by Inventory::FindFreeSlotForTradeItem()"); LogTrading("[CLIENT] Client::ResetTrade() - an incompatible location reference was returned by Inventory::FindFreeSlotForTradeItem()");
break; break;
} }
@ -606,10 +606,10 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
inst->SetCharges(0); inst->SetCharges(0);
} }
Log(Logs::Detail, Logs::Trading, "Transferring partial stack %s (%d) in slot %d to %s", inst->GetItem()->Name, inst->GetItem()->ID, trade_slot, other->GetName()); LogTrading("Transferring partial stack [{}] ([{}]) in slot [{}] to [{}]", inst->GetItem()->Name, inst->GetItem()->ID, trade_slot, other->GetName());
if (other->PutItemInInventory(partial_slot, *partial_inst, true)) { if (other->PutItemInInventory(partial_slot, *partial_inst, true)) {
Log(Logs::Detail, Logs::Trading, "Partial stack %s (%d) successfully transferred, deleting %i charges from trade slot.", LogTrading("Partial stack [{}] ([{}]) successfully transferred, deleting [{}] charges from trade slot",
inst->GetItem()->Name, inst->GetItem()->ID, (old_charges - inst->GetCharges())); inst->GetItem()->Name, inst->GetItem()->ID, (old_charges - inst->GetCharges()));
if (qs_log) { if (qs_log) {
auto detail = new QSTradeItems_Struct; auto detail = new QSTradeItems_Struct;
@ -635,7 +635,7 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
} }
} }
else { else {
Log(Logs::Detail, Logs::Trading, "Transfer of partial stack %s (%d) to %s failed, returning %i charges to trade slot.", LogTrading("Transfer of partial stack [{}] ([{}]) to [{}] failed, returning [{}] charges to trade slot",
inst->GetItem()->Name, inst->GetItem()->ID, other->GetName(), (old_charges - inst->GetCharges())); inst->GetItem()->Name, inst->GetItem()->ID, other->GetName(), (old_charges - inst->GetCharges()));
inst->SetCharges(old_charges); inst->SetCharges(old_charges);
@ -710,7 +710,7 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
const EQEmu::ItemInstance* inst = m_inv[trade_slot]; const EQEmu::ItemInstance* inst = m_inv[trade_slot];
if (inst) { if (inst) {
Log(Logs::Detail, Logs::Trading, "Giving item %s (%d) in slot %d to %s", inst->GetItem()->Name, inst->GetItem()->ID, trade_slot, other->GetName()); LogTrading("Giving item [{}] ([{}]) in slot [{}] to [{}]", inst->GetItem()->Name, inst->GetItem()->ID, trade_slot, other->GetName());
// TODO: need to check bag items/augments for no drop..everything for attuned... // TODO: need to check bag items/augments for no drop..everything for attuned...
if (inst->GetItem()->NoDrop != 0 || Admin() >= RuleI(Character, MinStatusForNoDropExemptions) || RuleI(World, FVNoDropFlag) == 1 || other == this) { if (inst->GetItem()->NoDrop != 0 || Admin() >= RuleI(Character, MinStatusForNoDropExemptions) || RuleI(World, FVNoDropFlag) == 1 || other == this) {
@ -718,7 +718,7 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
if (free_slot != INVALID_INDEX) { if (free_slot != INVALID_INDEX) {
if (other->PutItemInInventory(free_slot, *inst, true)) { if (other->PutItemInInventory(free_slot, *inst, true)) {
Log(Logs::Detail, Logs::Trading, "Item %s (%d) successfully transferred, deleting from trade slot.", inst->GetItem()->Name, inst->GetItem()->ID); LogTrading("Item [{}] ([{}]) successfully transferred, deleting from trade slot", inst->GetItem()->Name, inst->GetItem()->ID);
if (qs_log) { if (qs_log) {
auto detail = new QSTradeItems_Struct; auto detail = new QSTradeItems_Struct;
@ -771,17 +771,17 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
} }
} }
else { else {
Log(Logs::Detail, Logs::Trading, "Transfer of Item %s (%d) to %s failed, returning to giver.", inst->GetItem()->Name, inst->GetItem()->ID, other->GetName()); LogTrading("Transfer of Item [{}] ([{}]) to [{}] failed, returning to giver", inst->GetItem()->Name, inst->GetItem()->ID, other->GetName());
PushItemOnCursor(*inst, true); PushItemOnCursor(*inst, true);
} }
} }
else { else {
Log(Logs::Detail, Logs::Trading, "%s's inventory is full, returning item %s (%d) to giver.", other->GetName(), inst->GetItem()->Name, inst->GetItem()->ID); LogTrading("[{}]'s inventory is full, returning item [{}] ([{}]) to giver", other->GetName(), inst->GetItem()->Name, inst->GetItem()->ID);
PushItemOnCursor(*inst, true); PushItemOnCursor(*inst, true);
} }
} }
else { else {
Log(Logs::Detail, Logs::Trading, "Item %s (%d) is NoDrop, returning to giver.", inst->GetItem()->Name, inst->GetItem()->ID); LogTrading("Item [{}] ([{}]) is NoDrop, returning to giver", inst->GetItem()->Name, inst->GetItem()->ID);
PushItemOnCursor(*inst, true); PushItemOnCursor(*inst, true);
} }
@ -1178,7 +1178,7 @@ void Client::SendTraderItem(uint32 ItemID, uint16 Quantity) {
const EQEmu::ItemData* item = database.GetItem(ItemID); const EQEmu::ItemData* item = database.GetItem(ItemID);
if(!item){ if(!item){
Log(Logs::Detail, Logs::Trading, "Bogus item deleted in Client::SendTraderItem!\n"); LogTrading("Bogus item deleted in Client::SendTraderItem!\n");
return; return;
} }
@ -1237,10 +1237,8 @@ void Client::BulkSendTraderInventory(uint32 char_id) {
safe_delete(inst); safe_delete(inst);
} }
else else
Log(Logs::Detail, Logs::Trading, "Client::BulkSendTraderInventory nullptr inst pointer"); LogTrading("Client::BulkSendTraderInventory nullptr inst pointer");
} }
else
Log(Logs::Detail, Logs::Trading, "Client::BulkSendTraderInventory nullptr item pointer or item is NODROP %8X",item);
} }
safe_delete(TraderItems); safe_delete(TraderItems);
} }
@ -1263,7 +1261,7 @@ uint32 Client::FindTraderItemSerialNumber(int32 ItemID) {
} }
} }
} }
Log(Logs::Detail, Logs::Trading, "Client::FindTraderItemSerialNumber Couldn't find item! Item ID %i", ItemID); LogTrading("Client::FindTraderItemSerialNumber Couldn't find item! Item ID [{}]", ItemID);
return 0; return 0;
} }
@ -1286,7 +1284,7 @@ EQEmu::ItemInstance* Client::FindTraderItemBySerialNumber(int32 SerialNumber){
} }
} }
} }
Log(Logs::Detail, Logs::Trading, "Client::FindTraderItemBySerialNumber Couldn't find item! Serial No. was %i", SerialNumber); LogTrading("Client::FindTraderItemBySerialNumber Couldn't find item! Serial No. was [{}]", SerialNumber);
return nullptr; return nullptr;
} }
@ -1348,7 +1346,7 @@ uint16 Client::FindTraderItem(int32 SerialNumber, uint16 Quantity){
} }
} }
} }
Log(Logs::Detail, Logs::Trading, "Could NOT find a match for Item: %i with a quantity of: %i on Trader: %s\n", LogTrading("Could NOT find a match for Item: [{}] with a quantity of: [{}] on Trader: [{}]\n",
SerialNumber , Quantity, this->GetName()); SerialNumber , Quantity, this->GetName());
return 0; return 0;
@ -1359,7 +1357,7 @@ void Client::NukeTraderItem(uint16 Slot,int16 Charges,uint16 Quantity,Client* Cu
if(!Customer) if(!Customer)
return; return;
Log(Logs::Detail, Logs::Trading, "NukeTraderItem(Slot %i, Charges %i, Quantity %i", Slot, Charges, Quantity); LogTrading("NukeTraderItem(Slot [{}], Charges [{}], Quantity [{}]", Slot, Charges, Quantity);
if(Quantity < Charges) if(Quantity < Charges)
{ {
@ -1446,7 +1444,7 @@ void Client::FindAndNukeTraderItem(int32 SerialNumber, uint16 Quantity, Client*
if (!item) if (!item)
{ {
Log(Logs::Detail, Logs::Trading, "Could not find Item: %i on Trader: %s", SerialNumber, Quantity, this->GetName()); LogTrading("Could not find Item: [{}] on Trader: [{}]", SerialNumber, Quantity, this->GetName());
return; return;
} }
@ -1457,7 +1455,7 @@ void Client::FindAndNukeTraderItem(int32 SerialNumber, uint16 Quantity, Client*
if (!Stackable) if (!Stackable)
Quantity = (Charges > 0) ? Charges : 1; Quantity = (Charges > 0) ? Charges : 1;
Log(Logs::Detail, Logs::Trading, "FindAndNuke %s, Charges %i, Quantity %i", item->GetItem()->Name, Charges, Quantity); LogTrading("FindAndNuke [{}], Charges [{}], Quantity [{}]", item->GetItem()->Name, Charges, Quantity);
if (Charges <= Quantity || (Charges <= 0 && Quantity==1) || !Stackable) if (Charges <= Quantity || (Charges <= 0 && Quantity==1) || !Stackable)
{ {
@ -1499,7 +1497,7 @@ void Client::FindAndNukeTraderItem(int32 SerialNumber, uint16 Quantity, Client*
} }
} }
Log(Logs::Detail, Logs::Trading, "Could NOT find a match for Item: %i with a quantity of: %i on Trader: %s\n",SerialNumber, LogTrading("Could NOT find a match for Item: [{}] with a quantity of: [{}] on Trader: [{}]\n",SerialNumber,
Quantity,this->GetName()); Quantity,this->GetName());
} }
@ -1599,7 +1597,7 @@ void Client::BuyTraderItem(TraderBuy_Struct* tbs, Client* Trader, const EQApplic
BuyItem = Trader->FindTraderItemBySerialNumber(tbs->ItemID); BuyItem = Trader->FindTraderItemBySerialNumber(tbs->ItemID);
if(!BuyItem) { if(!BuyItem) {
Log(Logs::Detail, Logs::Trading, "Unable to find item on trader."); LogTrading("Unable to find item on trader");
TradeRequestFailed(app); TradeRequestFailed(app);
safe_delete(outapp); safe_delete(outapp);
return; return;
@ -1607,7 +1605,7 @@ void Client::BuyTraderItem(TraderBuy_Struct* tbs, Client* Trader, const EQApplic
tbs->Price = BuyItem->GetPrice(); tbs->Price = BuyItem->GetPrice();
Log(Logs::Detail, Logs::Trading, "Buyitem: Name: %s, IsStackable: %i, Requested Quantity: %i, Charges on Item %i", LogTrading("Buyitem: Name: [{}], IsStackable: [{}], Requested Quantity: [{}], Charges on Item [{}]",
BuyItem->GetItem()->Name, BuyItem->IsStackable(), tbs->Quantity, BuyItem->GetCharges()); BuyItem->GetItem()->Name, BuyItem->IsStackable(), tbs->Quantity, BuyItem->GetCharges());
// If the item is not stackable, then we can only be buying one of them. // If the item is not stackable, then we can only be buying one of them.
if(!BuyItem->IsStackable()) if(!BuyItem->IsStackable())
@ -1625,7 +1623,7 @@ void Client::BuyTraderItem(TraderBuy_Struct* tbs, Client* Trader, const EQApplic
outtbs->Quantity = tbs->Quantity; outtbs->Quantity = tbs->Quantity;
} }
Log(Logs::Detail, Logs::Trading, "Actual quantity that will be traded is %i", outtbs->Quantity); LogTrading("Actual quantity that will be traded is [{}]", outtbs->Quantity);
if((tbs->Price * outtbs->Quantity) <= 0) { if((tbs->Price * outtbs->Quantity) <= 0) {
Message(Chat::Red, "Internal error. Aborting trade. Please report this to the ServerOP. Error code is 1"); Message(Chat::Red, "Internal error. Aborting trade. Please report this to the ServerOP. Error code is 1");
@ -1668,7 +1666,7 @@ void Client::BuyTraderItem(TraderBuy_Struct* tbs, Client* Trader, const EQApplic
return; return;
} }
Log(Logs::Detail, Logs::Trading, "Customer Paid: %d in Copper", TotalCost); LogTrading("Customer Paid: [{}] in Copper", TotalCost);
uint32 platinum = TotalCost / 1000; uint32 platinum = TotalCost / 1000;
TotalCost -= (platinum * 1000); TotalCost -= (platinum * 1000);
@ -1680,7 +1678,7 @@ void Client::BuyTraderItem(TraderBuy_Struct* tbs, Client* Trader, const EQApplic
Trader->AddMoneyToPP(copper, silver, gold, platinum, true); Trader->AddMoneyToPP(copper, silver, gold, platinum, true);
Log(Logs::Detail, Logs::Trading, "Trader Received: %d Platinum, %d Gold, %d Silver, %d Copper", platinum, gold, silver, copper); LogTrading("Trader Received: [{}] Platinum, [{}] Gold, [{}] Silver, [{}] Copper", platinum, gold, silver, copper);
ReturnTraderReq(app, outtbs->Quantity, ItemID); ReturnTraderReq(app, outtbs->Quantity, ItemID);
@ -1939,7 +1937,7 @@ void Client::SendBazaarResults(uint32 TraderID, uint32 Class_, uint32 Race, uint
return; return;
} }
Log(Logs::Detail, Logs::Trading, "SRCH: %s", query.c_str()); LogTrading("SRCH: [{}]", query.c_str());
int Size = 0; int Size = 0;
uint32 ID = 0; uint32 ID = 0;
@ -1984,7 +1982,7 @@ void Client::SendBazaarResults(uint32 TraderID, uint32 Class_, uint32 Race, uint
ID = Trader2->GetID(); ID = Trader2->GetID();
VARSTRUCT_ENCODE_TYPE(uint32, bufptr, ID); VARSTRUCT_ENCODE_TYPE(uint32, bufptr, ID);
} else { } else {
Log(Logs::Detail, Logs::Trading, "Unable to find trader: %i\n", atoi(row[1])); LogTrading("Unable to find trader: [{}]\n", atoi(row[1]));
VARSTRUCT_ENCODE_TYPE(uint32, bufptr, 0); VARSTRUCT_ENCODE_TYPE(uint32, bufptr, 0);
} }
Cost = atoi(row[5]); Cost = atoi(row[5]);
@ -2074,7 +2072,7 @@ static void UpdateTraderCustomerItemsAdded(uint32 CustomerID, TraderCharges_Stru
if(inst->IsStackable()) if(inst->IsStackable())
inst->SetMerchantCount(gis->Charges[i]); inst->SetMerchantCount(gis->Charges[i]);
Log(Logs::Detail, Logs::Trading, "Sending price update for %s, Serial No. %i with %i charges", LogTrading("Sending price update for [{}], Serial No. [{}] with [{}] charges",
item->Name, gis->SerialNumber[i], gis->Charges[i]); item->Name, gis->SerialNumber[i], gis->Charges[i]);
Customer->SendItemPacket(EQEmu::invslot::slotCursor, inst, ItemPacketMerchant); // MainCursor? Customer->SendItemPacket(EQEmu::invslot::slotCursor, inst, ItemPacketMerchant); // MainCursor?
@ -2120,7 +2118,7 @@ static void UpdateTraderCustomerPriceChanged(uint32 CustomerID, TraderCharges_St
tdis->ItemID = gis->SerialNumber[i]; tdis->ItemID = gis->SerialNumber[i];
} }
tdis->ItemID = gis->SerialNumber[i]; tdis->ItemID = gis->SerialNumber[i];
Log(Logs::Detail, Logs::Trading, "Telling customer to remove item %i with %i charges and S/N %i", LogTrading("Telling customer to remove item [{}] with [{}] charges and S/N [{}]",
ItemID, Charges, gis->SerialNumber[i]); ItemID, Charges, gis->SerialNumber[i]);
@ -2132,7 +2130,7 @@ static void UpdateTraderCustomerPriceChanged(uint32 CustomerID, TraderCharges_St
return; return;
} }
Log(Logs::Detail, Logs::Trading, "Sending price updates to customer %s", Customer->GetName()); LogTrading("Sending price updates to customer [{}]", Customer->GetName());
EQEmu::ItemInstance* inst = database.CreateItem(item); EQEmu::ItemInstance* inst = database.CreateItem(item);
@ -2158,7 +2156,7 @@ static void UpdateTraderCustomerPriceChanged(uint32 CustomerID, TraderCharges_St
inst->SetMerchantSlot(gis->SerialNumber[i]); inst->SetMerchantSlot(gis->SerialNumber[i]);
Log(Logs::Detail, Logs::Trading, "Sending price update for %s, Serial No. %i with %i charges", LogTrading("Sending price update for [{}], Serial No. [{}] with [{}] charges",
item->Name, gis->SerialNumber[i], gis->Charges[i]); item->Name, gis->SerialNumber[i], gis->Charges[i]);
Customer->SendItemPacket(EQEmu::invslot::slotCursor, inst, ItemPacketMerchant); // MainCursor?? Customer->SendItemPacket(EQEmu::invslot::slotCursor, inst, ItemPacketMerchant); // MainCursor??
@ -2174,7 +2172,7 @@ void Client::HandleTraderPriceUpdate(const EQApplicationPacket *app) {
// //
TraderPriceUpdate_Struct* tpus = (TraderPriceUpdate_Struct*)app->pBuffer; TraderPriceUpdate_Struct* tpus = (TraderPriceUpdate_Struct*)app->pBuffer;
Log(Logs::Detail, Logs::Trading, "Received Price Update for %s, Item Serial No. %i, New Price %i", LogTrading("Received Price Update for [{}], Item Serial No. [{}], New Price [{}]",
GetName(), tpus->SerialNumber, tpus->NewPrice); GetName(), tpus->SerialNumber, tpus->NewPrice);
// Pull the items this Trader currently has for sale from the trader table. // Pull the items this Trader currently has for sale from the trader table.
@ -2202,7 +2200,7 @@ void Client::HandleTraderPriceUpdate(const EQApplicationPacket *app) {
if((gis->ItemID[i] > 0) && (gis->SerialNumber[i] == tpus->SerialNumber)) { if((gis->ItemID[i] > 0) && (gis->SerialNumber[i] == tpus->SerialNumber)) {
// We found the item that the Trader wants to change the price of (or add back up for sale). // We found the item that the Trader wants to change the price of (or add back up for sale).
// //
Log(Logs::Detail, Logs::Trading, "ItemID is %i, Charges is %i", gis->ItemID[i], gis->Charges[i]); LogTrading("ItemID is [{}], Charges is [{}]", gis->ItemID[i], gis->Charges[i]);
IDOfItemToUpdate = gis->ItemID[i]; IDOfItemToUpdate = gis->ItemID[i];
@ -2228,7 +2226,7 @@ void Client::HandleTraderPriceUpdate(const EQApplicationPacket *app) {
return ; return ;
} }
Log(Logs::Detail, Logs::Trading, "Unable to find item to update price for. Rechecking trader satchels"); LogTrading("Unable to find item to update price for. Rechecking trader satchels");
// Find what is in their Trader Satchels // Find what is in their Trader Satchels
GetItems_Struct* newgis=GetTraderItems(); GetItems_Struct* newgis=GetTraderItems();
@ -2241,7 +2239,7 @@ void Client::HandleTraderPriceUpdate(const EQApplicationPacket *app) {
if((newgis->Items[i] > 0) && (newgis->SerialNumber[i] == tpus->SerialNumber)) { if((newgis->Items[i] > 0) && (newgis->SerialNumber[i] == tpus->SerialNumber)) {
Log(Logs::Detail, Logs::Trading, "Found new Item to Add, ItemID is %i, Charges is %i", newgis->Items[i], LogTrading("Found new Item to Add, ItemID is [{}], Charges is [{}]", newgis->Items[i],
newgis->Charges[i]); newgis->Charges[i]);
IDOfItemToAdd = newgis->Items[i]; IDOfItemToAdd = newgis->Items[i];
@ -2259,7 +2257,7 @@ void Client::HandleTraderPriceUpdate(const EQApplicationPacket *app) {
if(!IDOfItemToAdd || !item) { if(!IDOfItemToAdd || !item) {
Log(Logs::Detail, Logs::Trading, "Item not found in Trader Satchels either."); LogTrading("Item not found in Trader Satchels either");
tpus->SubAction = BazaarPriceChange_Fail; tpus->SubAction = BazaarPriceChange_Fail;
QueuePacket(app); QueuePacket(app);
Trader_EndTrader(); Trader_EndTrader();
@ -2304,7 +2302,7 @@ void Client::HandleTraderPriceUpdate(const EQApplicationPacket *app) {
gis->SerialNumber[i] = newgis->SerialNumber[i]; gis->SerialNumber[i] = newgis->SerialNumber[i];
gis->ItemCost[i] = tpus->NewPrice; gis->ItemCost[i] = tpus->NewPrice;
Log(Logs::Detail, Logs::Trading, "Adding new item for %s. ItemID %i, SerialNumber %i, Charges %i, Price: %i, Slot %i", LogTrading("Adding new item for [{}]. ItemID [{}], SerialNumber [{}], Charges [{}], Price: [{}], Slot [{}]",
GetName(), newgis->Items[i], newgis->SerialNumber[i], newgis->Charges[i], GetName(), newgis->Items[i], newgis->SerialNumber[i], newgis->Charges[i],
tpus->NewPrice, i); tpus->NewPrice, i);
} }
@ -2350,7 +2348,7 @@ void Client::HandleTraderPriceUpdate(const EQApplicationPacket *app) {
QueuePacket(app); QueuePacket(app);
if(OldPrice == tpus->NewPrice) { if(OldPrice == tpus->NewPrice) {
Log(Logs::Detail, Logs::Trading, "The new price is the same as the old one."); LogTrading("The new price is the same as the old one");
safe_delete(gis); safe_delete(gis);
return; return;
} }
@ -2955,11 +2953,11 @@ void Client::UpdateBuyLine(const EQApplicationPacket *app) {
bool LoreConflict = CheckLoreConflict(item); bool LoreConflict = CheckLoreConflict(item);
Log(Logs::Detail, Logs::Trading, "UpdateBuyLine: Char: %s BuySlot: %i ItemID %i %s Quantity %i Toggle: %i Price %i ItemCount %i LoreConflict %i", LogTrading("UpdateBuyLine: Char: [{}] BuySlot: [{}] ItemID [{}] [{}] Quantity [{}] Toggle: [{}] Price [{}] ItemCount [{}] LoreConflict [{}]",
GetName(), BuySlot, ItemID, item->Name, Quantity, ToggleOnOff, Price, ItemCount, LoreConflict); GetName(), BuySlot, ItemID, item->Name, Quantity, ToggleOnOff, Price, ItemCount, LoreConflict);
if((item->NoDrop != 0) && !LoreConflict && (Quantity > 0) && HasMoney(Quantity * Price) && ToggleOnOff && (ItemCount == 0)) { if((item->NoDrop != 0) && !LoreConflict && (Quantity > 0) && HasMoney(Quantity * Price) && ToggleOnOff && (ItemCount == 0)) {
Log(Logs::Detail, Logs::Trading, "Adding to database"); LogTrading("Adding to database");
database.AddBuyLine(CharacterID(), BuySlot, ItemID, ItemName, Quantity, Price); database.AddBuyLine(CharacterID(), BuySlot, ItemID, ItemName, Quantity, Price);
QueuePacket(app); QueuePacket(app);
} }

View File

@ -781,14 +781,14 @@ Trader_Struct* ZoneDatabase::LoadTraderItem(uint32 char_id)
std::string query = StringFormat("SELECT * FROM trader WHERE char_id = %i ORDER BY slot_id LIMIT 80", char_id); std::string query = StringFormat("SELECT * FROM trader WHERE char_id = %i ORDER BY slot_id LIMIT 80", char_id);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::Trading, "Failed to load trader information!\n"); LogTrading("Failed to load trader information!\n");
return loadti; return loadti;
} }
loadti->Code = BazaarTrader_ShowItems; loadti->Code = BazaarTrader_ShowItems;
for (auto row = results.begin(); row != results.end(); ++row) { for (auto row = results.begin(); row != results.end(); ++row) {
if (atoi(row[5]) >= 80 || atoi(row[4]) < 0) { if (atoi(row[5]) >= 80 || atoi(row[4]) < 0) {
Log(Logs::Detail, Logs::Trading, "Bad Slot number when trying to load trader information!\n"); LogTrading("Bad Slot number when trying to load trader information!\n");
continue; continue;
} }
@ -806,13 +806,13 @@ TraderCharges_Struct* ZoneDatabase::LoadTraderItemWithCharges(uint32 char_id)
std::string query = StringFormat("SELECT * FROM trader WHERE char_id=%i ORDER BY slot_id LIMIT 80", char_id); std::string query = StringFormat("SELECT * FROM trader WHERE char_id=%i ORDER BY slot_id LIMIT 80", char_id);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
Log(Logs::Detail, Logs::Trading, "Failed to load trader information!\n"); LogTrading("Failed to load trader information!\n");
return loadti; return loadti;
} }
for (auto row = results.begin(); row != results.end(); ++row) { for (auto row = results.begin(); row != results.end(); ++row) {
if (atoi(row[5]) >= 80 || atoi(row[5]) < 0) { if (atoi(row[5]) >= 80 || atoi(row[5]) < 0) {
Log(Logs::Detail, Logs::Trading, "Bad Slot number when trying to load trader information!\n"); LogTrading("Bad Slot number when trying to load trader information!\n");
continue; continue;
} }
@ -832,7 +832,7 @@ EQEmu::ItemInstance* ZoneDatabase::LoadSingleTraderItem(uint32 CharID, int Seria
return nullptr; return nullptr;
if (results.RowCount() == 0) { if (results.RowCount() == 0) {
Log(Logs::Detail, Logs::Trading, "Bad result from query\n"); fflush(stdout); LogTrading("Bad result from query\n"); fflush(stdout);
return nullptr; return nullptr;
} }
@ -845,7 +845,7 @@ EQEmu::ItemInstance* ZoneDatabase::LoadSingleTraderItem(uint32 CharID, int Seria
const EQEmu::ItemData *item = database.GetItem(ItemID); const EQEmu::ItemData *item = database.GetItem(ItemID);
if(!item) { if(!item) {
Log(Logs::Detail, Logs::Trading, "Unable to create item\n"); LogTrading("Unable to create item\n");
fflush(stdout); fflush(stdout);
return nullptr; return nullptr;
} }
@ -855,7 +855,7 @@ EQEmu::ItemInstance* ZoneDatabase::LoadSingleTraderItem(uint32 CharID, int Seria
EQEmu::ItemInstance* inst = database.CreateItem(item); EQEmu::ItemInstance* inst = database.CreateItem(item);
if(!inst) { if(!inst) {
Log(Logs::Detail, Logs::Trading, "Unable to create item instance\n"); LogTrading("Unable to create item instance\n");
fflush(stdout); fflush(stdout);
return nullptr; return nullptr;
} }
@ -882,7 +882,7 @@ void ZoneDatabase::SaveTraderItem(uint32 CharID, uint32 ItemID, uint32 SerialNum
} }
void ZoneDatabase::UpdateTraderItemCharges(int CharID, uint32 SerialNumber, int32 Charges) { void ZoneDatabase::UpdateTraderItemCharges(int CharID, uint32 SerialNumber, int32 Charges) {
Log(Logs::Detail, Logs::Trading, "ZoneDatabase::UpdateTraderItemCharges(%i, %i, %i)", CharID, SerialNumber, Charges); LogTrading("ZoneDatabase::UpdateTraderItemCharges([{}], [{}], [{}])", CharID, SerialNumber, Charges);
std::string query = StringFormat("UPDATE trader SET charges = %i WHERE char_id = %i AND serialnumber = %i", std::string query = StringFormat("UPDATE trader SET charges = %i WHERE char_id = %i AND serialnumber = %i",
Charges, CharID, SerialNumber); Charges, CharID, SerialNumber);
@ -895,7 +895,7 @@ void ZoneDatabase::UpdateTraderItemCharges(int CharID, uint32 SerialNumber, int3
void ZoneDatabase::UpdateTraderItemPrice(int CharID, uint32 ItemID, uint32 Charges, uint32 NewPrice) { void ZoneDatabase::UpdateTraderItemPrice(int CharID, uint32 ItemID, uint32 Charges, uint32 NewPrice) {
Log(Logs::Detail, Logs::Trading, "ZoneDatabase::UpdateTraderPrice(%i, %i, %i, %i)", CharID, ItemID, Charges, NewPrice); LogTrading("ZoneDatabase::UpdateTraderPrice([{}], [{}], [{}], [{}])", CharID, ItemID, Charges, NewPrice);
const EQEmu::ItemData *item = database.GetItem(ItemID); const EQEmu::ItemData *item = database.GetItem(ItemID);
@ -903,7 +903,7 @@ void ZoneDatabase::UpdateTraderItemPrice(int CharID, uint32 ItemID, uint32 Charg
return; return;
if(NewPrice == 0) { if(NewPrice == 0) {
Log(Logs::Detail, Logs::Trading, "Removing Trader items from the DB for CharID %i, ItemID %i", CharID, ItemID); LogTrading("Removing Trader items from the DB for CharID [{}], ItemID [{}]", CharID, ItemID);
std::string query = StringFormat("DELETE FROM trader WHERE char_id = %i AND item_id = %i",CharID, ItemID); std::string query = StringFormat("DELETE FROM trader WHERE char_id = %i AND item_id = %i",CharID, ItemID);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);