From 9db16aaccf798c35391403331af191edd56c00fa Mon Sep 17 00:00:00 2001 From: GenericHeroGuy Date: Wed, 18 Mar 2026 20:06:36 +0100 Subject: [PATCH] Fix the wind pusher in Diamond Square --- src/p_spec.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/p_spec.c b/src/p_spec.c index 928084a8e..deabf6167 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -9630,7 +9630,17 @@ void T_Pusher(void *thinker) if (!touching && !inFOF) // Object is out of range of effect continue; - if (inFOF || (p->type == p_current && touching)) + // 2.2 UDMF swapped the order of these checks for some reason... + // which made the diamond square wind twice as fast + if (mapnamespace == MNS_SRB2KART && p->type == p_wind && touching) + { + xspeed = x_mag>>1; // half force + yspeed = y_mag>>1; + zspeed = z_mag>>1; + moved = true; + } + // 2.1 only ever checks (!touching && !inFOF) here which is pointless? + else if (inFOF || (p->type == p_current && (mapnamespace == MNS_SRB2KART || touching))) { xspeed = x_mag; // full force yspeed = y_mag;