Add linedef actions 507 & 508, allow using offsets for actions 502-504.

This commit is contained in:
sphere 2020-05-19 23:39:35 +02:00
parent 6f854f2de3
commit 934b28989f
2 changed files with 56 additions and 4 deletions

View file

@ -2611,31 +2611,49 @@ linedeftypes
{ {
title = "Scroll Wall According to Linedef"; title = "Scroll Wall According to Linedef";
prefix = "(502)"; prefix = "(502)";
flags128text = "[7] Use texture offsets";
flags256text = "[8] Scroll back side";
} }
503 503
{ {
title = "Scroll Wall According to Linedef (Accelerative)"; title = "Scroll Wall According to Linedef (Accelerative)";
prefix = "(503)"; prefix = "(503)";
flags128text = "[7] Use texture offsets";
flags256text = "[8] Scroll back side";
} }
504 504
{ {
title = "Scroll Wall According to Linedef (Displacement)"; title = "Scroll Wall According to Linedef (Displacement)";
prefix = "(504)"; prefix = "(504)";
flags128text = "[7] Use texture offsets";
flags256text = "[8] Scroll back side";
} }
505 505
{ {
title = "Scroll Texture by Front Side Offsets"; title = "Scroll Front Wall by Front Side Offsets";
prefix = "(505)"; prefix = "(505)";
} }
506 506
{ {
title = "Scroll Texture by Back Side Offsets"; title = "Scroll Front Wall by Back Side Offsets";
prefix = "(506)"; prefix = "(506)";
} }
507
{
title = "Scroll Back Wall by Front Side Offsets";
prefix = "(507)";
}
508
{
title = "Scroll Back Wall by Back Side Offsets";
prefix = "(508)";
}
} }
planescroll planescroll

View file

@ -7065,6 +7065,9 @@ void P_SpawnSpecials(boolean fromnetsave)
// 503 is used for a scroller // 503 is used for a scroller
// 504 is used for a scroller // 504 is used for a scroller
// 505 is used for a scroller // 505 is used for a scroller
// 506 is used for a scroller
// 507 is used for a scroller
// 508 is used for a scroller
// 510 is used for a scroller // 510 is used for a scroller
// 511 is used for a scroller // 511 is used for a scroller
// 512 is used for a scroller // 512 is used for a scroller
@ -7581,7 +7584,20 @@ static void P_SpawnScrollers(void)
case 502: case 502:
for (s = -1; (s = P_FindLineFromTag(l->tag, s)) >= 0 ;) for (s = -1; (s = P_FindLineFromTag(l->tag, s)) >= 0 ;)
if (s != (INT32)i) if (s != (INT32)i)
Add_Scroller(sc_side, dx, dy, control, lines[s].sidenum[0], accel, 0); {
if (l->flags & ML_EFFECT2) // use texture offsets instead
{
dx = sides[l->sidenum[0]].textureoffset;
dy = sides[l->sidenum[0]].rowoffset;
}
if (l->flags & ML_EFFECT3)
{
if (lines[s].sidenum[1] != 0xffff)
Add_Scroller(sc_side, dx, dy, control, lines[s].sidenum[1], accel, 0);
}
else
Add_Scroller(sc_side, dx, dy, control, lines[s].sidenum[0], accel, 0);
}
break; break;
case 505: case 505:
@ -7595,7 +7611,25 @@ static void P_SpawnScrollers(void)
if (s != 0xffff) if (s != 0xffff)
Add_Scroller(sc_side, -sides[s].textureoffset, sides[s].rowoffset, -1, lines[i].sidenum[0], accel, 0); Add_Scroller(sc_side, -sides[s].textureoffset, sides[s].rowoffset, -1, lines[i].sidenum[0], accel, 0);
else else
CONS_Debug(DBG_GAMELOGIC, "Line special 506 (line #%s) missing 2nd side!\n", sizeu1(i)); CONS_Debug(DBG_GAMELOGIC, "Line special 506 (line #%s) missing back side!\n", sizeu1(i));
break;
case 507:
s = lines[i].sidenum[0];
if (lines[i].sidenum[1] != 0xffff)
Add_Scroller(sc_side, -sides[s].textureoffset, sides[s].rowoffset, -1, lines[i].sidenum[1], accel, 0);
else
CONS_Debug(DBG_GAMELOGIC, "Line special 507 (line #%s) missing back side!\n", sizeu1(i));
break;
case 508:
s = lines[i].sidenum[1];
if (s != 0xffff)
Add_Scroller(sc_side, -sides[s].textureoffset, sides[s].rowoffset, -1, s, accel, 0);
else
CONS_Debug(DBG_GAMELOGIC, "Line special 508 (line #%s) missing back side!\n", sizeu1(i));
break; break;
case 500: // scroll first side case 500: // scroll first side