From 22bc5954d7b2d8b58de4caa5a26dd911a0de2d28 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Mon, 9 Mar 2026 16:51:54 -0700 Subject: [PATCH] Fix opcode handler grouping: separate SET_PROFICIENCY/ENERGIZE from ACTION_BUTTONS SMSG_SPELLENERGIZELOG, SMSG_ENVIRONMENTAL_DAMAGE_LOG, and SMSG_SET_PROFICIENCY were incorrectly grouped with the SMSG_ACTION_BUTTONS case block introduced in the previous commit, causing their payloads to be misinterpreted as action button data which could corrupt the action bar. Each now safely consumes its packet. --- src/game/game_handler.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index 9ba35ab3..71458a91 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -3070,6 +3070,9 @@ void GameHandler::handlePacket(network::Packet& packet) { case Opcode::SMSG_SPELLENERGIZELOG: case Opcode::SMSG_ENVIRONMENTAL_DAMAGE_LOG: case Opcode::SMSG_SET_PROFICIENCY: + packet.setReadPos(packet.getSize()); + break; + case Opcode::SMSG_ACTION_BUTTONS: { // uint8 mode (0=initial, 1=update) + 144 × uint32 packed buttons // packed: bits 0-23 = actionId, bits 24-31 = type