This commit is contained in:
Christoph Oelckers 2013-07-02 22:11:55 +02:00
commit edd2142a0f
6 changed files with 18 additions and 6 deletions

View file

@ -105,6 +105,7 @@ static FCompatOption Options[] =
{ "vileghosts", BCOMPATF_VILEGHOSTS, SLOT_BCOMPAT },
{ "ignoreteleporttags", BCOMPATF_BADTELEPORTERS, SLOT_BCOMPAT },
{ "rebuildnodes", BCOMPATF_REBUILDNODES, SLOT_BCOMPAT },
{ "linkfrozenprops", BCOMPATF_LINKFROZENPROPS, SLOT_BCOMPAT },
// list copied from g_mapinfo.cpp
{ "shorttex", COMPATF_SHORTTEX, SLOT_COMPAT },

View file

@ -349,6 +349,7 @@ enum
BCOMPATF_BADTELEPORTERS = 1 << 3, // Ignore tags on Teleport specials
BCOMPATF_BADPORTALS = 1 << 4, // Restores the old unstable portal behavior
BCOMPATF_REBUILDNODES = 1 << 5, // Force node rebuild
BCOMPATF_LINKFROZENPROPS = 1 << 6, // Clearing PROP_TOTALLYFROZEN or PROP_FROZEN also clears the other
};
// phares 3/20/98:

View file

@ -352,11 +352,8 @@ int FMugShot::UpdateState(player_t *player, StateFlags stateflags)
SetState("grin", false);
return 0;
}
else if (CurrentState == NULL)
{
bEvilGrin = false;
}
}
bEvilGrin = false;
bool ouch = (!st_oldouch && FaceHealth - player->health > ST_MUCHPAIN) || (st_oldouch && player->health - FaceHealth > ST_MUCHPAIN);
if (player->damagecount &&

View file

@ -658,7 +658,8 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags)
FState *diestate = NULL;
int gibhealth = GibHealth();
bool extremelydead = ((health < gibhealth || flags4 & MF4_EXTREMEDEATH) && !(flags4 & MF4_NOEXTREMEDEATH));
int iflags4 = inflictor == NULL ? 0 : inflictor->flags4;
bool extremelydead = ((health < gibhealth || iflags4 & MF4_EXTREMEDEATH) && !(iflags4 & MF4_NOEXTREMEDEATH));
// Special check for 'extreme' damage type to ensure that it gets recorded properly as an extreme death for subsequent checks.
if (DamageType == NAME_Extreme)
@ -703,7 +704,6 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags)
}
if (diestate == NULL)
{
int flags4 = inflictor == NULL ? 0 : inflictor->flags4;
// Don't pass on a damage type this actor cannot handle.
// (most importantly, prevent barrels from passing on ice damage.)

View file

@ -2813,6 +2813,11 @@ FUNC(LS_SetPlayerProperty)
{
int i;
if ((ib_compatflags & BCOMPATF_LINKFROZENPROPS) && (mask & (CF_FROZEN | CF_TOTALLYFROZEN)))
{ // Clearing one of these properties clears both of them (if the compat flag is set.)
mask = CF_FROZEN | CF_TOTALLYFROZEN;
}
for (i = 0; i < MAXPLAYERS; i++)
{
if (!playeringame[i])

View file

@ -353,3 +353,11 @@ F481922F4881F74760F3C0437FD5EDD0 // map03
// make the blue key spawn above the 3D floor
setthingz 918 296
}
64B6CE3CB7349B6F6B1A885C449ACB96 // Super Sonic Doom, map31
{
// During the end-of-level tally, both PROP_FROZEN and PROP_TOTALLYFROZEN
// are set, but only PROP_TOTALLYFROZEN is cleared, so PROP_FROZEN is
// still set when returning to the origin map.
linkfrozenprops
}