e819eeb35b
Work-Package: M02-GMP-INPUT-PROFILE-335-001 Agent: sindo-main-codex Tests: records complete package and renderer verification Fidelity: records private-source hashes, public reference revisions and remaining gaps
136 lines
6.5 KiB
Markdown
136 lines
6.5 KiB
Markdown
# M02-GMP-INPUT-PROFILE-335-001 — WoW 3.3.5a input profile
|
|
|
|
<!-- OPENWC_CLAIM:M02-GMP-INPUT-PROFILE-335-001:sindo-main-codex:2026-07-17 -->
|
|
|
|
## Ownership
|
|
|
|
- Target: M02
|
|
- Program: GMP/QAR
|
|
- Owner/Agent ID: sindo-main-codex
|
|
- Branch: `work/sindo-main-codex/m02-input-profile-335`
|
|
- Lease expires UTC: 2026-07-17
|
|
- Integrator: M02 milestone integrator
|
|
|
|
## Outcome
|
|
|
|
Add a profile-aware, remappable `Blizzlike335` input path whose default movement
|
|
bindings match the extracted build-12340 binding table while preserving the
|
|
existing `RenderSandbox` controls. Add deterministic turn intent and keyboard
|
|
turn consumption at the server-contract default turn rate.
|
|
|
|
## Non-goals
|
|
|
|
- Implement jump/fall/swim, network prediction or server reconciliation.
|
|
- Claim complete movement or camera parity from binding and turn-rate evidence.
|
|
- Persist user keybindings or build keybinding UI.
|
|
- Commit proprietary extracted client files.
|
|
- Mark M02 complete or edit its checklist/Evidence.
|
|
|
|
## Paths
|
|
|
|
- Exclusive: `src/tests/fixtures/player_input_profile_335.json`, this claim
|
|
- Shared/hotspots: `project.godot`, `src/domain/input/move_intent.gd`,
|
|
`src/gameplay/input/player_input_actions.gd`,
|
|
`src/gameplay/input/player_input_source.gd`,
|
|
`src/gameplay/movement/local_player_movement_controller.gd`,
|
|
`src/scenes/player/third_person_wow_controller.gd`,
|
|
`src/scenes/player/third_person_camera_rig.gd`, player/movement verifiers
|
|
and regression scene, `docs/modules/player-input.md`,
|
|
`docs/modules/local-player-movement.md`, `docs/modules/third-person-camera.md`
|
|
- Generated/ignored: local `.godot`, native DLL and proprietary extracted corpus
|
|
|
|
## Contracts and data
|
|
|
|
- `MoveIntent` gains an immutable, clamped signed turn axis.
|
|
- `PlayerInputSource` selects explicit sandbox or compatibility action sets at
|
|
construction and routes compatibility A/D to strafe while camera rotation is held.
|
|
- `LocalPlayerMovementController` converts turn intent into a deterministic yaw
|
|
delta without reading engine input or owning a scene transform.
|
|
- A sanitized JSON fixture records selected binding facts, source hashes and the
|
|
pinned TrinityCore 3.3.5 server-contract commit.
|
|
|
|
## Dependencies
|
|
|
|
- Requires: merged sandbox capability package on master `c3094c9`.
|
|
- Blocks: final M02 integration audit and milestone closeout.
|
|
- External state: local extracted build-12340 binding files are evidence inputs
|
|
only; committed tests are reproducible without them.
|
|
|
|
## Verification
|
|
|
|
- Fixture schema/provenance and selected default-binding regression.
|
|
- Pure profile composition, A/D turn, Q/E strafe and camera-held A/D strafe cases.
|
|
- Deterministic turn-rate and controller integration regression.
|
|
- Existing M02 and repository gates remain required.
|
|
|
|
## Documentation deliverables
|
|
|
|
- Updated input/movement public API, profile matrix, data flow, sequence,
|
|
failure/recovery, fidelity provenance and source maps.
|
|
|
|
## Simplicity and naming
|
|
|
|
- Important names: `turn_axis`, `BLIZZLIKE_STRAFE_LEFT`, `TURN_LEFT`.
|
|
- Simplest approach: one profile selection at composition plus one scalar intent.
|
|
- Rejected complexity: input-context framework, command bus and persisted binding store.
|
|
- Unavoidable complexity: compatibility A/D behavior depends on camera-rotate state.
|
|
- Measured optimization evidence: not applicable.
|
|
|
|
## Status
|
|
|
|
- State: ready-for-review
|
|
- Done: added distinct remappable profiles, signed turn intent/controller path,
|
|
camera-yaw synchronization, sanitized provenance fixture, regression coverage
|
|
and updated module specifications
|
|
- Next: milestone integrator reviews and merges `8776a6b`
|
|
- Blocked by:
|
|
|
|
<!-- OPENWC_HANDOFF:READY:M02-GMP-INPUT-PROFILE-335-001:8776a6b -->
|
|
|
|
## Handoff
|
|
|
|
- Branch/commit: `work/sindo-main-codex/m02-input-profile-335` at `8776a6b`.
|
|
- Outcome: `RenderSandbox` retains A/D strafe and debug E/Q/Space/Shift behavior;
|
|
`Blizzlike335` now samples W/S and Up/Down forward/back, Q/E strafe, A/D and
|
|
Left/Right turn, with A/D routed to strafe while right-mouse rotation is active.
|
|
- Public contracts: `MoveIntent.turn_axis`; profile-selecting
|
|
`PlayerInputSource.new(profile_id)`; pure compatibility composition;
|
|
`LocalPlayerMovementController.calculate_yaw_delta_radians(...)`; camera yaw
|
|
synchronization after keyboard turn. Unknown input profiles fail closed to
|
|
`Blizzlike335`.
|
|
- Project configuration: four additive compatibility actions; existing action
|
|
names and sandbox mappings remain valid. W/S also gain the original Up/Down
|
|
secondary defaults.
|
|
- Verification: player input `actions=16 intent_cases=9 profiles=3 fixture=1
|
|
controller=1 regression_scene=3`; movement `cases=15 state_transitions=2`;
|
|
capabilities `profiles=3 sprint=2 flight=2 scenes=2`; terrain
|
|
`contract=4 interpolation=1 cache=1 failures=2`; camera
|
|
`state_cases=12 policy_cases=3`; presentation `appearance_cases=9
|
|
animation_cases=10`; coordinate boundaries `files=101`; StreamingFocus
|
|
`runtime_scenes=2 capture_tools=3`.
|
|
- Renderer: unified dry-run passed project/material/dedupe/cache/manifest/
|
|
calibration/coordinate/server-spawn gates and planned all seven checkpoints;
|
|
coordinate gate reported `files=103`. Missing proprietary GLB/DBC/ADT inputs
|
|
produced the expected diagnostics only.
|
|
- Repository gates: documentation `module_specs=8`; coordination
|
|
`fallback_claims=31`, with the same five unrelated expired M00 warnings.
|
|
- Fidelity: local build-12340 `DefaultBindings.wtf` SHA-256
|
|
`35FFA0E4E2356A13A0633A848F9E57ABE7DF9D8A16C2245E15D33013AD2F56A5`
|
|
and `Bindings.xml` SHA-256
|
|
`2E01276AFB7462F1417710F13B4BF1A456341F7F28CC8AE0D6D9C7442D7F6793`
|
|
were rechecked and selected facts sanitized into the committed fixture.
|
|
TrinityCore revision `2853a621d6af91a803787a2b8a509f4ce3e0300d` supplies the
|
|
3.141594 rad/s player server-contract turn rate. WoWee revision
|
|
`626243e937fb93965fa583a6507ed5a1aa7dda4b` supports right-mouse A/D routing.
|
|
- Fidelity limits: server turn rate and public reference routing are not direct
|
|
original-client timing/behavior proof. Jump, autorun and left-button
|
|
camera/select defaults are recorded but not implemented. This package does
|
|
not claim complete input, movement or camera parity.
|
|
- Migration/cache: no persisted settings or cache schema. Future saved bindings
|
|
must migrate stable action names; current project users receive additive actions.
|
|
- Documentation: updated input, movement and camera APIs, inputs/outputs, data
|
|
flow, sequence, ownership, failure/recovery, configuration, fidelity and source maps.
|
|
- Recommended merge order: merge after sandbox capabilities (already on master),
|
|
then run the final M02 integration/evidence audit without marking the target
|
|
done solely from this package.
|