This commit is contained in:
Rachael Alexanderson 2017-01-01 10:54:19 -05:00
commit c7dce79831
18 changed files with 4637 additions and 27 deletions

View file

@ -452,6 +452,33 @@ if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
set( CMAKE_CXX_FLAGS_MINSIZEREL "${REL_CXX_FLAGS} ${CMAKE_CXX_FLAGS_MINSIZEREL}" ) set( CMAKE_CXX_FLAGS_MINSIZEREL "${REL_CXX_FLAGS} ${CMAKE_CXX_FLAGS_MINSIZEREL}" )
set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${REL_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" ) set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${REL_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" )
# Support for the GCC/Clang sanitizers.
set( WITH_ASAN 0 CACHE BOOL "Enable the Address Sanitizer")
if( NOT CMAKE_COMPILER_IS_GNUCXX )
set( WITH_MSAN 0 CACHE BOOL "Enable the Memory Sanitizer")
endif( NOT CMAKE_COMPILER_IS_GNUCXX )
set( WITH_UBSAN 0 CACHE BOOL "Enable the Undefined Behavior Sanitizer")
if( WITH_MSAN )
if ( WITH_ASAN OR WITH_UBSAN )
message( SEND_ERROR "You can't use MSAN with either ASAN or UBSAN." )
endif ( WITH_ASAN OR WITH_UBSAN )
endif( WITH_MSAN )
set( SANITIZER_FLAG "" )
if( WITH_ASAN )
set( SANITIZER_FLAG "-fsanitize=address" )
if ( WITH_UBSAN )
set( SANITIZER_FLAG "${SANITIZER_FLAG},undefined" )
endif( WITH_UBSAN )
elseif( WITH_MSAN )
set( SANITIZER_FLAG "-fsanitize=memory" )
elseif( WITH_UBSAN )
set( SANITIZER_FLAG "-fsanitize=undefined" )
endif( WITH_ASAN )
set( CMAKE_CXX_FLAGS "${SANITIZER_FLAG} ${CMAKE_CXX_FLAGS}" )
set( CMAKE_C_FLAGS "${SANITIZER_FLAG} ${CMAKE_C_FLAGS}" )
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "4.5") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "4.5")
set( CMAKE_C_FLAGS "-Wno-unused-result ${CMAKE_C_FLAGS}" ) set( CMAKE_C_FLAGS "-Wno-unused-result ${CMAKE_C_FLAGS}" )
set( CMAKE_CXX_FLAGS "-Wno-unused-result ${CMAKE_CXX_FLAGS}" ) set( CMAKE_CXX_FLAGS "-Wno-unused-result ${CMAKE_CXX_FLAGS}" )

View file

@ -56,6 +56,7 @@ struct FColormap
LightColor = from->Color; LightColor = from->Color;
desaturation = from->Desaturate; desaturation = from->Desaturate;
FadeColor = from->Fade; FadeColor = from->Fade;
FadeColor.a = 0;
blendfactor = from->Color.a; blendfactor = from->Color.a;
fogdensity = from->Fade.a*2; fogdensity = from->Fade.a*2;
return * this; return * this;

View file

@ -296,11 +296,10 @@ void GLSprite::Draw(int pass)
if (!gl_isBlack(Colormap.FadeColor)) if (!gl_isBlack(Colormap.FadeColor))
{ {
float dist=Dist2(ViewPos.X, ViewPos.Y, x,y); float dist=Dist2(ViewPos.X, ViewPos.Y, x,y);
int fogd = gl_GetFogDensity(lightlevel, Colormap.FadeColor, Colormap.fogdensity);
if (!Colormap.FadeColor.a) Colormap.FadeColor.a=clamp<int>(255-lightlevel,60,255);
// this value was determined by trial and error and is scale dependent! // this value was determined by trial and error and is scale dependent!
float factor=0.05f+exp(-Colormap.FadeColor.a*dist/62500.f); float factor = 0.05f + exp(-fogd*dist / 62500.f);
fuzzalpha*=factor; fuzzalpha*=factor;
minalpha*=factor; minalpha*=factor;
} }
@ -387,6 +386,7 @@ void GLSprite::Draw(int pass)
FColormap thiscm; FColormap thiscm;
thiscm.FadeColor = Colormap.FadeColor; thiscm.FadeColor = Colormap.FadeColor;
thiscm.fogdensity = Colormap.fogdensity;
thiscm.CopyFrom3DLight(&(*lightlist)[i]); thiscm.CopyFrom3DLight(&(*lightlist)[i]);
if (glset.nocoloredspritelighting) if (glset.nocoloredspritelighting)
{ {

View file

@ -357,13 +357,30 @@ static FFlagDef MoreFlagDefs[] =
DEFINE_DUMMY_FLAG(FASTER, true), // obsolete, replaced by 'Fast' state flag DEFINE_DUMMY_FLAG(FASTER, true), // obsolete, replaced by 'Fast' state flag
DEFINE_DUMMY_FLAG(FASTMELEE, true), // obsolete, replaced by 'Fast' state flag DEFINE_DUMMY_FLAG(FASTMELEE, true), // obsolete, replaced by 'Fast' state flag
// Deprecated name as an alias
DEFINE_FLAG2_DEPRECATED(MF4_DONTHARMCLASS, DONTHURTSPECIES, AActor, flags4),
// Various Skulltag flags that are quite irrelevant to ZDoom // Various Skulltag flags that are quite irrelevant to ZDoom
DEFINE_DUMMY_FLAG(NONETID, false), // netcode-based // [BC] New DECORATE flag defines here.
DEFINE_DUMMY_FLAG(ALLOWCLIENTSPAWN, false), // netcode-based DEFINE_DUMMY_FLAG(BLUETEAM, false),
DEFINE_DUMMY_FLAG(CLIENTSIDEONLY, false), // netcode-based DEFINE_DUMMY_FLAG(REDTEAM, false),
DEFINE_DUMMY_FLAG(SERVERSIDEONLY, false), // netcode-based DEFINE_DUMMY_FLAG(USESPECIAL, false),
DEFINE_DUMMY_FLAG(EXPLODEONDEATH, true), // seems useless DEFINE_DUMMY_FLAG(BASEHEALTH, false),
DEFINE_FLAG2_DEPRECATED(MF4_DONTHARMCLASS, DONTHURTSPECIES, AActor, flags4), // Deprecated name as an alias DEFINE_DUMMY_FLAG(SUPERHEALTH, false),
DEFINE_DUMMY_FLAG(BASEARMOR, false),
DEFINE_DUMMY_FLAG(SUPERARMOR, false),
DEFINE_DUMMY_FLAG(SCOREPILLAR, false),
DEFINE_DUMMY_FLAG(NODE, false),
DEFINE_DUMMY_FLAG(USESTBOUNCESOUND, false),
DEFINE_DUMMY_FLAG(EXPLODEONDEATH, true),
DEFINE_DUMMY_FLAG(DONTIDENTIFYTARGET, false), // [CK]
// Skulltag netcode-based flags.
// [BB] New DECORATE network related flag defines here.
DEFINE_DUMMY_FLAG(NONETID, false),
DEFINE_DUMMY_FLAG(ALLOWCLIENTSPAWN, false),
DEFINE_DUMMY_FLAG(CLIENTSIDEONLY, false),
DEFINE_DUMMY_FLAG(SERVERSIDEONLY, false),
}; };
static FFlagDef InventoryFlagDefs[] = static FFlagDef InventoryFlagDefs[] =
@ -391,6 +408,8 @@ static FFlagDef InventoryFlagDefs[] =
DEFINE_FLAG(IF, TRANSFER, AInventory, ItemFlags), DEFINE_FLAG(IF, TRANSFER, AInventory, ItemFlags),
DEFINE_FLAG(IF, NOTELEPORTFREEZE, AInventory, ItemFlags), DEFINE_FLAG(IF, NOTELEPORTFREEZE, AInventory, ItemFlags),
DEFINE_DUMMY_FLAG(FORCERESPAWNINSURVIVAL, false),
DEFINE_DEPRECATED_FLAG(PICKUPFLASH), DEFINE_DEPRECATED_FLAG(PICKUPFLASH),
DEFINE_DEPRECATED_FLAG(INTERHUBSTRIP), DEFINE_DEPRECATED_FLAG(INTERHUBSTRIP),
}; };

View file

@ -414,15 +414,7 @@ void ParseScripts()
while ((lump = Wads.FindLump("ZSCRIPT", &lastlump)) != -1) while ((lump = Wads.FindLump("ZSCRIPT", &lastlump)) != -1)
{ {
DoParse(lump); DoParse(lump);
if (!Args->CheckParm("-zscript"))
{
return;
}
} }
Printf(TEXTCOLOR_PURPLE "WARNING!!!\n");
Printf(TEXTCOLOR_PURPLE "As of this version, Zscript is still considered a feature in development which can change " TEXTCOLOR_RED "WITHOUT WARNING!!!\n");
Printf(TEXTCOLOR_PURPLE "Use at your own risk!\n");
} }
/* /*

View file

@ -696,7 +696,7 @@ void FString::StripRight ()
{ {
size_t max = Len(), i; size_t max = Len(), i;
if (max == 0) return; if (max == 0) return;
for (i = --max; i-- > 0; ) for (i = --max; i > 0; i--)
{ {
if (!isspace((unsigned char)Chars[i])) if (!isspace((unsigned char)Chars[i]))
break; break;
@ -728,12 +728,12 @@ void FString::StripRight (const char *charset)
{ {
size_t max = Len(), i; size_t max = Len(), i;
if (max == 0) return; if (max == 0) return;
for (i = --max; i-- > 0; ) for (i = --max; i > 0; i--)
{ {
if (!strchr (charset, Chars[i])) if (!strchr (charset, Chars[i]))
break; break;
} }
if (i == max) if (i == max-1)
{ // Nothing to strip. { // Nothing to strip.
return; return;
} }

View file

@ -282,7 +282,7 @@ class ScriptedMarine : Actor
// //
//============================================================================ //============================================================================
void A_M_Refire (bool ignoremissile, statelabel jumpto = null) void A_M_Refire (bool ignoremissile = false, statelabel jumpto = null)
{ {
if (target == null || target.health <= 0) if (target == null || target.health <= 0)
{ {

File diff suppressed because it is too large Load diff

View file

@ -354,8 +354,8 @@ object TechLamp
flickerlight2 BIGREDTORCH flickerlight2 BIGREDTORCH
{ {
color 1.0 0.5 0.2 color 1.0 0.5 0.2
size 64 size 60
secondarySize 72 secondarySize 66
interval 0.1 interval 0.1
offset 0 60 0 offset 0 60 0
} }
@ -369,8 +369,8 @@ object RedTorch
flickerlight2 BIGGREENTORCH flickerlight2 BIGGREENTORCH
{ {
color 0.3 1.0 0.3 color 0.3 1.0 0.3
size 64 size 60
secondarySize 72 secondarySize 66
interval 0.1 interval 0.1
offset 0 60 0 offset 0 60 0
} }
@ -384,8 +384,8 @@ object GreenTorch
flickerlight2 BIGBLUETORCH flickerlight2 BIGBLUETORCH
{ {
color 0.3 0.3 1.0 color 0.3 0.3 1.0
size 64 size 60
secondarySize 72 secondarySize 66
interval 0.1 interval 0.1
offset 0 60 0 offset 0 60 0
} }

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff