Merge branch 'fix-equation-slopes-near-edges' into 'next'

Fix equation slopes breaking with slopes farther than 32k FU away from the map center

See merge request STJr/SRB2!2397
This commit is contained in:
sphere 2024-06-03 12:59:13 +00:00
commit cc29f8a42d

View file

@ -933,10 +933,10 @@ void P_InitSlopes(void)
// Returns the height of the sloped plane at (x, y) as a fixed_t // Returns the height of the sloped plane at (x, y) as a fixed_t
fixed_t P_GetSlopeZAt(const pslope_t *slope, fixed_t x, fixed_t y) fixed_t P_GetSlopeZAt(const pslope_t *slope, fixed_t x, fixed_t y)
{ {
fixed_t dist = FixedMul(x - slope->o.x, slope->d.x) + fixed_t dist = FixedMul(x - slope->o.x, slope->d.x) / 2 +
FixedMul(y - slope->o.y, slope->d.y); FixedMul(y - slope->o.y, slope->d.y) / 2;
return slope->o.z + FixedMul(dist, slope->zdelta); return slope->o.z + FixedMul(dist, slope->zdelta) * 2;
} }
// Like P_GetSlopeZAt but falls back to z if slope is NULL // Like P_GetSlopeZAt but falls back to z if slope is NULL