TableMng.cpp redeclared a partial, mismatched YExcel API (CompoundDocument
instead of YCompoundFiles::CompoundFile, SetIntegerAlt/SetWStringAlt instead
of BasicExcelCell::Set(int)/Set(const wchar_t*), non-const getters, int
GetTotalRows/GetTotalCols, New(size_t)), so nothing could define it. The
YExcel span was already skipped as runtime_library code.
- ThirdParty/BasicExcel: Yap Chun Wei's public-domain BasicExcel 1.14.
Matches the binary: sizeof(CompoundFile)=0x330, workbook_ at 0x330,
worksheets_ at 0x488, yesheets_ at 0x494, BasicExcelCell 0x28, Workbook()
BOF constants 0x50600/0x7CD19A0/0xC0C9/0x306. Local changes:
- BasicExcel gains unknown_04A0[0x108]: all four operator new calls in
the original allocate 0x5A8, no code reads the tail.
- the default constructor is defined by TableMng.cpp (fn_20498).
- operator<<(wchar_t*) keeps its pre-C++20 overload explicitly.
- TableMng.cpp includes the real header; scores of its 13 functions are
unchanged (td check).
- data/compile.json: shape 4 gets -I ThirdParty/BasicExcel; the library is
shape 11 (shape 8 without the jsoncpp defines/include).
Owner-authorized source migration: 31 helper-only translation units were merged into their callers or existing inline headers; both build manifests updated. Includes the preserved source payload, Lua configuration matching wowdecomp, and exact malloca expansion without diagnostic pragmas.
449 native units compiled locally and 449 staged units compiled by the pinned server toolchain. No previously byte-matched function regressed. Compiler mapping diagnostics remain recorded as needs_cleanup, not accepted or peer-confirmed. Existing independent review records are preserved. README.md is intentionally unchanged.