The quest log is on screen. Rows come from the live tracker joined to the authored catalog, the Status column runs QT4's port of FillProgressString, and the detail pane shows contact, locations, description and the other timer. Two things measured rather than assumed, each now pinned by an installed-DAT test rather than left to the commit message: The tab pairing is read from the authored 0x2E table, not inferred from x-order — the FA campaign had to correct exactly that mistake, and Contracts turns out to be the authored DEFAULT tab (0x32 = True), so opening on the wrong one would have looked like an empty panel. The open path needed no keybind at all. Toolbar button 0x1000055A authors 0x10000029 = 0x19 and has been sitting in ToolbarController.PanelButtonIds since the toolbar was ported — it just had no panel behind it, so clicking it did nothing. Registering slot 25 finished a wiring that was already three-quarters present. The list rebuild is revision-gated while the repeat countdown is not: nothing on the wire changes as a cooldown runs down, so a rebuild-gated timer would freeze on screen, and a per-frame rebuild would reset the player's scroll under them. Both directions have a test. Deliberately inert: the Abandon button (retail's abandon path is a contract-registry command this campaign did not port — authored and visible, but wiring a no-op handler would look responsive and lie), and the Journal notes and Page List tabs, which are their own feature. Campaign QT slices 5 and 6 of 6 — code-complete, connected gate owed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| A8CellAudit | ||
| AnimHookScan | ||
| cdb | ||
| cdb-scripts | ||
| diag-logs | ||
| dump-keymap | ||
| ghidra_project | ||
| IconForge | ||
| InspectCoatTex | ||
| jsonl | ||
| LayoutDump | ||
| MosswartArt | ||
| pdb-extract | ||
| PesChainAudit | ||
| ProjectileVfxAudit | ||
| RainMeshProbe | ||
| RetailTimeProbe | ||
| SetupInspect | ||
| ShaderCompiler | ||
| SkyObjectInspect | ||
| SpellDump | ||
| StarsProbe | ||
| TextureDump | ||
| WeatherEnumerator | ||
| WeatherSetupProbe | ||
| analyze_265_steep_slope_capture.py | ||
| analyze_269_slope_stop_capture.py | ||
| analyze_resolve_capture.py | ||
| audit-test-inventory.ps1 | ||
| CampaignLaProcessCorrelation.ps1 | ||
| capture-campaign-la-session-process.ps1 | ||
| compile-shaders.ps1 | ||
| connected-dense-town.route.txt | ||
| connected-r6-soak.route.txt | ||
| connected-world-lifecycle.route.txt | ||
| connected-world-reconnect.route.txt | ||
| decompile_acclient.py | ||
| decompile_full.py | ||
| DecompileTargets.java | ||
| ghidra_decompile.py | ||
| new-campaign-la-update-fixture.ps1 | ||
| publish-bin.ps1 | ||
| README.md | ||
| run-blank-world-ab-probe.ps1 | ||
| run-blank-world-surface-probe.ps1 | ||
| run-campaign-la-preflight.ps1 | ||
| run-connected-loss-gate.ps1 | ||
| run-connected-r6-soak.ps1 | ||
| run-connected-world-lifecycle-gate.ps1 | ||
| run-offline-pixel-gate.ps1 | ||
| run-offline-vulkan-capture.ps1 | ||
| run-portal-churn-soak.ps1 | ||
| run-release-gate.ps1 | ||
| run-repeat-connected-gate.ps1 | ||
| test-campaign-la-gate-helpers.ps1 | ||
| test-campaign-la-script-safety.ps1 | ||
| test-campaign-la-session-status.ps1 | ||
| update-package-locks.ps1 | ||
| verify_un2_fmul.py | ||
Maintained .NET tools
Every .csproj under tools/ is part of AcDream.slnx. The complete Release
gate restores and builds these tools, so a missing personal checkout or an API
change cannot leave a tracked tool silently broken. They are diagnostic/manual
programs: the gate builds them but does not run data-dependent investigations.
| Tool | Purpose | Runtime prerequisite |
|---|---|---|
A8CellAudit |
Inspect landblock, EnvCell, portal, and collision topology. | Installed AC DAT files / the arguments documented by the program. |
dump-keymap |
Extract the retail master input maps and decoded actions. | Installed client_portal.dat. |
PesChainAudit |
Walk weather PES call chains and particle emitters. | Installed AC DAT files. |
ProjectileVfxAudit |
Audit projectile physics-script and particle-emitter VFX mappings. | Installed AC DAT files. |
RainMeshProbe |
Inspect rain surfaces, polygon sidedness, and generated mesh counts. | Installed AC DAT files. |
RetailTimeProbe |
Read retail time-of-day and sky state for comparison. | Windows, a running retail client, and process-read access. |
SetupInspect |
Dump Setup parts, placement poses, and animation frames. | Installed AC DAT files and a Setup ID. |
ShaderCompiler |
Compile the Vulkan GLSL shader set to committed SPIR-V. | Source and output directory arguments. |
SkyObjectInspect |
Inspect Dereth sky/day-group objects and texture data. | Installed AC DAT files. |
StarsProbe |
Audit sky-object geometry, UV ranges, and surfaces. | Installed AC DAT files. |
TextureDump |
Dump render-surface statistics and texture images. | Installed AC DAT files. |
WeatherEnumerator |
Enumerate weather sky objects and their bounds. | Installed AC DAT files. |
WeatherSetupProbe |
Inspect the parts and surfaces of weather Setups. | Installed AC DAT files. |
Build the complete maintained graph with:
dotnet restore AcDream.slnx --locked-mode --force-evaluate
dotnet build AcDream.slnx -c Release --no-restore
Use pwsh ./tools/run-release-gate.ps1 for the authoritative bounded gate.
Package versions and lock-file maintenance are documented in
docs/release-gate.md.