Fix inventory layout integration and qualify ordinary UI and radio guidance

This commit is contained in:
2026-09-19 18:17:51 +02:00
parent 5c7719c19c
commit 67de3752fb
125 changed files with 18310 additions and 42 deletions
+12 -2
View File
@@ -4,6 +4,16 @@ The [first complete keyboard cycle](evidence/game-2026-09-19-165832-input-invent
The [read-only source audit](evidence/inventory-source-audit-2026-09-19-1700/review.json) hashes five extracted vanilla files without copying them into successor addons. Native `SCR_InventoryMenuUI.ShowStoragesList` creates `{FC579324F5E4B3A4}InventoryCharacterGrid.layout` inside `StoragesListSlot`. The stock `{981ACF4F45EAECAE}InventoryMain.layout` defines that parent as a GridLayoutWidget; the child root is the overlay named Frame0. After its base initializes the widget, `SCR_InventoryStoragesListUI.HandlerAttached` invokes exactly two linear LayoutSlot operations: setting size mode and fill weight. Both are incompatible with the grid child slot. The native deferred storage-list initialization also matches the error timing.
This is a source-consistent explanation, not a completed vanilla-only runtime control. No successor override of those layouts or handlers was found. Do not suppress these errors or copy/replace the entire inventory implementation on this evidence alone. Next, reproduce an inventory open in an isolated stock control and compare widget behavior. A compatibility correction, if justified, must retain base initialization, RefreshList and the correct slot semantics rather than skipping inventory initialization.
The [stock control](evidence/inventory-control-2026-09-19-stock-first/control-review.json) independently reproduces the **same two inventory slot errors**, with no successor addons loaded. Its single loaded-addon block contains exactly engine Core (`5614BBCCBB55ED1C`), vanilla Arma Reforger (`58D0FB3206B6F859`) and the isolated diagnostic addon (`0FFD909E91FC329B`). The fixture records 13 passing assertions and one completion: it opens the actual stock inventory for a stock body, verifies the menu/body/root and direct Frame0-under-grid relationship, then closes it. This is a scripted native API control, not an ordinary keyboard test.
The native open-labelled screenshot shows the previous world frame. Its file and request marker do not prove inventory visibility. A later screenshot must wait for rendering and revalidate the exact still-open menu before capture. The current source remains 192 authored addon files; only the test tooling and evidence changed during the input experiment. Original Escapists missions are unchanged.
The control is **not clean and not isolated from other native errors**. Its [unaltered report](evidence/inventory-control-2026-09-19-stock-first/report.json) retains nine engine errors: the target GUI pair plus seven vanilla vehicle WORLD unknown-keyword errors (`SlidingTrackMaterial` once and `Parent` six times). Consequently `native_clean` is false and the native runner exits 1. The strict control field `stock_slot_error_reproduced` also remains false because its predicate requires exactly two total engine errors, both matching the target. Observing the target pair independently supports the stock-layout diagnosis; it does not change that failed strict result or excuse the other seven errors. The [separate findings record](evidence/inventory-control-findings-2026-09-19-stock-first/findings.json) records this distinction and hashes the original artifacts without modifying them.
The control's [open-labelled image](evidence/inventory-control-2026-09-19-stock-first/erric-inventory-open.png) is 501×225 and shows only the world view, despite the fixture's 500 ms delay and retained-menu assertion. It is not visual evidence of inventory visibility. A correct native menu/root assertion and a screenshot request do not prove rendered inventory pixels.
The stock control shows that the original pair also occurs without successor addons. The bounded adapter preserves stock base initialization and RefreshList while placing the existing storage-list root under a successor-owned linear-layout host; it does not filter errors or replace vanilla resources.
The separate [180423 ordinary adapter run](evidence/game-2026-09-19-180423-inventory-ready/runner.json.txt) is clean and completes all six verified keyboard events with 401 native observer samples, verified window ownership and confirmed cleanup. On the normal first-open path, the native LayoutSlot operations succeed after reparenting, initialization progresses from stage 6/five hit-zone points to stage 7/seven, and the overlay is absent before capture. Its [delayed image](evidence/game-2026-09-19-180423-inventory-ready/err-input-a75280fda4494a0ca7b14a693cf310e9-open.bmp) shows the character, vicinity and clothing slots. This establishes first-open slot compatibility and visible inventory content, not whole-interface readability, item transfers, repeated refresh/reopen behavior or multiplayer.
The earlier clean [175333 adapter image](evidence/game-2026-09-19-175333-inventory-adapter/runner.json.txt) retained a loading spinner. The clean [175938 run](evidence/game-2026-09-19-175938-inventory-loading-bound/runner.json.txt) emitted no open image; the cause is not established, so it must not be described as a stuck overlay. The first keyboard-cycle and stock-control images remain prior-world-frame evidence only. Historical raw logs, failure reports and images are unchanged.
The first keyboard-cycle evidence used 192 authored addon files; the 180423 run used unchanged 193-file sources. Original Escapists missions remain untouched. The current evidence does not qualify unrelated gameplay changes, full escape, multiplayer or performance acceptance.