fix(ui): port retail partial stack transfers
Route the selected stack quantity through retail GetObjectSplitSize semantics, send exact split-to-container and split-to-ground actions, and keep the original object in place until the server publishes the newly guided stack. Cover selection scoping, wire bytes, container placement, and world drops with conformance tests. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
6005c51c4d
commit
ea72c395c9
14 changed files with 280 additions and 19 deletions
|
|
@ -509,8 +509,9 @@ server confirmation despite its name. Release build is warning-free and 4,660 te
|
|||
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.
|
||||
stack-size refresh, and selected-source item-holder amounts. Controls/polish passed
|
||||
the live gate. Partial container/ground transfers now send retail `0x0055/0x0056`;
|
||||
their live action gate remains pending. The inventory-button gate remains pending.
|
||||
|
||||
### 4.4 Finish toolbar controls
|
||||
|
||||
|
|
@ -526,7 +527,7 @@ selected-stack visual gates remain pending.
|
|||
- [ ] Replace the PWD-only health gate with the exact attackable/player/pet policy.
|
||||
- [ ] 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.
|
||||
item-holder merge, container-split, and ground-split payloads.
|
||||
|
||||
**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
|
||||
|
|
@ -535,11 +536,16 @@ binary pinned stack-name `"%d %hs"`, numeric entry `"%d"`, and the slider's exac
|
|||
`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,691-test suite are green. Gate polish preserves CreateObject
|
||||
build and 4,697-test suite are green. Gate polish preserves CreateObject
|
||||
`PluralName` through Core.Net into `ClientObject.GetAppropriateName`, honors the
|
||||
entry's authored right alignment, and lets the pointer-owned thumb remain at exact
|
||||
minimum/maximum endpoints instead of snapping back from the quantized amount. The
|
||||
live visual gate follows.
|
||||
controls/polish live gate passed. `ItemHolder::GetObjectSplitSize @ 0x00586F00`
|
||||
now scopes that quantity to the selected object for all transfers. Partial inventory
|
||||
moves send `StackableSplitToContainer 0x0055`; partial drag-out drops send
|
||||
`StackableSplitTo3D 0x0056`; neither path moves the original object optimistically
|
||||
because the authoritative destination stack receives a server-assigned guid. The
|
||||
partial-transfer live action 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