Add FOF flag for splat flat rendering

This commit is contained in:
MascaraSnake 2020-06-12 08:27:10 +02:00
parent a79862285e
commit 8dd3c78b05
5 changed files with 6 additions and 1 deletions

View file

@ -2186,6 +2186,7 @@ udmf
134217728 = "Ripple effect"; 134217728 = "Ripple effect";
268435456 = "Don't copy light level"; 268435456 = "Don't copy light level";
536870912 = "Bouncy"; 536870912 = "Bouncy";
1073741824 = "Cut cyan flat pixels";
} }
} }
} }

View file

@ -9820,6 +9820,7 @@ struct {
{"FF_RIPPLE",FF_RIPPLE}, ///< Ripple the flats {"FF_RIPPLE",FF_RIPPLE}, ///< Ripple the flats
{"FF_COLORMAPONLY",FF_COLORMAPONLY}, ///< Only copy the colormap, not the lightlevel {"FF_COLORMAPONLY",FF_COLORMAPONLY}, ///< Only copy the colormap, not the lightlevel
{"FF_BOUNCY",FF_BOUNCY}, ///< Bounces players {"FF_BOUNCY",FF_BOUNCY}, ///< Bounces players
{"FF_SPLAT",FF_SPLAT}, ///< Use splat flat renderer (treat cyan pixels as invisible)
// FOF special flags // FOF special flags
{"FS_PUSHABLES",FS_PUSHABLES}, {"FS_PUSHABLES",FS_PUSHABLES},

View file

@ -5697,6 +5697,8 @@ static ffloor_t *P_AddFakeFloor(sector_t *sec, sector_t *sec2, line_t *master, I
if (sec2->hasslope) if (sec2->hasslope)
sec->hasslope = true; sec->hasslope = true;
if (!udmf && master->flags & ML_EFFECT6)
fflr->flags |= FF_SPLAT; //TODO: Temporary
fflr->spawnflags = fflr->flags = flags; fflr->spawnflags = fflr->flags = flags;
fflr->master = master; fflr->master = master;
fflr->norender = INFTICS; fflr->norender = INFTICS;

View file

@ -147,6 +147,7 @@ typedef enum
FF_RIPPLE = 0x8000000, ///< Ripple the flats FF_RIPPLE = 0x8000000, ///< Ripple the flats
FF_COLORMAPONLY = 0x10000000, ///< Only copy the colormap, not the lightlevel FF_COLORMAPONLY = 0x10000000, ///< Only copy the colormap, not the lightlevel
FF_BOUNCY = 0x20000000, ///< Bounces players FF_BOUNCY = 0x20000000, ///< Bounces players
FF_SPLAT = 0x40000000, ///< Use splat flat renderer (treat cyan pixels as invisible)
} ffloortype_e; } ffloortype_e;
typedef enum typedef enum

View file

@ -984,7 +984,7 @@ void R_DrawSinglePlane(visplane_t *pl)
if (pl->ffloor->flags & FF_TRANSLUCENT) if (pl->ffloor->flags & FF_TRANSLUCENT)
{ {
spanfunctype = (pl->ffloor->master->flags & ML_EFFECT6) ? SPANDRAWFUNC_TRANSSPLAT : SPANDRAWFUNC_TRANS; spanfunctype = (pl->ffloor->flags & FF_SPLAT) ? SPANDRAWFUNC_TRANSSPLAT : SPANDRAWFUNC_TRANS;
// Hacked up support for alpha value in software mode Tails 09-24-2002 // Hacked up support for alpha value in software mode Tails 09-24-2002
if (pl->ffloor->alpha < 12) if (pl->ffloor->alpha < 12)