Repository navigation
ContentTool 1.1.1
A verification patch on top of 1.1.0. No behaviour of the importer or the baker changed; what changed is what is now measured, and one demo's documentation that was wrong.
Corrected numbers
ReplaceUiSoundsstated the wrong replacement lengths. Its README andmeta.jsonquoted 888 / 456 / 914 ms — the banks of 2026-08-27, before the.mp3s were regenerated. The shipped banks actually measure 340 / 444 / 601 ms. Both length columns are now read off the real files bytests\ObjCodecTests(DemoBankTests.cs): the replacement out of the shippedDist\Sounds\<mediaId>.bnk, the shipped one out of the game's own.wem. A re-bake that changes a length now fails the test instead of leaving the table wrong.
Verified in the game
docs\PROVEN-FOUNDATIONS.md has nothing filed PENDING-INGAME any more. Closed this cycle, each with the reading behind it:
- Animation clips — the uniform grid reaching the last key (
U8-grid), a STEP curve's hold (U8-step), and a.glbwhose clips are not all bakeable or not all uniquely named still baking (U9-plan). These paths no shipped file reaches, so they shipped a real fixture:lib\u9_probe.glb, read and baked by the bake self-check, so each row has two readings that can fail apart — what the importer made of the file, and what the engine made of the clip baked from it. - The loop flag (
U12) and the chosen clip (U13) — read off a live actor'sAnimatorOverrideController: the declared clips come backisLooping=True, the undeclared onesFalse, and theAnimatordrives the"play"clip even though it is deliberately not the file's first. The idle loop was also confirmed by eye in a live mission. - The drive verdict (
U9-verdict) on its pass path, and the donor-shader path (U3b/U3c) at runtime. Q1, the quit cutscene — the discriminating log line was finally captured, so it is the cutscene's own callback that quits the game, not the watchdog deadline.- A content mod that does not declare ContentTool as a dependency comes back on a cold launch through the startup reconcile alone (
demos\NoDepTexture). GUI_StatsPlusClickis pinned: the soldier progression screen's three stat+buttons (Willpower, Strength, Speed), found live rather than guessed — the event is wired by def, not by name in code, which is why it had zero hits in the decompile.