Suppress remaining unknown Turtle opcodes with safe consume mappings

This commit is contained in:
Kelsi 2026-02-18 23:42:28 -08:00
parent ddcd2b302e
commit 0c99e2ee95
4 changed files with 22 additions and 1 deletions

View file

@ -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).