feat(ui): port retail selected-stack quantity
Bind the authored stack count entry and horizontal slider to one Core split-quantity owner, preserve retail count-first naming and exact 1000-step rounding, refresh on stack changes, and consume the selected amount during merges. Conformance covers the production DAT fixture and retained pointer/focus paths. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
dc1649c493
commit
a20e5c68c7
19 changed files with 595 additions and 51 deletions
|
|
@ -505,12 +505,12 @@ overlay, while aliases stay neutral. Inventory now tries the pure named-retail
|
|||
stack-merge legality/amount planner before ordinary insertion, sends `0x0054`,
|
||||
broadcasts `FullMergingItem` immediately from the attempt owner, rekeys the toolbar
|
||||
with existing-destination removal, and selects the target. The notice is not a
|
||||
server confirmation despite its name. AP-101 still covers the absent shared split
|
||||
entry/slider; until it lands, merge requests use the whole source stack before the
|
||||
retail destination-capacity clamp. Release build is warning-free and 4,660 tests
|
||||
pass. The compatible-stack live gate passed 2026-07-11; it exposed the expected
|
||||
Wave 4.4/AP-101 gap that the selected strip still displays one instead of the
|
||||
stack count and has no split slider. The inventory-button live gate remains pending.
|
||||
server confirmation despite its name. Release build is warning-free and 4,660 tests
|
||||
pass. The compatible-stack live gate passed 2026-07-11 and exposed the expected
|
||||
Wave 4.4/AP-101 selected-stack gap. Wave 4.4a now implements that gap: exact count-first
|
||||
name formatting, authored entry/slider media, one Core split-quantity owner, live
|
||||
stack-size refresh, and selected-source merge amount. The inventory-button and
|
||||
selected-stack visual gates remain pending.
|
||||
|
||||
### 4.4 Finish toolbar controls
|
||||
|
||||
|
|
@ -518,12 +518,24 @@ stack count and has no split slider. The inventory-button live gate remains pend
|
|||
Use, and Examine actions; dispatch panel buttons through the window registry,
|
||||
ghosting unavailable panels rather than constructing placeholders.
|
||||
- [ ] Make open/closed states event-driven from `RetailWindowManager`.
|
||||
- [ ] Complete selected-object item mana, formatted stack count, stack entry and
|
||||
split slider; port `RecvNotice_UpdateItemMana`, `RecvNotice_SplitStack`, and
|
||||
`HandleSelectionChanged` precedence.
|
||||
- [ ] Complete selected-object item mana and port `RecvNotice_UpdateItemMana`.
|
||||
- [x] Complete formatted stack count, stack entry and split slider, the applicable
|
||||
`RecvNotice_SplitStack` activation behavior, and `HandleSelectionChanged` stack
|
||||
precedence. Vendor-specific initial quantity remains naturally dormant until a
|
||||
vendor panel owns an active vendor id.
|
||||
- [ ] Replace the PWD-only health gate with the exact attackable/player/pet policy.
|
||||
- [ ] Add item-mana query/cancel state, health query cancellation, and one shared
|
||||
split-quantity owner for the entry, slider, and item drag payload.
|
||||
- [ ] Add item-mana query/cancel state and health query cancellation.
|
||||
- [x] Add one shared split-quantity owner for the entry, slider, and selected-source
|
||||
item-holder merge payload.
|
||||
|
||||
**Wave 4.4a implementation (2026-07-11):** static cdb against the matching retail
|
||||
binary pinned stack-name `"%d %hs"`, numeric entry `"%d"`, and the slider's exact
|
||||
1000-step truncation formula. `StackSplitQuantityState` is the single Core owner;
|
||||
`SelectedObjectController` binds authored elements `0x100001A3/A4`, and
|
||||
`InventoryController` consumes the value only when the dragged source is selected.
|
||||
The horizontal scrollbar remains the generic retained `UiScrollbar` in scalar mode,
|
||||
using the DAT track/thumb rather than panel-local drawing. The warning-free App Release
|
||||
build and 4,683-test suite are green; the live visual gate follows.
|
||||
|
||||
**Wave 4.1 implementation (2026-07-11):** bare `1..9` now use slots 0..8,
|
||||
Ctrl+`1..9` selects them, Alt+`5..9` uses slots 13..17, and `0` creates a
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue