fix(items): port retail useability and autowear rejection
Use the exact low USEABLE_NO-bit predicate so reset/zero-valued direct-use items such as Blackmoor's Favor reach the ordinary Use request. Port AutoWear's clothing-priority blocker lookup and exact named system notice through the shared activation owner. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
60387668d0
commit
f71f947475
13 changed files with 289 additions and 57 deletions
|
|
@ -15,11 +15,14 @@ assessment information, equipped-child picking, vendor browsing, and
|
|||
server-authoritative vendor transactions. Slice 1's DAT-authored arrow-only
|
||||
favorite-spell scrollbar, fixed 18-cell capacity, authored arrow sides/media,
|
||||
and persistent manual offset passed the connected gate. Slice 2 is active: the
|
||||
status hand now follows canonical selection/object notices, ghosts empty and
|
||||
unusable selections, and routes enabled weapons, direct-use items, and
|
||||
use-on-target tools through the existing interaction transaction and cursor
|
||||
owners. Its connected hand-state gate is pending; the magnifying-glass Assess
|
||||
command follows in the same slice.
|
||||
status hand follows canonical selection/object notices, ghosts empty and
|
||||
explicitly unusable selections, and routes enabled weapons, direct-use items,
|
||||
and use-on-target tools through the existing interaction transaction and
|
||||
cursor owners. Its connected state gate passed. A named-retail correction now
|
||||
treats reset/absent useability zero as usable, allowing Blackmoor's Favor to
|
||||
send ordinary Use, while shared AutoWear reports the exact overlapping worn
|
||||
item that must be removed. That correction awaits its connected gate; the
|
||||
magnifying-glass Assess command follows in the same slice.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -91,8 +91,10 @@ broaden the feature surface.
|
|||
|
||||
Slice 1's 18-cell favorite-spell overflow bar is user-accepted. Slice 2 is
|
||||
active: the status hand's selected-object availability and existing
|
||||
Use/AutoWield/use-on-target command routing are code-complete, with the
|
||||
connected state/cursor gate pending before the Assess half continues.
|
||||
Use/AutoWield/use-on-target command routing passed their connected gate.
|
||||
The follow-up retail correction for zero-valued direct-use items and named
|
||||
AutoWear blockers is code-complete and awaiting its connected gate before the
|
||||
Assess half continues.
|
||||
|
||||
Carried:
|
||||
#153 far-teleport residual, #116 slide-response, the remaining R6 ownership cleanup plus
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
# World interaction completion — pre-M4 program
|
||||
|
||||
**Status:** Slice 1 user-accepted 2026-07-23. Slice 2 Use-hand state and command
|
||||
path code-complete; connected visual gate pending before Assess continues.
|
||||
**Status:** Slice 1 user-accepted 2026-07-23. Slice 2 Use-hand selection state
|
||||
passed its connected gate. The follow-up zero-useability/AutoWear correction is
|
||||
code-complete and awaits its connected gate before Assess continues.
|
||||
**Milestone:** M4 prerequisite/preamble.
|
||||
**Architecture:** retained gameplay UI over shared selection, object, and
|
||||
interaction state. `GameWindow` remains a composition/callback shell.
|
||||
|
|
@ -69,6 +70,20 @@ AP-122. The 14-test Core interaction focus, 49-test toolbar focus, Release
|
|||
solution build, 3,474 App tests / 3 skips, and 7,848 complete-solution tests /
|
||||
5 skips pass.
|
||||
|
||||
The connected selection-state gate passed. Its follow-up exposed two deeper
|
||||
shared-policy defects, now corrected from named retail plus the matching
|
||||
binary. `ItemUses::IsUseable @ 0x004FCCC0` tests only `USEABLE_NO`; reset/absent
|
||||
value zero is usable, so Blackmoor's Favor and other zero-valued direct-use
|
||||
items now emit the ordinary Use request. AutoWear now applies
|
||||
`CPlayerSystem::AutoWearIsLegal @ 0x0055EF40` through the same double-click and
|
||||
toolbar-hand path, resolves the overlapping worn object from the
|
||||
retail-ordered equipment projection, and emits the exact system line
|
||||
`You must remove your <item> to wear that`. Research:
|
||||
[`../research/2026-07-23-retail-item-use-and-autowear-pseudocode.md`](../research/2026-07-23-retail-item-use-and-autowear-pseudocode.md).
|
||||
The focused 25-test Core and 85-test App sets pass, as do the warning-free
|
||||
Release solution build, 3,476 App tests / 3 skips, and 7,857 complete-solution
|
||||
tests / 5 skips.
|
||||
|
||||
## Slice 1 — spell-bar overflow arrows
|
||||
|
||||
### Retail oracle
|
||||
|
|
@ -148,7 +163,8 @@ Named retail references and executable pseudocode are recorded in
|
|||
### Remaining Slice 2 work
|
||||
|
||||
- Port the magnifying-glass Assess command state and activation.
|
||||
- Run the connected Use-hand visual gate: no selection, spell component,
|
||||
weapon, and health kit.
|
||||
- Run the connected correction gate: activate Blackmoor's Favor, then try to
|
||||
equip armor blocked by an overlapping worn item and verify the named system
|
||||
message.
|
||||
- Continue directly into the Assess information slice after the combined
|
||||
status-control gate.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue