More work towards Legacy of Rust support (with caveats).

As of this commit, do not consider the experience when playing that new
expansion to be complete. I've only partially written some of the mission texts
and rudimentarily enhanced some boss fights.

Currently there is one major limitation in that the intermission texts cannot
be replaced, as they're hardcoded inside the UMAPINFO. I don't know if I can
work around that.
This commit is contained in:
Mari the Deer 2025-08-20 15:50:07 +02:00
commit 2aa0ea4680
16 changed files with 414 additions and 43 deletions

View file

@ -52,10 +52,16 @@ extend Class SWWMUtility
if ( IsEviternity() ) return true;
if ( IsEviternityTwo() ) return true;
if ( IsUltDoom2() ) return true;
if ( IsLegacyOfRust() ) return true;
}
return false;
}
static bool IsLegacyOfRust()
{
return CheckMD5List("id1.lst");
}
// detect ultimate doom 2
static bool IsUltDoom2()
{

View file

@ -84,6 +84,26 @@ extend Class SWWMUtility
case 'CyberdemonMAP24':
basetag = "CYBER";
break;
case 'ID24Banshee':
basetag = "ID24BANSHEE";
break;
case 'ID24Ghoul':
basetag = "ID24GHOUL";
break;
case 'ID24Mindweaver':
basetag = "ID24MINDWEAVER";
break;
case 'ID24PlasmaGuy':
basetag = "ID24SHOCKTROOPER";
break;
case 'ID24Vassago':
basetag = "ID24VASSAGO";
break;
case 'ID24Tyrant':
case 'ID24TyrantBoss1':
case 'ID24TyrantBoss2':
basetag = "ID24TYRANT";
break;
case 'SWWMBossBrain':
basetag = "BOSSBRAIN";
break;
@ -303,6 +323,8 @@ extend Class SWWMUtility
Class<Actor> rescls = res;
return rescls;
}
// special boss tyrants in LoR final map
if ( (a == 'ID24TyrantBoss1') || (a == 'ID24TyrantBoss2') ) return 'ID24Tyrant';
// stealth monsters, the worst thing ever invented
if ( a == 'StealthArachnotron' ) return 'Arachnotron';
if ( a == 'StealthArchvile' ) return 'Archvile';