diff --git a/src/k_kart.c b/src/k_kart.c index 81f59166d..e50ab6e81 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -475,6 +475,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 b8fe9f013..aaa8be214 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 dd57bc695..f7f73ba0a 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -79,6 +79,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. @@ -3109,7 +3110,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;