From 30058a8df56ee902ad2c33919cb227a125ae0917 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Tue, 10 Mar 2026 16:28:59 -0700 Subject: [PATCH] fix: preserve vendor canRepair flag when SMSG_LIST_INVENTORY arrives ListInventoryParser::parse() overwrites currentVendorItems entirely, resetting canRepair=false. Save the flag before parsing and restore it after so the "Repair All" button remains visible when an armorer vendor also sells items. --- src/game/game_handler.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index 85fc56b5..a73da37f 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -15487,7 +15487,9 @@ void GameHandler::handleGossipComplete(network::Packet& packet) { } void GameHandler::handleListInventory(network::Packet& packet) { + bool savedCanRepair = currentVendorItems.canRepair; // preserve armorer flag set before openVendor() if (!ListInventoryParser::parse(packet, currentVendorItems)) return; + currentVendorItems.canRepair = savedCanRepair; vendorWindowOpen = true; gossipWindowOpen = false; // Close gossip if vendor opens