From 41f2bbcb1ee168d299c5e7ff5a897fc640952f25 Mon Sep 17 00:00:00 2001 From: GenericHeroGuy Date: Tue, 4 Mar 2025 01:57:03 +0100 Subject: [PATCH] Okay, let's not break UDMF speedpads Change binary conversion to 2.2 behavior, but ignore it and use linedef length directly for kart maps --- src/p_setup.c | 2 +- src/p_spec.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index 31a44b6d8..96b4228ce 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -4936,7 +4936,7 @@ static void P_ConvertBinaryLinedefTypes(void) lines[i].args[2] = !!(lines[i].flags & ML_MIDSOLID); break; case 4: //Speed pad parameters - lines[i].args[0] = P_AproxDistance(lines[i].v2->x-lines[i].v1->x, lines[i].v2->y-lines[i].v1->y); + lines[i].args[0] = sides[lines[i].sidenum[0]].textureoffset >> FRACBITS; if (lines[i].flags & ML_MIDSOLID) lines[i].args[1] |= TMSP_NOTELEPORT; if (lines[i].flags & ML_WRAPMIDTEX) diff --git a/src/p_spec.c b/src/p_spec.c index 522244f45..224d24516 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -5044,7 +5044,9 @@ static void P_ProcessSpeedPad(player_t *player, sector_t *sector, sector_t *rove } lineangle = R_PointToAngle2(lines[lineindex].v1->x, lines[lineindex].v1->y, lines[lineindex].v2->x, lines[lineindex].v2->y); - linespeed = lines[lineindex].args[0]; + linespeed = mapnamespace == MNS_SRB2KART + ? P_AproxDistance(lines[lineindex].v2->x-lines[lineindex].v1->x, lines[lineindex].v2->y-lines[lineindex].v1->y) + : lines[lineindex].args[0] << FRACBITS; if (linespeed == 0) {