Rename identifiers that came from third-party offset headers to neutral names
(only CDisplay and StringTable are proven by the binary's own strings).
Annotate the four in-class virtual bodies (0x401430-0x401450); all match.
Totals: 25 MATCH, 1 NONMATCHING.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
21 of 22 functions byte-exact; ShowSpent is NONMATCHING (memory-operand reload).
Base CMerchantCurrency is __declspec(novtable); its default slots are shared
one-line stubs, so the original link used /OPT:ICF.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- // FUNCTION: / GLOBAL: / LIBRARY: annotations in source name symbols, so
decompiling never needs edits to the shared symbols.txt
- check follows compiler-generated EH handlers into .text$x and verifies
string literals / float constants by content
- link rebuilds eqgame.exe from compiled objects with relocations resolved
through the map and checks the SHA1 (currently identical)
- Ghidra pseudo-C export script; docs/ROADMAP.md for the full-relink plan
- /GS confirmed; 0x401022-0x4013e1 (13 functions, spell casting particle
points) match byte-for-byte
Co-Authored-By: Claude Opus 5.5 <[email protected]>