Add compatibility fixes for ZPack. (This is the beginning of a new feature, basically. Sometimes you gotta make lil' patches for maps that break)

Added a couple more tips.
Added some spooktober compatibility text replacements, just for lil' consistency. (can't replace the SECRET01 hudmessages, unfortunately)
This commit is contained in:
Mari the Deer 2020-11-15 18:09:26 +01:00
commit 7c41dd9725
10 changed files with 85 additions and 2 deletions

32
zscript/swwm_compat.zsc Normal file
View file

@ -0,0 +1,32 @@
// level compatibility scripts
// sometimes shit breaks because of old and wrong scripting
// usually stuff that uses CheckInventory to look for keys, instead of, y'know,
// using ACS_LockedExecute
Class SWWMLevelCompatibility : LevelPostProcessor
{
protected void Apply( Name checksum, String mapname )
{
switch ( checksum )
{
case 'none':
return;
// ZPack E1M2
case 'BA13454A41D931685B6A4B28E6946B6B':
// script uses checkinventory for red key
SetLineSpecial(225,ACS_LockedExecuteDoor,-Int('ZPACK_E1M2_SCRIPT6'),0,0,0,1);
SetLineSpecial(228,ACS_LockedExecuteDoor,-Int('ZPACK_E1M2_SCRIPT6'),0,0,0,1);
break;
// ZPack E3M2
case '17BD38E0B2FB8E760885FE46325DFF3A':
// script uses checkinventory for red skull
SetLineSpecial(5913,ACS_LockedExecute,-Int('ZPACK_E3M2_SCRIPT9'),0,0,0,4);
break;
// ZPack E3M8
case '13C5952A04014122271F50134DB4521F':
// script uses checkinventory for yellow skull
SetLineSpecial(22610,ACS_LockedExecute,-Int('ZPACK_E3M8_SCRIPT15'),0,0,0,6);
break;
}
}
}

View file

@ -863,6 +863,9 @@ Class SWWMUtility
static clearscope bool IdentifyingDog( Actor a )
{
if ( a is 'MBFHelperDog' ) return true;
// reminder that mark is a terrible person
if ( a.GetClassName() == 'GermanDog' ) return true;
if ( a.GetClassName() == '64HellHound' ) return true;
// more dogs will be added as found
// because all dogs must be pet
return false;