Skip to content

ContentTool 1.1.1

Choose a tag to compare

@UberMorgott UberMorgott released this 01 Sep 07:41
· 448 commits to main since this release

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

  • ReplaceUiSounds stated the wrong replacement lengths. Its README and meta.json quoted 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 by tests\ObjCodecTests (DemoBankTests.cs): the replacement out of the shipped Dist\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 .glb whose 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's AnimatorOverrideController: the declared clips come back isLooping=True, the undeclared ones False, and the Animator drives 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_StatsPlusClick is 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.