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:
Marisa the Magician 2020-11-15 18:09:26 +01:00
parent bbf5b73bce
commit 7c41dd9725
10 changed files with 85 additions and 2 deletions

1
LOADACS.txt Normal file
View File

@ -0,0 +1 @@
SWWMCOMP

BIN
acs/swwmcomp.o Normal file

Binary file not shown.

View File

@ -908,7 +908,7 @@ SWWM_LASTMONSTER = "\cf%s\cf killed the last monster. +%d\c-";
SWWM_NEWLORE = "New entries have been added to the Library.";
SWWM_SELLEXTRA = "\cf%s\cf sold an extra %s\cf. +%d\c-";
// intermission tips
SWWM_NINTERTIP = "69";
SWWM_NINTERTIP = "75";
SWWM_INTERTIP = "Tip #%d:";
SWWM_INTERTIP1 = "The Demolitionist is immune to drowning, poison and even fall damage (excluding instant kill pits).";
SWWM_INTERTIP2 = "The Explodium Gun's altfire has an explosive yield proportional to the bullets left in the mag.";
@ -979,6 +979,12 @@ SWWM_INTERTIP66 = "The Blackfire Igniter can produce blocks of ice that float ab
SWWM_INTERTIP67 = "You can mark multiple targets with the Rail Carbine's ionizer and then hit them all in a single discharge. Do be quick, however, because the charge fades over time.";
SWWM_INTERTIP68 = "Being primarily a coilgun, the Ray-Khom is almost entirely silent and perfect for stealthy kills. Do note though that the impact of the projectile itself will be very loud.";
SWWM_INTERTIP69 = "Nice.";
SWWM_INTERTIP70 = "Did you know that even with seat belts people die all the time in car crashes? I thought that was interesting.";
SWWM_INTERTIP71 = "\"On the internet nobody can hear you being subtle.\" — Linus Torvalds";
SWWM_INTERTIP72 = "There are approximately 9.3 billion demons bred solely for warfare in Hell. That is eight hundred and seventy six thousand times the monster count of nuts.wad, and that's terrible.";
SWWM_INTERTIP73 = "People die if they are killed. But legends never die, they get back up and pwn you.";
SWWM_INTERTIP74 = "\"TREEEEEEEEEES!\" — Marty";
SWWM_INTERTIP75 = "Kobolds are small little creechers that go yip.";
// intermission fanart
SWWM_FANART = "Art: ";
SWWM_NFANART = "5";

View File

@ -914,5 +914,10 @@ SWWM_INTERTIP65 = "El Encendedor de Fuego Negro deja un rastro prolongado de fr
SWWM_INTERTIP66 = "El Encendedor de Fuego Negro puede producir bloques de hielo que flotan sobre líquidos, convirtiéndose en plataformas temporales. Ten en cuenta que esto obviamente no funcionará en lava.";
SWWM_INTERTIP67 = "Puedes marcar múltiples objetivos con el ionizador de la Carabina de Raíl y luego alcanzarlos a todos en una sola descarga. Pero debes hacerlo rápido, ya que la carga se disipa con el tiempo.";
SWWM_INTERTIP68 = "Siendo principalmente una pistola de bobina, la Ray-Khom es casi completamente silenciosa y perfecta para matar sigilosamente. Ten en cuenta sin embargo que el impacto del proyectil en sí será muy ruidoso.";
SWWM_INTERTIP70 = "¿Sabíais que incluso con cinturones de seguridad la gente muere todo el tiempo en accidentes de coche? Pensé que era interesante.";
SWWM_INTERTIP71 = "\"En internet nadie puede escucharte ser sutil.\" — Linus Torvalds";
SWWM_INTERTIP72 = "Hay aproximadamente 9.3 mil millones de demonios criados solo para la guerra en el Infierno. Eso es ochocientas setenta y seis mil veces el conteo de monstruos de nuts.wad, y eso es terrible.";
SWWM_INTERTIP73 = "La gente muere si la matan. Pero las leyendas nunca mueren, se levantan de nuevo y te parten la badana.";
SWWM_INTERTIP75 = "Los kobolds son pequeñas criaturitas que hacen yip.";
// intermission fanart
SWWM_FANART = "Arte: ";

7
language.spookcompat Normal file
View File

@ -0,0 +1,7 @@
[enu default]
DEFPNAME = "the one they call \cfDemolitionist\c-";
BOSSDLG2 = "DO YOU KNOW, MACHINE, WHAT YOU HAVE DONE? THE BARRIERS YOU HAVE DESTROYED WERE NOT OF MY CREATION.";
BEATDLG2 = "Well... if it isn't the little robot that's been \"exploding knees\" among Hell's forces.";
BEATDLG14 = "Here! I'm feeling generous tonight. I know it's not very modern like what you tend to carry around, but it'll do.";
BEATDLG22 = "Not ever in my thousand years as a witch have I seen someone like you! What sort of killer machine are you!?";
BEATDLG27 = "\cgNO SMALL BOMBS WERE USED IN THE ROKKENJIMA MURDERS\c-";

View File

@ -1,2 +1,2 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r617 \cu(Sat 14 Nov 12:23:48 CET 2020)";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r618 \cu(Sun 15 Nov 18:09:26 CET 2020)";

28
swwmcomp.acs Normal file
View File

@ -0,0 +1,28 @@
#library "SWWMCOMP"
#include "zcommon.acs"
// these scripts are redirected to by the compatibility postprocessor
SCRIPT "ZPACK_E1M2_SCRIPT6" ( void )
{
TagWait(22);
Door_Open(22,16);
Floor_LowerByValue(22,2,8);
Delay(245);
Door_Close(22,16);
Floor_RaiseByValue(22,2,8);
Delay(24);
}
SCRIPT "ZPACK_E3M2_SCRIPT9" ( void )
{
ACS_Execute(4,0,7);
ClearLineSpecial();
}
SCRIPT "ZPACK_E3M8_SCRIPT15" ( void )
{
Floor_LowerByValue(49,10,64);
TagWait(49);
Floor_LowerByValue(37,10,120);
}

View File

@ -20,6 +20,7 @@ version "4.5"
#include "zscript/swwm_handler.zsc"
#include "zscript/swwm_shame.zsc"
#include "zscript/swwm_hdoom.zsc"
#include "zscript/swwm_compat.zsc"
#include "zscript/swwm_thinkers.zsc"
#include "zscript/swwm_player.zsc"
#include "zscript/swwm_inventory.zsc"

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;