Files
EscapistsReintroduced/tests/native/inventory_control/README.md
T

3.3 KiB
Raw Blame History

Isolated stock inventory runtime control

This diagnostic addon depends only on installed vanilla Reforger (58D0FB3206B6F859). It must run without successor Core, AI, Intel, Map or Chat loaded. It has its own project, world and prefab identities. It is not a player mission or a multiplayer/admission test.

Copy this directory alone as the hidden runner's addons/core; select Worlds/ERRIC_Inventory.ent and command-line Workbench plugin ERRIC_InventoryControlPlugin, with -erricInventoryControl 1 -errPlay 1. Keep the separate private profile, muted hidden Gamescope containment, prefix lock and source-bound archive. The fixture emits ERR SMOKE PASS/FAIL/COMPLETE with explicit vanilla-control scope. No automatic reload; required completion count is one. Native compilation/runtime execution is pending.

The fixture waits at most 30 seconds in actual local RplMode.None for SCR_PlayerController. It creates one stock {2F912ED6E399FF47}Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Unarmed.et, assigns that body once through native SetControlledEntity, waits for settling, then calls the controller's actual ActionOpenInventory. It verifies the exact body, native menu/top menu, root, native GridLayoutWidget named StoragesListSlot and its direct Frame0 child. The open screenshot is requested after 500 ms. Public native SCR_InventoryStorageManagerComponent.CloseInventory closes it; another 500 ms later the fixture verifies closure and requests a closed screenshot. World teardown disposes the fixture actor; the diagnostic does not delete a possessed actor or modify its inventory, health, or controls.

Action_OpenInventory is not a toggle: the installed implementation always invokes OpenInventory. The menu's Action_CloseInventory is protected. Therefore this control deliberately uses the public native close method instead of incorrectly invoking the open method twice. No keyboard input or user-input usability is claimed.

Retain all raw GUI errors. The suspected vanilla source path is:

  • scripts/Game/Player/SCR_PlayerController.c:965: ActionOpenInventory delegates to the body's native inventory manager.
  • scripts/Game/Inventory/SCR_InventoryStorageManagerComponent.c:1756,1824: normal inventory-open path uses ChimeraMenuPreset.Inventory20Menu.
  • scripts/Game/UI/Inventory/SCR_InventoryMenuUI.c:1694: ShowStoragesList creates {FC579324F5E4B3A4}UI/layouts/Menus/Inventory/InventoryCharacterGrid.layout beneath StoragesListSlot, then attaches SCR_InventoryStoragesListUI.
  • The installed InventoryMain.layout defines StoragesListSlot as a GridLayoutWidget; InventoryCharacterGrid.layout defines its root as OverlayWidget Frame0.
  • scripts/Game/UI/Inventory/SCR_InventoryStoragesListUI.c:301–302 unconditionally calls two LayoutSlot operations on that root, which now has a native grid slot.

Successor ordinary runs 16:55:12 and 16:58:32 recorded exactly two OverlayWidget Frame0 has invalid slot GridWidgetSlot ... expected LayoutSlot errors when opening inventory. This source chain is a concrete hypothesis; this control must reproduce it without successor addons before attributing runtime errors to vanilla. A completed fixture alongside retained GUI errors is a failed clean-runtime report, not an error-free qualification. Workbench control evidence does not establish ordinary-game module parity.