From 0d1d15eba86dcf914f99c7af5cf2b5380b9cc5c3 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 3 May 2009 07:19:21 +0000 Subject: [PATCH] - Added more compatibility settings, submitted by Gez. SVN r1569 (trunk) --- docs/rh-log.txt | 5 ++++- src/compatibility.cpp | 2 ++ src/d_main.cpp | 1 + src/doomdef.h | 1 + src/m_options.cpp | 1 + src/p_enemy.cpp | 4 ++-- wadsrc/static/compatibility.txt | 20 +++++++++++++++++++- 7 files changed, 30 insertions(+), 4 deletions(-) diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 352497f6e9..4659298707 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,7 @@ -May 2, 2009 (Changes by Graf Zahl) +May 3, 2009 (Changes by Graf Zahl) +- Added more compatibility settings, submitted by Gez. + +May 2, 2009 (Changes by Graf Zahl) - Fixed: Doom's fullscreen HUD was limited to 6 keys. - Made 'next endgame' work again for cases where it is supposed to be the same as 'next endgame4'. diff --git a/src/compatibility.cpp b/src/compatibility.cpp index e44a672d81..ba817aaa60 100644 --- a/src/compatibility.cpp +++ b/src/compatibility.cpp @@ -98,6 +98,8 @@ static FCompatOption Options[] = { "sectorsounds", COMPATF_SECTORSOUNDS, 0 }, { "missileclip", COMPATF_MISSILECLIP, 0 }, { "crossdropoff", COMPATF_CROSSDROPOFF, 0 }, + { "wallrun", COMPATF_WALLRUN, 0 }, // [GZ] Added for CC MAP29 + { "anybossdeath", COMPATF_ANYBOSSDEATH, 0}, // [GZ] Added for UAC_DEAD { NULL, 0, 0 } }; diff --git a/src/d_main.cpp b/src/d_main.cpp index 25c0a8407d..8ff94da857 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -490,6 +490,7 @@ CVAR (Flag, compat_silentinstantfloors,compatflags, COMPATF_SILENT_INSTANT_FLOOR CVAR (Flag, compat_sectorsounds,compatflags, COMPATF_SECTORSOUNDS); CVAR (Flag, compat_missileclip, compatflags, COMPATF_MISSILECLIP); CVAR (Flag, compat_crossdropoff,compatflags, COMPATF_CROSSDROPOFF); +CVAR (Flag, compat_anybossdeath,compatflags, COMPATF_ANYBOSSDEATH); //========================================================================== // diff --git a/src/doomdef.h b/src/doomdef.h index 5b368884ec..008adee9ab 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -268,6 +268,7 @@ enum COMPATF_SECTORSOUNDS = 1 << 18, // Sector sounds use original method for sound origin. COMPATF_MISSILECLIP = 1 << 19, // Use original Doom heights for clipping against projectiles COMPATF_CROSSDROPOFF = 1 << 20, // monsters can't be pushed over dropoffs + COMPATF_ANYBOSSDEATH = 1 << 21, // [GZ] Any monster which calls BOSSDEATH counts for level specials }; // Emulate old bugs for select maps. These are not exposed by a cvar diff --git a/src/m_options.cpp b/src/m_options.cpp index 54ee7bd143..6e491b2c27 100644 --- a/src/m_options.cpp +++ b/src/m_options.cpp @@ -1127,6 +1127,7 @@ static menuitem_t CompatibilityItems[] = { { bitflag, "Inst. moving floors are not silent", {&compatflags}, {0}, {0}, {0}, {(value_t *)COMPATF_SILENT_INSTANT_FLOORS} }, { bitflag, "Sector sounds use center as source", {&compatflags}, {0}, {0}, {0}, {(value_t *)COMPATF_SECTORSOUNDS} }, { bitflag, "Use Doom heights for missile clipping", {&compatflags}, {0}, {0}, {0}, {(value_t *)COMPATF_MISSILECLIP} }, + { bitflag, "Allow any bossdeath for level special", {&compatflags}, {0}, {0}, {0}, {(value_t *)COMPATF_ANYBOSSDEATH} }, { discrete, "Interpolate monster movement", {&nomonsterinterpolation}, {2.0}, {0.0}, {0.0}, {NoYes} }, }; diff --git a/src/p_enemy.cpp b/src/p_enemy.cpp index faccb34874..0da62486f0 100644 --- a/src/p_enemy.cpp +++ b/src/p_enemy.cpp @@ -2709,7 +2709,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_BossDeath) LEVEL_SORCERER2SPECIAL)) == 0) return; - if ( + if ((i_compatflags & COMPATF_ANYBOSSDEATH) || ( // [GZ] Added for UAC_DEAD ((level.flags & LEVEL_MAP07SPECIAL) && (type == NAME_Fatso || type == NAME_Arachnotron)) || ((level.flags & LEVEL_BRUISERSPECIAL) && (type == NAME_BaronOfHell)) || ((level.flags & LEVEL_CYBORGSPECIAL) && (type == NAME_Cyberdemon)) || @@ -2717,7 +2717,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_BossDeath) ((level.flags & LEVEL_HEADSPECIAL) && (type == NAME_Ironlich)) || ((level.flags & LEVEL_MINOTAURSPECIAL) && (type == NAME_Minotaur)) || ((level.flags & LEVEL_SORCERER2SPECIAL) && (type == NAME_Sorcerer2)) - ) + )) ; else return; diff --git a/wadsrc/static/compatibility.txt b/wadsrc/static/compatibility.txt index 0601f7370a..e64828db68 100644 --- a/wadsrc/static/compatibility.txt +++ b/wadsrc/static/compatibility.txt @@ -56,7 +56,25 @@ F84AB4557464A383E93F37CD3A82AC48 // MM2 map03 spechitoverflow } -96368EB950E33AF62EA6423434E3CEF7 // Hacx map17: There's some switches behind shootable covers in this level +71C2E6D9CFA3D8750C6A9599FB2453BD // Hacx map03: There are some switches behind +96368EB950E33AF62EA6423434E3CEF7 // HacX map17: shootable covers in these levels { useblocking } + +// Cosmetic, but that option was added just for this map so it'd be a shame not to use it +6BC4D6B73165D8C86CF190D44C87EE70 // Suspended in Dusk map01 +{ + sectorsounds +} + +7F24BFC1791F0107CE8F30B7FD3D9802 // Community Chest map29 +{ + wallrun +} + +// Doomsday of UAC: both the barons and the cyberdemon need to activate sector tagged 666 +32FC3115A3162B623F0D0F4E7DEE6861 // e1m8 +{ + anybossdeath +}