mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
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.
This commit is contained in:
parent
1a44c85264
commit
cb79e43a29
1 changed files with 9 additions and 4 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue