From 2ce8da52c6baa6e18249f7069d8f8bfbda65c76a Mon Sep 17 00:00:00 2001 From: Kelsi Date: Fri, 20 Feb 2026 02:21:04 -0800 Subject: [PATCH] Handle classic unhandled opcodes 0x417 and 0x2D2 --- Data/expansions/classic/opcodes.json | 2 ++ include/game/opcode_table.hpp | 2 ++ src/game/game_handler.cpp | 8 ++++++++ src/game/opcode_table.cpp | 2 ++ 4 files changed, 14 insertions(+) diff --git a/Data/expansions/classic/opcodes.json b/Data/expansions/classic/opcodes.json index f5ccd758..c990e21e 100644 --- a/Data/expansions/classic/opcodes.json +++ b/Data/expansions/classic/opcodes.json @@ -220,6 +220,8 @@ "SMSG_SET_PROFICIENCY": "0x127", "SMSG_ACTION_BUTTONS": "0x129", "SMSG_LEVELUP_INFO": "0x1D4", + "SMSG_LEVELUP_INFO_ALT": "0x417", + "SMSG_PLAY_SOUND": "0x2D2", "CMSG_UPDATE_ACCOUNT_DATA": "0x20B", "CMSG_BATTLEFIELD_LIST": "0x23C", "SMSG_BATTLEFIELD_LIST": "0x23D", diff --git a/include/game/opcode_table.hpp b/include/game/opcode_table.hpp index d3861522..f879067c 100644 --- a/include/game/opcode_table.hpp +++ b/include/game/opcode_table.hpp @@ -344,6 +344,8 @@ enum class LogicalOpcode : uint16_t { SMSG_SET_PROFICIENCY, SMSG_ACTION_BUTTONS, SMSG_LEVELUP_INFO, + SMSG_LEVELUP_INFO_ALT, + SMSG_PLAY_SOUND, CMSG_TAXINODE_STATUS_QUERY, SMSG_TAXINODE_STATUS, CMSG_UPDATE_ACCOUNT_DATA, diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index ef1519a0..4b4f9a26 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -1778,6 +1778,14 @@ void GameHandler::handlePacket(network::Packet& packet) { case Opcode::SMSG_SET_PROFICIENCY: case Opcode::SMSG_ACTION_BUTTONS: case Opcode::SMSG_LEVELUP_INFO: + case Opcode::SMSG_LEVELUP_INFO_ALT: + break; + + case Opcode::SMSG_PLAY_SOUND: + if (packet.getSize() - packet.getReadPos() >= 4) { + uint32_t soundId = packet.readUInt32(); + LOG_DEBUG("SMSG_PLAY_SOUND id=", soundId); + } break; case Opcode::SMSG_LOOT_MONEY_NOTIFY: { diff --git a/src/game/opcode_table.cpp b/src/game/opcode_table.cpp index 35223267..2529fc06 100644 --- a/src/game/opcode_table.cpp +++ b/src/game/opcode_table.cpp @@ -274,6 +274,8 @@ static const OpcodeNameEntry kOpcodeNames[] = { {"SMSG_SET_PROFICIENCY", LogicalOpcode::SMSG_SET_PROFICIENCY}, {"SMSG_ACTION_BUTTONS", LogicalOpcode::SMSG_ACTION_BUTTONS}, {"SMSG_LEVELUP_INFO", LogicalOpcode::SMSG_LEVELUP_INFO}, + {"SMSG_LEVELUP_INFO_ALT", LogicalOpcode::SMSG_LEVELUP_INFO_ALT}, + {"SMSG_PLAY_SOUND", LogicalOpcode::SMSG_PLAY_SOUND}, {"CMSG_TAXINODE_STATUS_QUERY", LogicalOpcode::CMSG_TAXINODE_STATUS_QUERY}, {"SMSG_TAXINODE_STATUS", LogicalOpcode::SMSG_TAXINODE_STATUS}, {"CMSG_UPDATE_ACCOUNT_DATA", LogicalOpcode::CMSG_UPDATE_ACCOUNT_DATA},