Merge branch 'plane-scroller-tweaks-again' into 'next'

Plane scroller & wind/current/pusher improvements (again)

See merge request STJr/SRB2!1811
This commit is contained in:
sphere 2023-05-25 21:00:30 +00:00
commit 777a1c6b83
3 changed files with 163 additions and 12 deletions

View file

@ -2866,36 +2866,63 @@ linedeftypes
{ {
title = "Scroll Floor Texture"; title = "Scroll Floor Texture";
prefix = "(510)"; prefix = "(510)";
flags8192text = "[13] Use angle and X offset";
} }
511 511
{ {
title = "Scroll Floor Texture (Accelerative)"; title = "Scroll Floor Texture (Accelerative)";
prefix = "(511)"; prefix = "(511)";
flags8192text = "[13] Use angle and X offset";
} }
512 512
{ {
title = "Scroll Floor Texture (Displacement)"; title = "Scroll Floor Texture (Displacement)";
prefix = "(512)"; prefix = "(512)";
flags8192text = "[13] Use angle and X offset";
} }
513 513
{ {
title = "Scroll Ceiling Texture"; title = "Scroll Ceiling Texture";
prefix = "(513)"; prefix = "(513)";
flags8192text = "[13] Use angle and X offset";
} }
514 514
{ {
title = "Scroll Ceiling Texture (Accelerative)"; title = "Scroll Ceiling Texture (Accelerative)";
prefix = "(514)"; prefix = "(514)";
flags8192text = "[13] Use angle and X offset";
} }
515 515
{ {
title = "Scroll Ceiling Texture (Displacement)"; title = "Scroll Ceiling Texture (Displacement)";
prefix = "(515)"; prefix = "(515)";
flags8192text = "[13] Use angle and X offset";
}
516
{
title = "Scroll Floor and Ceiling Texture";
prefix = "(516)";
flags8192text = "[13] Use angle and X offset";
}
517
{
title = "Scroll Floor and Ceiling Texture (Accelerative)";
prefix = "(517)";
flags8192text = "[13] Use angle and X offset";
}
518
{
title = "Scroll Floor and Ceiling Texture (Displacement)";
prefix = "(518)";
flags8192text = "[13] Use angle and X offset";
} }
520 520
@ -2903,6 +2930,7 @@ linedeftypes
title = "Carry Objects on Floor"; title = "Carry Objects on Floor";
prefix = "(520)"; prefix = "(520)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
521 521
@ -2910,6 +2938,7 @@ linedeftypes
title = "Carry Objects on Floor (Accelerative)"; title = "Carry Objects on Floor (Accelerative)";
prefix = "(521)"; prefix = "(521)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
522 522
@ -2917,6 +2946,7 @@ linedeftypes
title = "Carry Objects on Floor (Displacement)"; title = "Carry Objects on Floor (Displacement)";
prefix = "(522)"; prefix = "(522)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
523 523
@ -2924,6 +2954,7 @@ linedeftypes
title = "Carry Objects on Ceiling"; title = "Carry Objects on Ceiling";
prefix = "(523)"; prefix = "(523)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
524 524
@ -2931,6 +2962,7 @@ linedeftypes
title = "Carry Objects on Ceiling (Accelerative)"; title = "Carry Objects on Ceiling (Accelerative)";
prefix = "(524)"; prefix = "(524)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
525 525
@ -2938,6 +2970,31 @@ linedeftypes
title = "Carry Objects on Ceiling (Displacement)"; title = "Carry Objects on Ceiling (Displacement)";
prefix = "(525)"; prefix = "(525)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
}
526
{
title = "Carry Objects on Floor and Ceiling";
prefix = "(526)";
flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
}
527
{
title = "Carry Objects on Floor and Ceiling (Accelerative)";
prefix = "(527)";
flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
}
528
{
title = "Carry Objects on Floor and Ceiling (Displacement)";
prefix = "(528)";
flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
530 530
@ -2945,6 +3002,7 @@ linedeftypes
title = "Scroll Floor Texture and Carry Objects"; title = "Scroll Floor Texture and Carry Objects";
prefix = "(530)"; prefix = "(530)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
531 531
@ -2952,6 +3010,7 @@ linedeftypes
title = "Scroll Floor Texture and Carry Objects (Accelerative)"; title = "Scroll Floor Texture and Carry Objects (Accelerative)";
prefix = "(531)"; prefix = "(531)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
532 532
@ -2959,6 +3018,7 @@ linedeftypes
title = "Scroll Floor Texture and Carry Objects (Displacement)"; title = "Scroll Floor Texture and Carry Objects (Displacement)";
prefix = "(532)"; prefix = "(532)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
533 533
@ -2966,6 +3026,7 @@ linedeftypes
title = "Scroll Ceiling Texture and Carry Objects"; title = "Scroll Ceiling Texture and Carry Objects";
prefix = "(533)"; prefix = "(533)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
534 534
@ -2973,6 +3034,7 @@ linedeftypes
title = "Scroll Ceiling Texture and Carry Objects (Accelerative)"; title = "Scroll Ceiling Texture and Carry Objects (Accelerative)";
prefix = "(534)"; prefix = "(534)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
535 535
@ -2980,6 +3042,31 @@ linedeftypes
title = "Scroll Ceiling Texture and Carry Objects (Displacement)"; title = "Scroll Ceiling Texture and Carry Objects (Displacement)";
prefix = "(535)"; prefix = "(535)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
}
536
{
title = "Scroll Floor and Ceiling Texture and Carry Objects";
prefix = "(536)";
flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
}
537
{
title = "Scroll Floor and Ceiling Texture and Carry Objects (Accelerative)";
prefix = "(537)";
flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
}
538
{
title = "Scroll Floor and Ceiling Texture and Carry Objects (Displacement)";
prefix = "(538)";
flags64text = "[6] Exclusive";
flags8192text = "[13] Use angle and X offset";
} }
} }
@ -2991,48 +3078,54 @@ linedeftypes
{ {
title = "Wind"; title = "Wind";
prefix = "(541)"; prefix = "(541)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags512text = "[9] Player slides";
flags8192text = "[13] Use angle and X offset";
} }
542 542
{ {
title = "Upwards Wind"; title = "Upwards Wind";
prefix = "(542)"; prefix = "(542)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags512text = "[9] Player slides";
flags8192text = "[13] Use X offset";
} }
543 543
{ {
title = "Downwards Wind"; title = "Downwards Wind";
prefix = "(543)"; prefix = "(543)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags512text = "[9] Player slides";
flags8192text = "[13] Use X offset";
} }
544 544
{ {
title = "Current"; title = "Current";
prefix = "(544)"; prefix = "(544)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags512text = "[9] Player slides";
flags8192text = "[13] Use angle and X offset";
} }
545 545
{ {
title = "Upwards Current"; title = "Upwards Current";
prefix = "(545)"; prefix = "(545)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags512text = "[9] Player slides";
flags8192text = "[13] Use X offset";
} }
546 546
{ {
title = "Downwards Current"; title = "Downwards Current";
prefix = "(546)"; prefix = "(546)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags512text = "[9] Player slides";
flags8192text = "[13] Use X offset";
} }
547 547
@ -3040,6 +3133,7 @@ linedeftypes
title = "Push/Pull"; title = "Push/Pull";
prefix = "(547)"; prefix = "(547)";
flags64text = "[6] Exclusive"; flags64text = "[6] Exclusive";
flags8192text = "[13] Use X offset";
} }
} }

View file

@ -1301,6 +1301,21 @@ doom
title = "Scroll Ceiling Texture (Displacement)"; title = "Scroll Ceiling Texture (Displacement)";
prefix = "(515)"; prefix = "(515)";
} }
516
{
title = "Scroll Floor and Ceiling Texture";
prefix = "(516)";
}
517
{
title = "Scroll Floor and Ceiling Texture (Accelerative)";
prefix = "(517)";
}
518
{
title = "Scroll Floor and Ceiling Texture (Displacement)";
prefix = "(518)";
}
520 520
{ {
title = "Carry Objects on Floor"; title = "Carry Objects on Floor";
@ -1331,6 +1346,21 @@ doom
title = "Carry Objects on Ceiling (Displacement)"; title = "Carry Objects on Ceiling (Displacement)";
prefix = "(525)"; prefix = "(525)";
} }
526
{
title = "Carry Objects on Floor and Ceiling";
prefix = "(526)";
}
527
{
title = "Carry Objects on Floor and Ceiling (Accelerative)";
prefix = "(527)";
}
528
{
title = "Carry Objects on Floor and Ceiling (Displacement)";
prefix = "(528)";
}
530 530
{ {
title = "Scroll Floor Texture and Carry Objects"; title = "Scroll Floor Texture and Carry Objects";
@ -1361,6 +1391,21 @@ doom
title = "Scroll Ceiling Texture and Carry Objects (Displacement)"; title = "Scroll Ceiling Texture and Carry Objects (Displacement)";
prefix = "(535)"; prefix = "(535)";
} }
536
{
title = "Scroll Floor and Ceiling Texture and Carry Objects";
prefix = "(536)";
}
537
{
title = "Scroll Floor and Ceiling Texture and Carry Objects (Accelerative)";
prefix = "(537)";
}
538
{
title = "Scroll Floor and Ceiling Texture and Carry Objects (Displacement)";
prefix = "(538)";
}
} }
pusher pusher

