From 92982be76b7abbe9e3ca4f2c83fe0d234b971b38 Mon Sep 17 00:00:00 2001 From: MascaraSnake Date: Sun, 27 Jun 2021 09:53:57 +0200 Subject: [PATCH] Adapt the remaining plane movement linedef types to UDMF --- src/p_setup.c | 15 +++++++++++++++ src/p_spec.c | 18 +++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index 4679a8dc7..9c1a2d68c 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3085,6 +3085,10 @@ static void P_ConvertBinaryMap(void) case 51: //Instantly raise ceiling on level load lines[i].args[0] = tag; break; + case 52: //Continuously falling sector + lines[i].args[0] = P_AproxDistance(lines[i].dx, lines[i].dy) >> FRACBITS; + lines[i].args[1] = !!(lines[i].flags & ML_NOCLIMB); + break; case 53: //Continuous floor/ceiling mover case 54: //Continuous floor mover case 55: //Continuous ceiling mover @@ -3132,6 +3136,14 @@ static void P_ConvertBinaryMap(void) } lines[i].special = 61; break; + case 66: //Move floor by displacement + case 67: //Move ceiling by displacement + case 68: //Move floor and ceiling by displacement + lines[i].args[0] = tag; + lines[i].args[1] = lines[i].special - 66; + lines[i].args[2] = P_AproxDistance(lines[i].dx, lines[i].dy) >> FRACBITS; + lines[i].special = 66; + break; case 76: //Make FOF bouncy lines[i].args[0] = tag; lines[i].args[1] = P_AproxDistance(lines[i].dx, lines[i].dy) >> FRACBITS; @@ -3558,6 +3570,9 @@ static void P_ConvertBinaryMap(void) lines[i].args[4] = !!(lines[i].flags & ML_NOCLIMB); lines[i].special = 405; break; + case 411: //Stop plane movement + lines[i].args[0] = tag; + break; case 428: //Start platform movement lines[i].args[0] = tag; lines[i].args[1] = P_AproxDistance(lines[i].dx, lines[i].dy) >> FRACBITS; diff --git a/src/p_spec.c b/src/p_spec.c index e434d90c0..0bf158f29 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -2297,7 +2297,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec) break; case 411: // Stop floor/ceiling movement in tagged sector(s) - TAG_ITER_SECTORS(tag, secnum) + TAG_ITER_SECTORS(line->args[0], secnum) { if (sectors[secnum].floordata) { @@ -6322,7 +6322,7 @@ void P_SpawnSpecials(boolean fromnetsave) break; case 52: // Continuously Falling sector - EV_DoContinuousFall(lines[i].frontsector, lines[i].backsector, P_AproxDistance(lines[i].dx, lines[i].dy), (lines[i].flags & ML_NOCLIMB)); + EV_DoContinuousFall(lines[i].frontsector, lines[i].backsector, lines[i].args[0] << FRACBITS, lines[i].args[1]); break; case 53: // Continuous plane movement (slowdown) @@ -6377,17 +6377,9 @@ void P_SpawnSpecials(boolean fromnetsave) } break; - case 66: // Displace floor by front sector - TAG_ITER_SECTORS(tag, s) - P_AddPlaneDisplaceThinker(pd_floor, P_AproxDistance(lines[i].dx, lines[i].dy)>>8, sides[lines[i].sidenum[0]].sector-sectors, s, !!(lines[i].flags & ML_NOCLIMB)); - break; - case 67: // Displace ceiling by front sector - TAG_ITER_SECTORS(tag, s) - P_AddPlaneDisplaceThinker(pd_ceiling, P_AproxDistance(lines[i].dx, lines[i].dy)>>8, sides[lines[i].sidenum[0]].sector-sectors, s, !!(lines[i].flags & ML_NOCLIMB)); - break; - case 68: // Displace both floor AND ceiling by front sector - TAG_ITER_SECTORS(tag, s) - P_AddPlaneDisplaceThinker(pd_both, P_AproxDistance(lines[i].dx, lines[i].dy)>>8, sides[lines[i].sidenum[0]].sector-sectors, s, !!(lines[i].flags & ML_NOCLIMB)); + case 66: // Displace planes by front sector + TAG_ITER_SECTORS(lines[i].args[0], s) + P_AddPlaneDisplaceThinker(lines[i].args[1], abs(lines[i].args[2])<<8, sides[lines[i].sidenum[0]].sector-sectors, s, lines[i].args[2] < 0); break; case 70: // Add raise thinker to FOF