namespace AcDream.UI.Abstractions.Panels.Settings; /// /// The five CLIENT-LOCAL preferences retail's "Use Mouse Turning Settings" /// Gameplay-tab button (gmConfigUI::SetMouseTurningDefaults @0x0049E8F0) /// writes alongside the one server-synced bit /// (PlayerOption.UseMouseTurning, carried through /// RuntimeCharacterOptionsState / SetSingleCharacterOption (0x0005) /// — NOT stored here). Persisted to settings.json the same way /// / are; this is the /// forward-compatible home Campaign OP slice OP6's full Config tab (27 rows) /// re-homes into its own preference groups without a storage-shape change — /// these five keys ARE four of that tab's Camera/Input rows /// (Camera_Stiffness, Camera_AdjustmentSpeed, /// Camera_AlignToSlope, Input_MouseLookSensitivity, /// Input_InvertMouseLookYAxis — research doc /// 2026-08-10-options-panel-structure.md §4). /// public sealed record CameraTurningSettings( float Stiffness, float AdjustmentSpeed, float MouseLookSensitivity, bool AlignToSlope, bool InvertMouseLookYAxis) { /// /// Retail's ORDINARY Config-tab defaults (NOT the mouse-turning macro's /// targets — gmConfigUI::InitOptions @0x0049E400, research doc §4): /// Stiffness 0.45 (0x3EE66666), AdjustmentSpeed 40.0 /// (0x42200000), MouseLookSensitivity 0.55 (0x3F0CCCCD), /// AlignToSlope on, InvertMouseLookYAxis off. /// public static CameraTurningSettings Default { get; } = new( Stiffness: 0.45f, AdjustmentSpeed: 40.0f, MouseLookSensitivity: 0.55f, AlignToSlope: true, InvertMouseLookYAxis: false); /// /// The mouse-turning macro's recommended targets /// (SetMouseTurningDefaults, research doc §4.4): Stiffness 0.95, /// AdjustmentSpeed 50.0, MouseLookSensitivity 0.7, AlignToSlope OFF, /// InvertMouseLookYAxis ON. /// public static CameraTurningSettings MouseTurningTarget { get; } = new( Stiffness: 0.95f, AdjustmentSpeed: 50.0f, MouseLookSensitivity: 0.7f, AlignToSlope: false, InvertMouseLookYAxis: true); }