mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Cap screen shake amount to 75% of camera height
This commit is contained in:
parent
4ff3225e7a
commit
4259c4287e
1 changed files with 8 additions and 2 deletions
10
src/p_spec.c
10
src/p_spec.c
|
|
@ -9498,7 +9498,7 @@ void P_StartQuakeFromMobj(tic_t time, fixed_t intensity, fixed_t radius, mobj_t
|
||||||
|
|
||||||
void P_DoQuakeOffset(UINT8 view, mappoint_t *viewPos, mappoint_t *offset)
|
void P_DoQuakeOffset(UINT8 view, mappoint_t *viewPos, mappoint_t *offset)
|
||||||
{
|
{
|
||||||
player_t *viewer = &players[ displayplayers[view] ];
|
const player_t *viewer = &players[ displayplayers[view] ];
|
||||||
quake_t *quake = NULL;
|
quake_t *quake = NULL;
|
||||||
fixed_t ir = 0;
|
fixed_t ir = 0;
|
||||||
fixed_t addZ = 0;
|
fixed_t addZ = 0;
|
||||||
|
|
@ -9530,7 +9530,6 @@ void P_DoQuakeOffset(UINT8 view, mappoint_t *viewPos, mappoint_t *offset)
|
||||||
viewPos->z - quake->epicenter->z
|
viewPos->z - quake->epicenter->z
|
||||||
) - distBuffer;
|
) - distBuffer;
|
||||||
|
|
||||||
|
|
||||||
fixed_t distEase = FixedDiv(max(epidist, 0), quake->radius);
|
fixed_t distEase = FixedDiv(max(epidist, 0), quake->radius);
|
||||||
distEase = min(distEase, FRACUNIT);
|
distEase = min(distEase, FRACUNIT);
|
||||||
ir = Easing_InCubic(distEase, ir, 0);
|
ir = Easing_InCubic(distEase, ir, 0);
|
||||||
|
|
@ -9560,6 +9559,13 @@ void P_DoQuakeOffset(UINT8 view, mappoint_t *viewPos, mappoint_t *offset)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const fixed_t maxShake = FixedMul(cv_cam_height[view].value, mapobjectscale) * 3 / 4;
|
||||||
|
if (addZ > maxShake)
|
||||||
|
{
|
||||||
|
// Cap screen shake between reasonable values
|
||||||
|
addZ = maxShake;
|
||||||
|
}
|
||||||
|
|
||||||
// Reverse every tic.
|
// Reverse every tic.
|
||||||
if ((leveltime + view) & 1)
|
if ((leveltime + view) & 1)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue