diff --git a/src/p_user.c b/src/p_user.c index 80ed7e0db..f50cfec57 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -3020,6 +3020,7 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall UINT8 timeover; mobj_t *mo; fixed_t f1, f2; + fixed_t speed; #ifndef NOCLIPCAM boolean cameranoclip; subsector_t *newsubsec; @@ -3294,8 +3295,19 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall // sets ideal cam pos dist = camdist; - if (player->speed > K_GetKartSpeed(player, false, true)) - dist += 4*(player->speed - K_GetKartSpeed(player, false, true)); + /* player->speed subtracts conveyors, janks up the camera */ + if (player->loop.radius) + { + speed = player->speed; + } + else + { + speed = R_PointToDist2(0, 0, player->mo->momx, player->mo->momy); + } + + + if (speed > K_GetKartSpeed(player, false, true)) + dist += 4*(speed - K_GetKartSpeed(player, false, true)); dist += abs(thiscam->momz)/4; if (player->karthud[khud_boostcam])