feat(ui): Campaign OP slice OP3 — Options panel shell, open paths, Gameplay tab
Mounts retail's Options panel (LayoutDesc 0x2100002B resolved through host 0x2100006E slot 0x1000018D, gmPanelUI key 10) via the same catalog-import pattern CharacterController already validates, registered through RetailPanelUiController so it shares retail's "one active gmPanelUI child" mutual exclusion with every other sibling panel for free. F11 and the toolbar's options button (0x1000019B, already authoring panel id 10) both now open it; the close button fires the same ToggleOptionsPanel action. OptionPageModel (OptionPage/BoolOptionRow) ports retail's exact Apply/Reset/Defaults/visibility semantics from UIOption_Checkbox/PlayerOptionPage — LED clicks apply live immediately, Apply commits every row unconditionally + flushes the batched blob, Reset reverts only Changed rows, Defaults restores without committing, and tab-switch/window-hide revert uncommitted edits. Wired for all four tabs; this slice registers real rows on none of them (Gameplay authentically has none — a pure button list). UiTabPanel gains an ActivePageChanged event so the page model can hook every tab transition, including the initial default-tab activation. The seven Gameplay-tab buttons: Exit Game reuses the existing graceful window-close path; Exit to Character Selection gets retail's confirmation dialog and byte-verified mid-air refusal but still behaves as Exit Game (AD-74 — no pre-world character-select flow exists); Configure Keyboard and In-Game Help Files are inert this slice (AD-76 for Help — the plugin retail depends on doesn't exist); Urgent Assistance/Report Abuse short-circuit to their own byte-verified failure text through the interface-text seam instead of ShellExecute against a dead URL (AD-75); Use Mouse Turning Settings runs the pure MouseTurningSettingsMacro port, persisting five new CameraTurningSettings preferences and sending PlayerOption.UseMouseTurning — TS-74 records that acdream has no persistent mouse-turning camera mode for the bit to drive yet. Full Release suite: 12,918 passed / 4 skipped / 0 failed (baseline 12,871/4/0 — only new tests added). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
5242de9f15
commit
9d26ecc623
27 changed files with 25696 additions and 8 deletions
114
docs/research/2026-08-11-campaign-op-test-script.md
Normal file
114
docs/research/2026-08-11-campaign-op-test-script.md
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
# Campaign OP connected-gate test script
|
||||
|
||||
**Status:** OP3 section only. Later slices (OP4-6, OP8) append their own
|
||||
sections here as they land; the campaign's OP9 closeout gate is this
|
||||
document complete plus every slice code-complete.
|
||||
|
||||
This document is the script the user runs against the live connected
|
||||
client (`ACDREAM_LIVE=1` against the local ACE server) to accept each
|
||||
slice. Each item states what to do and what retail-faithful behavior to
|
||||
expect. Anything marked **INERT** is authored and clickable but
|
||||
deliberately does nothing yet — that is the correct, contracted behavior
|
||||
for this slice, not a bug.
|
||||
|
||||
---
|
||||
|
||||
## OP3 — panel shell, open paths, Gameplay tab
|
||||
|
||||
### Opening and closing the panel
|
||||
|
||||
1. **Press F11.** The Options panel opens — a floating, resizable window
|
||||
titled by its own chrome (no title-bar text is authored; the window
|
||||
itself is the visual identity). The **Gameplay Options** tab is
|
||||
selected by default (leftmost tab, matching the user's own retail
|
||||
screenshot).
|
||||
2. **Press F11 again.** The panel closes.
|
||||
3. **Click the toolbar's Options button** (the icon at the right end of
|
||||
the shortcut row, next to Inventory). The panel opens. If a DIFFERENT
|
||||
`gmPanelUI`-family panel was already open (Character Info, Skills,
|
||||
Vitae, Inventory, etc.), opening Options closes it first — this is
|
||||
retail's real "one active panel" behavior (`gmPanelUI`'s shared
|
||||
geometry/exclusive-child model), not new to this panel.
|
||||
4. **Click the panel's own close (X) button**, top-right of the window
|
||||
chrome. The panel closes — same action as F11.
|
||||
5. **Drag the window by its border/chrome, resize it from any edge or
|
||||
corner.** Behaves like the CH6 chat floaties: draggable, resizable on
|
||||
all four edges, remembers its geometry across a close/reopen within
|
||||
the same session.
|
||||
|
||||
### Tab switching
|
||||
|
||||
6. **Click each of the four tabs** (Gameplay Options, Character, Chat,
|
||||
Config). Each switches the visible page; exactly one page is visible
|
||||
at a time. Character/Chat/Config show their AUTHORED content (row
|
||||
templates, Apply/Reset/Defaults buttons, scrollbars) but nothing on
|
||||
those three tabs is wired to live data yet — that is OP4/OP5/OP6's
|
||||
scope, not a bug in this slice. Only the currently-selected tab's
|
||||
button highlights as "open"; the others read "closed".
|
||||
7. **Switch away from Gameplay and back.** No crash, no stuck state.
|
||||
|
||||
### The seven Gameplay-tab buttons
|
||||
|
||||
8. **Exit Game.** Click it. The client logs off and closes gracefully —
|
||||
same behavior as pressing Escape then confirming, or closing the
|
||||
window. **No confirmation dialog** (retail has none on this path).
|
||||
9. **Exit to Character Selection.** Click it. A confirmation dialog
|
||||
appears ("Are you sure you want to end this character session?" or
|
||||
the DAT-resolved retail equivalent). Click **Yes** while standing on
|
||||
solid ground: the client logs off and closes — **today this behaves
|
||||
identically to Exit Game**, NOT a return to a character-select
|
||||
screen (acdream has no pre-world character-select flow yet — register
|
||||
row AD-74). Click **No**: nothing happens, panel stays open.
|
||||
10. **Exit to Character Selection while airborne** (jump and click the
|
||||
button mid-air, or confirm while still in the air). Expect the chat
|
||||
line **"Cannot log off while in mid-air."** in the SpewBox/chat
|
||||
scroll instead of logging off — this is retail's own byte-verified
|
||||
refusal, faithfully ported.
|
||||
11. **Configure Keyboard.** Click it. **INERT — nothing happens.** This
|
||||
is the contracted behavior for OP3; OP8 wires the real Configure
|
||||
Keyboard screen, and OP8's own gate re-tests this exact button. Do
|
||||
not report this as a bug for OP3.
|
||||
12. **In-Game Help Files.** Click it. **INERT — nothing happens.**
|
||||
Retail's own help viewer is a third-party plugin
|
||||
(`plugins\ACHelpPlugin.dll`) acdream does not have; retail itself
|
||||
fails silently with the plugin absent, and this button mirrors that
|
||||
(register row AD-76).
|
||||
13. **Urgent Assistance.** Click it. Expect a chat line explaining the
|
||||
web browser could not be launched and pointing at
|
||||
`http://support.turbine.com/ics/support/ticketnewwizard.asp?style=classic`
|
||||
— retail's own byte-verified failure text, always shown (the URL is
|
||||
dead in 2026, so acdream never attempts to open a browser — register
|
||||
row AD-75). **No native browser window opens, no OS dialog box.**
|
||||
14. **Report Abuse.** Click it. Same shape as Urgent Assistance, with
|
||||
its own retail text ("...to submit an abuse report...").
|
||||
15. **Use Mouse Turning Settings.** Click it. Expect one retail chat
|
||||
line per changed value among: Camera Stiffness, Camera Adjustment,
|
||||
Mouse Sensitivity, Align To Slope, Invert Mouselook Axes, Turn to
|
||||
Face Camera — a FRESH character (never touched these settings) sees
|
||||
all six lines; clicking the button a second time in the same
|
||||
session sees zero lines (everything already at the macro's target).
|
||||
**Known, registered gap (TS-74): acdream has no persistent
|
||||
"turn to face camera" mouse-turning MODE yet, so this button changes
|
||||
stored preferences and sends the wire bit, but you will not see the
|
||||
camera actually start turning with mouse movement** — that consumer
|
||||
does not exist yet. Verify the CHAT LINES and that the button is
|
||||
clickable/does not crash; do not expect a camera-behavior change.
|
||||
|
||||
### What to report
|
||||
|
||||
- Any of the above NOT matching (wrong text, wrong tab default, window
|
||||
not draggable/resizable, close button not working, F11/toolbar not
|
||||
opening the panel, opening Options not closing a sibling panel).
|
||||
- Any exception/crash on any of the 15 steps.
|
||||
- Whether the confirmation dialog's exact wording looks retail-correct
|
||||
(it resolves from the DAT string table at runtime; a fallback English
|
||||
string only appears if that resolution fails, which would itself be
|
||||
worth reporting).
|
||||
|
||||
### Explicitly NOT in scope for this gate
|
||||
|
||||
- Character/Chat/Config tab content (rows, checkboxes, sliders, live
|
||||
data) — OP4/OP5/OP6.
|
||||
- Configure Keyboard's actual screen — OP8.
|
||||
- Any observable camera change from "Use Mouse Turning Settings" — no
|
||||
acdream consumer exists yet (TS-74).
|
||||
Loading…
Add table
Add a link
Reference in a new issue