refactor(input): own gameplay action routing
Move the sole semantic action-priority graph, combat and diagnostic commands, and retained-root item-drop lifetime behind focused typed owners. Preserve retail toggle behavior, explicit auto-wield cancellation, shutdown quiescence, and symmetric callback cleanup. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
8b8afeefa3
commit
4eae9b4f5a
25 changed files with 2608 additions and 418 deletions
|
|
@ -3,9 +3,9 @@
|
|||
## Current state
|
||||
|
||||
The behavior-preserving App ownership campaign is complete through Slice 7 and
|
||||
Slice 8 checkpoints A–E. `GameWindow.cs` moved from the 2026-07-21 baseline of
|
||||
15,723 lines / 278 fields / 205 methods to 4,266 lines / 194 fields / 65
|
||||
methods: 11,457 lines (72.9%) were removed without changing accepted gameplay
|
||||
Slice 8 checkpoints A–F. `GameWindow.cs` moved from the 2026-07-21 baseline of
|
||||
15,723 lines / 278 fields / 205 methods to 4,057 lines / 198 fields / 54
|
||||
methods: 11,666 lines (74.2%) were removed without changing accepted gameplay
|
||||
or rendering behavior.
|
||||
|
||||
| Slice | Ownership moved out | Closeout size |
|
||||
|
|
@ -18,6 +18,7 @@ or rendering behavior.
|
|||
| 6 | complete update-frame orchestration | 7,026 / 241 / 108 |
|
||||
| 7 | complete render-frame orchestration and failure recovery | 4,666 / 196 / 70 |
|
||||
| 8 A–E | shell freeze, native/session/environment composition, reversible pointer/input/framebuffer ownership | 4,266 / 194 / 65 |
|
||||
| 8 F | sole gameplay action route, typed commands, retained-root callback lifetime | 4,057 / 198 / 54 |
|
||||
|
||||
Slice 8 is an ordered checkpoint campaign rather than another feature-body
|
||||
move. A froze/pruned the shell boundary; B gave all nine native window callback
|
||||
|
|
@ -43,6 +44,17 @@ run only after session retirement. This prevents both copied callback reentry
|
|||
and a failed event accessor from blocking F653/transport teardown. The carried
|
||||
non-retail post-filter camera scalars are explicitly registered as TS-56.
|
||||
|
||||
F adds `GameplayInputActionRouter` as the sole `InputDispatcher.Fired`
|
||||
subscriber while preserving the frozen action priority. Typed command owners
|
||||
replace the remaining combat, diagnostic, window/player mode, item-target,
|
||||
and Escape bodies. `RetainedUiGameplayBinding` owns the outside-UI item-drop
|
||||
event. The two deferred command slots release their targets before session
|
||||
retirement; the retained binding alone detaches its physical edge
|
||||
transactionally afterward. Retail
|
||||
review also corrected the carried default-combat mismatch: active combat
|
||||
short-circuits directly to peace, and an incompatible Held object prints the
|
||||
exact retail notice without a wire request or local mode mutation.
|
||||
|
||||
Slice 6 implementation commits are `99a3e819`, `4e4aac2c`, `0bc9fda9`,
|
||||
`c5570383`, `eeb0f6b4`, `947c61d2`, and production cutover `e91f3102`.
|
||||
Slice 7 implementation commits are `7e4cfb37`, `733126a2`, `bc6f09f9`,
|
||||
|
|
@ -99,6 +111,10 @@ review rule live in `docs/architecture/code-structure.md`.
|
|||
|
||||
## Accepted verification
|
||||
|
||||
- Slice 8 Checkpoint F Release suite: 7,524 passed / 5 fixture or environment
|
||||
skips; App 3,155/3 skips, 54 focused App ownership tests and 20 Core combat
|
||||
conformance tests pass, and all three independent corrected-diff reviews are
|
||||
clean.
|
||||
- Slice 8 Checkpoint E Release suite: 7,477 passed / 5 fixture or environment
|
||||
skips; App 3,108/3 skips, UI Abstractions 533/0, and all three independent
|
||||
corrected-diff reviews are clean.
|
||||
|
|
@ -131,8 +147,8 @@ review rule live in `docs/architecture/code-structure.md`.
|
|||
|
||||
## Next work
|
||||
|
||||
Slice 8 checkpoints F–L group the remaining action routing, settings, resource
|
||||
ownership, startup, and shutdown wiring and reduce Silk callbacks to
|
||||
Slice 8 checkpoints G–L group the remaining settings, resource ownership,
|
||||
startup, and shutdown wiring and reduce Silk callbacks to
|
||||
narrow calls into input, update, render, resize, focus, and shutdown owners.
|
||||
It removes leftover feature state only where Slices 1–7 already established a
|
||||
canonical owner; it does not redesign gameplay, rendering, or resource lifetime.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue