Three findings from the user's first Configure Keyboard look (OP8 gate, 2026-08-14), each root-caused against the named retail decomp: - #394 row-caption font: the synthesized action-label UiText never set DatFont and fell to the debug bitmap font. The authored row template (0x21000009/0x1000002F, retail UIOption_ActionKeyMap) carries FontDid 0x4000000A (18px serif) — Bind now takes resolveTemplateFont and applies the template's own authored font, resolved once per template pair. - #395 key captions: raw enum spellings ("Shift+ShiftLeft") replaced by the port of CInputManager_WIN32::GetNameFromKey @0x00687F40 / GetNameFromKey_Internal @0x00687800 (RetailKeyNames): DAT string-table override by DIK-name hash (key enum 4 -> 0x2300000A, meta enum 5 -> 0x2300000B, delimiter enum 3 -> 0x23000007 — GetDIDByEnum category 4, live-probed), else the OS keyboard layout's own key name ("SKIFT") via PlatformKeyNameProvider (Win32 GetKeyNameTextW — register row AD-96 for the DirectInput-vs-GetKeyNameText adaptation), else the DIK-suffix spelling. Bare modifier-key bindings show only the key name. - #396 capture feedback: clicking a mapping button now opens retail's instruction dialog (InitiateBinding @0x004899D0 -> OpenMapWarnDialog @0x00488A00): a type-2 WAIT dialog on retail's MapWarn queue key 0x10000001 with ID_ActionKeyMap_MapInstructions (0x23000004, ACTION variable interpolated), closed on key hit or ESC through the capture callback; capture is not armed if the dialog cannot open, matching retail. New RetailWaitDialogView (wait root 0x31 — same authored popup/message pair 0x3D/0x3E as the confirmation root, live-DAT probed) behind a shared IRetailDialogView presenter seam. Probe evidence (env-gated, kept): KeyboardConfigLiveMountProbeTests.ProbeKeyboardFontsAndKeyNameStrings. Register: AD-96 filed. Gate script OP8 section updated (step 4 rewritten; the "pressed/active state is enough" contract is retired). Full Release solution suite green (13,424 passed / 4 skips). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
1528e5693b
commit
30fa6ee507
16 changed files with 1105 additions and 24 deletions
|
|
@ -942,6 +942,28 @@ Three live runs against local ACE (`127.0.0.1:9000`, `+Acdream`,
|
|||
> Save As...), Command + Mapping 1-3 column headers, and NOTHING
|
||||
> rendered above or outside the framed panel.
|
||||
|
||||
> **Re-gate note (2026-08-14 fix round — #394/#395/#396):** three findings
|
||||
> from the first OP8 look at this screen, all fixed:
|
||||
> 1. **Row-caption font (#394):** the action labels ("Move Forward", …)
|
||||
> now draw in the row template's authored 18px serif (FontDid
|
||||
> `0x4000000A`), not the debug bitmap font. The gothic section headers
|
||||
> and the key-button captions were already using their authored fonts.
|
||||
> 2. **Key caption text (#395):** key buttons now show retail's localized
|
||||
> key names — DAT overrides first ("Left Ctrl"/"Left Alt" are the only
|
||||
> authored ones), then YOUR keyboard layout's own name (a Swedish
|
||||
> layout shows "SKIFT" for the Shift key, exactly like your retail
|
||||
> screenshot), modifiers joined with "+" (chords like "SKIFT+M"), and a
|
||||
> binding to a bare modifier key shows just the key name — never
|
||||
> "Shift+ShiftLeft". Mouse chords keep enum spellings (AD-96).
|
||||
> 3. **Capture-instruction dialog (#396):** clicking a mapping button now
|
||||
> opens retail's own instruction dialog ("The next key you press or
|
||||
> mouse button that you click will be mapped to the '<action>'
|
||||
> action. … Press the ESC key to cancel.") — the wait-dialog shape from
|
||||
> your retail screenshot, with the row's action name interpolated. It
|
||||
> closes when you press the new key OR press ESC. Step 4 below is
|
||||
> REWRITTEN accordingly; the old "a pressed/active state is enough"
|
||||
> contract is retired.
|
||||
|
||||
**Known, tracked behaviors — do NOT file as defects (read before testing):**
|
||||
|
||||
- **Shared combat keys prompt a false conflict (ISSUES #373).** Retail
|
||||
|
|
@ -989,11 +1011,13 @@ line calling it INERT no longer applies.
|
|||
### Rebind a movement key live
|
||||
|
||||
4. **On the Movement tab, find "Move Forward"** (should show two bound
|
||||
keys, "W" and "Up"). Click the SECOND key button (currently "Up").
|
||||
The button should visually indicate it is listening for input
|
||||
(retail's own capture-prompt text is not wired to a tooltip in this
|
||||
port — a simple pressed/active state is enough to confirm capture
|
||||
started).
|
||||
keys — "W" and your layout's name for the up-arrow key). Click the
|
||||
SECOND key button. **Retail's capture-instruction dialog opens**
|
||||
(#396 re-gate): "The next key you press or mouse button that you
|
||||
click will be mapped to the 'Move Forward' action. …Press the ESC
|
||||
key to cancel." — naming THIS row's action. Press ESC once first:
|
||||
the dialog closes and nothing changes. Click the button again to
|
||||
re-open it for step 5.
|
||||
5. **Press a different key**, e.g. `U`. The button should immediately
|
||||
update to show "U".
|
||||
6. **Move your character forward using W and U** (both should now work
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue