From 724a50f45a19366c22c0518b7871a97c0ba0197a Mon Sep 17 00:00:00 2001 From: Owlet7 Date: Sun, 6 Apr 2025 05:26:11 +0300 Subject: [PATCH] Add support for ID24 monsters and decorations --- .../static/filter/game-doomchex/sndinfo.txt | 47 ++++ wadsrc/static/mapinfo/doomitems.txt | 51 ++++ wadsrc/static/zscript.txt | 10 + .../actors/doom/id24/id24ambientsounds.zs | 65 +++++ .../zscript/actors/doom/id24/id24banshee.zs | 65 +++++ .../zscript/actors/doom/id24/id24ghoul.zs | 94 +++++++ .../zscript/actors/doom/id24/id24gore.zs | 248 ++++++++++++++++ .../actors/doom/id24/id24mindweaver.zs | 74 +++++ .../zscript/actors/doom/id24/id24nature.zs | 266 ++++++++++++++++++ .../zscript/actors/doom/id24/id24plasmaguy.zs | 128 +++++++++ .../zscript/actors/doom/id24/id24tech.zs | 101 +++++++ .../zscript/actors/doom/id24/id24tyrant.zs | 98 +++++++ .../zscript/actors/doom/id24/id24vassago.zs | 145 ++++++++++ 13 files changed, 1392 insertions(+) create mode 100644 wadsrc/static/zscript/actors/doom/id24/id24ambientsounds.zs create mode 100644 wadsrc/static/zscript/actors/doom/id24/id24banshee.zs create mode 100644 wadsrc/static/zscript/actors/doom/id24/id24ghoul.zs create mode 100644 wadsrc/static/zscript/actors/doom/id24/id24gore.zs create mode 100644 wadsrc/static/zscript/actors/doom/id24/id24mindweaver.zs create mode 100644 wadsrc/static/zscript/actors/doom/id24/id24nature.zs create mode 100644 wadsrc/static/zscript/actors/doom/id24/id24plasmaguy.zs create mode 100644 wadsrc/static/zscript/actors/doom/id24/id24tech.zs create mode 100644 wadsrc/static/zscript/actors/doom/id24/id24tyrant.zs create mode 100644 wadsrc/static/zscript/actors/doom/id24/id24vassago.zs diff --git a/wadsrc/static/filter/game-doomchex/sndinfo.txt b/wadsrc/static/filter/game-doomchex/sndinfo.txt index d571cfd01a..84b6e68f79 100644 --- a/wadsrc/static/filter/game-doomchex/sndinfo.txt +++ b/wadsrc/static/filter/game-doomchex/sndinfo.txt @@ -460,6 +460,53 @@ $alias intermission/pastdmstats *gibbed // id24 sounds +world/officelamp = DSBREAK + +ambient/klaxon = DSKLAXON +ambient/portalopen = DSGATOPN +ambient/portalloop = DSGATLOP +ambient/portalclose = DSGATCLS + +monsters/ghoul/sight = DSGHLSIT +monsters/ghoul/pain = DSGHLPAI +monsters/ghoul/death = DSGHLDTH +monsters/ghoul/active = DSGHLACT +monsters/ghoul/attack = DSFIRSHT +monsters/ghoul/shotx = DSFIRXPL + +monsters/banshee/sight = DSBANACT +monsters/banshee/pain = DSBANPAI +monsters/banshee/death = DSBANDTH +monsters/banshee/active = DSBANACT + +monsters/mindweaver/sight = DSCSPSIT +monsters/mindweaver/pain = DSDMPAIN +monsters/mindweaver/death = DSCSPDTH +monsters/mindweaver/active = DSCSPACT +monsters/mindweaver/walk = DSCSPWLK + +monsters/plasmaguy/pain = DSPPOPAI +monsters/plasmaguy/death = DSPPODTH +monsters/plasmaguy/active = DSPPOACT +monsters/plasmaguy/head = DSPPOHED + +monsters/vassago/sight = DSVASSIT +monsters/vassago/pain = DSVASPAI +monsters/vassago/death = DSVASDTH +monsters/vassago/active = DSVASACT +monsters/vassago/attack = DSVASATK +monsters/vassago/burn = DSINCBRN +monsters/vassago/shotx = DSFLAME +monsters/vassago/hot1 = DSINCHT1 +monsters/vassago/hot2 = DSINCHT2 +monsters/vassago/hot3 = DSINCHT3 + +monsters/tyrant/sight = DSTYRSIT +monsters/tyrant/pain = DSTYRPAI +monsters/tyrant/death = DSTYRDTH +monsters/tyrant/active = DSTYRACT +monsters/tyrant/walk = DSTYRWLK + weapons/incinerator/fire1 DSINCFI1 weapons/incinerator/fire2 DSINCFI2 weapons/incinerator/burn DSINCBRN diff --git a/wadsrc/static/mapinfo/doomitems.txt b/wadsrc/static/mapinfo/doomitems.txt index f7db6f0063..aa4fff87e3 100644 --- a/wadsrc/static/mapinfo/doomitems.txt +++ b/wadsrc/static/mapinfo/doomitems.txt @@ -119,6 +119,57 @@ DoomEdNums 3004 = Zombieman 3005 = Cacodemon 3006 = LostSoul + 3007 = ID24Ghoul + 3008 = ID24Banshee + 3009 = ID24Mindweaver + 3010 = ID24PlasmaGuy + 3011 = ID24Vassago + 3012 = ID24Tyrant + 3013 = ID24TyrantBoss1 + 3014 = ID24TyrantBoss2 + 3100 = ID24GrayStalagmite + 3101 = ID24LargeCorpsePile + 3102 = ID24HumanBBQ1 + 3103 = ID24HumanBBQ2 + 3104 = ID24HangingBodyBothLegs + 3105 = ID24HangingBodyBothLegsSolid + 3106 = ID24HangingBodyCrucified + 3107 = ID24HangingBodyCrucifiedSolid + 3108 = ID24HangingBodyArmsBound + 3109 = ID24HangingBodyArmsBoundSolid + 3110 = ID24HangingBaronOfHell + 3111 = ID24HangingBaronOfHellSolid + 3112 = ID24HangingChainedBody + 3113 = ID24HangingChainedBodySolid + 3114 = ID24HangingChainedTorso + 3115 = ID24HangingChainedTorsoSolid + 3116 = ID24SkullPoleTrio + 3117 = ID24SkullGibs + 3118 = ID24BushShort + 3119 = ID24BushShortBurned1 + 3120 = ID24BushShortBurned2 + 3121 = ID24BushTall + 3122 = ID24BushTallBurned1 + 3123 = ID24BushTallBurned2 + 3124 = ID24CaveRockColumn + 3125 = ID24CaveStalagmiteLarge + 3126 = ID24CaveStalagmiteMedium + 3127 = ID24CaveStalagmiteSmall + 3128 = ID24CaveStalactiteLarge + 3129 = ID24CaveStalactiteLargeSolid + 3130 = ID24CaveStalactiteMedium + 3131 = ID24CaveStalactiteMediumSolid + 3132 = ID24CaveStalactiteSmall + 3133 = ID24CaveStalactiteSmallSolid + 3134 = ID24OfficeChair + 3135 = ID24OfficeLamp + 3136 = ID24LiveWire + 3137 = ID24CeilingLamp + 3138 = ID24CandelabraShort + 3139 = ID24AmbientKlaxon + 3140 = ID24AmbientPortalOpen + 3141 = ID24AmbientPortalLoop + 3142 = ID24AmbientPortalClose 4001 = "$Player5Start" 4002 = "$Player6Start" 4003 = "$Player7Start" diff --git a/wadsrc/static/zscript.txt b/wadsrc/static/zscript.txt index 54939e70ad..371063dab4 100644 --- a/wadsrc/static/zscript.txt +++ b/wadsrc/static/zscript.txt @@ -124,6 +124,16 @@ version "4.15.1" #include "zscript/actors/doom/weaponbfg.zs" #include "zscript/actors/doom/dehacked.zs" +#include "zscript/actors/doom/id24/id24gore.zs" +#include "zscript/actors/doom/id24/id24nature.zs" +#include "zscript/actors/doom/id24/id24tech.zs" +#include "zscript/actors/doom/id24/id24ambientsounds.zs" +#include "zscript/actors/doom/id24/id24ghoul.zs" +#include "zscript/actors/doom/id24/id24banshee.zs" +#include "zscript/actors/doom/id24/id24mindweaver.zs" +#include "zscript/actors/doom/id24/id24plasmaguy.zs" +#include "zscript/actors/doom/id24/id24vassago.zs" +#include "zscript/actors/doom/id24/id24tyrant.zs" #include "zscript/actors/doom/id24/id24ammo.zs" #include "zscript/actors/doom/id24/id24incinerator.zs" #include "zscript/actors/doom/id24/id24calamityblade.zs" diff --git a/wadsrc/static/zscript/actors/doom/id24/id24ambientsounds.zs b/wadsrc/static/zscript/actors/doom/id24/id24ambientsounds.zs new file mode 100644 index 0000000000..b82a0d712f --- /dev/null +++ b/wadsrc/static/zscript/actors/doom/id24/id24ambientsounds.zs @@ -0,0 +1,65 @@ +/***************************************************************************** + * Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + ****************************************************************************/ + +/***************************************************************************** + * id1 - decohack - ambient sounds + ****************************************************************************/ + +class ID24AmbientKlaxon : Actor +{ + Default + { + Radius 8; + Height 16; + } + States + { + Spawn: + TNT1 A 1 A_Look; + Loop; + See: + TNT1 A 35 A_StartSound("ambient/klaxon"); + Loop; + } +} + +class ID24AmbientPortalOpen : ID24AmbientKlaxon +{ + States + { + See: + TNT1 A 250 A_StartSound("ambient/portalopen", 1); + Stop; + } +} + +class ID24AmbientPortalLoop : ID24AmbientKlaxon +{ + States + { + See: + TNT1 A 139 A_StartSound("ambient/portalloop"); + Loop; + } +} + +class ID24AmbientPortalClose : ID24AmbientKlaxon +{ + States + { + See: + TNT1 A 105 A_StartSound("ambient/portalclose", 1); + Stop; + } +} diff --git a/wadsrc/static/zscript/actors/doom/id24/id24banshee.zs b/wadsrc/static/zscript/actors/doom/id24/id24banshee.zs new file mode 100644 index 0000000000..cf8083d8e3 --- /dev/null +++ b/wadsrc/static/zscript/actors/doom/id24/id24banshee.zs @@ -0,0 +1,65 @@ +/***************************************************************************** + * Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + ****************************************************************************/ + +/***************************************************************************** + * id1 - decohack - banshee + ****************************************************************************/ + +//converted from DECOHACK + +class ID24Banshee : Actor +{ + Default + { + Health 100; + Speed 8; + Radius 20; + Height 56; + ReactionTime 8; + PainChance 64; + Mass 500; + Monster; + +FLOAT + +NOGRAVITY + SeeSound "monsters/banshee/sight"; + PainSound "monsters/banshee/pain"; + DeathSound "monsters/banshee/death"; + Tag "$FN_ID24BANSHEE"; + } + States + { + Spawn: + BSHE AB 10 BRIGHT A_Look; + Loop; + See: + BSHE AAABBBCCCAAABBBCCC 2 BRIGHT A_Chase; + BSHE A 0 BRIGHT A_StartSound("monsters/banshee/active"); + Loop; + Melee: + BSHE D 1 BRIGHT A_RadiusDamage(100, 8); + Wait; + Pain: + BSHE D 3 BRIGHT; + BSHE D 3 BRIGHT A_Pain; + Goto See; + Death: + BSHE D 4 BRIGHT A_Scream; + BSHE E 6 BRIGHT A_RadiusDamage(128, 128); + BSHE F 8 BRIGHT A_Fall; + BSHE G 6 BRIGHT; + BSHE H 4 BRIGHT; + TNT1 A 20; + Stop; + } +} diff --git a/wadsrc/static/zscript/actors/doom/id24/id24ghoul.zs b/wadsrc/static/zscript/actors/doom/id24/id24ghoul.zs new file mode 100644 index 0000000000..fa07b84b9e --- /dev/null +++ b/wadsrc/static/zscript/actors/doom/id24/id24ghoul.zs @@ -0,0 +1,94 @@ +/***************************************************************************** + * Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + ****************************************************************************/ + +/***************************************************************************** + * id1 - decohack - ghoul + ****************************************************************************/ + +//converted from DECOHACK + +class ID24Ghoul : Actor +{ + Default + { + Health 50; + Speed 12; + Radius 16; + Height 40; + ReactionTime 8; + PainChance 128; + Mass 50; + Monster; + +FLOAT + +NOGRAVITY + SeeSound "monsters/ghoul/sight"; + PainSound "monsters/ghoul/pain"; + DeathSound "monsters/ghoul/death"; + ActiveSound "monsters/ghoul/active"; + Tag "$FN_ID24GHOUL"; + } + States + { + Spawn: + GHUL AB 10 A_Look; + Loop; + See: + GHUL AABBCCBB 3 A_Chase; + Loop; + Missile: + GHUL DE 4 BRIGHT A_FaceTarget; + GHUL F 4 BRIGHT MBF21_MonsterProjectile("ID24GhoulBall", 0.0, 0.0, 0.0, -8.0); + GHUL G 4 BRIGHT; + Goto See; + Pain: + GHUL I 3 BRIGHT; + GHUL K 3 BRIGHT A_Pain; + Goto See; + Death: + GHUL L 5 BRIGHT; + GHUL M 5 BRIGHT A_Scream; + GHUL NO 5 BRIGHT; + GHUL P 5 BRIGHT A_Fall; + GHUL QR 5 BRIGHT; + GHUL S -1; + Stop; + } +} + +class ID24GhoulBall : Actor +{ + Default + { + Damage 3; + Speed 15; + FastSpeed 20; + Radius 6; + Height 8; + Projectile; + +ZDOOMTRANS + RenderStyle "Add"; + SeeSound "monsters/ghoul/attack"; + DeathSound "monsters/ghoul/shotx"; + } + States + { + Spawn: + GBAL AB 4 BRIGHT; + Loop; + Death: + GBAL C 5 BRIGHT; + APBX BCDE 5 BRIGHT; + Stop; + } +} diff --git a/wadsrc/static/zscript/actors/doom/id24/id24gore.zs b/wadsrc/static/zscript/actors/doom/id24/id24gore.zs new file mode 100644 index 0000000000..b437214317 --- /dev/null +++ b/wadsrc/static/zscript/actors/doom/id24/id24gore.zs @@ -0,0 +1,248 @@ +/***************************************************************************** + * Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + ****************************************************************************/ + +/***************************************************************************** + * id1 - decohack - gore + ****************************************************************************/ + +//converted from DECOHACK + +class ID24LargeCorpsePile : Actor +{ + Default + { + Radius 40; + Height 16; + +SOLID + } + States + { + Spawn: + POL7 A -1; + Stop; + } +} + +class ID24HumanBBQ1 : Actor +{ + Default + { + Radius 16; + Height 16; + +SOLID + } + States + { + Spawn: + HBBQ ABC 5 BRIGHT; + Loop; + } +} + +class ID24HumanBBQ2 : Actor +{ + Default + { + Radius 16; + Height 16; + +SOLID + } + States + { + Spawn: + HBB2 ABC 5 BRIGHT; + Loop; + } +} + +class ID24HangingBodyBothLegs : Actor +{ + Default + { + Radius 16; + Height 80; + +NOGRAVITY + +SPAWNCEILING + } + States + { + Spawn: + GOR6 A -1; + Stop; + } +} + +class ID24HangingBodyBothLegsSolid : ID24HangingBodyBothLegs +{ + Default + { + +SOLID + } +} + +class ID24HangingBodyCrucified : Actor +{ + Default + { + Radius 16; + Height 64; + +NOGRAVITY + +SPAWNCEILING + } + States + { + Spawn: + GOR7 A -1; + Stop; + } +} + +class ID24HangingBodyCrucifiedSolid : ID24HangingBodyCrucified +{ + Default + { + +SOLID + } +} + +class ID24HangingBodyArmsBound : Actor +{ + Default + { + Radius 16; + Height 72; + +NOGRAVITY + +SPAWNCEILING + } + States + { + Spawn: + GOR8 A -1; + Stop; + } +} + +class ID24HangingBodyArmsBoundSolid : ID24HangingBodyArmsBound +{ + Default + { + +SOLID + } +} + +class ID24HangingBaronOfHell : Actor +{ + Default + { + Radius 16; + Height 80; + +NOGRAVITY + +SPAWNCEILING + } + States + { + Spawn: + GORA A -1; + Stop; + } +} + +class ID24HangingBaronOfHellSolid : ID24HangingBaronOfHell +{ + Default + { + +SOLID + } +} + +class ID24HangingChainedBody : Actor +{ + Default + { + Radius 16; + Height 84; + +NOGRAVITY + +SPAWNCEILING + } + States + { + Spawn: + HDB7 A -1; + Stop; + } +} + +class ID24HangingChainedBodySolid : ID24HangingChainedBody +{ + Default + { + +SOLID + } +} + +class ID24HangingChainedTorso : Actor +{ + Default + { + Radius 16; + Height 52; + +NOGRAVITY + +SPAWNCEILING + } + States + { + Spawn: + HDB8 A -1; + Stop; + } +} + +class ID24HangingChainedTorsoSolid : ID24HangingChainedTorso +{ + Default + { + +SOLID + } +} + +class ID24SkullPoleTrio : Actor +{ + Default + { + Radius 16; + Height 16; + +SOLID + } + States + { + Spawn: + POLA A -1; + Stop; + } +} + +class ID24SkullGibs : Actor +{ + Default + { + Radius 16; + Height 16; + } + States + { + Spawn: + POB6 A -1; + Stop; + } +} diff --git a/wadsrc/static/zscript/actors/doom/id24/id24mindweaver.zs b/wadsrc/static/zscript/actors/doom/id24/id24mindweaver.zs new file mode 100644 index 0000000000..caf74fcbc9 --- /dev/null +++ b/wadsrc/static/zscript/actors/doom/id24/id24mindweaver.zs @@ -0,0 +1,74 @@ +/***************************************************************************** + * Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + ****************************************************************************/ + +/***************************************************************************** + * id1 - decohack - mindweaver + ****************************************************************************/ + +//converted from DECOHACK + +class ID24Mindweaver : Actor +{ + Default + { + Health 500; + Speed 12; + Radius 64; + Height 64; + ReactionTime 8; + PainChance 40; + Mass 600; + Monster; + SeeSound "monsters/mindweaver/sight"; + PainSound "monsters/mindweaver/pain"; + DeathSound "monsters/mindweaver/death"; + ActiveSound "monsters/mindweaver/active"; + Tag "$FN_ID24MINDWEAVER"; + } + States + { + Spawn: + CSPI AB 10 A_Look; + Loop; + See: + CSPI A 20; + Walk: + CSPI A 0 A_StartSound("monsters/mindweaver/walk"); + CSPI AABBCC 3 A_Chase; + CSPI D 0 A_StartSound("monsters/mindweaver/walk"); + CSPI DDEEFF 3 A_Chase; + Loop; + Missile: + CSPI A 20 BRIGHT A_FaceTarget; + Fighting: + CSPI G 4 BRIGHT A_SPosAttack; + CSPI H 4 BRIGHT A_SPosAttack; + CSPI H 1 BRIGHT A_SpidRefire; + Goto Fighting; + Pain: + CSPI I 3; + CSPI I 3 A_Pain; + Goto Walk; + Death: + CSPI J 20 A_Scream; + CSPI K 7 A_Fall; + CSPI LMNO 7; + CSPI P -1 A_BossDeath; + Stop; + Raise: + CSPI P 5; + CSPI ONMLKJ 5; + Goto Walk; + } +} diff --git a/wadsrc/static/zscript/actors/doom/id24/id24nature.zs b/wadsrc/static/zscript/actors/doom/id24/id24nature.zs new file mode 100644 index 0000000000..156c0f3a4f --- /dev/null +++ b/wadsrc/static/zscript/actors/doom/id24/id24nature.zs @@ -0,0 +1,266 @@ +/***************************************************************************** + * Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + ****************************************************************************/ + +/***************************************************************************** + * id1 - decohack - nature + ****************************************************************************/ + +//converted from DECOHACK + +class ID24GrayStalagmite : Actor +{ + Default + { + Radius 16; + Height 16; + +SOLID + } + States + { + Spawn: + SMT2 A -1; + Stop; + } +} + +class ID24BushShort : Actor +{ + Default + { + Radius 12; + Height 16; + +SOLID + } + States + { + Spawn: + BSH1 A -1; + Stop; + } +} + +class ID24BushShortBurned1 : Actor +{ + Default + { + Radius 12; + Height 16; + } + States + { + Spawn: + BSH1 B -1; + Stop; + } +} + +class ID24BushShortBurned2 : Actor +{ + Default + { + Radius 12; + Height 16; + } + States + { + Spawn: + BSH1 C -1; + Stop; + } +} + +class ID24BushTall : Actor +{ + Default + { + Radius 12; + Height 16; + +SOLID + } + States + { + Spawn: + BSH2 A -1; + Stop; + } +} + +class ID24BushTallBurned1 : Actor +{ + Default + { + Radius 12; + Height 16; + } + States + { + Spawn: + BSH2 B -1; + Stop; + } +} + +class ID24BushTallBurned2 : Actor +{ + Default + { + Radius 12; + Height 16; + } + States + { + Spawn: + BSH2 C -1; + Stop; + } +} + +class ID24CaveRockColumn : Actor +{ + Default + { + Radius 24; + Height 16; + +SOLID + } + States + { + Spawn: + STMI A -1; + Stop; + } +} + +class ID24CaveStalagmiteLarge : Actor +{ + Default + { + Radius 16; + Height 16; + +SOLID + } + States + { + Spawn: + STG1 A -1; + Stop; + } +} + +class ID24CaveStalagmiteMedium : Actor +{ + Default + { + Radius 12; + Height 16; + +SOLID + } + States + { + Spawn: + STG2 A -1; + Stop; + } +} + +class ID24CaveStalagmiteSmall : Actor +{ + Default + { + Radius 8; + Height 16; + +SOLID + } + States + { + Spawn: + STG3 A -1; + Stop; + } +} + +class ID24CaveStalactiteLarge : Actor +{ + Default + { + Radius 16; + Height 112; + +SPAWNCEILING + +NOGRAVITY + } + States + { + Spawn: + STC1 A -1; + Stop; + } +} + +class ID24CaveStalactiteLargeSolid : ID24CaveStalactiteLarge +{ + Default + { + +SOLID + } +} + +class ID24CaveStalactiteMedium : Actor +{ + Default + { + Radius 12; + Height 64; + +SPAWNCEILING + +NOGRAVITY + } + States + { + Spawn: + STC2 A -1; + Stop; + } +} + +class ID24CaveStalactiteMediumSolid : ID24CaveStalactiteMedium +{ + Default + { + +SOLID + } +} + +class ID24CaveStalactiteSmall : Actor +{ + Default + { + Radius 8; + Height 32; + +SPAWNCEILING + +NOGRAVITY + } + States + { + Spawn: + STC3 A -1; + Stop; + } +} + +class ID24CaveStalactiteSmallSolid : ID24CaveStalactiteSmall +{ + Default + { + +SOLID + } +} diff --git a/wadsrc/static/zscript/actors/doom/id24/id24plasmaguy.zs b/wadsrc/static/zscript/actors/doom/id24/id24plasmaguy.zs new file mode 100644 index 0000000000..243ca0ccdc --- /dev/null +++ b/wadsrc/static/zscript/actors/doom/id24/id24plasmaguy.zs @@ -0,0 +1,128 @@ +/***************************************************************************** + * Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + ****************************************************************************/ + +/***************************************************************************** + * id1 - decohack - former shocktrooper (a.k.a. "plasma guy" or "plasmadick") + ****************************************************************************/ + +//converted from DECOHACK + +class ID24PlasmaGuy : Actor +{ + Default + { + Health 100; + Speed 10; + Radius 20; + Height 56; + ReactionTime 8; + PainChance 30; + Mass 100; + Monster; + PainSound "monsters/plasmaguy/pain"; + DeathSound "monsters/plasmaguy/death"; + ActiveSound "monsters/plasmaguy/active"; + Tag "$FN_ID24PLASMAGUY"; + } + States + { + Spawn: + PPOS AB 10 A_Look; + Loop; + See: + PPOS AABBCCDD 2 Fast A_Chase; + Loop; + Missile: + PPOS E 10 A_FaceTarget; + PPOS F 2 Fast MBF21_MonsterProjectile("PlasmaBall", 0.0, 0.0, 0.0, 0.0); + PPOS E 4 Fast; + PPOS F 2 Fast MBF21_MonsterProjectile("PlasmaBall", 0.0, 0.0, 0.0, 0.0); + PPOS E 4 Fast; + PPOS F 2 Fast MBF21_MonsterProjectile("PlasmaBall", 0.0, 0.0, 0.0, 0.0); + PPOS E 4 Fast; + Goto See; + Pain: + PPOS G 5 Fast; + PPOS G 5 Fast A_Pain; + Goto See; + Death: + PPOS H 0 A_FaceTarget; + PPOS H 5 MBF21_SpawnObject("ID24PlasmaGuyHead", 175.0, 0.0, 0.0, 40.0, 2.0, 0.0, 1.5); + PPOS I 5 A_Scream; + PPOS J 5 A_Fall; + PPOS KL 5; + PPOS M -1; + Stop; + XDeath: + PPOS N 5; + PPOS O 5 A_XScream; + PPOS P 5 A_Fall; + PPOS Q 0 A_FaceTarget; + PPOS Q 5 MBF21_SpawnObject("ID24PlasmaGuyTorso", 170.0, 0.0, -8.0, 32.0, 4.0, 0.0, 2.0); + PPOS RST 5; + PPOS U -1; + Stop; + Raise: + PPOS MLKJIH 5; + Goto See; + } +} + +class ID24PlasmaGuyHead : Actor +{ + Default + { + Damage 0; + Speed 8; + Radius 6; + Height 16; + Gravity 0.125; + +MISSILE + +DROPOFF + DeathSound "monsters/plasmaguy/head"; + } + States + { + Spawn: + PHED ABCDEFGHI 3; + Loop; + Death: + PHED J -1; + Loop; + } +} + +class ID24PlasmaGuyTorso : Actor +{ + Default + { + Damage 0; + Speed 8; + Radius 6; + Height 16; + +NOBLOCKMAP + +MISSILE + +DROPOFF + } + States + { + Spawn: + PPOS V -1; + Loop; + Death: + PPOS W 5; + PPOS X -1; + Stop; + } +} diff --git a/wadsrc/static/zscript/actors/doom/id24/id24tech.zs b/wadsrc/static/zscript/actors/doom/id24/id24tech.zs new file mode 100644 index 0000000000..b886e097ef --- /dev/null +++ b/wadsrc/static/zscript/actors/doom/id24/id24tech.zs @@ -0,0 +1,101 @@ +/***************************************************************************** + * Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + ****************************************************************************/ + +/***************************************************************************** + * id1 - decohack - tech + ****************************************************************************/ + +//converted from DECOHACK + +class ID24OfficeChair : Actor +{ + Default + { + Radius 12; + Height 16; + +SOLID + } + States + { + Spawn: + CHR1 A -1; + Stop; + } +} + +class ID24OfficeLamp : Actor +{ + Default + { + Radius 12; + Height 52; + Health 20; + Mass 65536; + DeathSound "world/officelamp"; + +SOLID + +SHOOTABLE + +NOBLOOD + +DONTGIB + +NOICEDEATH + } + States + { + Spawn: + LAMP A -1 BRIGHT; + Stop; + Death: + LAMP B 3 BRIGHT A_Scream; + LAMP B 3 BRIGHT A_Fall; + DeathLoop: + LAMP CD 5 BRIGHT; + Loop; + } +} + +// this actor has an editor number in the decohack, +// but it doesn't actually exist in it +class ID24LiveWire : Actor { } + +class ID24CeilingLamp : Actor +{ + Default + { + Radius 12; + Height 32; + +SPAWNCEILING + +NOGRAVITY + } + States + { + Spawn: + TLP6 A -1 BRIGHT; + Stop; + } +} + +class ID24CandelabraShort : Actor +{ + Default + { + Radius 16; + Height 16; + +SOLID + } + States + { + Spawn: + CBR2 A -1 BRIGHT; + Stop; + } +} diff --git a/wadsrc/static/zscript/actors/doom/id24/id24tyrant.zs b/wadsrc/static/zscript/actors/doom/id24/id24tyrant.zs new file mode 100644 index 0000000000..d7e30e1818 --- /dev/null +++ b/wadsrc/static/zscript/actors/doom/id24/id24tyrant.zs @@ -0,0 +1,98 @@ +/***************************************************************************** + * Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + ****************************************************************************/ + +/***************************************************************************** + * id1 - decohack - tyrant + ****************************************************************************/ + +//converted from DECOHACK + +class ID24Tyrant : Cyberdemon +{ + Default + { + Health 1000; + ProjectileGroup 2; + SplashGroup 2; + Monster; + +BOSS + SeeSound "monsters/tyrant/sight"; + PainSound "monsters/tyrant/pain"; + DeathSound "monsters/tyrant/death"; + ActiveSound "monsters/tyrant/active"; + Tag "$FN_ID24TYRANT"; + } + States + { + Spawn: + CYB2 AB 10 A_Look; + Loop; + See: + CYB2 A 3 A_Hoof; + CYB2 ABBCC 3 A_Chase; + CYB2 D 0 A_StartSound("monsters/tyrant/walk"); + CYB2 DD 3 A_Chase; + Loop; + Missile: + CYB2 E 6 A_FaceTarget; + CYB2 F 12 BRIGHT A_CyberAttack; + CYB2 E 12 A_FaceTarget; + CYB2 F 12 BRIGHT A_CyberAttack; + CYB2 E 12 A_FaceTarget; + CYB2 F 12 BRIGHT A_CyberAttack; + Goto See; + Pain: + CYB2 G 10 A_Pain; + goto See; + Death: + CYB2 H 10; + CYB2 I 10 A_Scream; + CYB2 JKL 10; + CYB2 M 10 A_Fall; + CYB2 NO 10; + CYB2 P 30; + CYB2 P -1 A_BossDeath; + Stop; + } +} + +// "boss" variants -- these are simply alternative +// actors for use with UMAPINFO's "bossaction" +// field to make the final map's staged fights +// work nicely. they're functionally identical +// to the main actor in every other way. + +// [XA] well, now they also have a 60-second respawn +// minimum instead of the default 12, so Nightmare +// sucks a bit less ;) + +// (this id24 feature isn't implemented yet!) + +class ID24TyrantBoss1 : ID24Tyrant +{ + Default + { + // RespawnTics 2100; + // RespawnDice 64; + } +} + +class ID24TyrantBoss2 : ID24Tyrant +{ + Default + { + // RespawnTics 2100; + // RespawnDice 64; + } +} diff --git a/wadsrc/static/zscript/actors/doom/id24/id24vassago.zs b/wadsrc/static/zscript/actors/doom/id24/id24vassago.zs new file mode 100644 index 0000000000..ad8ab9ec93 --- /dev/null +++ b/wadsrc/static/zscript/actors/doom/id24/id24vassago.zs @@ -0,0 +1,145 @@ +/***************************************************************************** + * Copyright (C) 1993-2024 id Software LLC, a ZeniMax Media company. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + ****************************************************************************/ + +/***************************************************************************** + * id1 - decohack - vassago + ****************************************************************************/ + +//converted from DECOHACK + +class ID24Vassago : Actor +{ + Default + { + Health 1000; + Speed 8; + Radius 24; + Height 64; + ReactionTime 8; + PainChance 100; + Mass 1000; + SplashGroup 1; + Monster; + SeeSound "monsters/vassago/sight"; + PainSound "monsters/vassago/pain"; + DeathSound "monsters/vassago/death"; + ActiveSound "monsters/vassago/active"; + Tag "$FN_ID24VASSAGO"; + } + States + { + Spawn: + VASS AB 10 A_Look; + Loop; + See: + VASS AABBCCDD 3 A_Chase; + Loop; + Melee: + Missile: + VASS E 0 BRIGHT A_StartSound("monsters/vassago/attack"); + VASS E 8 BRIGHT A_FaceTarget; + VASS FG 4 BRIGHT A_FaceTarget; + VASS H 8 BRIGHT MBF21_MonsterProjectile("ID24VassagoFlame", 0.0, 0.0, 0.0, 0.0); + Goto See; + Pain: + VASS I 2; + VASS I 2 A_Pain; + Goto See; + Death: + VASS J 8 BRIGHT; + VASS K 8 BRIGHT A_Scream; + VASS L 7 BRIGHT; + VASS M 6 BRIGHT A_Fall; + VASS NO 6 BRIGHT; + VASS P 7 BRIGHT; + VASS Q -1 A_BossDeath; + Stop; + Raise: + VASS P 8; + VASS ONMLKJ 8; + Goto See; + } +} + +class ID24VassagoFlame : Actor +{ + Default + { + Damage 5; + Speed 15; + FastSpeed 20; + SplashGroup 1; + Radius 6; + Height 16; + Projectile; + +ZDOOMTRANS + RenderStyle "Add"; + SeeSound "monsters/vassago/burn"; + DeathSound "monsters/vassago/shotx"; + } + States + { + Spawn: + VFLM AB 4 BRIGHT; + Loop; + Death: + VFLM C 0 BRIGHT { bNoGravity = false; } + VFLM C 0 BRIGHT A_ChangeLinkFlags(0, 0); + VFLM C 0 BRIGHT A_Jump(128, "DeathSound2"); + VFLM C 0 BRIGHT A_StartSound("monsters/vassago/hot1"); + goto Burninate; + DeathSound2: + VFLM C 0 BRIGHT A_StartSound("monsters/vassago/hot2"); + Goto Burninate; + Burninate: + VFLM C 4 BRIGHT A_RadiusDamage(10, 128); + VFLM D 4 BRIGHT; + VFLM E 4 BRIGHT; + VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot3"); + VFLM F 4 BRIGHT A_RadiusDamage(10, 128); + VFLM G 4 BRIGHT; + VFLM H 4 BRIGHT; + VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot2"); + VFLM F 4 BRIGHT A_RadiusDamage(10, 128); + VFLM G 4 BRIGHT; + VFLM H 4 BRIGHT; + VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot3"); + VFLM F 4 BRIGHT A_RadiusDamage(10, 128); + VFLM G 4 BRIGHT; + VFLM H 4 BRIGHT; + VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot1"); + VFLM F 4 BRIGHT A_RadiusDamage(10, 128); + VFLM G 4 BRIGHT; + VFLM H 4 BRIGHT; + VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot2"); + VFLM F 4 BRIGHT A_RadiusDamage(10, 128); + VFLM G 4 BRIGHT; + VFLM H 4 BRIGHT; + VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot1"); + VFLM F 4 BRIGHT A_RadiusDamage(10, 128); + VFLM G 4 BRIGHT; + VFLM H 4 BRIGHT; + VFLM F 0 BRIGHT A_StartSound("monsters/vassago/hot2"); + VFLM F 4 BRIGHT A_RadiusDamage(10, 128); + VFLM G 4 BRIGHT; + VFLM H 4 BRIGHT; + VFLM I 0 BRIGHT A_StartSound("monsters/vassago/hot3"); + VFLM I 4 BRIGHT A_RadiusDamage(10, 128); + VFLM J 4 BRIGHT; + VFLM K 4 BRIGHT; + VFLM L 4 BRIGHT A_RadiusDamage(10, 128); + VFLM MNOPQ 4 BRIGHT; + Stop; + } +}