mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-25 08:30:13 +00:00
Suppress remaining unknown Turtle opcodes with safe consume mappings
This commit is contained in:
parent
ddcd2b302e
commit
0c99e2ee95
4 changed files with 22 additions and 1 deletions
|
|
@ -37,6 +37,7 @@
|
|||
"SMSG_ACCOUNT_DATA_TIMES": "0x209",
|
||||
"SMSG_UPDATE_OBJECT": "0x0A9",
|
||||
"SMSG_COMPRESSED_UPDATE_OBJECT": "0x1F6",
|
||||
"SMSG_UNKNOWN_1F5": "0x1F5",
|
||||
"SMSG_MONSTER_MOVE_TRANSPORT": "0x2AE",
|
||||
"SMSG_SPLINE_MOVE_SET_WALK_MODE": "0x30D",
|
||||
"SMSG_SPLINE_MOVE_SET_RUN_MODE": "0x30E",
|
||||
|
|
@ -284,5 +285,6 @@
|
|||
"SMSG_AUCTION_OWNER_NOTIFICATION": "0x25E",
|
||||
"SMSG_AUCTION_BIDDER_NOTIFICATION": "0x260",
|
||||
"CMSG_AUCTION_LIST_BIDDER_ITEMS": "0x264",
|
||||
"SMSG_AUCTION_BIDDER_LIST_RESULT": "0x265"
|
||||
"SMSG_AUCTION_BIDDER_LIST_RESULT": "0x265",
|
||||
"SMSG_UNKNOWN_319": "0x319"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ enum class LogicalOpcode : uint16_t {
|
|||
// ---- Entity/Object updates ----
|
||||
SMSG_UPDATE_OBJECT,
|
||||
SMSG_COMPRESSED_UPDATE_OBJECT,
|
||||
SMSG_UNKNOWN_1F5,
|
||||
SMSG_MONSTER_MOVE_TRANSPORT,
|
||||
SMSG_SPLINE_MOVE_SET_WALK_MODE,
|
||||
SMSG_SPLINE_MOVE_SET_RUN_MODE,
|
||||
|
|
@ -440,6 +441,9 @@ enum class LogicalOpcode : uint16_t {
|
|||
SMSG_AUCTION_BIDDER_NOTIFICATION,
|
||||
CMSG_AUCTION_LIST_BIDDER_ITEMS,
|
||||
|
||||
// ---- Expansion-Specific / Unknown (safe consume) ----
|
||||
SMSG_UNKNOWN_319,
|
||||
|
||||
// Sentinel
|
||||
COUNT
|
||||
};
|
||||
|
|
|
|||
|
|
@ -914,6 +914,10 @@ void GameHandler::handlePacket(network::Packet& packet) {
|
|||
handleCompressedUpdateObject(packet);
|
||||
}
|
||||
break;
|
||||
case Opcode::SMSG_UNKNOWN_1F5:
|
||||
// Observed custom server packet (16 bytes). Consume safely for stream alignment.
|
||||
packet.setReadPos(packet.getSize());
|
||||
break;
|
||||
|
||||
case Opcode::SMSG_DESTROY_OBJECT:
|
||||
// Can be received after entering world
|
||||
|
|
@ -1000,6 +1004,11 @@ void GameHandler::handlePacket(network::Packet& packet) {
|
|||
handleRandomRoll(packet);
|
||||
}
|
||||
break;
|
||||
case Opcode::CMSG_DUEL_PROPOSED:
|
||||
// Some servers reuse this wire value for an outbound server packet variant.
|
||||
// Consume safely until we have a concrete parser.
|
||||
packet.setReadPos(packet.getSize());
|
||||
break;
|
||||
|
||||
case Opcode::SMSG_LOGOUT_RESPONSE:
|
||||
handleLogoutResponse(packet);
|
||||
|
|
@ -2032,6 +2041,10 @@ void GameHandler::handlePacket(network::Packet& packet) {
|
|||
case Opcode::SMSG_AUCTION_COMMAND_RESULT:
|
||||
handleAuctionCommandResult(packet);
|
||||
break;
|
||||
case Opcode::SMSG_UNKNOWN_319:
|
||||
// Observed custom server packet (8 bytes). Safe-consume for now.
|
||||
packet.setReadPos(packet.getSize());
|
||||
break;
|
||||
|
||||
default:
|
||||
// In pre-world states we need full visibility (char create/login handshakes).
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ static const OpcodeNameEntry kOpcodeNames[] = {
|
|||
{"SMSG_MOTD", LogicalOpcode::SMSG_MOTD},
|
||||
{"SMSG_UPDATE_OBJECT", LogicalOpcode::SMSG_UPDATE_OBJECT},
|
||||
{"SMSG_COMPRESSED_UPDATE_OBJECT", LogicalOpcode::SMSG_COMPRESSED_UPDATE_OBJECT},
|
||||
{"SMSG_UNKNOWN_1F5", LogicalOpcode::SMSG_UNKNOWN_1F5},
|
||||
{"SMSG_MONSTER_MOVE_TRANSPORT", LogicalOpcode::SMSG_MONSTER_MOVE_TRANSPORT},
|
||||
{"SMSG_SPLINE_MOVE_SET_WALK_MODE", LogicalOpcode::SMSG_SPLINE_MOVE_SET_WALK_MODE},
|
||||
{"SMSG_SPLINE_MOVE_SET_RUN_MODE", LogicalOpcode::SMSG_SPLINE_MOVE_SET_RUN_MODE},
|
||||
|
|
@ -360,6 +361,7 @@ static const OpcodeNameEntry kOpcodeNames[] = {
|
|||
{"SMSG_AUCTION_OWNER_NOTIFICATION", LogicalOpcode::SMSG_AUCTION_OWNER_NOTIFICATION},
|
||||
{"SMSG_AUCTION_BIDDER_NOTIFICATION", LogicalOpcode::SMSG_AUCTION_BIDDER_NOTIFICATION},
|
||||
{"CMSG_AUCTION_LIST_BIDDER_ITEMS", LogicalOpcode::CMSG_AUCTION_LIST_BIDDER_ITEMS},
|
||||
{"SMSG_UNKNOWN_319", LogicalOpcode::SMSG_UNKNOWN_319},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue