Adapt the remaining plane movement linedef types to UDMF

This commit is contained in:
MascaraSnake 2021-06-27 09:53:57 +02:00
parent 588c56b224
commit 92982be76b
2 changed files with 20 additions and 13 deletions

View file

@ -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;

View file

@ -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