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
|
|
@ -86,6 +86,31 @@ Class SWWMLevelCompatibility : LevelPostProcessor
|
|||
for ( int i=118; i<=125; i++ )
|
||||
SetThingEdNum(i,0);
|
||||
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
|
||||
case 'EFFE91DF41AD41F6973C06F0AD67DDB9':
|
||||
level.nextsecretmap = level.nextmap; // so the handler can detect this
|
||||
|
|
|
|||
|
|
@ -123,7 +123,8 @@ extend Class SWWMHandler
|
|||
MAP_HMAP40,
|
||||
MAP_HMAP60,
|
||||
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 )
|
||||
|
|
@ -178,6 +179,8 @@ extend Class SWWMHandler
|
|||
|| (mapsum ~== "97079958C7E89C1908890730B8B9FEB7")
|
||||
|| (mapsum ~== "058FB092EA1B70DA1E3CBF501C4A91A1") )
|
||||
return MAP_DE1M8;
|
||||
if ( mapsum ~== "A1F105211112747EE50BA520462A471E" )
|
||||
return MAP_DE1M8B;
|
||||
if ( mapsum ~== "EFFE91DF41AD41F6973C06F0AD67DDB9" )
|
||||
return MAP_DE2M8;
|
||||
if ( mapsum ~== "EF128313112110ED6C1549AF96AF26C9" )
|
||||
|
|
@ -239,7 +242,7 @@ extend Class SWWMHandler
|
|||
private void VanillaBossSpawn( WorldEvent e )
|
||||
{
|
||||
if ( bossmap == -1 ) bossmap = WhichVanillaBossMap();
|
||||
if ( bossmap == MAP_DE1M8 )
|
||||
if ( (bossmap == MAP_DE1M8) || (bossmap == MAP_DE1M8B) )
|
||||
{
|
||||
if ( e.Thing is 'BaronOfHell' )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -251,6 +251,7 @@ extend Class SWWMHandler
|
|||
switch ( whichboss )
|
||||
{
|
||||
case MAP_DE1M8:
|
||||
case MAP_DE1M8B:
|
||||
SendInterfaceEvent(consoleplayer,"swwmsetdialogue.PHOBOS");
|
||||
break;
|
||||
case MAP_DE2M8:
|
||||
|
|
|
|||
|
|
@ -234,11 +234,31 @@ Class SWWMStats : SWWMStaticThinker
|
|||
|| (li.cluster != level.cluster)
|
||||
|| FindLevelStats(li.mapname) )
|
||||
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");
|
||||
// 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.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();
|
||||
// level name may contain trailing whitespace due to DEHACKED nonsense, so strip it
|
||||
ls.levelname.StripRight();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue