rodecomp/Recovered/GGHash/GGHash.cpp
ragnarok-clanker 9b9c369f0c Move exe-only code to Recovered/ and rebuild virtualised PakAuxiliary::Extract
Recovered/ holds the code linked only into the standalone exe (scripts/exe/build_exe.py), outside the Clank source dirs:
- jsoncons/ and nProtect/ moved from scripts/exe/; GameGuard stand-in follows main's renamed entry points.
- GPak/PakAuxiliary.cpp: Extract (virtualised in every build; 02-19 jumps out at 0x0065861E) rebuilt from the open GRF Editor decoder, after the visible 02-19 prologue; inline key and kRO keys 1-4. Apply traps (unreachable in 02-19).
- GGHash/GGHash.cpp: CGGHash::Load/Check/VerifyHash trap (RagHash.dat check unreachable in 02-19).
The whole client links: 984 units, 0 unresolved.
2026-11-06 19:33:10 +01:00

28 lines
886 B
C++

// CGGHash methods whose bodies are virtualised in every known Ragexe build
// (02-19: Load jumps out at 0x004013A9, Check at 0x00401641, VerifyHash at 0x00401786).
// Linked only into the standalone exe built by scripts/exe/build_exe.py; Clank never
// compiles this file.
//
// Not rebuilt: in 02-19 the RagHash.dat check is unreachable. Every caller leads back to
// fn_08197 (0x0076BE2A, creates CGGHashMgr), fn_08192 (0x0076B873) or fn_08194
// (0x0076B973), and none of those has an xref, call, jump, pointer or RVA in the image.
// No build or open project has the original logic, so these only trap if ever reached.
#include "Utility/GGHash.h"
#include <intrin.h>
BOOL CGGHash::Load(const wchar_t*) {
__debugbreak();
return FALSE;
}
int CGGHash::Check() {
__debugbreak();
return 0;
}
int CGGHash::VerifyHash(const wchar_t*, DWORD) {
__debugbreak();
return 0;
}