- Changed the additive scrollers option into a compatibility flag so that it can

be changed from the menu.


SVN r245 (trunk)
This commit is contained in:
Christoph Oelckers 2006-07-11 08:27:05 +00:00
parent 0b3730392c
commit 5d1563b0e4
7 changed files with 23 additions and 14 deletions

View file

@ -1,3 +1,7 @@
July 11, 2006 (Changes by Graf Zahl)
- Changed the additive scrollers option into a compatibility flag so that it can
be changed from the menu.
July 10, 2006
- Fixed closed doors between the front sector's floor and ceiling the right way.
I was just missing a non-null texture check.

View file

@ -396,6 +396,7 @@ CVAR (Flag, compat_soundtarget, compatflags, COMPATF_SOUNDTARGET);
CVAR (Flag, compat_dehhealth, compatflags, COMPATF_DEHHEALTH);
CVAR (Flag, compat_trace, compatflags, COMPATF_TRACE);
CVAR (Flag, compat_dropoff, compatflags, COMPATF_DROPOFF);
CVAR (Flag, compat_boomscroll, compatflags, COMPATF_BOOMSCROLL);
//==========================================================================
//

View file

@ -274,6 +274,7 @@ enum
COMPATF_DEHHEALTH = 1 << 12, // Limit deh.MaxHealth to the health bonus (as in Doom2.exe)
COMPATF_TRACE = 1 << 13, // Trace ignores lines with the same sector on both sides
COMPATF_DROPOFF = 1 << 14, // Monsters cannot move when hanging over a dropoff
COMPATF_BOOMSCROLL = 1 << 15, // Scrolling sectors are additive like in Boom
};
// phares 3/20/98:

View file

@ -260,6 +260,7 @@ static const char *MapInfoMapLevel[] =
"compat_dehhealth",
"compat_trace",
"compat_dropoff",
"compat_boomscroll",
NULL
};
@ -359,7 +360,7 @@ MapHandlers[] =
{ MITYPE_REDIRECT, lioffset(RedirectMap), 0 },
{ MITYPE_CLRFLAG, LEVEL_LAXMONSTERACTIVATION, LEVEL_LAXACTIVATIONMAPINFO },
{ MITYPE_SETFLAG, LEVEL_LAXMONSTERACTIVATION, LEVEL_LAXACTIVATIONMAPINFO },
{ MITYPE_SETFLAG, LEVEL_ADDITIVE_SCROLLERS, 0 },
{ MITYPE_COMPATFLAG, COMPATF_BOOMSCROLL},
{ MITYPE_SETFLAG, LEVEL_CAVERNS_OF_DARKNESS, 0 },
{ MITYPE_LUMPNAME, lioffset(exitpic), 0 },
{ MITYPE_LUMPNAME, lioffset(exitpic), 0 },
@ -390,6 +391,7 @@ MapHandlers[] =
{ MITYPE_COMPATFLAG, COMPATF_DEHHEALTH},
{ MITYPE_COMPATFLAG, COMPATF_TRACE},
{ MITYPE_COMPATFLAG, COMPATF_DROPOFF},
{ MITYPE_COMPATFLAG, COMPATF_BOOMSCROLL},
};
static const char *MapInfoClusterLevel[] =
@ -1000,7 +1002,8 @@ static void ParseMapInfoLower (MapInfoHandler *handlers,
break;
case MITYPE_COMPATFLAG:
SC_MustGetNumber();
if (!SC_CheckNumber()) sc_Number = 1;
if (levelinfo != NULL)
{
if (sc_Number) levelinfo->compatflags |= (DWORD)handler->data1;

View file

@ -93,20 +93,19 @@
#define LEVEL_LAXMONSTERACTIVATION UCONST64(0x400000000) // Monsters can open doors depending on the door speed
#define LEVEL_LAXACTIVATIONMAPINFO UCONST64(0x800000000) // LEVEL_LAXMONSTERACTIVATION is not a default.
#define LEVEL_ADDITIVE_SCROLLERS UCONST64(0x1000000000) // scrollers add their momentum instead of averaging it
#define LEVEL_CAVERNS_OF_DARKNESS UCONST64(0x2000000000) // to translate the special sector types of CoD.
#define LEVEL_CAVERNS_OF_DARKNESS UCONST64(0x1000000000) // to translate the special sector types of CoD.
#define LEVEL_KEEPFULLINVENTORY UCONST64(0x4000000000) // doesn't reduce the amount of inventory items to 1
#define LEVEL_KEEPFULLINVENTORY UCONST64(0x2000000000) // doesn't reduce the amount of inventory items to 1
#define LEVEL_MUSICDEFINED UCONST64(0x8000000000) // a marker to disable the $map command in SNDINFO for this map
#define LEVEL_MONSTERFALLINGDAMAGE UCONST64(0x10000000000)
#define LEVEL_CLIPMIDTEX UCONST64(0x20000000000)
#define LEVEL_WRAPMIDTEX UCONST64(0x40000000000)
#define LEVEL_MUSICDEFINED UCONST64(0x4000000000) // a marker to disable the $map command in SNDINFO for this map
#define LEVEL_MONSTERFALLINGDAMAGE UCONST64(0x8000000000)
#define LEVEL_CLIPMIDTEX UCONST64(0x10000000000)
#define LEVEL_WRAPMIDTEX UCONST64(0x20000000000)
#define LEVEL_CROUCH_NO UCONST64(0x80000000000)
#define LEVEL_CROUCH_YES UCONST64(0x100000000000)
#define LEVEL_CROUCH_NO UCONST64(0x40000000000)
#define LEVEL_CROUCH_YES UCONST64(0x80000000000)
#define LEVEL_PAUSE_MUSIC_IN_MENUS UCONST64(0x200000000000)
#define LEVEL_PAUSE_MUSIC_IN_MENUS UCONST64(0x100000000000)
struct acsdefered_s;

View file

@ -987,6 +987,7 @@ static menuitem_t CompatibilityItems[] = {
{ bitflag, "DEH health settings like Doom2.exe", {&compatflags}, {0}, {0}, {0}, {(value_t *)COMPATF_DEHHEALTH} },
{ bitflag, "Self ref. sectors don't block shots", {&compatflags}, {0}, {0}, {0}, {(value_t *)COMPATF_TRACE} },
{ bitflag, "Monsters get stuck over dropoffs", {&compatflags}, {0}, {0}, {0}, {(value_t *)COMPATF_DROPOFF} },
{ bitflag, "Boom scrollers are additive", {&compatflags}, {0}, {0}, {0}, {(value_t *)COMPATF_BOOMSCROLL} },
{ discrete, "Interpolate monster movement", {&nomonsterinterpolation}, {2.0}, {0.0}, {0.0}, {NoYes} },
};

View file

@ -2703,7 +2703,7 @@ void AActor::Tick ()
// Some levels designed with Boom in mind actually want things to accelerate
// at neighboring scrolling sector boundaries. But it is only important for
// non-player objects.
if (player != NULL || !(level.flags & LEVEL_ADDITIVE_SCROLLERS))
if (player != NULL || !(i_compatflags & COMPATF_BOOMSCROLL))
{
if (countx > 1)
{