Revamp alpha setup for the remaining FOFs

This commit is contained in:
MascaraSnake 2020-06-12 16:45:18 +02:00
parent 6521496d8a
commit 5f9af65aa0
4 changed files with 171 additions and 158 deletions

View file

@ -1757,31 +1757,29 @@ udmf
} }
arg1 arg1
{ {
title = "Visibility"; title = "Alpha";
default = 255;
}
arg2
{
title = "Appearance";
type = 12; type = 12;
enum enum
{ {
1 = "Don't render planes"; 1 = "Don't render planes";
2 = "Don't render sides"; 2 = "Don't render sides";
4 = "Render insides"; 4 = "Render insides";
8 = "Render only insides";
16 = "No shadow";
32 = "Cut cyan flat pixels";
} }
} }
arg2 arg3
{ {
title = "Tangibility"; title = "Tangibility";
type = 12; type = 12;
enum = "tangibility"; enum = "tangibility";
} }
arg3
{
title = "Appearance";
type = 12;
enum
{
1 = "Translucent";
2 = "No shadow";
}
}
} }
120 120
@ -1931,31 +1929,29 @@ udmf
} }
arg1 arg1
{ {
title = "Visibility"; title = "Alpha";
default = 255;
}
arg2
{
title = "Appearance";
type = 12; type = 12;
enum enum
{ {
1 = "Don't render planes"; 1 = "Don't render planes";
2 = "Don't render sides"; 2 = "Don't render sides";
4 = "Render insides"; 4 = "Render insides";
8 = "Render only insides";
16 = "No shadow";
32 = "Cut cyan flat pixels";
} }
} }
arg2 arg3
{ {
title = "Tangibility"; title = "Tangibility";
type = 12; type = 12;
enum = "tangibility"; enum = "tangibility";
} }
arg3
{
title = "Appearance";
type = 12;
enum
{
1 = "Translucent";
2 = "No shadow";
}
}
arg4 arg4
{ {
title = "Speed"; title = "Speed";
@ -2011,14 +2007,8 @@ udmf
} }
arg1 arg1
{ {
title = "Visibility"; title = "Alpha";
type = 12; default = 255;
enum
{
1 = "Don't render planes";
2 = "Don't render sides";
4 = "Don't render insides";
}
} }
arg2 arg2
{ {
@ -2026,8 +2016,12 @@ udmf
type = 12; type = 12;
enum enum
{ {
1 = "Translucent"; 1 = "Don't render planes";
2 = "No shadow"; 2 = "Don't render sides";
4 = "Don't render insides";
8 = "Render only insides";
16 = "No shadow";
32 = "Cut cyan flat pixels";
} }
} }
} }

View file

@ -3016,35 +3016,36 @@ static void P_ConvertBinaryMap(void)
case 105: //FOF: solid, invisible case 105: //FOF: solid, invisible
lines[i].args[0] = lines[i].tag; lines[i].args[0] = lines[i].tag;
//Visibility //Alpha
if (lines[i].special == 102)
{
if (lines[i].flags & ML_NOCLIMB)
lines[i].args[2] |= TMFA_INSIDES;
if (sides[lines[i].sidenum[0]].toptexture > 0)
lines[i].args[1] = sides[lines[i].sidenum[0]].toptexture;
else
lines[i].args[1] = 128;
}
else
lines[i].args[1] = 255;
//Appearance
if (lines[i].special == 105) if (lines[i].special == 105)
lines[i].args[1] = TMFV_NOPLANES|TMFV_NOSIDES; lines[i].args[2] = TMFA_NOPLANES|TMFA_NOSIDES;
else if (lines[i].special == 104) else if (lines[i].special == 104)
lines[i].args[1] = TMFV_NOSIDES; lines[i].args[2] = TMFA_NOSIDES;
else if (lines[i].special == 103) else if (lines[i].special == 103)
lines[i].args[1] = TMFV_NOPLANES; lines[i].args[2] = TMFA_NOPLANES;
if (lines[i].special != 100 && (lines[i].special != 104 || !(lines[i].flags & ML_NOCLIMB)))
lines[i].args[2] |= TMFA_NOSHADE;
if (lines[i].flags & ML_EFFECT6)
lines[i].args[2] |= TMFA_SPLAT;
//Tangibility //Tangibility
if (lines[i].flags & ML_EFFECT1) if (lines[i].flags & ML_EFFECT1)
lines[i].args[2] |= TMFT_DONTBLOCKOTHERS; lines[i].args[3] |= TMFT_DONTBLOCKOTHERS;
if (lines[i].flags & ML_EFFECT2) if (lines[i].flags & ML_EFFECT2)
lines[i].args[2] |= TMFT_DONTBLOCKPLAYER; lines[i].args[3] |= TMFT_DONTBLOCKPLAYER;
//Translucency
if (lines[i].special == 102)
{
lines[i].args[3] |= TMFA_TRANSLUCENT;
if (lines[i].flags & ML_NOCLIMB)
lines[i].args[1] |= TMFV_TOGGLEINSIDES;
if (sides[lines[i].sidenum[0]].toptexture > 0)
lines[i].alpha = (sides[lines[i].sidenum[0]].toptexture << FRACBITS)/255;
else
lines[i].alpha = FRACUNIT/2;
}
//Shadow?
if (lines[i].special != 100 && (lines[i].special != 104 || !(lines[i].flags & ML_NOCLIMB)))
lines[i].args[3] |= TMFA_NOSHADE;
lines[i].special = 100; lines[i].special = 100;
break; break;
@ -3098,40 +3099,41 @@ static void P_ConvertBinaryMap(void)
case 146: //FOF: only tangible from sides case 146: //FOF: only tangible from sides
lines[i].args[0] = lines[i].tag; lines[i].args[0] = lines[i].tag;
//Visibility //Alpha
if (lines[i].special == 141 || lines[i].special == 142 || lines[i].special == 144 || lines[i].special == 145)
{
if (lines[i].flags & ML_NOCLIMB)
lines[i].args[2] |= TMFA_INSIDES;
if (sides[lines[i].sidenum[0]].toptexture > 0)
lines[i].args[1] = sides[lines[i].sidenum[0]].toptexture;
else
lines[i].args[1] = 128;
}
else
lines[i].args[1] = 255;
//Appearance
if (lines[i].special == 142 || lines[i].special == 145) if (lines[i].special == 142 || lines[i].special == 145)
lines[i].args[1] = TMFV_NOSIDES; lines[i].args[2] = TMFA_NOSIDES;
else if (lines[i].special == 146) else if (lines[i].special == 146)
lines[i].args[1] = TMFV_NOPLANES; lines[i].args[2] = TMFA_NOPLANES;
if (lines[i].special != 146 && (lines[i].flags & ML_NOCLIMB))
lines[i].args[2] |= TMFA_NOSHADE;
if (lines[i].flags & ML_EFFECT6)
lines[i].args[2] |= TMFA_SPLAT;
//Tangibility //Tangibility
if (lines[i].special <= 142) if (lines[i].special <= 142)
lines[i].args[2] |= TMFT_INTANGIBLEBOTTOM; lines[i].args[3] |= TMFT_INTANGIBLEBOTTOM;
else if (lines[i].special <= 145) else if (lines[i].special <= 145)
lines[i].args[2] |= TMFT_INTANGIBLETOP; lines[i].args[3] |= TMFT_INTANGIBLETOP;
else else
lines[i].args[2] |= TMFT_INTANGIBLEBOTTOM|TMFT_INTANGIBLETOP; lines[i].args[3] |= TMFT_INTANGIBLEBOTTOM|TMFT_INTANGIBLETOP;
if (lines[i].flags & ML_EFFECT1) if (lines[i].flags & ML_EFFECT1)
lines[i].args[2] |= TMFT_DONTBLOCKOTHERS; lines[i].args[3] |= TMFT_DONTBLOCKOTHERS;
if (lines[i].flags & ML_EFFECT2) if (lines[i].flags & ML_EFFECT2)
lines[i].args[2] |= TMFT_DONTBLOCKPLAYER; lines[i].args[3] |= TMFT_DONTBLOCKPLAYER;
//Translucency
if (lines[i].special == 141 || lines[i].special == 142 || lines[i].special == 144 || lines[i].special == 145)
{
lines[i].args[3] |= TMFA_TRANSLUCENT;
if (lines[i].flags & ML_NOCLIMB)
lines[i].args[1] |= TMFV_TOGGLEINSIDES;
if (sides[lines[i].sidenum[0]].toptexture > 0)
lines[i].alpha = (sides[lines[i].sidenum[0]].toptexture << FRACBITS)/255;
else
lines[i].alpha = FRACUNIT/2;
}
//Shadow?
if (lines[i].special != 146 && (lines[i].flags & ML_NOCLIMB))
lines[i].args[3] |= TMFA_NOSHADE;
lines[i].special = 100; lines[i].special = 100;
break; break;
@ -3227,33 +3229,34 @@ static void P_ConvertBinaryMap(void)
case 195: // FOF: Rising, intangible from bottom, translucent case 195: // FOF: Rising, intangible from bottom, translucent
lines[i].args[0] = lines[i].tag; lines[i].args[0] = lines[i].tag;
//Visibility
if (lines[i].special == 193)
lines[i].args[1] = TMFV_NOPLANES|TMFV_NOSIDES;
if (lines[i].special >= 194)
lines[i].args[1] = TMFV_TOGGLEINSIDES;
//Tangibility
if (lines[i].flags & ML_EFFECT1)
lines[i].args[2] |= TMFT_DONTBLOCKOTHERS;
if (lines[i].flags & ML_EFFECT2)
lines[i].args[2] |= TMFT_DONTBLOCKPLAYER;
if (lines[i].special >= 194)
lines[i].args[2] |= TMFT_INTANGIBLEBOTTOM;
//Translucency //Translucency
if (lines[i].special == 192 || lines[i].special == 195) if (lines[i].special == 192 || lines[i].special == 195)
{ {
lines[i].args[3] |= TMFA_TRANSLUCENT;
if (sides[lines[i].sidenum[0]].toptexture > 0) if (sides[lines[i].sidenum[0]].toptexture > 0)
lines[i].alpha = (sides[lines[i].sidenum[0]].toptexture << FRACBITS)/255; lines[i].args[1] = sides[lines[i].sidenum[0]].toptexture;
else else
lines[i].alpha = FRACUNIT/2; lines[i].args[1] = 128;
} }
else
lines[i].args[1] = 255;
//Shadow? //Appearance
if (lines[i].special == 193)
lines[i].args[2] = TMFA_NOPLANES|TMFA_NOSIDES;
if (lines[i].special >= 194)
lines[i].args[2] = TMFA_INSIDES;
if (lines[i].special != 190 && (lines[i].special <= 193 || lines[i].flags & ML_NOCLIMB)) if (lines[i].special != 190 && (lines[i].special <= 193 || lines[i].flags & ML_NOCLIMB))
lines[i].args[3] |= TMFA_NOSHADE; lines[i].args[2] |= TMFA_NOSHADE;
if (lines[i].flags & ML_EFFECT6)
lines[i].args[2] |= TMFA_SPLAT;
//Tangibility
if (lines[i].flags & ML_EFFECT1)
lines[i].args[3] |= TMFT_DONTBLOCKOTHERS;
if (lines[i].flags & ML_EFFECT2)
lines[i].args[3] |= TMFT_DONTBLOCKPLAYER;
if (lines[i].special >= 194)
lines[i].args[3] |= TMFT_INTANGIBLEBOTTOM;
//Speed //Speed
lines[i].args[4] = P_AproxDistance(lines[i].dx, lines[i].dy) >> FRACBITS; lines[i].args[4] = P_AproxDistance(lines[i].dx, lines[i].dy) >> FRACBITS;
@ -3282,23 +3285,26 @@ static void P_ConvertBinaryMap(void)
case 222: //FOF: Intangible, sides only case 222: //FOF: Intangible, sides only
lines[i].args[0] = lines[i].tag; lines[i].args[0] = lines[i].tag;
//Visibility //Alpha
if (lines[i].special == 222)
lines[i].args[1] |= TMFV_NOPLANES;
if (lines[i].special == 221)
lines[i].args[1] |= TMFV_TOGGLEINSIDES;
//Appearance
if (lines[i].special == 221) if (lines[i].special == 221)
{ {
lines[i].args[2] |= TMFA_TRANSLUCENT;
if (sides[lines[i].sidenum[0]].toptexture > 0) if (sides[lines[i].sidenum[0]].toptexture > 0)
lines[i].alpha = (sides[lines[i].sidenum[0]].toptexture << FRACBITS)/255; lines[i].args[1] = sides[lines[i].sidenum[0]].toptexture;
else else
lines[i].alpha = FRACUNIT/2; lines[i].args[1] = 128;
} }
else
lines[i].args[1] = 255;
//Appearance
if (lines[i].special == 222)
lines[i].args[2] |= TMFA_NOPLANES;
if (lines[i].special != 221)
lines[i].args[2] |= TMFA_INSIDES;
if (lines[i].special != 220 && !(lines[i].flags & ML_NOCLIMB)) if (lines[i].special != 220 && !(lines[i].flags & ML_NOCLIMB))
lines[i].args[2] |= TMFA_NOSHADE; lines[i].args[2] |= TMFA_NOSHADE;
if (lines[i].flags & ML_EFFECT6)
lines[i].args[2] |= TMFA_SPLAT;
lines[i].special = 220; lines[i].special = 220;
break; break;

View file

@ -6602,46 +6602,51 @@ void P_SpawnSpecials(boolean fromnetsave)
case 100: // FOF (solid) case 100: // FOF (solid)
ffloorflags = FF_EXISTS|FF_SOLID|FF_RENDERALL; ffloorflags = FF_EXISTS|FF_SOLID|FF_RENDERALL;
//Visibility settings //Appearance settings
if (lines[i].args[1] & TMFV_NOPLANES) if (lines[i].args[2] & TMFA_NOPLANES)
ffloorflags &= ~FF_RENDERPLANES; ffloorflags &= ~FF_RENDERPLANES;
if (lines[i].args[1] & TMFV_NOSIDES) if (lines[i].args[2] & TMFA_NOSIDES)
ffloorflags &= ~FF_RENDERSIDES; ffloorflags &= ~FF_RENDERSIDES;
if (lines[i].args[1] & TMFV_TOGGLEINSIDES) if (lines[i].args[2] & TMFA_INSIDES)
{ {
if (ffloorflags & FF_RENDERPLANES) if (ffloorflags & FF_RENDERPLANES)
ffloorflags |= FF_BOTHPLANES; ffloorflags |= FF_BOTHPLANES;
if (ffloorflags & FF_RENDERSIDES) if (ffloorflags & FF_RENDERSIDES)
ffloorflags |= FF_ALLSIDES; ffloorflags |= FF_ALLSIDES;
} }
if (lines[i].args[2] & TMFA_ONLYINSIDES)
{
if (ffloorflags & FF_RENDERPLANES)
ffloorflags |= FF_INVERTPLANES;
if (ffloorflags & FF_RENDERSIDES)
ffloorflags |= FF_INVERTSIDES;
}
if (lines[i].args[2] & TMFA_NOSHADE)
ffloorflags |= FF_NOSHADE;
if (lines[i].args[2] & TMFA_SPLAT)
ffloorflags |= FF_SPLAT;
//Tangibility settings //Tangibility settings
if (lines[i].args[2] & TMFT_INTANGIBLETOP) if (lines[i].args[3] & TMFT_INTANGIBLETOP)
ffloorflags |= FF_REVERSEPLATFORM; ffloorflags |= FF_REVERSEPLATFORM;
if (lines[i].args[2] & TMFT_INTANGIBLEBOTTOM) if (lines[i].args[3] & TMFT_INTANGIBLEBOTTOM)
ffloorflags |= FF_PLATFORM; ffloorflags |= FF_PLATFORM;
if (lines[i].args[2] & TMFT_DONTBLOCKPLAYER) if (lines[i].args[3] & TMFT_DONTBLOCKPLAYER)
ffloorflags &= ~FF_BLOCKPLAYER; ffloorflags &= ~FF_BLOCKPLAYER;
if (lines[i].args[2] & TMFT_DONTBLOCKOTHERS) if (lines[i].args[3] & TMFT_DONTBLOCKOTHERS)
ffloorflags &= ~FF_BLOCKOTHERS; ffloorflags &= ~FF_BLOCKOTHERS;
//Appearance settings
if ((lines[i].args[3] & TMFA_TRANSLUCENT) && (ffloorflags & FF_RENDERALL)) //Translucent
ffloorflags |= FF_TRANSLUCENT;
if (lines[i].args[3] & TMFA_NOSHADE)
ffloorflags |= FF_NOSHADE;
//Cutting options //Cutting options
if (ffloorflags & FF_RENDERALL) if (ffloorflags & FF_RENDERALL)
{ {
//If translucent or player can enter it, cut inner walls //If translucent or player can enter it, cut inner walls
if ((ffloorflags & FF_TRANSLUCENT) || (lines[i].args[2] & TMFT_VISIBLEFROMINSIDE)) if ((lines[i].args[1] < 255) || (lines[i].args[3] & TMFT_VISIBLEFROMINSIDE))
ffloorflags |= FF_CUTEXTRA|FF_EXTRA; ffloorflags |= FF_CUTEXTRA|FF_EXTRA;
else else
ffloorflags |= FF_CUTLEVEL; ffloorflags |= FF_CUTLEVEL;
} }
P_AddFakeFloorsByLine(i, (ffloorflags & FF_TRANSLUCENT) ? (lines[i].alpha * 0xff) >> FRACBITS : 0xff, ffloorflags, secthinkers); P_AddFakeFloorsByLine(i, lines[i].args[1], ffloorflags, secthinkers);
break; break;
case 120: // FOF (water) case 120: // FOF (water)
@ -6765,40 +6770,45 @@ void P_SpawnSpecials(boolean fromnetsave)
ffloorflags = FF_EXISTS|FF_SOLID|FF_RENDERALL; ffloorflags = FF_EXISTS|FF_SOLID|FF_RENDERALL;
//Visibility settings //Appearance settings
if (lines[i].args[1] & TMFV_NOPLANES) if (lines[i].args[2] & TMFA_NOPLANES)
ffloorflags &= ~FF_RENDERPLANES; ffloorflags &= ~FF_RENDERPLANES;
if (lines[i].args[1] & TMFV_NOSIDES) if (lines[i].args[2] & TMFA_NOSIDES)
ffloorflags &= ~FF_RENDERSIDES; ffloorflags &= ~FF_RENDERSIDES;
if (lines[i].args[1] & TMFV_TOGGLEINSIDES) if (lines[i].args[2] & TMFA_INSIDES)
{ {
if (ffloorflags & FF_RENDERPLANES) if (ffloorflags & FF_RENDERPLANES)
ffloorflags |= FF_BOTHPLANES; ffloorflags |= FF_BOTHPLANES;
if (ffloorflags & FF_RENDERSIDES) if (ffloorflags & FF_RENDERSIDES)
ffloorflags |= FF_ALLSIDES; ffloorflags |= FF_ALLSIDES;
} }
if (lines[i].args[2] & TMFA_ONLYINSIDES)
{
if (ffloorflags & FF_RENDERPLANES)
ffloorflags |= FF_INVERTPLANES;
if (ffloorflags & FF_RENDERSIDES)
ffloorflags |= FF_INVERTSIDES;
}
if (lines[i].args[2] & TMFA_NOSHADE)
ffloorflags |= FF_NOSHADE;
if (lines[i].args[2] & TMFA_SPLAT)
ffloorflags |= FF_SPLAT;
//Tangibility settings //Tangibility settings
if (lines[i].args[2] & TMFT_INTANGIBLETOP) if (lines[i].args[3] & TMFT_INTANGIBLETOP)
ffloorflags |= FF_REVERSEPLATFORM; ffloorflags |= FF_REVERSEPLATFORM;
if (lines[i].args[2] & TMFT_INTANGIBLEBOTTOM) if (lines[i].args[3] & TMFT_INTANGIBLEBOTTOM)
ffloorflags |= FF_PLATFORM; ffloorflags |= FF_PLATFORM;
if (lines[i].args[2] & TMFT_DONTBLOCKPLAYER) if (lines[i].args[3] & TMFT_DONTBLOCKPLAYER)
ffloorflags &= ~FF_BLOCKPLAYER; ffloorflags &= ~FF_BLOCKPLAYER;
if (lines[i].args[2] & TMFT_DONTBLOCKOTHERS) if (lines[i].args[3] & TMFT_DONTBLOCKOTHERS)
ffloorflags &= ~FF_BLOCKOTHERS; ffloorflags &= ~FF_BLOCKOTHERS;
//Appearance settings
if ((lines[i].args[3] & TMFA_TRANSLUCENT) && (ffloorflags & FF_RENDERALL)) //Translucent
ffloorflags |= FF_TRANSLUCENT;
if (lines[i].args[3] & TMFA_NOSHADE)
ffloorflags |= FF_NOSHADE;
//Cutting options //Cutting options
if (ffloorflags & FF_RENDERALL) if (ffloorflags & FF_RENDERALL)
{ {
//If translucent or player can enter it, cut inner walls //If translucent or player can enter it, cut inner walls
if ((ffloorflags & FF_TRANSLUCENT) || (lines[i].args[2] & TMFT_VISIBLEFROMINSIDE)) if ((lines[i].args[1] < 255) || (lines[i].args[3] & TMFT_VISIBLEFROMINSIDE))
ffloorflags |= FF_CUTEXTRA|FF_EXTRA; ffloorflags |= FF_CUTEXTRA|FF_EXTRA;
else else
ffloorflags |= FF_CUTLEVEL; ffloorflags |= FF_CUTLEVEL;
@ -6827,24 +6837,29 @@ void P_SpawnSpecials(boolean fromnetsave)
case 220: //Intangible case 220: //Intangible
ffloorflags = FF_EXISTS|FF_RENDERALL|FF_CUTEXTRA|FF_EXTRA|FF_CUTSPRITES; ffloorflags = FF_EXISTS|FF_RENDERALL|FF_CUTEXTRA|FF_EXTRA|FF_CUTSPRITES;
//Visibility settings //Appearance settings
if (lines[i].args[1] & TMFV_NOPLANES) if (lines[i].args[2] & TMFA_NOPLANES)
ffloorflags &= ~FF_RENDERPLANES; ffloorflags &= ~FF_RENDERPLANES;
if (lines[i].args[1] & TMFV_NOSIDES) if (lines[i].args[2] & TMFA_NOSIDES)
ffloorflags &= ~FF_RENDERSIDES; ffloorflags &= ~FF_RENDERSIDES;
if (!(lines[i].args[1] & TMFV_TOGGLEINSIDES)) if (!(lines[i].args[2] & TMFA_INSIDES))
{ {
if (ffloorflags & FF_RENDERPLANES) if (ffloorflags & FF_RENDERPLANES)
ffloorflags |= FF_BOTHPLANES; ffloorflags |= FF_BOTHPLANES;
if (ffloorflags & FF_RENDERSIDES) if (ffloorflags & FF_RENDERSIDES)
ffloorflags |= FF_ALLSIDES; ffloorflags |= FF_ALLSIDES;
} }
if (lines[i].args[2] & TMFA_ONLYINSIDES)
//Appearance settings {
if ((lines[i].args[2] & TMFA_TRANSLUCENT) && (ffloorflags & FF_RENDERALL)) if (ffloorflags & FF_RENDERPLANES)
ffloorflags |= FF_TRANSLUCENT; ffloorflags |= FF_INVERTPLANES;
if (ffloorflags & FF_RENDERSIDES)
ffloorflags |= FF_INVERTSIDES;
}
if (lines[i].args[2] & TMFA_NOSHADE) if (lines[i].args[2] & TMFA_NOSHADE)
ffloorflags |= FF_NOSHADE; ffloorflags |= FF_NOSHADE;
if (lines[i].args[2] & TMFA_SPLAT)
ffloorflags |= FF_SPLAT;
P_AddFakeFloorsByLine(i, (ffloorflags & FF_TRANSLUCENT) ? (lines[i].alpha * 0xff) >> FRACBITS : 0xff, ffloorflags, secthinkers); P_AddFakeFloorsByLine(i, (ffloorflags & FF_TRANSLUCENT) ? (lines[i].alpha * 0xff) >> FRACBITS : 0xff, ffloorflags, secthinkers);
break; break;

View file

@ -24,10 +24,13 @@ extern mobj_t *skyboxcenterpnts[16]; // array of MT_SKYBOX centerpoint mobjs
//FOF flags //FOF flags
typedef enum typedef enum
{ {
TMFV_NOPLANES = 1, TMFA_NOPLANES = 1,
TMFV_NOSIDES = 1<<1, TMFA_NOSIDES = 1<<1,
TMFV_TOGGLEINSIDES = 1<<2, TMFA_INSIDES = 1<<2,
} textmapfofvisibility_t; TMFA_ONLYINSIDES = 1<<3,
TMFA_NOSHADE = 1<<4,
TMFA_SPLAT = 1<<5,
} textmapfofappearance_t;
typedef enum typedef enum
{ {
@ -36,14 +39,9 @@ typedef enum
TMFT_DONTBLOCKPLAYER = 1<<2, TMFT_DONTBLOCKPLAYER = 1<<2,
TMFT_VISIBLEFROMINSIDE = (TMFT_INTANGIBLETOP|TMFT_INTANGIBLEBOTTOM|TMFT_DONTBLOCKPLAYER), TMFT_VISIBLEFROMINSIDE = (TMFT_INTANGIBLETOP|TMFT_INTANGIBLEBOTTOM|TMFT_DONTBLOCKPLAYER),
TMFT_DONTBLOCKOTHERS = 1<<3, TMFT_DONTBLOCKOTHERS = 1<<3,
TMFT_INTANGIBLE = (TMFT_DONTBLOCKPLAYER|TMFT_DONTBLOCKOTHERS),
} textmapfoftangibility_t; } textmapfoftangibility_t;
typedef enum
{
TMFA_TRANSLUCENT = 1,
TMFA_NOSHADE = 1<<1,
} textmapfofappearance_t;
typedef enum typedef enum
{ {
TMFW_NOSIDES = 1, TMFW_NOSIDES = 1,