From d2f2d6db723b076baa441068942b2a592df77f17 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Fri, 13 Mar 2026 07:27:01 -0700 Subject: [PATCH] fix: distinguish auction owner notification action types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SMSG_AUCTION_OWNER_NOTIFICATION action field was ignored — all events showed "has sold!" regardless. Now: - action 0 (won/sold): "Your auction of has sold!" - action 1 (expired): "Your auction of has expired." - action 2 (bid placed): "A bid has been placed on your auction of ." --- src/game/game_handler.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index a1fe739c..e79f878c 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -5531,16 +5531,21 @@ void GameHandler::handlePacket(network::Packet& packet) { break; case Opcode::SMSG_AUCTION_OWNER_NOTIFICATION: { // auctionId(u32) + action(u32) + error(u32) + itemEntry(u32) + ... + // action: 0=sold/won, 1=expired, 2=bid placed on your auction if (packet.getSize() - packet.getReadPos() >= 16) { - uint32_t auctionId = packet.readUInt32(); - uint32_t action = packet.readUInt32(); - uint32_t error = packet.readUInt32(); + /*uint32_t auctionId =*/ packet.readUInt32(); + uint32_t action = packet.readUInt32(); + /*uint32_t error =*/ packet.readUInt32(); uint32_t itemEntry = packet.readUInt32(); - (void)auctionId; (void)action; (void)error; ensureItemInfo(itemEntry); auto* info = getItemInfo(itemEntry); std::string itemName = info ? info->name : ("Item #" + std::to_string(itemEntry)); - addSystemChatMessage("Your auction of " + itemName + " has sold!"); + if (action == 1) + addSystemChatMessage("Your auction of " + itemName + " has expired."); + else if (action == 2) + addSystemChatMessage("A bid has been placed on your auction of " + itemName + "."); + else + addSystemChatMessage("Your auction of " + itemName + " has sold!"); } packet.setReadPos(packet.getSize()); break;