mirror of
https://github.com/ZDoom/qzdoom.git
synced 2025-01-30 20:41:00 +00:00
- added Gez's submission to add a compatibility option for Doom's floor motion behavior to fix an issue in phobos.wad.
SVN r3623 (trunk)
This commit is contained in:
parent
4f255a2652
commit
af43ef8983
7 changed files with 15 additions and 4 deletions
|
@ -131,6 +131,7 @@ static FCompatOption Options[] =
|
||||||
{ "polyobj", COMPATF_POLYOBJ, SLOT_COMPAT },
|
{ "polyobj", COMPATF_POLYOBJ, SLOT_COMPAT },
|
||||||
{ "maskedmidtex", COMPATF_MASKEDMIDTEX, SLOT_COMPAT },
|
{ "maskedmidtex", COMPATF_MASKEDMIDTEX, SLOT_COMPAT },
|
||||||
{ "badangles", COMPATF2_BADANGLES, SLOT_COMPAT2 },
|
{ "badangles", COMPATF2_BADANGLES, SLOT_COMPAT2 },
|
||||||
|
{ "floormove", COMPATF2_FLOORMOVE, SLOT_COMPAT2 },
|
||||||
|
|
||||||
{ NULL, 0, 0 }
|
{ NULL, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
|
@ -562,6 +562,7 @@ CUSTOM_CVAR(Int, compatmode, 0, CVAR_ARCHIVE|CVAR_NOINITCALL)
|
||||||
v = COMPATF_SHORTTEX|COMPATF_STAIRINDEX|COMPATF_USEBLOCKING|COMPATF_NODOORLIGHT|COMPATF_SPRITESORT|
|
v = COMPATF_SHORTTEX|COMPATF_STAIRINDEX|COMPATF_USEBLOCKING|COMPATF_NODOORLIGHT|COMPATF_SPRITESORT|
|
||||||
COMPATF_TRACE|COMPATF_MISSILECLIP|COMPATF_SOUNDTARGET|COMPATF_DEHHEALTH|COMPATF_CROSSDROPOFF|
|
COMPATF_TRACE|COMPATF_MISSILECLIP|COMPATF_SOUNDTARGET|COMPATF_DEHHEALTH|COMPATF_CROSSDROPOFF|
|
||||||
COMPATF_LIGHT;
|
COMPATF_LIGHT;
|
||||||
|
w= COMPATF2_FLOORMOVE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2: // same as 1 but stricter (NO_PASSMOBJ and INVISIBILITY are also set)
|
case 2: // same as 1 but stricter (NO_PASSMOBJ and INVISIBILITY are also set)
|
||||||
|
@ -569,7 +570,7 @@ CUSTOM_CVAR(Int, compatmode, 0, CVAR_ARCHIVE|CVAR_NOINITCALL)
|
||||||
COMPATF_TRACE|COMPATF_MISSILECLIP|COMPATF_SOUNDTARGET|COMPATF_NO_PASSMOBJ|COMPATF_LIMITPAIN|
|
COMPATF_TRACE|COMPATF_MISSILECLIP|COMPATF_SOUNDTARGET|COMPATF_NO_PASSMOBJ|COMPATF_LIMITPAIN|
|
||||||
COMPATF_DEHHEALTH|COMPATF_INVISIBILITY|COMPATF_CROSSDROPOFF|COMPATF_CORPSEGIBS|COMPATF_HITSCAN|
|
COMPATF_DEHHEALTH|COMPATF_INVISIBILITY|COMPATF_CROSSDROPOFF|COMPATF_CORPSEGIBS|COMPATF_HITSCAN|
|
||||||
COMPATF_WALLRUN|COMPATF_NOTOSSDROPS|COMPATF_LIGHT|COMPATF_MASKEDMIDTEX;
|
COMPATF_WALLRUN|COMPATF_NOTOSSDROPS|COMPATF_LIGHT|COMPATF_MASKEDMIDTEX;
|
||||||
w = COMPATF2_BADANGLES;
|
w = COMPATF2_BADANGLES|COMPATF2_FLOORMOVE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3: // Boom compat mode
|
case 3: // Boom compat mode
|
||||||
|
@ -628,6 +629,7 @@ CVAR (Flag, compat_light, compatflags, COMPATF_LIGHT);
|
||||||
CVAR (Flag, compat_polyobj, compatflags, COMPATF_POLYOBJ);
|
CVAR (Flag, compat_polyobj, compatflags, COMPATF_POLYOBJ);
|
||||||
CVAR (Flag, compat_maskedmidtex, compatflags, COMPATF_MASKEDMIDTEX);
|
CVAR (Flag, compat_maskedmidtex, compatflags, COMPATF_MASKEDMIDTEX);
|
||||||
CVAR (Flag, compat_badangles, compatflags2, COMPATF2_BADANGLES);
|
CVAR (Flag, compat_badangles, compatflags2, COMPATF2_BADANGLES);
|
||||||
|
CVAR (Flag, compat_floormove, compatflags2, COMPATF2_FLOORMOVE);
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -336,6 +336,7 @@ enum
|
||||||
COMPATF_MASKEDMIDTEX = 1 << 31, // Ignore compositing when drawing masked midtextures
|
COMPATF_MASKEDMIDTEX = 1 << 31, // Ignore compositing when drawing masked midtextures
|
||||||
|
|
||||||
COMPATF2_BADANGLES = 1 << 0, // It is impossible to face directly NSEW.
|
COMPATF2_BADANGLES = 1 << 0, // It is impossible to face directly NSEW.
|
||||||
|
COMPATF2_FLOORMOVE = 1 << 1, // Use the same floor motion behavior as Doom.
|
||||||
};
|
};
|
||||||
|
|
||||||
// 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
|
||||||
|
|
|
@ -223,7 +223,7 @@ DMover::EResult DMover::MovePlane (fixed_t speed, fixed_t dest, int crush,
|
||||||
//destheight = (dest < m_Sector->ceilingheight) ? dest : m_Sector->ceilingheight;
|
//destheight = (dest < m_Sector->ceilingheight) ? dest : m_Sector->ceilingheight;
|
||||||
if ((m_Sector->ceilingplane.a | m_Sector->ceilingplane.b |
|
if ((m_Sector->ceilingplane.a | m_Sector->ceilingplane.b |
|
||||||
m_Sector->floorplane.a | m_Sector->floorplane.b) == 0 &&
|
m_Sector->floorplane.a | m_Sector->floorplane.b) == 0 &&
|
||||||
-dest > m_Sector->ceilingplane.d)
|
(!(i_compatflags2 & COMPATF2_FLOORMOVE) && -dest > m_Sector->ceilingplane.d))
|
||||||
{
|
{
|
||||||
dest = -m_Sector->ceilingplane.d;
|
dest = -m_Sector->ceilingplane.d;
|
||||||
}
|
}
|
||||||
|
@ -292,7 +292,7 @@ DMover::EResult DMover::MovePlane (fixed_t speed, fixed_t dest, int crush,
|
||||||
//destheight = (dest > m_Sector->floorheight) ? dest : m_Sector->floorheight;
|
//destheight = (dest > m_Sector->floorheight) ? dest : m_Sector->floorheight;
|
||||||
if ((m_Sector->ceilingplane.a | m_Sector->ceilingplane.b |
|
if ((m_Sector->ceilingplane.a | m_Sector->ceilingplane.b |
|
||||||
m_Sector->floorplane.a | m_Sector->floorplane.b) == 0 &&
|
m_Sector->floorplane.a | m_Sector->floorplane.b) == 0 &&
|
||||||
dest < -m_Sector->floorplane.d)
|
(!(i_compatflags2 & COMPATF2_FLOORMOVE) && dest < -m_Sector->floorplane.d))
|
||||||
{
|
{
|
||||||
dest = -m_Sector->floorplane.d;
|
dest = -m_Sector->floorplane.d;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1273,6 +1273,7 @@ MapFlagHandlers[] =
|
||||||
{ "compat_polyobj", MITYPE_COMPATFLAG, COMPATF_POLYOBJ, 0 },
|
{ "compat_polyobj", MITYPE_COMPATFLAG, COMPATF_POLYOBJ, 0 },
|
||||||
{ "compat_maskedmidtex", MITYPE_COMPATFLAG, COMPATF_MASKEDMIDTEX, 0 },
|
{ "compat_maskedmidtex", MITYPE_COMPATFLAG, COMPATF_MASKEDMIDTEX, 0 },
|
||||||
{ "compat_badangles", MITYPE_COMPATFLAG, 0, COMPATF2_BADANGLES },
|
{ "compat_badangles", MITYPE_COMPATFLAG, 0, COMPATF2_BADANGLES },
|
||||||
|
{ "compat_floormove", MITYPE_COMPATFLAG, 0, COMPATF2_FLOORMOVE },
|
||||||
{ "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 },
|
||||||
|
|
|
@ -171,3 +171,8 @@ E2B5D1400279335811C1C1C0B437D9C8 // Deathknights of the Dark Citadel, map54
|
||||||
{
|
{
|
||||||
clearlinespecial 66
|
clearlinespecial 66
|
||||||
}
|
}
|
||||||
|
|
||||||
|
8FA29398776146189396AA1AC6BB9E13 // Roger Ritenour's Phobos map03
|
||||||
|
{
|
||||||
|
floormove
|
||||||
|
}
|
||||||
|
|
|
@ -1220,7 +1220,8 @@ OptionMenu "CompatibilityOptions"
|
||||||
Option "Cripple sound for silent BFG trick", "compat_soundslots", "YesNo"
|
Option "Cripple sound for silent BFG trick", "compat_soundslots", "YesNo"
|
||||||
Option "Draw polyobjects like Hexen", "compat_POLYOBJ", "YesNo"
|
Option "Draw polyobjects like Hexen", "compat_POLYOBJ", "YesNo"
|
||||||
Option "Ignore Y offsets on masked midtextures", "compat_MASKEDMIDTEX", "YesNo"
|
Option "Ignore Y offsets on masked midtextures", "compat_MASKEDMIDTEX", "YesNo"
|
||||||
Option "Cannot travel straight NSEW", "compat_badangles", "YesNo"
|
Option "Cannot travel straight NSEW", "compat_badangles", "YesNo"
|
||||||
|
Option "Use Doom's floor motion behavior", "compat_floormove", "YesNo"
|
||||||
|
|
||||||
Class "CompatibilityMenu"
|
Class "CompatibilityMenu"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue