Game-file footprint unchanged: still one line in main.lua. The slider turned out to be genuinely generic: modules/slider.lua is a factory, so one wrapper on it narrates all four users -- craft, refine, trade and ingame_wait (the wait-N-turns screen). Same leverage as the console.print and inventoryCursorPopup patches. The options screens do NOT share it, though: config_menu changes values through config.increase/config.decrease, so it needed its own descriptor. It reports tab, option name and value, and its focus key includes the value so left/right re-announce even though the focused option has not moved. states/_itemgrid.lua is now shared by inventory, craft, refine and trade, all of which build a views/inventoryWindow. It stays silent while confirmationWindowEnabled is set so the slider owns speech during quantity selection instead of the two fighting. testbed gains walkTo(), which navigates using the game's own pathfinder rather than hardcoded direction sequences -- those drift as soon as anything moves the player. The config test only adjusts a value when the focused option is demonstrably safe, and puts it straight back. The slider patch is applied and confirmed by the self-test but not exercised live: ingame_wait is unreachable in the prologue because tutorial_bed overrides bed's tryInteractFunction with an empty function by design, and the crafting screens need an alchemy table and real items. Recorded as a NOTE rather than a failing check, since it is a property of the game and not of the mod. 25/25 testbed checks, history unit tests passing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3 lines
122 B
Lua
3 lines
122 B
Lua
-- states/refine.lua -- shared item-grid descriptor, see _itemgrid.lua
|
|
return require("accessibility.states._itemgrid")()
|