Merge branch 'quakefpsfix' into 'next'

Fix quake epicenter calculation for first person and awayviewmobjs

Closes #1296

See merge request STJr/SRB2!2522
This commit is contained in:
Lactozilla 2024-10-03 03:18:58 +00:00
commit 085e2d66fd

View file

@ -1152,8 +1152,14 @@ void R_SetupFrame(player_t *player)
if (quake.epicenter) { if (quake.epicenter) {
// Calculate 3D distance from epicenter, using the camera. // Calculate 3D distance from epicenter, using the camera.
fixed_t xydist = R_PointToDist2(thiscam->x, thiscam->y, quake.epicenter->x, quake.epicenter->y); fixed_t xydist, dist;
fixed_t dist = R_PointToDist2(0, thiscam->z, xydist, quake.epicenter->z); if (P_MobjWasRemoved(r_viewmobj)) {
xydist = R_PointToDist2(thiscam->x, thiscam->y, quake.epicenter->x, quake.epicenter->y);
dist = R_PointToDist2(0, thiscam->z, xydist, quake.epicenter->z);
} else {
xydist = R_PointToDist2(r_viewmobj->x, r_viewmobj->y, quake.epicenter->x, quake.epicenter->y);
dist = R_PointToDist2(0, r_viewmobj->z, xydist, quake.epicenter->z);
}
// More effect closer to epicenter, outside of radius = no effect // More effect closer to epicenter, outside of radius = no effect
if (!quake.radius || dist > quake.radius) if (!quake.radius || dist > quake.radius)