diff --git a/port/src/optionsoverlay.c b/port/src/optionsoverlay.c index 75284d36..f7f1ce9a 100644 --- a/port/src/optionsoverlay.c +++ b/port/src/optionsoverlay.c @@ -301,6 +301,12 @@ static struct Row rows[] = { * vertical/pitch sensitivity, %); input.c already applies it. */ { .key="Input.MouseYScale", .label="Vertical sensitivity", .kind=ROW_SLIDER, .step=10, .uiMin=10, .uiMax=400 }, /* D506: shown as a multiplier like the horizontal row, raw 100 = 1.0x */ + /* Per-case scales on top of the two rows above: turning the camera vs moving the + * crosshair while aiming. Shown as multipliers of their defaults (50 / 38). */ + { .key="Input.MouseTurnSpeed", .label="Look speed", .kind=ROW_SLIDER, .step=5, + .uiMin=5, .uiMax=250 }, + { .key="Input.AimModeSens", .label="Aim speed", .kind=ROW_SLIDER, .step=4, + .uiMin=2, .uiMax=190 }, { .key="Input.MouseInvertY", .label="Invert look", .kind=ROW_TOGGLE, .step=1, .names=kOnOff }, { .key="Input.MouseSmoothing", .label="Smoothing", .kind=ROW_SLIDER, .step=5, .unit="%" }, { .key="Input.MouseRawInput", .label="Raw input", .kind=ROW_TOGGLE, .step=1, .names=kOnOff }, @@ -2082,6 +2088,8 @@ static const struct { const char *key; double def; } kResetDefaults[] = { { "Input.CrosshairCursor", 1 }, /* = 1 (on, D555) */ { "Input.MouseSensitivity", 100 }, /* static int mouseSensitivity = 100 */ { "Input.MouseYScale", 100 }, /* = 100 (native), Wave A item 6 */ + { "Input.MouseTurnSpeed", 50 }, /* static int mouseTurnSpeed = 50 */ + { "Input.AimModeSens", 38 }, /* static int gepdSens = 38 */ { "Input.MouseInvertY", 0 }, /* = 0 */ { "Input.AimMode", 0 }, /* = AIMMODE_N64 (0) */ { "Input.AimRange", 0 }, /* = 0 (PC) */ @@ -2997,6 +3005,14 @@ static void valueText(int i, char *out, int n) snprintf(out, n, "%.1fx", v / 100.0); return; } + if (!strcmp(r->key, "Input.MouseTurnSpeed")) { /* default 50 = 1.0x */ + snprintf(out, n, "%.1fx", v / 50.0); + return; + } + if (!strcmp(r->key, "Input.AimModeSens")) { /* default 38 = 1.0x */ + snprintf(out, n, "%.1fx", v / 38.0); + return; + } if (!strcmp(r->key, "Game.ScreenShakeIntensity")) { /* D181: shown as whole % */ snprintf(out, n, "%d%%", (int)lround(v * 100.0)); return;