Merge branch 'udmf-executor-triggers' into udmf-thing-types

This commit is contained in:
MascaraSnake 2022-01-09 13:51:50 +01:00
commit e19ba99f57
6 changed files with 23 additions and 42 deletions

View file

@ -3392,7 +3392,7 @@ udmf
type = 12;
enum
{
1 = "Add to current translucency";
1 = "Add to current light level";
2 = "Interrupt ongoing fades";
4 = "Speed is duration";
}
@ -4923,7 +4923,7 @@ udmf
602
{
title = "Start Adjustable Pulsating Light";
title = "Adjustable Pulsating Light";
prefix = "(602)";
arg0
{
@ -4981,7 +4981,7 @@ udmf
604
{
title = "Start Adjustable Blinking Light";
title = "Adjustable Blinking Light";
prefix = "(604)";
arg0
{

View file

@ -1434,34 +1434,10 @@ static void HWR_ProcessSeg(void) // Sort of like GLWall::Process in GZDoom
// set alpha for transparent walls
// ooops ! this do not work at all because render order we should render it in backtofront order
switch (gl_linedef->special)
{
// Translucent
case 102:
case 121:
case 123:
case 124:
case 125:
case 141:
case 142:
case 144:
case 145:
case 174:
case 175:
case 192:
case 195:
case 221:
case 253:
case 256:
blendmode = PF_Translucent;
break;
default:
if (gl_linedef->alpha >= 0 && gl_linedef->alpha < FRACUNIT)
blendmode = HWR_TranstableToAlpha(R_GetLinedefTransTable(gl_linedef->alpha), &Surf);
else
blendmode = PF_Masked;
break;
}
if (gl_linedef->alpha >= 0 && gl_linedef->alpha < FRACUNIT)
blendmode = HWR_TranstableToAlpha(R_GetLinedefTransTable(gl_linedef->alpha), &Surf);
else
blendmode = PF_Masked;
if (gl_curline->polyseg && gl_curline->polyseg->translucency > 0)
{

View file

@ -86,14 +86,17 @@ void T_MoveCeiling(ceiling_t *ceiling)
if (dest == lines[ceiling->sourceline].frontsector->ceilingheight)
{
dest = lines[ceiling->sourceline].backsector->ceilingheight;
ceiling->speed = ceiling->origspeed = lines[ceiling->sourceline].args[3] << (FRACBITS - 2); // return trip, use args[3]
ceiling->origspeed = lines[ceiling->sourceline].args[3] << (FRACBITS - 2); // return trip, use args[3]
}
else
{
dest = lines[ceiling->sourceline].frontsector->ceilingheight;
ceiling->speed = ceiling->origspeed = lines[ceiling->sourceline].args[2] << (FRACBITS - 2); // going frontways, use args[2]
ceiling->origspeed = lines[ceiling->sourceline].args[2] << (FRACBITS - 2); // going frontways, use args[2]
}
if (ceiling->type == bounceCeilingCrush)
ceiling->speed = ceiling->origspeed;
if (dest < ceiling->sector->ceilingheight) // must move down
{
ceiling->direction = -1;

View file

@ -206,13 +206,15 @@ void T_MoveFloor(floormove_t *movefloor)
if (movefloor->floordestheight == lines[movefloor->sourceline].frontsector->floorheight)
{
movefloor->floordestheight = lines[movefloor->sourceline].backsector->floorheight;
movefloor->speed = movefloor->origspeed = lines[movefloor->sourceline].args[3] << (FRACBITS - 2); // return trip, use args[3]
movefloor->origspeed = lines[movefloor->sourceline].args[3] << (FRACBITS - 2); // return trip, use args[3]
}
else
{
movefloor->floordestheight = lines[movefloor->sourceline].frontsector->floorheight;
movefloor->speed = movefloor->origspeed = lines[movefloor->sourceline].args[2] << (FRACBITS - 2); // forward again, use args[2]
movefloor->origspeed = lines[movefloor->sourceline].args[2] << (FRACBITS - 2); // forward again, use args[2]
}
if (movefloor->type == bounceFloorCrush)
movefloor->speed = movefloor->origspeed;
movefloor->direction = (movefloor->floordestheight < movefloor->sector->floorheight) ? -1 : 1;
movefloor->delaytimer = movefloor->delay;
remove = false;

View file

@ -3709,10 +3709,10 @@ static void P_ConvertBinaryMap(void)
//Flags
if (lines[i].flags & ML_EFFECT1)
lines[i].args[2] = TMFL_NOBOSSES;
lines[i].args[2] |= TMFL_NOBOSSES;
//Replicate old hack: Translucent FOFs set to full opacity cut cyan pixels
if (lines[i].flags & ML_EFFECT6 || lines[i].args[1] == 256)
lines[i].args[2] = TMFL_SPLAT;
lines[i].args[2] |= TMFL_SPLAT;
break;
case 259: //Custom FOF
@ -4664,13 +4664,13 @@ static void P_ConvertBinaryMap(void)
lines[i].special = 0;
break;
}
lines[i].args[1] = sides[lines[i].sidenum[1]].rowoffset >> FRACBITS;
lines[i].args[2] = sides[lines[i].sidenum[1]].textureoffset >> FRACBITS;
lines[i].args[1] = sides[lines[i].sidenum[1]].textureoffset >> FRACBITS;
lines[i].args[2] = sides[lines[i].sidenum[1]].rowoffset >> FRACBITS;
}
else
{
lines[i].args[1] = sides[lines[i].sidenum[0]].rowoffset >> FRACBITS;
lines[i].args[2] = sides[lines[i].sidenum[0]].textureoffset >> FRACBITS;
lines[i].args[1] = sides[lines[i].sidenum[0]].textureoffset >> FRACBITS;
lines[i].args[2] = sides[lines[i].sidenum[0]].rowoffset >> FRACBITS;
}
lines[i].special = 500;
break;

View file

@ -1647,7 +1647,7 @@ static boolean P_ActivateLinedefExecutorsInSector(line_t *triggerline, mobj_t *a
size_t linecnt = ctlsector->linecount;
size_t i;
if (triggerline->flags & ML_EFFECT5) // disregard order for efficiency
if (!udmf && triggerline->flags & ML_EFFECT5) // disregard order for efficiency
{
for (i = 0; i < linecnt; i++)
P_ActivateLinedefExecutor(ctlsector->lines[i], actor, caller);