View file

@ -5731,22 +5731,31 @@ static void P_ConvertBinaryLinedefTypes(void)
case 513: //Scroll ceiling texture case 513: //Scroll ceiling texture
case 514: //Scroll ceiling texture (accelerative) case 514: //Scroll ceiling texture (accelerative)
case 515: //Scroll ceiling texture (displacement) case 515: //Scroll ceiling texture (displacement)
case 516: //Scroll floor and ceiling texture
case 517: //Scroll floor and ceiling texture (accelerative)
case 518: //Scroll floor and ceiling texture (displacement)
case 520: //Carry objects on floor case 520: //Carry objects on floor
case 521: //Carry objects on floor (accelerative) case 521: //Carry objects on floor (accelerative)
case 522: //Carry objects on floor (displacement) case 522: //Carry objects on floor (displacement)
case 523: //Carry objects on ceiling case 523: //Carry objects on ceiling
case 524: //Carry objects on ceiling (accelerative) case 524: //Carry objects on ceiling (accelerative)
case 525: //Carry objects on ceiling (displacement) case 525: //Carry objects on ceiling (displacement)
case 526: //Carry objects on floor and ceiling
case 527: //Carry objects on floor and ceiling (accelerative)
case 528: //Carry objects on floor and ceiling (displacement)
case 530: //Scroll floor texture and carry objects case 530: //Scroll floor texture and carry objects
case 531: //Scroll floor texture and carry objects (accelerative) case 531: //Scroll floor texture and carry objects (accelerative)
case 532: //Scroll floor texture and carry objects (displacement) case 532: //Scroll floor texture and carry objects (displacement)
case 533: //Scroll ceiling texture and carry objects case 533: //Scroll ceiling texture and carry objects
case 534: //Scroll ceiling texture and carry objects (accelerative) case 534: //Scroll ceiling texture and carry objects (accelerative)
case 535: //Scroll ceiling texture and carry objects (displacement) case 535: //Scroll ceiling texture and carry objects (displacement)
case 536: //Scroll floor and ceiling texture and carry objects
case 537: //Scroll floor and ceiling texture and carry objects (accelerative)
case 538: //Scroll floor and ceiling texture and carry objects (displacement)
lines[i].args[0] = tag; lines[i].args[0] = tag;
lines[i].args[1] = ((lines[i].special % 10) < 3) ? TMP_FLOOR : TMP_CEILING; lines[i].args[1] = ((lines[i].special % 10) < 6) ? (((lines[i].special % 10) < 3) ? TMP_FLOOR : TMP_CEILING) : TMP_BOTH;
lines[i].args[2] = ((lines[i].special - 510)/10 + 1) % 3; lines[i].args[2] = ((lines[i].special - 510)/10 + 1) % 3;
lines[i].args[3] = R_PointToDist2(lines[i].v2->x, lines[i].v2->y, lines[i].v1->x, lines[i].v1->y) >> FRACBITS; lines[i].args[3] = ((lines[i].flags & ML_EFFECT6) ? sides[lines[i].sidenum[0]].textureoffset : R_PointToDist2(lines[i].v2->x, lines[i].v2->y, lines[i].v1->x, lines[i].v1->y)) >> FRACBITS;
lines[i].args[4] = (lines[i].special % 10) % 3; lines[i].args[4] = (lines[i].special % 10) % 3;
if (lines[i].args[2] != TMS_SCROLLONLY && !(lines[i].flags & ML_NOCLIMB)) if (lines[i].args[2] != TMS_SCROLLONLY && !(lines[i].flags & ML_NOCLIMB))
lines[i].args[4] |= TMST_NONEXCLUSIVE; lines[i].args[4] |= TMST_NONEXCLUSIVE;
@ -5777,17 +5786,19 @@ static void P_ConvertBinaryLinedefTypes(void)
case 544: //Current case 544: //Current
case 545: //Upwards current case 545: //Upwards current
case 546: //Downwards current case 546: //Downwards current
{
fixed_t strength = (lines[i].flags & ML_EFFECT6) ? sides[lines[i].sidenum[0]].textureoffset : R_PointToDist2(lines[i].v2->x, lines[i].v2->y, lines[i].v1->x, lines[i].v1->y);
lines[i].args[0] = tag; lines[i].args[0] = tag;
switch ((lines[i].special - 541) % 3) switch ((lines[i].special - 541) % 3)
{ {
case 0: case 0:
lines[i].args[1] = R_PointToDist2(lines[i].v2->x, lines[i].v2->y, lines[i].v1->x, lines[i].v1->y) >> FRACBITS; lines[i].args[1] = strength >> FRACBITS;
break; break;
case 1: case 1:
lines[i].args[2] = R_PointToDist2(lines[i].v2->x, lines[i].v2->y, lines[i].v1->x, lines[i].v1->y) >> FRACBITS; lines[i].args[2] = strength >> FRACBITS;
break; break;
case 2: case 2:
lines[i].args[2] = -R_PointToDist2(lines[i].v2->x, lines[i].v2->y, lines[i].v1->x, lines[i].v1->y) >> FRACBITS; lines[i].args[2] = -strength >> FRACBITS;
break; break;
} }
lines[i].args[3] = (lines[i].special >= 544) ? p_current : p_wind; lines[i].args[3] = (lines[i].special >= 544) ? p_current : p_wind;
@ -5797,6 +5808,7 @@ static void P_ConvertBinaryLinedefTypes(void)
lines[i].args[4] |= TMPF_NONEXCLUSIVE; lines[i].args[4] |= TMPF_NONEXCLUSIVE;
lines[i].special = 541; lines[i].special = 541;
break; break;
}
case 600: //Floor lighting case 600: //Floor lighting
case 601: //Ceiling lighting case 601: //Ceiling lighting
lines[i].args[0] = tag; lines[i].args[0] = tag;
@ -6450,7 +6462,7 @@ static void P_ConvertBinaryThingTypes(void)
} }
mapthings[i].args[0] = mapthings[i].angle; mapthings[i].args[0] = mapthings[i].angle;
mapthings[i].args[1] = P_AproxDistance(line->dx >> FRACBITS, line->dy >> FRACBITS); mapthings[i].args[1] = (line->flags & ML_EFFECT6) ? sides[line->sidenum[0]].textureoffset >> FRACBITS : P_AproxDistance(line->dx >> FRACBITS, line->dy >> FRACBITS);
if (mapthings[i].type == 755) if (mapthings[i].type == 755)
mapthings[i].args[1] *= -1; mapthings[i].args[1] *= -1;
if (mapthings[i].options & MTF_OBJECTSPECIAL) if (mapthings[i].options & MTF_OBJECTSPECIAL)