8776a6b362
Work-Package: M02-GMP-INPUT-PROFILE-335-001 Agent: sindo-main-codex Tests: player input/movement/capability/terrain/camera/presentation, coordinate/streaming, docs/coordination and renderer dry-run passed Fidelity: build-12340 binding hashes and selected defaults pinned; TrinityCore turn rate and WoWee mouse routing are compatibility references with explicit limits
3.4 KiB
3.4 KiB
M02-GMP-INPUT-PROFILE-335-001 — WoW 3.3.5a input profile
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
MoveIntentgains an immutable, clamped signed turn axis.PlayerInputSourceselects explicit sandbox or compatibility action sets at construction and routes compatibility A/D to strafe while camera rotation is held.LocalPlayerMovementControllerconverts 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: active
- Done: audited current mappings and captured build-12340/source-core provenance
- Next: implement contracts, profile mapping, regression fixtures and docs
- Blocked by: