mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-12-18 00:11:23 +00:00
- compatibility optioned triggering sector actions by indirectly initiated teleports
There's several old maps depending on this not happening. - Set the option for Hell's Twisted Influence Part 1.
This commit is contained in:
parent
5a66fdf9be
commit
ab837b608d
6 changed files with 12 additions and 2 deletions
|
@ -147,6 +147,7 @@ static FCompatOption Options[] =
|
||||||
{ "soundcutoff", COMPATF2_SOUNDCUTOFF, SLOT_COMPAT2 },
|
{ "soundcutoff", COMPATF2_SOUNDCUTOFF, SLOT_COMPAT2 },
|
||||||
{ "pointonline", COMPATF2_POINTONLINE, SLOT_COMPAT2 },
|
{ "pointonline", COMPATF2_POINTONLINE, SLOT_COMPAT2 },
|
||||||
{ "multiexit", COMPATF2_MULTIEXIT, SLOT_COMPAT2 },
|
{ "multiexit", COMPATF2_MULTIEXIT, SLOT_COMPAT2 },
|
||||||
|
{ "teleport", COMPATF2_TELEPORT, SLOT_COMPAT2 },
|
||||||
|
|
||||||
{ NULL, 0, 0 }
|
{ NULL, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
|
@ -574,7 +574,7 @@ CUSTOM_CVAR(Int, compatmode, 0, CVAR_ARCHIVE|CVAR_NOINITCALL)
|
||||||
|
|
||||||
case 4: // Old ZDoom compat mode
|
case 4: // Old ZDoom compat mode
|
||||||
v = COMPATF_SOUNDTARGET | COMPATF_LIGHT;
|
v = COMPATF_SOUNDTARGET | COMPATF_LIGHT;
|
||||||
w = COMPATF2_MULTIEXIT;
|
w = COMPATF2_MULTIEXIT | COMPATF2_TELEPORT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5: // MBF compat mode
|
case 5: // MBF compat mode
|
||||||
|
@ -630,6 +630,7 @@ CVAR (Flag, compat_floormove, compatflags2, COMPATF2_FLOORMOVE);
|
||||||
CVAR (Flag, compat_soundcutoff, compatflags2, COMPATF2_SOUNDCUTOFF);
|
CVAR (Flag, compat_soundcutoff, compatflags2, COMPATF2_SOUNDCUTOFF);
|
||||||
CVAR (Flag, compat_pointonline, compatflags2, COMPATF2_POINTONLINE);
|
CVAR (Flag, compat_pointonline, compatflags2, COMPATF2_POINTONLINE);
|
||||||
CVAR (Flag, compat_multiexit, compatflags2, COMPATF2_MULTIEXIT);
|
CVAR (Flag, compat_multiexit, compatflags2, COMPATF2_MULTIEXIT);
|
||||||
|
CVAR (Flag, compat_teleport, compatflags2, COMPATF2_TELEPORT);
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -342,6 +342,7 @@ enum : unsigned int
|
||||||
COMPATF2_SOUNDCUTOFF = 1 << 2, // Cut off sounds when an actor vanishes instead of making it owner-less
|
COMPATF2_SOUNDCUTOFF = 1 << 2, // Cut off sounds when an actor vanishes instead of making it owner-less
|
||||||
COMPATF2_POINTONLINE = 1 << 3, // Use original but buggy P_PointOnLineSide() and P_PointOnDivlineSideCompat()
|
COMPATF2_POINTONLINE = 1 << 3, // Use original but buggy P_PointOnLineSide() and P_PointOnDivlineSideCompat()
|
||||||
COMPATF2_MULTIEXIT = 1 << 4, // Level exit can be triggered multiple times (required by Daedalus's travel tubes, thanks to a faulty script)
|
COMPATF2_MULTIEXIT = 1 << 4, // Level exit can be triggered multiple times (required by Daedalus's travel tubes, thanks to a faulty script)
|
||||||
|
COMPATF2_TELEPORT = 1 << 5, // Don't let indirect teleports trigger sector actions
|
||||||
};
|
};
|
||||||
|
|
||||||
// Emulate old bugs for select maps. These are not exposed by a cvar
|
// Emulate old bugs for select maps. These are not exposed by a cvar
|
||||||
|
|
|
@ -1341,6 +1341,7 @@ MapFlagHandlers[] =
|
||||||
{ "compat_soundcutoff", MITYPE_COMPATFLAG, 0, COMPATF2_SOUNDCUTOFF },
|
{ "compat_soundcutoff", MITYPE_COMPATFLAG, 0, COMPATF2_SOUNDCUTOFF },
|
||||||
{ "compat_pointonline", MITYPE_COMPATFLAG, 0, COMPATF2_POINTONLINE },
|
{ "compat_pointonline", MITYPE_COMPATFLAG, 0, COMPATF2_POINTONLINE },
|
||||||
{ "compat_multiexit", MITYPE_COMPATFLAG, 0, COMPATF2_MULTIEXIT },
|
{ "compat_multiexit", MITYPE_COMPATFLAG, 0, COMPATF2_MULTIEXIT },
|
||||||
|
{ "compat_teleport", MITYPE_COMPATFLAG, 0, COMPATF2_TELEPORT },
|
||||||
{ "cd_start_track", MITYPE_EATNEXT, 0, 0 },
|
{ "cd_start_track", MITYPE_EATNEXT, 0, 0 },
|
||||||
{ "cd_end1_track", MITYPE_EATNEXT, 0, 0 },
|
{ "cd_end1_track", MITYPE_EATNEXT, 0, 0 },
|
||||||
{ "cd_end2_track", MITYPE_EATNEXT, 0, 0 },
|
{ "cd_end2_track", MITYPE_EATNEXT, 0, 0 },
|
||||||
|
|
|
@ -434,7 +434,8 @@ bool P_TeleportMove(AActor* thing, const DVector3 &pos, bool telefrag, bool modi
|
||||||
|
|
||||||
// If this teleport was caused by a move, P_TryMove() will handle the
|
// If this teleport was caused by a move, P_TryMove() will handle the
|
||||||
// sector transition messages better than we can here.
|
// sector transition messages better than we can here.
|
||||||
if (!(thing->flags6 & MF6_INTRYMOVE))
|
// This needs to be compatibility optioned because some older maps exploited this missing feature.
|
||||||
|
if (!(thing->flags6 & MF6_INTRYMOVE) && !(i_compatflags2 & COMPATF2_TELEPORT))
|
||||||
{
|
{
|
||||||
thing->CheckSectorTransition(oldsec);
|
thing->CheckSectorTransition(oldsec);
|
||||||
}
|
}
|
||||||
|
|
|
@ -430,6 +430,11 @@ C98F79709BD7E0E4C19026AB9575EC6F // cc-cod.zip:codlev.wad map07
|
||||||
maskedmidtex
|
maskedmidtex
|
||||||
}
|
}
|
||||||
|
|
||||||
|
7B82B12A6990E09553B12FDB4E3824A0 // hti.wad map01
|
||||||
|
{
|
||||||
|
teleport
|
||||||
|
}
|
||||||
|
|
||||||
D7F6E9F08C39A17026349A04F8C0B0BE // Return to Hadron, e1m9
|
D7F6E9F08C39A17026349A04F8C0B0BE // Return to Hadron, e1m9
|
||||||
19D03FFC875589E21EDBB7AB74EF4AEF // Return to Hadron, e1m9, 2016.01.03 update
|
19D03FFC875589E21EDBB7AB74EF4AEF // Return to Hadron, e1m9, 2016.01.03 update
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue