From cb79e43a29054ef37ba951b9dd7f375e62efb2bf Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sat, 14 Feb 2026 01:43:40 -0800 Subject: [PATCH] Fix vanilla Warden PAGE_B check size (29 bytes, not 24) PAGE_A uses 24 bytes in vanilla (no addr+len), but PAGE_B always uses 29 bytes (with addr+len) regardless of expansion. Splitting the cases fixes remaining unknown check type errors on Turtle WoW. --- src/game/game_handler.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index 95f7fc88..66340f93 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -2361,14 +2361,19 @@ void GameHandler::handleWardenData(network::Packet& packet) { for (int i = 0; i < readLen; i++) resultData.push_back(0x00); break; } - case CT_PAGE_A: - case CT_PAGE_B: { - // Vanilla: [4 seed][20 sha1] = 24 bytes + case CT_PAGE_A: { + // Vanilla: [4 seed][20 sha1] = 24 bytes (no addr+len) // WotLK: [4 seed][20 sha1][4 addr][1 length] = 29 bytes int pageSize = (build <= 6005) ? 24 : 29; if (pos + pageSize > checkEnd) { pos = checkEnd; break; } pos += pageSize; - // Response: [uint8 result=0] (page matches expected) + resultData.push_back(0x00); + break; + } + case CT_PAGE_B: { + // PAGE_B always has [4 seed][20 sha1][4 addr][1 length] = 29 bytes + if (pos + 29 > checkEnd) { pos = checkEnd; break; } + pos += 29; resultData.push_back(0x00); break; }