From cd638fd5e2a9948e9943a48e143f6dcea9f4bc73 Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Sat, 30 Dec 2023 16:22:04 -0700 Subject: [PATCH] Move screenshake adjustments to "screenshake" cvar --- src/cvars.cpp | 1 + src/d_netcmd.h | 2 +- src/menus/options-profiles-edit-accessibility.cpp | 3 +++ src/p_spec.c | 7 ++++++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/cvars.cpp b/src/cvars.cpp index e90ad1f86..c01de8931 100644 --- a/src/cvars.cpp +++ b/src/cvars.cpp @@ -549,6 +549,7 @@ consvar_t cv_playbackspeed = Server("playbackspeed", "1").min_max(1, 10).dont_sa #endif consvar_t cv_reducevfx = Server("reducevfx", "No").yes_no(); +consvar_t cv_screenshake = Server("screenshake", "Full").values({{0, "Off"}, {1, "Half"}, {2, "Full"}}); consvar_t cv_rendezvousserver = Server("holepunchserver", "relay.kartkrew.org"); diff --git a/src/d_netcmd.h b/src/d_netcmd.h index 2a8b3bed7..21bdc53bd 100644 --- a/src/d_netcmd.h +++ b/src/d_netcmd.h @@ -92,7 +92,7 @@ extern consvar_t cv_botscanvote; extern consvar_t cv_kartdebugitem, cv_kartdebugamount, cv_kartdebugdistribution, cv_kartdebughuddrop; extern consvar_t cv_kartdebugnodes, cv_kartdebugcolorize, cv_kartdebugdirector; -extern consvar_t cv_spbtest, cv_reducevfx; +extern consvar_t cv_spbtest, cv_reducevfx, cv_screenshake; extern consvar_t cv_kartdebugwaypoints, cv_kartdebugbots; extern consvar_t cv_kartdebugstart; extern consvar_t cv_debugrank; diff --git a/src/menus/options-profiles-edit-accessibility.cpp b/src/menus/options-profiles-edit-accessibility.cpp index 5c99a31d3..0fa67f9b9 100644 --- a/src/menus/options-profiles-edit-accessibility.cpp +++ b/src/menus/options-profiles-edit-accessibility.cpp @@ -115,6 +115,9 @@ menuitem_t OPTIONS_ProfileAccessibility[] = { {IT_STRING | IT_CVAR, "Reduce Effects", "If overwhelmed, hide less-important particle cues.", NULL, {.cvar = &cv_reducevfx}, 0, 0}, + + {IT_STRING | IT_CVAR, "Screenshake Strength", "Adjust shake intensity from damage, hazards, and offroad.", + NULL, {.cvar = &cv_screenshake}, 0, 0}, }; menu_t OPTIONS_ProfileAccessibilityDef = { diff --git a/src/p_spec.c b/src/p_spec.c index 2ce654adc..27c75a51b 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -9454,7 +9454,7 @@ void P_DoQuakeOffset(UINT8 view, mappoint_t *viewPos, mappoint_t *offset) fixed_t ir = 0; fixed_t addZ = 0; - if (cv_reducevfx.value == 1) + if (cv_screenshake.value == 0) { return; } @@ -9517,6 +9517,11 @@ void P_DoQuakeOffset(UINT8 view, mappoint_t *viewPos, mappoint_t *offset) addZ = -addZ; } + if (cv_screenshake.value == 1) // Half + { + addZ /= 2; + } + // Finalize the effects. offset->z += addZ; }