Add support for E1M4B and E1M8B as part of Wadfusion.
This commit is contained in:
parent
8f4a7445c6
commit
d47eb2f1e3
6 changed files with 57 additions and 5 deletions
|
|
@ -1,3 +1,3 @@
|
||||||
[default]
|
[default]
|
||||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1156 \cu(Mon Oct 7 10:51:27 CEST 2024)\c-";
|
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1157 \cu(Sun Oct 20 13:58:22 CEST 2024)\c-";
|
||||||
SWWM_SHORTVER="\cw1.3pre r1156 \cu(2024-10-07 10:51:27)\c-";
|
SWWM_SHORTVER="\cw1.3pre r1157 \cu(2024-10-20 13:58:22)\c-";
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,9 @@ F6EE16F770AD309D608EA0B1F1E249FC
|
||||||
F951882CB5A8DEF910F0ED966A1054C5
|
F951882CB5A8DEF910F0ED966A1054C5
|
||||||
FB564DF28BC8D4BF70F60FB3256BCF9D
|
FB564DF28BC8D4BF70F60FB3256BCF9D
|
||||||
FE97DCB9E6235FB3C52AE7C143160D73
|
FE97DCB9E6235FB3C52AE7C143160D73
|
||||||
|
# E1M4B + E1M8B
|
||||||
|
1D80B17F6283346D35EDB86CD684C4D3
|
||||||
|
A1F105211112747EE50BA520462A471E
|
||||||
# DOOM II
|
# DOOM II
|
||||||
0BB515B79E0A6C42C4846C4E6F5F1D73
|
0BB515B79E0A6C42C4846C4E6F5F1D73
|
||||||
0D491365C1B88B7D1B603890100DD03E
|
0D491365C1B88B7D1B603890100DD03E
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,31 @@ Class SWWMLevelCompatibility : LevelPostProcessor
|
||||||
for ( int i=118; i<=125; i++ )
|
for ( int i=118; i<=125; i++ )
|
||||||
SetThingEdNum(i,0);
|
SetThingEdNum(i,0);
|
||||||
break;
|
break;
|
||||||
|
case 'A1F105211112747EE50BA520462A471E':
|
||||||
|
{
|
||||||
|
// E1M8B
|
||||||
|
level.nextsecretmap = level.nextmap; // so the handler can detect this
|
||||||
|
level.nextmap = "E2M1";
|
||||||
|
// no damage in exit sector
|
||||||
|
SetSectorSpecial(538,0);
|
||||||
|
// paint it black
|
||||||
|
for ( int i=1; i<4; i++ )
|
||||||
|
level.Sectors[538].SetSpecialColor(i,"Black");
|
||||||
|
// teleport sequence
|
||||||
|
static const int exitlines[] =
|
||||||
|
{
|
||||||
|
3048, 3055, 3073,
|
||||||
|
3074, 3075, 3076,
|
||||||
|
3077, 3078, 3079,
|
||||||
|
3080, 3081, 3082
|
||||||
|
};
|
||||||
|
for ( int i=0; i<12; i++ )
|
||||||
|
SetLineSpecial(exitlines[i],ACS_Execute,-Int('E1M8_KNOCKOUT'));
|
||||||
|
// remove enemies
|
||||||
|
for ( int i=183; i<=190; i++ )
|
||||||
|
SetThingEdNum(i,0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Doom E2M8
|
// Doom E2M8
|
||||||
case 'EFFE91DF41AD41F6973C06F0AD67DDB9':
|
case 'EFFE91DF41AD41F6973C06F0AD67DDB9':
|
||||||
level.nextsecretmap = level.nextmap; // so the handler can detect this
|
level.nextsecretmap = level.nextmap; // so the handler can detect this
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,8 @@ extend Class SWWMHandler
|
||||||
MAP_HMAP40,
|
MAP_HMAP40,
|
||||||
MAP_HMAP60,
|
MAP_HMAP60,
|
||||||
MAP_EVMAP30, // eviternity
|
MAP_EVMAP30, // eviternity
|
||||||
MAP_EVIIMAP30 // eviternity 2
|
MAP_EVIIMAP30, // eviternity 2
|
||||||
|
MAP_DE1M8B // "tech gone bad"
|
||||||
};
|
};
|
||||||
|
|
||||||
static play void AddBoss( int tid, String tag, bool endgame = false )
|
static play void AddBoss( int tid, String tag, bool endgame = false )
|
||||||
|
|
@ -178,6 +179,8 @@ extend Class SWWMHandler
|
||||||
|| (mapsum ~== "97079958C7E89C1908890730B8B9FEB7")
|
|| (mapsum ~== "97079958C7E89C1908890730B8B9FEB7")
|
||||||
|| (mapsum ~== "058FB092EA1B70DA1E3CBF501C4A91A1") )
|
|| (mapsum ~== "058FB092EA1B70DA1E3CBF501C4A91A1") )
|
||||||
return MAP_DE1M8;
|
return MAP_DE1M8;
|
||||||
|
if ( mapsum ~== "A1F105211112747EE50BA520462A471E" )
|
||||||
|
return MAP_DE1M8B;
|
||||||
if ( mapsum ~== "EFFE91DF41AD41F6973C06F0AD67DDB9" )
|
if ( mapsum ~== "EFFE91DF41AD41F6973C06F0AD67DDB9" )
|
||||||
return MAP_DE2M8;
|
return MAP_DE2M8;
|
||||||
if ( mapsum ~== "EF128313112110ED6C1549AF96AF26C9" )
|
if ( mapsum ~== "EF128313112110ED6C1549AF96AF26C9" )
|
||||||
|
|
@ -239,7 +242,7 @@ extend Class SWWMHandler
|
||||||
private void VanillaBossSpawn( WorldEvent e )
|
private void VanillaBossSpawn( WorldEvent e )
|
||||||
{
|
{
|
||||||
if ( bossmap == -1 ) bossmap = WhichVanillaBossMap();
|
if ( bossmap == -1 ) bossmap = WhichVanillaBossMap();
|
||||||
if ( bossmap == MAP_DE1M8 )
|
if ( (bossmap == MAP_DE1M8) || (bossmap == MAP_DE1M8B) )
|
||||||
{
|
{
|
||||||
if ( e.Thing is 'BaronOfHell' )
|
if ( e.Thing is 'BaronOfHell' )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -251,6 +251,7 @@ extend Class SWWMHandler
|
||||||
switch ( whichboss )
|
switch ( whichboss )
|
||||||
{
|
{
|
||||||
case MAP_DE1M8:
|
case MAP_DE1M8:
|
||||||
|
case MAP_DE1M8B:
|
||||||
SendInterfaceEvent(consoleplayer,"swwmsetdialogue.PHOBOS");
|
SendInterfaceEvent(consoleplayer,"swwmsetdialogue.PHOBOS");
|
||||||
break;
|
break;
|
||||||
case MAP_DE2M8:
|
case MAP_DE2M8:
|
||||||
|
|
|
||||||
|
|
@ -234,11 +234,31 @@ Class SWWMStats : SWWMStaticThinker
|
||||||
|| (li.cluster != level.cluster)
|
|| (li.cluster != level.cluster)
|
||||||
|| FindLevelStats(li.mapname) )
|
|| FindLevelStats(li.mapname) )
|
||||||
continue;
|
continue;
|
||||||
|
// wadfusion hack for E1M4B and E1M8B
|
||||||
|
bool wf_hack = false;
|
||||||
|
if ( (li.mapname == "E1M4") && LevelInfo.MapExists("E1M4B") )
|
||||||
|
{
|
||||||
|
let cv = CVar.GetCVar("wf_blackroomswap_e1m4b");
|
||||||
|
if ( cv && cv.GetBool() )
|
||||||
|
{
|
||||||
|
wf_hack = true;
|
||||||
|
li = LevelInfo.FindLevelInfo("E1M4B");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ( (li.mapname == "E1M8") && LevelInfo.MapExists("E1M8B") )
|
||||||
|
{
|
||||||
|
let cv = CVar.GetCVar("wf_blackroomswap_e1m8b");
|
||||||
|
if ( cv && cv.GetBool() )
|
||||||
|
{
|
||||||
|
wf_hack = true;
|
||||||
|
li = LevelInfo.FindLevelInfo("E1M8B");
|
||||||
|
}
|
||||||
|
}
|
||||||
let ls = new("LevelStat");
|
let ls = new("LevelStat");
|
||||||
// we can automatically assume that all levels from the same cluster will have this flag as well
|
// we can automatically assume that all levels from the same cluster will have this flag as well
|
||||||
ls.hub = !!(level.clusterflags&level.CLUSTER_HUB);
|
ls.hub = !!(level.clusterflags&level.CLUSTER_HUB);
|
||||||
ls.visited = false;
|
ls.visited = false;
|
||||||
ls.cluster = li.cluster;
|
ls.cluster = wf_hack?1:li.cluster; // force cluster to be 1 for Romero's extra maps
|
||||||
ls.levelname = li.LookupLevelName();
|
ls.levelname = li.LookupLevelName();
|
||||||
// level name may contain trailing whitespace due to DEHACKED nonsense, so strip it
|
// level name may contain trailing whitespace due to DEHACKED nonsense, so strip it
|
||||||
ls.levelname.StripRight();
|
ls.levelname.StripRight();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue