From 06ad676be18cd5c9c95b4b94eeee47b17e2ba56c Mon Sep 17 00:00:00 2001 From: Kelsi Date: Tue, 17 Mar 2026 18:08:27 -0700 Subject: [PATCH] fix: surface barber shop, NPC, and LFG autojoin errors in UIError overlay Add addUIError() for remaining error-only chat-message cases: - SMSG_BARBER_SHOP_RESULT non-zero result (not enough money, wrong location, must stand up) - SMSG_NPC_WONT_TALK ("That creature can't talk to you right now") - SMSG_LFG_AUTOJOIN_FAILED and SMSG_LFG_AUTOJOIN_FAILED_NO_PLAYER Completes the UIError improvement pass: all server-reported failure events now surface as the red on-screen overlay, not chat-only. --- src/game/game_handler.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index ba36d474..fe593980 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -4851,6 +4851,7 @@ void GameHandler::handlePacket(network::Packet& packet) { : (result == 2) ? "You are not at a barber shop." : (result == 3) ? "You must stand up to use the barber shop." : "Barber shop unavailable."; + addUIError(msg); addSystemChatMessage(msg); } LOG_DEBUG("SMSG_BARBER_SHOP_RESULT: result=", result); @@ -6250,12 +6251,14 @@ void GameHandler::handlePacket(network::Packet& packet) { uint32_t result = packet.readUInt32(); (void)result; } + addUIError("Dungeon Finder: Auto-join failed."); addSystemChatMessage("Dungeon Finder: Auto-join failed."); packet.setReadPos(packet.getSize()); break; } case Opcode::SMSG_LFG_AUTOJOIN_FAILED_NO_PLAYER: // No eligible players found for auto-join + addUIError("Dungeon Finder: No players available for auto-join."); addSystemChatMessage("Dungeon Finder: No players available for auto-join."); packet.setReadPos(packet.getSize()); break; @@ -7513,6 +7516,7 @@ void GameHandler::handlePacket(network::Packet& packet) { // ---- NPC not responding ---- case Opcode::SMSG_NPC_WONT_TALK: + addUIError("That creature can't talk to you right now."); addSystemChatMessage("That creature can't talk to you right now."); packet.setReadPos(packet.getSize()); break;