Reduce unhandled opcode spam and add missing Turtle opcode names

This commit is contained in:
Kelsi 2026-02-18 23:14:01 -08:00
parent e9732dd9a6
commit 4684db10af
3 changed files with 21 additions and 1 deletions

View file

@ -323,6 +323,12 @@ enum class LogicalOpcode : uint16_t {
SMSG_REMOVED_FROM_PVP_QUEUE,
SMSG_TRAINER_BUY_SUCCEEDED,
SMSG_BINDPOINTUPDATE,
SMSG_SET_PROFICIENCY,
SMSG_ACTION_BUTTONS,
SMSG_LEVELUP_INFO,
CMSG_TAXINODE_STATUS_QUERY,
SMSG_TAXINODE_STATUS,
CMSG_UPDATE_ACCOUNT_DATA,
CMSG_BATTLEFIELD_LIST,
SMSG_BATTLEFIELD_LIST,
CMSG_BATTLEFIELD_JOIN,

View file

@ -805,7 +805,12 @@ void GameHandler::handlePacket(network::Packet& packet) {
// Translate wire opcode to logical opcode via expansion table
auto logicalOp = opcodeTable_.fromWire(opcode);
if (!logicalOp) {
LOG_WARNING("Unhandled world opcode: 0x", std::hex, opcode, std::dec);
static std::unordered_set<uint16_t> loggedUnknownWireOpcodes;
if (loggedUnknownWireOpcodes.insert(opcode).second) {
LOG_WARNING("Unhandled world opcode: 0x", std::hex, opcode, std::dec,
" state=", static_cast<int>(state),
" size=", packet.getSize());
}
return;
}
@ -1256,6 +1261,9 @@ void GameHandler::handlePacket(network::Packet& packet) {
case Opcode::SMSG_PERIODICAURALOG:
case Opcode::SMSG_SPELLENERGIZELOG:
case Opcode::SMSG_ENVIRONMENTALDAMAGELOG:
case Opcode::SMSG_SET_PROFICIENCY:
case Opcode::SMSG_ACTION_BUTTONS:
case Opcode::SMSG_LEVELUP_INFO:
break;
case Opcode::SMSG_LOOT_MONEY_NOTIFY: {

View file

@ -255,6 +255,12 @@ static const OpcodeNameEntry kOpcodeNames[] = {
{"SMSG_REMOVED_FROM_PVP_QUEUE", LogicalOpcode::SMSG_REMOVED_FROM_PVP_QUEUE},
{"SMSG_TRAINER_BUY_SUCCEEDED", LogicalOpcode::SMSG_TRAINER_BUY_SUCCEEDED},
{"SMSG_BINDPOINTUPDATE", LogicalOpcode::SMSG_BINDPOINTUPDATE},
{"SMSG_SET_PROFICIENCY", LogicalOpcode::SMSG_SET_PROFICIENCY},
{"SMSG_ACTION_BUTTONS", LogicalOpcode::SMSG_ACTION_BUTTONS},
{"SMSG_LEVELUP_INFO", LogicalOpcode::SMSG_LEVELUP_INFO},
{"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},
{"CMSG_BATTLEFIELD_LIST", LogicalOpcode::CMSG_BATTLEFIELD_LIST},
{"SMSG_BATTLEFIELD_LIST", LogicalOpcode::SMSG_BATTLEFIELD_LIST},
{"CMSG_BATTLEFIELD_JOIN", LogicalOpcode::CMSG_BATTLEFIELD_JOIN},