Revamp alpha setup for quicksand FOFs

This commit is contained in:
MascaraSnake 2020-06-12 10:23:16 +02:00
parent cc6820187c
commit f4e28f5cc4
4 changed files with 31 additions and 11 deletions

View file

@ -2122,15 +2122,24 @@ udmf
}
arg1
{
title = "Ripple effect?";
type = 11;
enum = "yesno";
title = "Alpha";
default = 255;
}
arg2
{
title = "Sinking speed";
title = "Ripple effect?";
type = 12;
enum
{
1 = "No ripple effect";
2 = "Cut cyan flat pixels";
}
}
arg3
{
title = "Sinking speed";
}
arg4
{
title = "Friction";
}

View file

@ -3366,10 +3366,13 @@ static void P_ConvertBinaryMap(void)
break;
case 257: //FOF: Quicksand
lines[i].args[0] = lines[i].tag;
lines[i].args[1] = 255;
if (!(lines[i].flags & ML_EFFECT5))
lines[i].args[1] = 1; //No ripple effect
lines[i].args[2] = lines[i].dx >> FRACBITS; //Sinking speed
lines[i].args[3] = lines[i].dy >> FRACBITS; //Friction
lines[i].args[2] |= TMFQ_NORIPPLE;
if (lines[i].flags & ML_EFFECT6)
lines[i].args[2] |= TMFQ_SPLAT;
lines[i].args[3] = lines[i].dx >> FRACBITS; //Sinking speed
lines[i].args[4] = lines[i].dy >> FRACBITS; //Friction
break;
case 258: //FOF: Laser
lines[i].args[0] = lines[i].tag;

View file

@ -6915,14 +6915,16 @@ void P_SpawnSpecials(boolean fromnetsave)
}
case 257: // Quicksand
ffloorflags = FF_EXISTS|FF_QUICKSAND|FF_RENDERALL|FF_ALLSIDES|FF_CUTSPRITES;
if (!(lines[i].args[1]))
if (!(lines[i].args[2] & TMFQ_NORIPPLE))
ffloorflags |= FF_RIPPLE;
if (lines[i].args[2] & TMFQ_SPLAT)
ffloorflags |= FF_SPLAT;
for (s = -1; (s = P_FindSectorFromTag(lines[i].args[0], s)) >= 0 ;)
{
ffloor_t *fflr = P_AddFakeFloor(&sectors[s], lines[i].frontsector, lines + i, 0xff, ffloorflags, secthinkers);
fflr->sinkspeed = abs(lines[i].args[2]) << (FRACBITS - 1);
fflr->friction = abs(lines[i].args[3]) << (FRACBITS - 6);
ffloor_t *fflr = P_AddFakeFloor(&sectors[s], lines[i].frontsector, lines + i, lines[i].args[1], ffloorflags, secthinkers);
fflr->sinkspeed = abs(lines[i].args[3]) << (FRACBITS - 1);
fflr->friction = abs(lines[i].args[4]) << (FRACBITS - 6);
}
break;

View file

@ -97,6 +97,12 @@ typedef enum
TMFB_ONLYBOTTOM = 1<<2,
} textmapfofbustflags_t;
typedef enum
{
TMFQ_NORIPPLE = 1,
TMFQ_SPLAT = 1<<1,
} textmapfofquicksandflags_t;
typedef enum
{
TMFL_NOBOSSES = 1,