From 9f31eeaa72deb728669c1e07b5cddd28b31ee5e1 Mon Sep 17 00:00:00 2001 From: Indev Date: Wed, 25 Mar 2026 01:55:54 +0300 Subject: [PATCH] Make lookback instant locally, also add toggle to do same in replays --- src/k_kart.c | 1 + src/p_local.h | 1 + src/p_user.c | 6 +++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 025386663..52c1dca35 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -465,6 +465,7 @@ void K_RegisterKartStuff(void) CV_RegisterVar(&cv_saltyhop); CV_RegisterVar(&cv_naturalcamera); + CV_RegisterVar(&cv_lookbackinreplays); CV_RegisterVar(&cv_gptest); CV_RegisterVar(&cv_kartexplosion_limitlifetime); diff --git a/src/p_local.h b/src/p_local.h index 36ada1661..2bb9e225a 100644 --- a/src/p_local.h +++ b/src/p_local.h @@ -29,6 +29,7 @@ extern "C" { #endif extern consvar_t cv_naturalcamera; +extern consvar_t cv_lookbackinreplays; #define FLOATSPEED (FRACUNIT*4) diff --git a/src/p_user.c b/src/p_user.c index 2c9044be7..347c3894b 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -83,6 +83,7 @@ static void P_NukeAllPlayers(player_t *player); // Some people like the more limited camerea from V1 so why not. consvar_t cv_naturalcamera = CVAR_INIT ("naturalcamera", "Off", CV_SAVE, CV_OnOff, NULL); +consvar_t cv_lookbackinreplays = CVAR_INIT ("lookbackinreplays", "Off", CV_SAVE, CV_OnOff, NULL); // // Jingle stuff. @@ -3100,7 +3101,10 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall if (P_CameraThinker(player, thiscam, resetcalled)) return true; - lookback = ( player->cmd.buttons & BT_LOOKBACK ); + if (P_IsLocalPlayer(player) || (demo.playback && cv_lookbackinreplays.value)) + lookback = G_PlayerInputDown(num, gc_lookback, false, DEADZONE_BUTTON); + else + lookback = player->cmd.buttons & BT_LOOKBACK; camspeed = cv_cam_speed[num].value; camstill = cv_cam_still[num].value;