From 7c41dd97258e85e1e3c27db1d05a2e807e232f0d Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sun, 15 Nov 2020 18:09:26 +0100 Subject: [PATCH] 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) --- LOADACS.txt | 1 + acs/swwmcomp.o | Bin 0 -> 204 bytes language.def_base | 8 +++++++- language.es_base | 5 +++++ language.spookcompat | 7 +++++++ language.version | 2 +- swwmcomp.acs | 28 ++++++++++++++++++++++++++++ zscript.txt | 1 + zscript/swwm_compat.zsc | 32 ++++++++++++++++++++++++++++++++ zscript/swwm_utility.zsc | 3 +++ 10 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 LOADACS.txt create mode 100644 acs/swwmcomp.o create mode 100644 language.spookcompat create mode 100644 swwmcomp.acs create mode 100644 zscript/swwm_compat.zsc diff --git a/LOADACS.txt b/LOADACS.txt new file mode 100644 index 000000000..11910f832 --- /dev/null +++ b/LOADACS.txt @@ -0,0 +1 @@ +SWWMCOMP diff --git a/acs/swwmcomp.o b/acs/swwmcomp.o new file mode 100644 index 0000000000000000000000000000000000000000..0045cd0738a18fa4c3dfa0f2ba99f23d34a81f9b GIT binary patch literal 204 zcmZ>C4rVyQz`(Fv%yxsA04w)KF(wW+k>y{_K|C%nPkgzAIpana26nc9V8)GxTn=m^ z%MEQes&ZAZi7*BSgak=2Ffjc8&%nUJz`*eDKLdjX0|Ud~{|pQU3=9mxevZCA3=9m+ z3=9kc3=9m)3=9lr3=9lW0glez@verxM)ASUL7o92W-uXRxR516$O5X$(3F9J!O_Rl SiGhKE!2!f}4o(HJK^Oqp)+$W^ literal 0 HcmV?d00001 diff --git a/language.def_base b/language.def_base index ce993a6fc..59c04d32d 100644 --- a/language.def_base +++ b/language.def_base @@ -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"; diff --git a/language.es_base b/language.es_base index 1c957e39b..ed955b2bd 100644 --- a/language.es_base +++ b/language.es_base @@ -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: "; diff --git a/language.spookcompat b/language.spookcompat new file mode 100644 index 000000000..b2f8b7907 --- /dev/null +++ b/language.spookcompat @@ -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-"; diff --git a/language.version b/language.version index 476de0208..fd69b6c24 100644 --- a/language.version +++ b/language.version @@ -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)"; diff --git a/swwmcomp.acs b/swwmcomp.acs new file mode 100644 index 000000000..0f0e45544 --- /dev/null +++ b/swwmcomp.acs @@ -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); +} diff --git a/zscript.txt b/zscript.txt index b5c8f6696..9f14bffda 100644 --- a/zscript.txt +++ b/zscript.txt @@ -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" diff --git a/zscript/swwm_compat.zsc b/zscript/swwm_compat.zsc new file mode 100644 index 000000000..0ed0da953 --- /dev/null +++ b/zscript/swwm_compat.zsc @@ -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; + } + } +} diff --git a/zscript/swwm_utility.zsc b/zscript/swwm_utility.zsc index 3d12e6656..6bb074f0f 100644 --- a/zscript/swwm_utility.zsc +++ b/zscript/swwm_utility.zsc @@ -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;