From 8172a9ac0c3f3f877ba14d98ca6a4795095fd8ee Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 16 Dec 2022 12:47:30 +0100 Subject: [PATCH] - moved all flags into the actor definitions. --- source/core/thingdef_data.cpp | 11 +++--- source/core/thingdef_properties.cpp | 16 +++++++++ source/games/duke/src/actors.cpp | 8 ++--- source/games/duke/src/constants.h | 8 ++--- source/games/duke/src/flags_d.cpp | 8 ++--- source/games/duke/src/flags_r.cpp | 12 +++---- source/games/duke/src/player.cpp | 2 +- .../filter/dukelike/rmapinfo.spawnclasses | 2 ++ .../redneck.ridesagain/rmapinfo.spawnclasses | 2 ++ .../filter/redneck/rmapinfo.spawnclasses | 3 +- .../games/duke/actors/_placeholders.zs | 18 +++++++++- .../zscript/games/duke/actors/atomichealth.zs | 4 +++ .../zscript/games/duke/actors/bloodpool.zs | 2 ++ .../zscript/games/duke/actors/bloodsplats.zs | 1 + .../static/zscript/games/duke/actors/bolt.zs | 1 + .../static/zscript/games/duke/actors/boss1.zs | 2 ++ .../static/zscript/games/duke/actors/boss2.zs | 2 ++ .../zscript/games/duke/actors/bowling.zs | 3 ++ .../zscript/games/duke/actors/burning.zs | 8 +++++ .../games/duke/actors/canwithsomething.zs | 2 ++ .../zscript/games/duke/actors/commander.zs | 2 ++ .../zscript/games/duke/actors/controllers.zs | 21 ++++++++++++ .../static/zscript/games/duke/actors/coot.zs | 23 +++++++++++++ .../static/zscript/games/duke/actors/crack.zs | 1 + .../static/zscript/games/duke/actors/crane.zs | 2 ++ .../games/duke/actors/destructibles.zs | 8 +++++ .../zscript/games/duke/actors/ducktarget.zs | 1 + .../zscript/games/duke/actors/dukedecos.zs | 13 ++++++- .../zscript/games/duke/actors/dukeitems.zs | 9 +++++ .../zscript/games/duke/actors/dukemisc.zs | 22 ++++++++++-- .../zscript/games/duke/actors/emptybike.zs | 2 ++ .../zscript/games/duke/actors/explosion2.zs | 4 ++- .../zscript/games/duke/actors/females.zs | 5 +++ .../zscript/games/duke/actors/fireext.zs | 1 + .../zscript/games/duke/actors/firefly.zs | 3 ++ .../zscript/games/duke/actors/flammables.zs | 5 +++ .../zscript/games/duke/actors/forcesphere.zs | 1 + .../zscript/games/duke/actors/frameeffect.zs | 2 +- .../zscript/games/duke/actors/greenslime.zs | 4 +++ .../zscript/games/duke/actors/heavyhbomb.zs | 5 +++ .../static/zscript/games/duke/actors/jibs.zs | 2 +- .../zscript/games/duke/actors/lavapool.zs | 2 ++ .../zscript/games/duke/actors/lizman.zs | 1 + .../zscript/games/duke/actors/liztroop.zs | 2 ++ .../static/zscript/games/duke/actors/mech.zs | 8 ++++- .../zscript/games/duke/actors/minion.zs | 2 ++ .../zscript/games/duke/actors/mortar.zs | 1 + .../zscript/games/duke/actors/octabrain.zs | 2 ++ .../zscript/games/duke/actors/oozfilter.zs | 6 ++++ .../zscript/games/duke/actors/pigcop.zs | 1 + .../zscript/games/duke/actors/player.zs | 2 ++ .../zscript/games/duke/actors/powderkeg.zs | 5 +++ .../zscript/games/duke/actors/projectiles.zs | 27 +++++++++++++-- .../zscript/games/duke/actors/queball.zs | 2 ++ .../zscript/games/duke/actors/rabbit.zs | 1 + .../static/zscript/games/duke/actors/rat.zs | 1 + .../static/zscript/games/duke/actors/recon.zs | 14 ++++++++ .../games/duke/actors/redneckenemies.zs | 34 ++++++++++++++++++- .../zscript/games/duke/actors/redneckitems.zs | 6 ++++ .../games/duke/actors/respawnmarker.zs | 1 + .../zscript/games/duke/actors/smallsmoke.zs | 1 + .../static/zscript/games/duke/actors/steam.zs | 4 ++- .../zscript/games/duke/actors/toiletwater.zs | 2 ++ .../zscript/games/duke/actors/transporter.zs | 3 ++ .../zscript/games/duke/actors/tripbomb.zs | 16 +++++++++ .../zscript/games/duke/actors/viewscreen.zs | 4 +++ .../zscript/games/duke/actors/waterbubble.zs | 2 ++ .../zscript/games/duke/actors/watersplash.zs | 2 ++ wadsrc/static/zscript/games/duke/dukeactor.zs | 31 +++-------------- 69 files changed, 369 insertions(+), 65 deletions(-) diff --git a/source/core/thingdef_data.cpp b/source/core/thingdef_data.cpp index e202b5765..9f3166800 100644 --- a/source/core/thingdef_data.cpp +++ b/source/core/thingdef_data.cpp @@ -111,13 +111,13 @@ static FFlagDef DukeActorFlagDefs[] = DEFINE_FLAG(SFLAG, NOWATERDIP, DDukeActor, flags1), DEFINE_FLAG(SFLAG, INTERNAL_BADGUY, DDukeActor, flags1), DEFINE_FLAG(SFLAG, KILLCOUNT, DDukeActor, flags1), - DEFINE_FLAG(SFLAG, NOCANSEECHECK, DDukeActor, flags1), + //DEFINE_FLAG(SFLAG, NOCANSEECHECK, DDukeActor, flags1), DEFINE_FLAG(SFLAG, HITRADIUSCHECK, DDukeActor, flags1), - DEFINE_FLAG(SFLAG, MOVEFTA_CHECKSEE, DDukeActor, flags1), + DEFINE_FLAG(SFLAG, LOOKALLAROUND, DDukeActor, flags1), DEFINE_FLAG(SFLAG, MOVEFTA_MAKESTANDABLE, DDukeActor, flags1), DEFINE_FLAG(SFLAG, TRIGGER_IFHITSECTOR, DDukeActor, flags1), DEFINE_FLAG(SFLAG, MOVEFTA_WAKEUPCHECK, DDukeActor, flags1), - DEFINE_FLAG(SFLAG, MOVEFTA_CHECKSEEWITHPAL8, DDukeActor, flags1), + DEFINE_FLAG(SFLAG, LOOKALLAROUNDWITHPAL8, DDukeActor, flags1), DEFINE_FLAG(SFLAG, NOSHADOW, DDukeActor, flags1), DEFINE_FLAG(SFLAG, SE24_NOCARRY, DDukeActor, flags1), DEFINE_FLAG(SFLAG, NOINTERPOLATE, DDukeActor, flags1), @@ -146,7 +146,7 @@ static FFlagDef DukeActorFlagDefs[] = DEFINE_FLAG(SFLAG2, GREENBLOOD, DDukeActor, flags2), DEFINE_FLAG(SFLAG2, ALWAYSROTATE1, DDukeActor, flags2), DEFINE_FLAG(SFLAG2, DIENOW, DDukeActor, flags2), - DEFINE_FLAG(SFLAG2, TRANFERPALTOJIBS, DDukeActor, flags2), + DEFINE_FLAG(SFLAG2, TRANSFERPALTOJIBS, DDukeActor, flags2), DEFINE_FLAG(SFLAG2, NORADIUSPUSH, DDukeActor, flags2), DEFINE_FLAG(SFLAG2, FREEZEDAMAGE, DDukeActor, flags2), DEFINE_FLAG(SFLAG2, REFLECTIVE, DDukeActor, flags2), @@ -171,7 +171,8 @@ static FFlagDef DukeActorFlagDefs[] = DEFINE_FLAG(SFLAG3, LIGHTDAMAGE, DDukeActor, flags3), DEFINE_FLAG(SFLAG3, FORCERUNCON, DDukeActor, flags3), DEFINE_FLAG(SFLAG3, BIGHEALTH, DDukeActor, flags3), - + DEFINE_FLAG(SFLAG3, NOGRAVITY, DDukeActor, flags3), + }; diff --git a/source/core/thingdef_properties.cpp b/source/core/thingdef_properties.cpp index c2b337ecc..efa79eeb1 100644 --- a/source/core/thingdef_properties.cpp +++ b/source/core/thingdef_properties.cpp @@ -45,6 +45,9 @@ #include "texturemanager.h" #include "coreactor.h" #include "thingdef.h" +#include "games/duke/src/duke3d.h" + +using Duke3d::DDukeActor; //========================================================================== // @@ -386,3 +389,16 @@ DEFINE_PROPERTY(health, I, CoreActor) bag.Info->ActorInfo()->Health = i; } +//========================================================================== +// +// This is a hack because the FTA sight flag has different defaults in +// Duke and RR. +// +//========================================================================== +DEFINE_PROPERTY(lookallarounddefault,0, DukeActor) +{ + PROP_INT_PARM(i, 0); + if (!isRR()) defaults->flags1 |= SFLAG_LOOKALLAROUND; // feature comes from RR, but we want the option in Duke as well, so this fake property sets the default + else defaults->flags1 |= SFLAG_MOVEFTA_WAKEUPCHECK; // Animals were not supposed to have this, but due to a coding bug the logic was unconditional for everything in the game. +} + diff --git a/source/games/duke/src/actors.cpp b/source/games/duke/src/actors.cpp index cd9d0043f..b7e6faf50 100644 --- a/source/games/duke/src/actors.cpp +++ b/source/games/duke/src/actors.cpp @@ -3445,9 +3445,9 @@ void movefta(void) double sy = act->spr.pos.Y - xyrand(); // The second updatesector call here used px and py again and was redundant as coded. - // SFLAG_MOVEFTA_CHECKSEE is set for all actors in Duke. - if (act->spr.pal == 33 || actorflag(act, SFLAG_MOVEFTA_CHECKSEE) || - (actorflag(act, SFLAG_MOVEFTA_CHECKSEEWITHPAL8) && act->spr.pal == 8) || + // SFLAG_LOOKALLAROUND is set for all actors in Duke. + if (act->spr.pal == 33 || actorflag(act, SFLAG_LOOKALLAROUND) || + (actorflag(act, SFLAG_LOOKALLAROUNDWITHPAL8) && act->spr.pal == 8) || (act->spr.Angles.Yaw.Cos() * (px - sx) + act->spr.Angles.Yaw.Sin() * (py - sy) >= 0)) { double r1 = zrand(32); @@ -3490,7 +3490,7 @@ void movefta(void) act->spr.shade = act->sector()->ceilingshade; else act->spr.shade = act->sector()->floorshade; - // wakeup is an RR feature, this flag will later allow it to use in Duke, too. + // wakeup is an RR feature, this flag will allow it to use in Duke, too. if (actorflag(act, SFLAG_MOVEFTA_WAKEUPCHECK)) { if (wakeup(act, p)) diff --git a/source/games/duke/src/constants.h b/source/games/duke/src/constants.h index ba586a221..32737a1ee 100644 --- a/source/games/duke/src/constants.h +++ b/source/games/duke/src/constants.h @@ -331,13 +331,13 @@ enum sflags_t SFLAG_NOWATERDIP = 0x00000100, SFLAG_INTERNAL_BADGUY = 0x00000200, // a separate flag is needed for the internal ones because SFLAG_BADGUY has additional semantics. SFLAG_KILLCOUNT = 0x00000400, - SFLAG_NOCANSEECHECK = 0x00000800, + //SFLAG_NOCANSEECHECK = 0x00000800, // not used, was applied to all actors with LOOKALLAROUND. SFLAG_HITRADIUSCHECK = 0x00001000, - SFLAG_MOVEFTA_CHECKSEE = 0x00002000, + SFLAG_LOOKALLAROUND = 0x00002000, SFLAG_MOVEFTA_MAKESTANDABLE = 0x00004000, SFLAG_TRIGGER_IFHITSECTOR = 0x00008000, SFLAG_MOVEFTA_WAKEUPCHECK = 0x00010000, - SFLAG_MOVEFTA_CHECKSEEWITHPAL8 = 0x00020000, // let's hope this can be done better later. For now this was what blocked merging the Duke and RR variants of movefta + SFLAG_LOOKALLAROUNDWITHPAL8 = 0x00020000, // let's hope this can be done better later. For now this was what blocked merging the Duke and RR variants of movefta SFLAG_NOSHADOW = 0x00040000, SFLAG_SE24_NOCARRY = 0x00080000, SFLAG_NOINTERPOLATE = 0x00100000, @@ -373,7 +373,7 @@ enum sflags2_t SFLAG2_GREENBLOOD = 0x00000800, SFLAG2_ALWAYSROTATE1 = 0x00001000, SFLAG2_DIENOW = 0x00002000, - SFLAG2_TRANFERPALTOJIBS = 0x00004000, + SFLAG2_TRANSFERPALTOJIBS = 0x00004000, SFLAG2_NORADIUSPUSH = 0x00008000, SFLAG2_FREEZEDAMAGE = 0x00010000, SFLAG2_REFLECTIVE = 0x00020000, diff --git a/source/games/duke/src/flags_d.cpp b/source/games/duke/src/flags_d.cpp index e233248b5..0d1b14bbf 100644 --- a/source/games/duke/src/flags_d.cpp +++ b/source/games/duke/src/flags_d.cpp @@ -40,8 +40,6 @@ BEGIN_DUKE_NS void initactorflags_d() { - setflag(SFLAG3_NOGRAVITY, { DTILE_RECON }); // not ported!!! - gs.actorinfo[DTILE_COMMANDER].gutsoffset = -24; for (auto &fa : gs.actorinfo) @@ -50,8 +48,6 @@ void initactorflags_d() } gs.actorinfo[DTILE_OCTABRAIN].falladjustz = gs.actorinfo[DTILE_COMMANDER].falladjustz = gs.actorinfo[DTILE_DRONE].falladjustz = 0; - setflag(SFLAG_INTERNAL_BADGUY, { - DTILE_SHARK }); setflag(SFLAG_INTERNAL_BADGUY | SFLAG_KILLCOUNT, { DTILE_RECON, @@ -163,7 +159,7 @@ void initactorflags_d() setflag(SFLAG2_ALWAYSROTATE1, { DTILE_RAT, DTILE_CAMERA1, DTILE_CHAIR3, DTILE_PLAYERONWATER }); setflag(SFLAG2_ALWAYSROTATE2, { DTILE_RPG }); setflag(SFLAG2_DIENOW, { DTILE_RADIUSEXPLOSION, DTILE_KNEE }); - setflag(SFLAG2_TRANFERPALTOJIBS, { DTILE_LIZTROOP }); + setflag(SFLAG2_TRANSFERPALTOJIBS, { DTILE_LIZTROOP }); setflag(SFLAG2_NORADIUSPUSH, { DTILE_TANK, DTILE_ROTATEGUN, DTILE_RECON }); setflag(SFLAG2_FREEZEDAMAGE | SFLAG2_REFLECTIVE, { DTILE_FREEZEBLAST }); setflag(SFLAG2_ALWAYSROTATE2, { DTILE_RECON }); @@ -259,7 +255,7 @@ void initactorflags_d() setflag(SFLAG3_BLOODY, { DTILE_BLOODPOOL }); // The feature guarded by this flag does not exist in Duke, it always acts as if the flag was set. - for (auto& ainf : gs.actorinfo) ainf.flags |= SFLAG_MOVEFTA_CHECKSEE; + for (auto& ainf : gs.actorinfo) ainf.flags |= SFLAG_LOOKALLAROUND; gs.actorinfo[DTILE_ORGANTIC].aimoffset = 32; gs.actorinfo[DTILE_ROTATEGUN].aimoffset = 32; diff --git a/source/games/duke/src/flags_r.cpp b/source/games/duke/src/flags_r.cpp index 49f81ff9f..c97386cff 100644 --- a/source/games/duke/src/flags_r.cpp +++ b/source/games/duke/src/flags_r.cpp @@ -96,11 +96,11 @@ void initactorflags_r() setflag(SFLAG_INTERNAL_BADGUY, { RTILE_PIG, RTILE_HEN }); gs.actorinfo[RTILE_DRONE].flags |= SFLAG_NOWATERDIP; - gs.actorinfo[RTILE_VIXEN].flags |= SFLAG_NOCANSEECHECK; + gs.actorinfo[RTILE_VIXEN].flags |= SFLAG_LOOKALLAROUND; if (isRRRA()) { setflag(SFLAG_NODAMAGEPUSH, { RTILE_HULK, RTILE_MAMA, RTILE_BILLYPLAY, RTILE_COOTPLAY, RTILE_MAMACLOUD }); - setflag(SFLAG_NOCANSEECHECK, { RTILE_COOT, RTILE_COOTSTAYPUT, RTILE_BIKERB, RTILE_BIKERBV2, RTILE_CHEER, RTILE_CHEERB, + setflag(SFLAG_LOOKALLAROUND, { RTILE_COOT, RTILE_COOTSTAYPUT, RTILE_BIKERB, RTILE_BIKERBV2, RTILE_CHEER, RTILE_CHEERB, RTILE_CHEERSTAYPUT, RTILE_MINIONBOAT, RTILE_HULKBOAT, RTILE_CHEERBOAT, RTILE_RABBIT, RTILE_COOTPLAY, RTILE_BILLYPLAY, RTILE_MAKEOUT, RTILE_MAMA }); setflag(SFLAG_INTERNAL_BADGUY, { RTILE_COOTPLAY, RTILE_BILLYPLAY }); } @@ -125,10 +125,10 @@ void initactorflags_r() RTILE_STRIPEBALL }); - setflag(SFLAG_MOVEFTA_CHECKSEE, { RTILE_VIXEN }); + setflag(SFLAG_LOOKALLAROUND, { RTILE_VIXEN }); if (isRRRA()) { - setflag(SFLAG_MOVEFTA_CHECKSEE, { RTILE_COOT, RTILE_COOTSTAYPUT, RTILE_BIKER, RTILE_BIKERB, RTILE_BIKERBV2, RTILE_CHEER, RTILE_CHEERB, + setflag(SFLAG_LOOKALLAROUND, { RTILE_COOT, RTILE_COOTSTAYPUT, RTILE_BIKER, RTILE_BIKERB, RTILE_BIKERBV2, RTILE_CHEER, RTILE_CHEERB, RTILE_CHEERSTAYPUT, RTILE_MINIONBOAT, RTILE_HULKBOAT, RTILE_CHEERBOAT, RTILE_RABBIT, RTILE_COOTPLAY, RTILE_BILLYPLAY, RTILE_MAKEOUT, RTILE_MAMA }); } @@ -208,8 +208,8 @@ void initactorflags_r() if (isRRRA()) { - setflag(SFLAG_MOVEFTA_CHECKSEEWITHPAL8, { RTILE_MINION }); - setflag(SFLAG2_TRANFERPALTOJIBS, { RTILE_MINION }); + setflag(SFLAG_LOOKALLAROUNDWITHPAL8, { RTILE_MINION }); + setflag(SFLAG2_TRANSFERPALTOJIBS, { RTILE_MINION }); setflag(SFLAG2_NORADIUSPUSH, { RTILE_MAMA, RTILE_BILLYPLAY, RTILE_COOTPLAY, RTILE_MAMACLOUD }); setflag(SFLAG2_DONTDIVE, { RTILE_CHEERBOAT, RTILE_HULKBOAT, RTILE_MINIONBOAT, RTILE_UFO1_RRRA }); setflag(SFLAG2_FLOATING, { RTILE_UFO1_RRRA }); diff --git a/source/games/duke/src/player.cpp b/source/games/duke/src/player.cpp index feb5925af..faa26fb68 100644 --- a/source/games/duke/src/player.cpp +++ b/source/games/duke/src/player.cpp @@ -391,7 +391,7 @@ void dokneeattack(int snum) if (p->actorsqu != nullptr && (pact->spr.pos - p->actorsqu->spr.pos).Length() < 1400/16.) { spawnguts(p->actorsqu, PClass::FindActor("DukeJibs6"), 7); - spawn(p->actorsqu, TILE_BLOODPOOL); + spawn(p->actorsqu, PClass::FindActor("DukeBloodPool")); S_PlayActorSound(SQUISHED, p->actorsqu); if (actorflag(p->actorsqu, SFLAG2_TRIGGERRESPAWN)) { diff --git a/wadsrc/static/filter/dukelike/rmapinfo.spawnclasses b/wadsrc/static/filter/dukelike/rmapinfo.spawnclasses index d04fb7484..24dd6c6b4 100644 --- a/wadsrc/static/filter/dukelike/rmapinfo.spawnclasses +++ b/wadsrc/static/filter/dukelike/rmapinfo.spawnclasses @@ -358,6 +358,7 @@ spawnclasses 4610 = DukeNewBeast 4611 = DukeNewBeastStayput + 1975 = DukeTank 1550 = DukeShark 1880 = DukeDrone @@ -368,5 +369,6 @@ spawnclasses 418 = DukeBearingPlate 2612 = DukeLaserSite 2734 = DukeSpeaker + 2595 = DukeShotSpark } diff --git a/wadsrc/static/filter/redneck.ridesagain/rmapinfo.spawnclasses b/wadsrc/static/filter/redneck.ridesagain/rmapinfo.spawnclasses index 56d1aad94..27cbaf40a 100644 --- a/wadsrc/static/filter/redneck.ridesagain/rmapinfo.spawnclasses +++ b/wadsrc/static/filter/redneck.ridesagain/rmapinfo.spawnclasses @@ -166,6 +166,8 @@ spawnclasses // stuff below uses CON + 5376 = RedneckRACoot + 5377 = RedneckRACootStayput 7280 = RedneckRabbit 5890 = RedneckBikerB 5891 = RedneckBikerBV2 diff --git a/wadsrc/static/filter/redneck/rmapinfo.spawnclasses b/wadsrc/static/filter/redneck/rmapinfo.spawnclasses index baf9e557a..6dd68c5c7 100644 --- a/wadsrc/static/filter/redneck/rmapinfo.spawnclasses +++ b/wadsrc/static/filter/redneck/rmapinfo.spawnclasses @@ -355,6 +355,7 @@ spawnclasses 4352 = RedneckSheriff 4916 = RedneckMosquito 5635 = RedneckVixen - + + 1764 = DukeShotSpark } diff --git a/wadsrc/static/zscript/games/duke/actors/_placeholders.zs b/wadsrc/static/zscript/games/duke/actors/_placeholders.zs index de99eaaeb..8fab8858e 100644 --- a/wadsrc/static/zscript/games/duke/actors/_placeholders.zs +++ b/wadsrc/static/zscript/games/duke/actors/_placeholders.zs @@ -6,6 +6,7 @@ class DukeKneeAttack : DukeActor default { pic "KNEE"; + +DIENOW; } } @@ -19,6 +20,11 @@ class DukeRadiusExplosion : DukeActor default { pic "RADIUSEXPLOSION"; + +INFLAME; + +DIENOW; + +EXPLOSIVE; + +DOUBLEDMGTHRUST; + +BREAKMIRRORS; } } @@ -52,7 +58,16 @@ class DukeSectorEffector : DukeActor //This never gets ticked, the handler goes directly to the native implementations. } - +class DukeShotSpark : DukeActor +{ + default + { + pic "SHOTSPARK1"; + +FORCERUNCON; + +LIGHTDAMAGE; + statnum STAT_MISC; + } +} // placeholders for CON scripted actors where we need the class. @@ -61,5 +76,6 @@ class DukeForceRipple : DukeActor default { pic "FORCERIPPLE"; + +FORCERUNCON; } } diff --git a/wadsrc/static/zscript/games/duke/actors/atomichealth.zs b/wadsrc/static/zscript/games/duke/actors/atomichealth.zs index b2b748423..e23435be8 100644 --- a/wadsrc/static/zscript/games/duke/actors/atomichealth.zs +++ b/wadsrc/static/zscript/games/duke/actors/atomichealth.zs @@ -4,6 +4,8 @@ class DukeAtomicHealth : DukeItemBase { pic "ATOMICHEALTH"; +FULLBRIGHT; + +BIGHEALTH; + +NOFLOORPAL; } override void Initialize() @@ -25,6 +27,8 @@ class RedneckGoogooCluster : DukeItemBase { pic "ATOMICHEALTH"; +FULLBRIGHT; + +BIGHEALTH; + +NOFLOORPAL; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/bloodpool.zs b/wadsrc/static/zscript/games/duke/actors/bloodpool.zs index 455a04fdf..f313501a8 100644 --- a/wadsrc/static/zscript/games/duke/actors/bloodpool.zs +++ b/wadsrc/static/zscript/games/duke/actors/bloodpool.zs @@ -3,6 +3,8 @@ class DukeBloodPool : DukeActor default { pic "BLOODPOOL"; + +BLOODY; + +SE24_REMOVE; } virtual void SetPalette() diff --git a/wadsrc/static/zscript/games/duke/actors/bloodsplats.zs b/wadsrc/static/zscript/games/duke/actors/bloodsplats.zs index 5c8d826eb..548df765a 100644 --- a/wadsrc/static/zscript/games/duke/actors/bloodsplats.zs +++ b/wadsrc/static/zscript/games/duke/actors/bloodsplats.zs @@ -3,6 +3,7 @@ class DukeBloodSplat1 : DukeActor default { Pic "BLOODSPLAT1"; + +SE24_REMOVE; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/bolt.zs b/wadsrc/static/zscript/games/duke/actors/bolt.zs index 7039a592f..a01bc72d4 100644 --- a/wadsrc/static/zscript/games/duke/actors/bolt.zs +++ b/wadsrc/static/zscript/games/duke/actors/bolt.zs @@ -4,6 +4,7 @@ class DukeBolt1 : DukeActor { SpriteSet "BOLT1", "BOLT2", "BOLT3", "BOLT4"; spritesetindex 0; + +SE24_NOCARRY; } override void Initialize() { diff --git a/wadsrc/static/zscript/games/duke/actors/boss1.zs b/wadsrc/static/zscript/games/duke/actors/boss1.zs index 58070db7c..37349faad 100644 --- a/wadsrc/static/zscript/games/duke/actors/boss1.zs +++ b/wadsrc/static/zscript/games/duke/actors/boss1.zs @@ -5,6 +5,8 @@ class DukeBoss1 : DukeActor pic "BOSS1"; +INTERNAL_BADGUY; +KILLCOUNT; + +NODAMAGEPUSH; + +BOSS; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/boss2.zs b/wadsrc/static/zscript/games/duke/actors/boss2.zs index 1f83c2f4d..7d850f726 100644 --- a/wadsrc/static/zscript/games/duke/actors/boss2.zs +++ b/wadsrc/static/zscript/games/duke/actors/boss2.zs @@ -3,6 +3,8 @@ class DukeBoss2 : DukeBoss1 default { pic "BOSS2"; + + +NONSMOKYROCKET; // If this wasn't needed for a CON defined actor it could be handled better } override void PlayFTASound() diff --git a/wadsrc/static/zscript/games/duke/actors/bowling.zs b/wadsrc/static/zscript/games/duke/actors/bowling.zs index 27409cc3c..ecb0f888d 100644 --- a/wadsrc/static/zscript/games/duke/actors/bowling.zs +++ b/wadsrc/static/zscript/games/duke/actors/bowling.zs @@ -4,6 +4,7 @@ class RedneckBowlingPin : DukeActor { RedneckBowlingPin.Behavior 0; spriteset "BOWLINGPIN", "BOWLINGPIN1", "BOWLINGPIN2"; + +HITRADIUS_FLAG2; } meta int behavior; @@ -123,6 +124,7 @@ class RedneckHenstand : RedneckBowlingPin { spriteset "HENSTAND", "HENSTAND1"; RedneckBowlingPin.Behavior 1; + -HITRADIUS_FLAG2; } override void Initialize() @@ -152,6 +154,7 @@ class RedneckBowlingBall : RedneckBowlingPin { pic "BOWLINGBALL"; RedneckBowlingPin.Behavior 2; + -HITRADIUS_FLAG2; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/burning.zs b/wadsrc/static/zscript/games/duke/actors/burning.zs index 196a6a1fc..e87807a0a 100644 --- a/wadsrc/static/zscript/games/duke/actors/burning.zs +++ b/wadsrc/static/zscript/games/duke/actors/burning.zs @@ -5,6 +5,7 @@ class DukeFloorFlame : DukeActor { pic "FLOORFLAME"; +FULLBRIGHT; + +FORCERUNCON; } override void Initialize() @@ -20,6 +21,9 @@ class DukeBurning : DukeActor { pic "BURNING"; +FULLBRIGHT; + +FORCERUNCON; + +NOTELEPORT; + +NOFLOORPAL; } override void Initialize() @@ -72,6 +76,8 @@ class RedneckFire : DukeActor { pic "FIRE"; +FULLBRIGHT; + +NOTELEPORT; + +NOFLOORPAL; } override bool animate(tspritetype t) @@ -107,6 +113,7 @@ class DukeOnFire : DukeActor default { pic "FLOORFLAME"; + +FORCERUNCON; } override void Initialize() @@ -137,5 +144,6 @@ class DukeOnFireSmoke : DukeActor default { pic "ONFIRESMOKE"; + +FORCERUNCON; } } diff --git a/wadsrc/static/zscript/games/duke/actors/canwithsomething.zs b/wadsrc/static/zscript/games/duke/actors/canwithsomething.zs index 3ba49dae6..2f3b80010 100644 --- a/wadsrc/static/zscript/games/duke/actors/canwithsomething.zs +++ b/wadsrc/static/zscript/games/duke/actors/canwithsomething.zs @@ -4,6 +4,8 @@ class DukeCanWithSomething : DukeActor Default { pic "CANWITHSOMETHING"; + +CHECKSLEEP; + +MOVEFTA_MAKESTANDABLE; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/commander.zs b/wadsrc/static/zscript/games/duke/actors/commander.zs index 4e4d9f318..6efeaf2c6 100644 --- a/wadsrc/static/zscript/games/duke/actors/commander.zs +++ b/wadsrc/static/zscript/games/duke/actors/commander.zs @@ -5,6 +5,8 @@ class DukeCommander : DukeActor pic "COMMANDER"; +INTERNAL_BADGUY; +KILLCOUNT; + +NOWATERDIP; + +FLOATING; } override void PlayFTASound() diff --git a/wadsrc/static/zscript/games/duke/actors/controllers.zs b/wadsrc/static/zscript/games/duke/actors/controllers.zs index 96e0fc5f9..f3520950a 100644 --- a/wadsrc/static/zscript/games/duke/actors/controllers.zs +++ b/wadsrc/static/zscript/games/duke/actors/controllers.zs @@ -144,6 +144,10 @@ class DukeShadeCtrl : DukeActor class DukeMinecartKiller : DukeActor { + default + { + +BADGUY; + } override void StaticSetup() { self.cstat |= CSTAT_SPRITE_INVISIBLE; @@ -200,6 +204,7 @@ class RedneckUfoBeam : DukeActor default { pic "UFOBEAM"; + +BADGUY; } override bool animate(tspritetype t) @@ -298,3 +303,19 @@ class RedneckSeasickEnabler : DukeActor } } +class RedneckWacoWinder : DukeActor +{ + default + { + pic "WACOWINDER"; + +BADGUY; + } + + override bool animate(tspritetype t) + { + t.cstat |= CSTAT_SPRITE_INVISIBLE; + self.cstat |= CSTAT_SPRITE_INVISIBLE; + return true; + } +} + diff --git a/wadsrc/static/zscript/games/duke/actors/coot.zs b/wadsrc/static/zscript/games/duke/actors/coot.zs index 049bd5b64..7f1f71552 100644 --- a/wadsrc/static/zscript/games/duke/actors/coot.zs +++ b/wadsrc/static/zscript/games/duke/actors/coot.zs @@ -38,3 +38,26 @@ class RedneckCootStayput: RedneckCoot self.actorstayput = self.sector; // make this a flag once everything has been exported. } } + +// CON for this is different in RRRA, so we need the split regardless of the flag. +class RedneckRACoot : RedneckCoot +{ + default + { + +LOOKALLAROUND + } +} + +class RedneckRACootStayput: RedneckRACoot +{ + default + { + pic "COOTSTAYPUT"; + +BADGUYSTAYPUT; + } + + override void PlayFTASound() + { + } +} + diff --git a/wadsrc/static/zscript/games/duke/actors/crack.zs b/wadsrc/static/zscript/games/duke/actors/crack.zs index 9669956f5..4f9a9b8ec 100644 --- a/wadsrc/static/zscript/games/duke/actors/crack.zs +++ b/wadsrc/static/zscript/games/duke/actors/crack.zs @@ -4,6 +4,7 @@ class DukeCrack : DukeActor default { pic "CRACK1"; + +NOFALLER; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/crane.zs b/wadsrc/static/zscript/games/duke/actors/crane.zs index 0b88ec768..f2e297459 100644 --- a/wadsrc/static/zscript/games/duke/actors/crane.zs +++ b/wadsrc/static/zscript/games/duke/actors/crane.zs @@ -5,6 +5,7 @@ class DukeCrane : DukeActor { spriteset "CRANE", "CRANE1", "CRANE2"; statnum STAT_STANDABLE; + +SE24_NOCARRY; } enum EPic @@ -247,5 +248,6 @@ class DukeCranePole : DukeActor default { pic "CRANEPOLE"; + +NOINTERPOLATE; } } diff --git a/wadsrc/static/zscript/games/duke/actors/destructibles.zs b/wadsrc/static/zscript/games/duke/actors/destructibles.zs index 59383bfb5..313e4edc5 100644 --- a/wadsrc/static/zscript/games/duke/actors/destructibles.zs +++ b/wadsrc/static/zscript/games/duke/actors/destructibles.zs @@ -42,6 +42,7 @@ class DukeStatueFlash : DukeActor default { pic "STATUEFLASH"; + +HITRADIUSCHECK; } override void Initialize() @@ -65,6 +66,7 @@ class DukeStatue : DukeStatueFlash default { pic "STATUE"; + +TRIGGERRESPAWN; } } @@ -284,6 +286,9 @@ class DukeHydrant : DukeActor Default { spriteset "HYDRENT", "BROKEFIREHYDRENT"; + +INFLAME; + +DOUBLEDMGTHRUST; + +BREAKMIRRORS; } override void Initialize() @@ -373,6 +378,7 @@ class DukeSpaceMarine : DukeActor Default { pic "SPACEMARINE"; + +HITRADIUSCHECK; } override void Initialize() @@ -417,6 +423,7 @@ class DukeMonk : DukeSpaceMarine default { pic "MONK"; + -HITRADIUSCHECK; } override void Initialize() @@ -463,6 +470,7 @@ class DukeChair3 : DukeActor default { pic "CHAIR3"; + +ALWAYSROTATE1; } override void OnHit(DukeActor proj) diff --git a/wadsrc/static/zscript/games/duke/actors/ducktarget.zs b/wadsrc/static/zscript/games/duke/actors/ducktarget.zs index 3fa9d85ef..d5da676a6 100644 --- a/wadsrc/static/zscript/games/duke/actors/ducktarget.zs +++ b/wadsrc/static/zscript/games/duke/actors/ducktarget.zs @@ -3,6 +3,7 @@ class DukeLetter : DukeActor default { pic "LETTER"; + +NOFALLER; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/dukedecos.zs b/wadsrc/static/zscript/games/duke/actors/dukedecos.zs index 57142166a..bb2ebe103 100644 --- a/wadsrc/static/zscript/games/duke/actors/dukedecos.zs +++ b/wadsrc/static/zscript/games/duke/actors/dukedecos.zs @@ -4,6 +4,11 @@ class DukeExplodingBarrel : DukeActor default { pic "EXPLODINGBARREL"; + +FORCERUNCON; + +CHECKSLEEP; + +MOVEFTA_MAKESTANDABLE; + +DOUBLEDMGTHRUST; + +BREAKMIRRORS; } override void Initialize() @@ -36,6 +41,7 @@ class DukeNukeBarrel : DukeExplodingBarrel default { pic "NUKEBARREL"; + +GREENBLOOD; } } class DukeFireVase : DukeExplodingBarrel @@ -100,6 +106,7 @@ class DukeWaterbubbleMaker : DukeActor default { pic "WATERBUBBLEMAKER"; + +FORCERUNCON; } override void Initialize() @@ -115,6 +122,8 @@ class DukeFeces : DukeActor default { pic "FECES"; + +FORCERUNCON; + +BROWNBLOOD; } override void Initialize() @@ -129,7 +138,8 @@ class DukeBlood : DukeActor { default { - pic "Blood"; + pic "BLOOD"; + +FORCERUNCON; } override void Initialize() @@ -187,6 +197,7 @@ class DukeWhispySmoke : DukeActor default { pic "WHISPYSMOKE"; + +FORCERUNCON; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/dukeitems.zs b/wadsrc/static/zscript/games/duke/actors/dukeitems.zs index c89fd44b3..4dc0e9341 100644 --- a/wadsrc/static/zscript/games/duke/actors/dukeitems.zs +++ b/wadsrc/static/zscript/games/duke/actors/dukeitems.zs @@ -12,6 +12,7 @@ class DukeCrystalAmmo : DukeItemBase default { pic "CRYSTALAMMO"; + +NOFLOORPAL; } override bool animate(tspritetype t) @@ -42,6 +43,7 @@ class DukeSteroids : DukeItemBase default { pic "STEROIDS"; + +INVENTORY; } } @@ -50,6 +52,7 @@ class DukeHeatSensor : DukeItemBase default { pic "HEATSENSOR"; + +INVENTORY; } } @@ -66,6 +69,7 @@ class DukeAirtank : DukeItemBase default { pic "AIRTANK"; + +INVENTORY; } } @@ -82,6 +86,7 @@ class DukeJetpack : DukeItemBase default { pic "JETPACK"; + +INVENTORY; } } @@ -90,6 +95,7 @@ class DukeHoloDuke : DukeItemBase default { pic "HOLODUKE"; + +INVENTORY; } } @@ -206,6 +212,7 @@ class DukeBoots : DukeItemBase default { pic "BOOTS"; + +INVENTORY; } } @@ -230,6 +237,7 @@ class DukeFirstAid : DukeItemBase default { pic "FIRSTAID"; + +INVENTORY; } } @@ -268,6 +276,7 @@ class DukeGrowSpark : DukeActor { spriteset "GROWSPARK", "GROWSPARK1", "GROWSPARK2", "GROWSPARK3"; +FULLBRIGHT; + +NOFLOORPAL; } override bool animate(tspritetype t) diff --git a/wadsrc/static/zscript/games/duke/actors/dukemisc.zs b/wadsrc/static/zscript/games/duke/actors/dukemisc.zs index c6ec6f01b..e040ce174 100644 --- a/wadsrc/static/zscript/games/duke/actors/dukemisc.zs +++ b/wadsrc/static/zscript/games/duke/actors/dukemisc.zs @@ -73,6 +73,7 @@ class DukeFootprints : DukeActor default { spriteset "FOOTPRINTS", "FOOTPRINTS2", "FOOTPRINTS3", "FOOTPRINTS4"; + +SE24_REMOVE; } override void Initialize() @@ -109,6 +110,8 @@ class DukeBulletHole : DukeActor default { pic "BULLETHOLE"; + +SE24_REMOVE; + +NOTELEPORT; } override void Initialize() @@ -224,6 +227,7 @@ class DukeBarBroke : DukeActor default { pic "BARBROKE"; + +SE24_NOCARRY; } } @@ -240,6 +244,7 @@ class DukeBurnedCorpse : DukeActor default { pic "BURNEDCORPSE"; + +FORCERUNCON; } } @@ -248,6 +253,7 @@ class DukeLaserSite : DukeActor default { pic "LASERSITE"; + +FORCERUNCON; } } @@ -256,6 +262,7 @@ class DukeSpeaker : DukeActor default { pic "SPEAKER"; + +NOFALLER; } } @@ -274,7 +281,8 @@ class DukeNewBeast : DukeActor pic "NEWBEAST"; +BADGUY; +KILLCOUNT; - + +GREENSLIMEFOOD; + +GREENBLOOD; } } @@ -287,4 +295,14 @@ class DukeNewBeastStayput : DukeNewBeast } } - + class DukeTank : DukeActor + { + default + { + pic "TANK"; + +BADGUY; + +KILLCOUNT; + +NODAMAGEPUSH; + +NORADIUSPUSH; + } +} \ No newline at end of file diff --git a/wadsrc/static/zscript/games/duke/actors/emptybike.zs b/wadsrc/static/zscript/games/duke/actors/emptybike.zs index 403e0692d..f05723e16 100644 --- a/wadsrc/static/zscript/games/duke/actors/emptybike.zs +++ b/wadsrc/static/zscript/games/duke/actors/emptybike.zs @@ -4,6 +4,7 @@ class RedneckEmptyBike : DukeActor default { pic "EMPTYBIKE"; + +ALWAYSROTATE2; } override void Initialize() @@ -52,6 +53,7 @@ class RedneckEmptyBoat : DukeActor default { pic "EMPTYBOAT"; + +ALWAYSROTATE2; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/explosion2.zs b/wadsrc/static/zscript/games/duke/actors/explosion2.zs index 3130fc747..bdd587121 100644 --- a/wadsrc/static/zscript/games/duke/actors/explosion2.zs +++ b/wadsrc/static/zscript/games/duke/actors/explosion2.zs @@ -4,6 +4,8 @@ class DukeExplosion2 : DukeActor { pic "EXPLOSION2"; +FULLBRIGHT; + +FORCERUNCON; + +TRIGGER_IFHITSECTOR; } override bool animate(tspritetype t) @@ -38,7 +40,7 @@ class DukeExplosion2Bot : DukeExplosion2 default { pic "EXPLOSION2BOT"; - +FULLBRIGHT; + -TRIGGER_IFHITSECTOR; } } diff --git a/wadsrc/static/zscript/games/duke/actors/females.zs b/wadsrc/static/zscript/games/duke/actors/females.zs index 853718789..160b01434 100644 --- a/wadsrc/static/zscript/games/duke/actors/females.zs +++ b/wadsrc/static/zscript/games/duke/actors/females.zs @@ -4,6 +4,8 @@ class DukeFemale1 : DukeActor default { pic "FEM1"; + +TRIGGERRESPAWN; + +HITRADIUSCHECK; } override void Initialize() @@ -91,6 +93,7 @@ class DukeNaked : DukeFemale1 default { pic "NAKED1"; + -HITRADIUSCHECK; } } @@ -99,6 +102,7 @@ class DukeToughGal : DukeFemale1 default { pic "TOUGHGAL"; + -HITRADIUSCHECK; } } @@ -107,6 +111,7 @@ class DukeBloodyPole : DukeFemale1 default { pic "BLOODYPOLE"; + -TRIGGERRESPAWN; } } diff --git a/wadsrc/static/zscript/games/duke/actors/fireext.zs b/wadsrc/static/zscript/games/duke/actors/fireext.zs index 54fc26ee8..849e24a6a 100644 --- a/wadsrc/static/zscript/games/duke/actors/fireext.zs +++ b/wadsrc/static/zscript/games/duke/actors/fireext.zs @@ -4,6 +4,7 @@ class DukeFireext : DukeActor default { pic "FIREEXT"; + +EXPLOSIVE; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/firefly.zs b/wadsrc/static/zscript/games/duke/actors/firefly.zs index 8a5338b2d..86aa25ca1 100644 --- a/wadsrc/static/zscript/games/duke/actors/firefly.zs +++ b/wadsrc/static/zscript/games/duke/actors/firefly.zs @@ -4,6 +4,7 @@ class DukeFireflyFlyingEffect : DukeActor default { pic "FIREFLYFLYINGEFFECT"; + +FORCERUNCON; } override void Initialize() @@ -49,6 +50,8 @@ class DukeFirefly : DukeActor default { pic "FIREFLY"; + +INTERNAL_BADGUY; + +KILLCOUNT; } override bool ShootThis(DukeActor shooter, DukePlayer p, Vector3 spos, double sang) diff --git a/wadsrc/static/zscript/games/duke/actors/flammables.zs b/wadsrc/static/zscript/games/duke/actors/flammables.zs index 775ff996f..49a37f4a3 100644 --- a/wadsrc/static/zscript/games/duke/actors/flammables.zs +++ b/wadsrc/static/zscript/games/duke/actors/flammables.zs @@ -3,6 +3,7 @@ class DukeFlammable : DukeActor default { statnum STAT_STANDABLE; + +HITRADIUS_FLAG1; } override void Initialize() @@ -81,6 +82,7 @@ class DukeBox : DukeFlammable default { pic "BOX"; + +FALLINGFLAMMABLE; } } @@ -89,6 +91,7 @@ class DukeTree1 : DukeFlammable default { pic "TREE1"; + +NOFLOORFIRE; } } @@ -97,6 +100,7 @@ class DukeTree2 : DukeFlammable default { pic "TREE2"; + +NOFLOORFIRE; } } @@ -105,6 +109,7 @@ class DukeTire : DukeFlammable default { pic "TIRE"; + +FLAMMABLEPOOLEFFECT; } } diff --git a/wadsrc/static/zscript/games/duke/actors/forcesphere.zs b/wadsrc/static/zscript/games/duke/actors/forcesphere.zs index 7a7cc0944..3cecb5d5e 100644 --- a/wadsrc/static/zscript/games/duke/actors/forcesphere.zs +++ b/wadsrc/static/zscript/games/duke/actors/forcesphere.zs @@ -3,6 +3,7 @@ class DukeForceSphere : DukeActor default { pic "FORCESPHERE"; + +NOFLOORPAL; } diff --git a/wadsrc/static/zscript/games/duke/actors/frameeffect.zs b/wadsrc/static/zscript/games/duke/actors/frameeffect.zs index c5f0b4fc0..e4f6c0549 100644 --- a/wadsrc/static/zscript/games/duke/actors/frameeffect.zs +++ b/wadsrc/static/zscript/games/duke/actors/frameeffect.zs @@ -2,7 +2,7 @@ class DukeFrameEffect : DukeActor { default { - Pic "SMALLSMOKE"; + Pic "FRAMEEFFECT1"; } diff --git a/wadsrc/static/zscript/games/duke/actors/greenslime.zs b/wadsrc/static/zscript/games/duke/actors/greenslime.zs index ffae11c5d..6cb29852e 100644 --- a/wadsrc/static/zscript/games/duke/actors/greenslime.zs +++ b/wadsrc/static/zscript/games/duke/actors/greenslime.zs @@ -5,6 +5,9 @@ class DukeGreenSlime : DukeActor spriteset "GREENSLIME", "GREENSLIME1", "GREENSLIME2", "GREENSLIME3", "GREENSLIME4", "GREENSLIME5", "GREENSLIME6", "GREENSLIME7"; +INTERNAL_BADGUY; +KILLCOUNT; + +DONTDIVEALIVE; + +FORCESECTORSHADE; + +SHRINKAUTOAIM; } override void Initialize() @@ -419,6 +422,7 @@ class DukeEgg : DukeActor default { pic "EGG"; + +INTERNAL_BADGUY; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/heavyhbomb.zs b/wadsrc/static/zscript/games/duke/actors/heavyhbomb.zs index 2e82a8445..6233fb1f1 100644 --- a/wadsrc/static/zscript/games/duke/actors/heavyhbomb.zs +++ b/wadsrc/static/zscript/games/duke/actors/heavyhbomb.zs @@ -4,6 +4,10 @@ class DukePipeBomb : DukeActor default { pic "HEAVYHBOMB"; + +INFLAME; + +EXPLOSIVE; + +DOUBLEDMGTHRUST; + +BREAKMIRRORS; // do not add anything here! } @@ -225,6 +229,7 @@ class RedneckDynamite : DukePipeBomb default { pic "DYNAMITE"; + +INFLAME; } override void pickupCheck(DukePlayer p) diff --git a/wadsrc/static/zscript/games/duke/actors/jibs.zs b/wadsrc/static/zscript/games/duke/actors/jibs.zs index 27e37d81a..53961702e 100644 --- a/wadsrc/static/zscript/games/duke/actors/jibs.zs +++ b/wadsrc/static/zscript/games/duke/actors/jibs.zs @@ -21,7 +21,7 @@ extend class DukeActor if (self.badguy() && self.pal == 6) pal = 6; - else if (!self.actorflag2(SFLAG2_TRANFERPALTOJIBS)) + else if (!self.actorflag2(SFLAG2_TRANSFERPALTOJIBS)) pal = 0; else pal = self.pal; diff --git a/wadsrc/static/zscript/games/duke/actors/lavapool.zs b/wadsrc/static/zscript/games/duke/actors/lavapool.zs index 6b8404370..12df6b45e 100644 --- a/wadsrc/static/zscript/games/duke/actors/lavapool.zs +++ b/wadsrc/static/zscript/games/duke/actors/lavapool.zs @@ -3,6 +3,7 @@ class DukeLavaPool : DukeActor default { pic "LAVAPOOL"; + +FORCERUNCON; } override void Initialize() @@ -37,6 +38,7 @@ class DukeLavaPoolBubble : DukeActor default { pic "LAVAPOOLBUBBLE"; + +FORCERUNCON; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/lizman.zs b/wadsrc/static/zscript/games/duke/actors/lizman.zs index a2b1b3da1..e9374b0e7 100644 --- a/wadsrc/static/zscript/games/duke/actors/lizman.zs +++ b/wadsrc/static/zscript/games/duke/actors/lizman.zs @@ -6,6 +6,7 @@ class DukeLizMan : DukeActor pic "LIZMAN"; +INTERNAL_BADGUY; +KILLCOUNT; + +GREENSLIMEFOOD; } override void PlayFTASound() diff --git a/wadsrc/static/zscript/games/duke/actors/liztroop.zs b/wadsrc/static/zscript/games/duke/actors/liztroop.zs index 0e0d796ff..0e6af2200 100644 --- a/wadsrc/static/zscript/games/duke/actors/liztroop.zs +++ b/wadsrc/static/zscript/games/duke/actors/liztroop.zs @@ -6,6 +6,8 @@ class DukeLizTrooper : DukeActor pic "LIZTROOP"; +INTERNAL_BADGUY; +KILLCOUNT; + +GREENSLIMEFOOD; + +TRANSFERPALTOJIBS; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/mech.zs b/wadsrc/static/zscript/games/duke/actors/mech.zs index 08c4e0543..8926434e8 100644 --- a/wadsrc/static/zscript/games/duke/actors/mech.zs +++ b/wadsrc/static/zscript/games/duke/actors/mech.zs @@ -5,6 +5,8 @@ class DukeDrone : DukeActor pic "DRONE"; +INTERNAL_BADGUY; +KILLCOUNT; + +NOWATERDIP; + +FLOATING; } override void PlayFTASound() @@ -40,11 +42,13 @@ class DukeRotateGun : DukeActor pic "ROTATEGUN"; +INTERNAL_BADGUY; +KILLCOUNT; + +NODAMAGEPUSH; + +NORADIUSPUSH; } override void Initialize() { - self.vel.Z = 0; + self.vel.Z = 0; } } @@ -54,6 +58,8 @@ class DukeShark : DukeActor { pic "SHARK"; +INTERNAL_BADGUY; + +DONTDIVEALIVE; + +FLOATING; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/minion.zs b/wadsrc/static/zscript/games/duke/actors/minion.zs index 46c4c9e64..46a766e54 100644 --- a/wadsrc/static/zscript/games/duke/actors/minion.zs +++ b/wadsrc/static/zscript/games/duke/actors/minion.zs @@ -5,6 +5,8 @@ class RedneckMinion : DukeActor pic "MINION"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUNDWITHPAL8; + +TRANSFERPALTOJIBS; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/mortar.zs b/wadsrc/static/zscript/games/duke/actors/mortar.zs index 2ce5eb64c..1a30e5362 100644 --- a/wadsrc/static/zscript/games/duke/actors/mortar.zs +++ b/wadsrc/static/zscript/games/duke/actors/mortar.zs @@ -203,6 +203,7 @@ class RedneckCheerBomb : DukeMortar { spriteset "CHEERBOMB", "CHEERBOMB1", "CHEERBOMB2", "CHEERBOMB3"; DukeMortar.ceilingdist 16; + +NOFLOORPAL; } override bool Animate(tspritetype t) diff --git a/wadsrc/static/zscript/games/duke/actors/octabrain.zs b/wadsrc/static/zscript/games/duke/actors/octabrain.zs index 4ae5b3c57..f8eb250b1 100644 --- a/wadsrc/static/zscript/games/duke/actors/octabrain.zs +++ b/wadsrc/static/zscript/games/duke/actors/octabrain.zs @@ -5,6 +5,7 @@ class DukeOctabrain : DukeActor pic "OCTABRAIN"; +INTERNAL_BADGUY; +KILLCOUNT; + +NOWATERDIP; } override void PlayFTASound() @@ -18,6 +19,7 @@ class DukeOctabrainStayput: DukeOctabrain default { pic "OCTABRAINSTAYPUT"; + +DONTDIVEALIVE; } override void initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/oozfilter.zs b/wadsrc/static/zscript/games/duke/actors/oozfilter.zs index 41ed09954..2b7b22883 100644 --- a/wadsrc/static/zscript/games/duke/actors/oozfilter.zs +++ b/wadsrc/static/zscript/games/duke/actors/oozfilter.zs @@ -4,6 +4,11 @@ class DukeOozFilter : DukeActor default { spriteset "OOZFILTER"; + +EXPLOSIVE; + +BRIGHTEXPLODE; + +DOUBLEDMGTHRUST; + +BREAKMIRRORS; + +GREENBLOOD; } override void Initialize() @@ -89,6 +94,7 @@ class DukeSeenine : DukeOozFilter default { spriteset "SEENINE", "SEENINEDEAD", "SEENINEDEAD1"; + -GREENBLOOD; } } diff --git a/wadsrc/static/zscript/games/duke/actors/pigcop.zs b/wadsrc/static/zscript/games/duke/actors/pigcop.zs index 016cdcce9..2f7bc1adc 100644 --- a/wadsrc/static/zscript/games/duke/actors/pigcop.zs +++ b/wadsrc/static/zscript/games/duke/actors/pigcop.zs @@ -5,6 +5,7 @@ class DukePigCop : DukeActor pic "PIGCOP"; +INTERNAL_BADGUY; +KILLCOUNT; + +GREENSLIMEFOOD; } override void PlayFTASound() diff --git a/wadsrc/static/zscript/games/duke/actors/player.zs b/wadsrc/static/zscript/games/duke/actors/player.zs index 24e2e4008..7d7e16cbf 100644 --- a/wadsrc/static/zscript/games/duke/actors/player.zs +++ b/wadsrc/static/zscript/games/duke/actors/player.zs @@ -3,6 +3,7 @@ class DukePlayerOnWater : DukeActor default { pic "PLAYERONWATER"; + +ALWAYSROTATE1; } override void Initialize() @@ -23,6 +24,7 @@ class DukePlayerLyingDead : DukeActor default { pic "DUKELYINGDEAD"; + +HITRADIUS_FLAG2; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/powderkeg.zs b/wadsrc/static/zscript/games/duke/actors/powderkeg.zs index 9b60acf65..d65abcea7 100644 --- a/wadsrc/static/zscript/games/duke/actors/powderkeg.zs +++ b/wadsrc/static/zscript/games/duke/actors/powderkeg.zs @@ -4,6 +4,11 @@ class RedneckPowderKeg : DukeItemBase default { pic "POWDERKEG"; + +NOFLOORPAL; + +EXPLOSIVE; + +DOUBLEDMGTHRUST; + +BREAKMIRRORS; + +INFLAME; } override void Tick() diff --git a/wadsrc/static/zscript/games/duke/actors/projectiles.zs b/wadsrc/static/zscript/games/duke/actors/projectiles.zs index ee2355d8a..db715ab07 100644 --- a/wadsrc/static/zscript/games/duke/actors/projectiles.zs +++ b/wadsrc/static/zscript/games/duke/actors/projectiles.zs @@ -200,7 +200,9 @@ class DukeFirelaser : DukeProjectile // Liztrooper shot default { spriteset "FIRELASER", "FIRELASER2", "FIRELASER3", "FIRELASER4", "FIRELASER5", "FIRELASER6"; + +INFLAME; +FULLBRIGHT; + +MIRRORREFLECT; } override bool postmoveeffect(CollisionData coll) { @@ -265,6 +267,8 @@ class DukeShrinkSpark : DukeProjectile { spriteset "SHRINKSPARK", "SHRINKSPARK1", "SHRINKSPARK2", "SHRINKSPARK3"; +FULLBRIGHT; + +MIRRORREFLECT; + +NOFLOORPAL; } override void posthiteffect(CollisionData coll) @@ -290,6 +294,7 @@ class DukeShrinkerExplosion : DukeActor { spriteset "SHRINKEREXPLOSION"; +FULLBRIGHT; + +FORCERUNCON; } override void Initialize() @@ -322,6 +327,13 @@ class DukeRPG : DukeProjectile { pic "RPG"; +FULLBRIGHT; + +INFLAME; + +UNDERWATERSLOWDOWN; + +ALWAYSROTATE2; + +EXPLOSIVE; + +DOUBLEDMGTHRUST; + +NOFLOORPAL; + +BREAKMIRRORS; } override void Initialize() @@ -410,6 +422,8 @@ class DukeFreezeBlast : DukeProjectile { pic "FREEZEBLAST"; +FULLBRIGHT; + +FREEZEDAMAGE; + +REFLECTIVE; } override bool postmoveeffect(CollisionData coll) @@ -532,6 +546,7 @@ class DukeCoolExplosion1 : DukeProjectile // octabrain shot. "COOLEXPLOSION11", "COOLEXPLOSION12", "COOLEXPLOSION13", "COOLEXPLOSION14", "COOLEXPLOSION15", "COOLEXPLOSION16", "COOLEXPLOSION17", "COOLEXPLOSION18", "COOLEXPLOSION19", "COOLEXPLOSION20"; +FULLBRIGHT; + +MIRRORREFLECT; } override void Initialize() @@ -732,6 +747,7 @@ class RedneckUWhip : DukeProjectile { pic "UWHIP"; +FULLBRIGHT; + +INFLAME; } } @@ -748,6 +764,7 @@ class RedneckVixenShot : RedneckUWhip // COOLEXPLOSION1 default { pic "VIXENSHOT"; + +INFLAME; } } @@ -766,7 +783,7 @@ class RedneckDynamiteArrow : DukeRPG override bool weaponhitsprite_pre(DukeActor targ) { - if (targ.actorflag2(SFLAG2_TRANFERPALTOJIBS) && targ.pal == 19) + if (targ.actorflag2(SFLAG2_TRANSFERPALTOJIBS) && targ.pal == 19) { self.PlayActorSound("RPG_EXPLODE"); let spawned = self.spawn("DukeExplosion2"); @@ -797,6 +814,9 @@ class RedneckChickenArrow : RedneckDynamiteArrow default { pic "RPG2"; + +FORCEAUTOAIM; + +NOFLOORPAL; + +ALWAYSROTATE2; } override void Initialize() @@ -868,6 +888,8 @@ class RedneckBoatGrenade : RedneckDynamiteArrow // RRRA only default { pic "BOATGRENADE"; + -DOUBLEDMGTHRUST; + -ALWAYSROTATE2; } override void Initialize() @@ -917,6 +939,7 @@ class RedneckShitBall : DukeSpit "FROGBALL1", "FROGBALL2", "FROGBALL3", "FROGBALL4", "FROGBALL5", "FROGBALL6", "SHITBURN", "SHITBURN2", "SHITBURN3", "SHITBURN4", "RABBITBALL"; + +NOFLOORPAL; } private void rabbitguts() @@ -958,7 +981,7 @@ class RedneckShitBall : DukeSpit if (self.ownerActor) { let OwnerAc = self.ownerActor; - if (OwnerAc.actorflag2(SFLAG2_TRANFERPALTOJIBS)) + if (OwnerAc.actorflag2(SFLAG2_TRANSFERPALTOJIBS)) { if (OwnerAc.pal == 8) { diff --git a/wadsrc/static/zscript/games/duke/actors/queball.zs b/wadsrc/static/zscript/games/duke/actors/queball.zs index 43c5d2391..ce63734ec 100644 --- a/wadsrc/static/zscript/games/duke/actors/queball.zs +++ b/wadsrc/static/zscript/games/duke/actors/queball.zs @@ -8,6 +8,8 @@ class DukeQueball : DukeActor default { pic "QUEBALL"; + +HITRADIUS_FLAG2; + +HITRADIUSCHECK; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/rabbit.zs b/wadsrc/static/zscript/games/duke/actors/rabbit.zs index 0b9e60972..01b8d2b21 100644 --- a/wadsrc/static/zscript/games/duke/actors/rabbit.zs +++ b/wadsrc/static/zscript/games/duke/actors/rabbit.zs @@ -5,6 +5,7 @@ class RedneckRabbit : DukeActor pic "RABBIT"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/rat.zs b/wadsrc/static/zscript/games/duke/actors/rat.zs index 549482d43..59c72f90e 100644 --- a/wadsrc/static/zscript/games/duke/actors/rat.zs +++ b/wadsrc/static/zscript/games/duke/actors/rat.zs @@ -6,6 +6,7 @@ class DukeRat : DukeActor { pic "RAT"; +INTERNAL_BADGUY; + +ALWAYSROTATE1; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/recon.zs b/wadsrc/static/zscript/games/duke/actors/recon.zs index 9986a856c..34458db44 100644 --- a/wadsrc/static/zscript/games/duke/actors/recon.zs +++ b/wadsrc/static/zscript/games/duke/actors/recon.zs @@ -5,6 +5,16 @@ class DukeRecon : DukeActor spriteset "RECON", "RECON2"; +INTERNAL_BADGUY; +KILLCOUNT; + +DONTDIVE; + +FLOATING; + + +ALWAYSROTATE2; + +SPECIALAUTOAIM; + +IGNOREHITOWNER; + +NODAMAGEPUSH; + +NORADIUSPUSH; + +NOFLOORPAL; + +NOGRAVITY; } Sound AttackSnd; @@ -230,6 +240,10 @@ class RedneckUFO1 : DukeRecon default { Pic "UFO1_RR"; + -ALWAYSROTATE2; + -SPECIALAUTOAIM; + -IGNOREHITOWNER; + -NOFLOORPAL; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs index 7f9aeebfa..c6dd8d823 100644 --- a/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs +++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs @@ -6,6 +6,7 @@ class RedneckBikerBV2 : DukeActor pic "BIKERBV2"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; } override void Initialize() { @@ -21,6 +22,7 @@ class RedneckBikerB : DukeActor pic "BIKERB"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; } override void Initialize() { @@ -36,6 +38,7 @@ class RedneckBiker : DukeActor pic "BIKER"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; } override void Initialize() { @@ -51,6 +54,7 @@ class RedneckMakeout : DukeActor pic "MAKEOUT"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; } override void Initialize() { @@ -66,6 +70,7 @@ class RedneckCheerleaderB : DukeActor pic "CHEERB"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; } override void Initialize() { @@ -81,7 +86,9 @@ class RedneckCheerleader : DukeActor pic "CHEER"; +INTERNAL_BADGUY; +KILLCOUNT; - } + +LOOKALLAROUND; + +ALTPROJECTILESPRITE; // owed to CON's shittiness. Todo: Think of something better. +} override void Initialize() { self.scale = (0.34375, 0.3125); @@ -95,6 +102,9 @@ class RedneckCootplay : DukeActor { pic "COOTPLAY"; +INTERNAL_BADGUY; + +LOOKALLAROUND; + +NODAMAGEPUSH; + +NORADIUSPUSH; } override void Initialize() { @@ -110,6 +120,9 @@ class RedneckBillyPlay : DukeActor { pic "BILLYPLAY"; +INTERNAL_BADGUY; + +LOOKALLAROUND; + +NODAMAGEPUSH; + +NORADIUSPUSH; } override void Initialize() { @@ -125,6 +138,8 @@ class RedneckMinionBoat : DukeActor pic "MINIONBOAT"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; + +DONTDIVE; } override void Initialize() { @@ -140,6 +155,8 @@ class RedneckHulkBoat : DukeActor pic "HULKBOAT"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; + +DONTDIVE; } override void Initialize() { @@ -155,6 +172,8 @@ class RedneckCheerBoat : DukeActor pic "CHEERBOAT"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; + +DONTDIVE; } override void Initialize() { @@ -191,6 +210,8 @@ class RedneckMamaCloud : DukeActor default { pic "MAMACLOUD"; + +NODAMAGEPUSH; + +NORADIUSPUSH; } override void Initialize() { @@ -209,6 +230,10 @@ class RedneckMama : DukeActor pic "MAMA"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; + +NODAMAGEPUSH; + +NORADIUSPUSH; + +SPAWNRABBITGUTS; // owed to CON's shittiness. Todo: Think of something better. } override void Initialize() @@ -277,6 +302,8 @@ class RedneckShitBoss : DukeActor +FULLBRIGHT; +INTERNAL_BADGUY; +KILLCOUNT; + +NODAMAGEPUSH; + +NORADIUSPUSH; } override void Initialize() @@ -310,6 +337,8 @@ class RedneckHulk : DukeActor pic "HULK"; +INTERNAL_BADGUY; +KILLCOUNT; + +NODAMAGEPUSH; + +NORADIUSPUSH; } override void Initialize() @@ -404,6 +433,8 @@ class RedneckMosquito : DukeActor pic "DRONE"; +INTERNAL_BADGUY; +KILLCOUNT; + +NOWATERDIP; + +FLOATING; } override void Initialize() { @@ -419,5 +450,6 @@ class RedneckVixen : DukeActor pic "VIXEN"; +INTERNAL_BADGUY; +KILLCOUNT; + +LOOKALLAROUND; } } diff --git a/wadsrc/static/zscript/games/duke/actors/redneckitems.zs b/wadsrc/static/zscript/games/duke/actors/redneckitems.zs index 82562509a..3b14ed8e4 100644 --- a/wadsrc/static/zscript/games/duke/actors/redneckitems.zs +++ b/wadsrc/static/zscript/games/duke/actors/redneckitems.zs @@ -41,6 +41,7 @@ class RedneckMoonshine : DukeItemBase default { pic "STEROIDS"; + +INVENTORY; } override void Initialize() { @@ -53,6 +54,7 @@ class RedneckSnorkel : DukeItemBase default { pic "AIRTANK"; + +INVENTORY; } override void Initialize() @@ -66,6 +68,7 @@ class RedneckCowpie : DukeItemBase default { pic "COWPIE"; + +INVENTORY; } override void Initialize() { @@ -78,6 +81,7 @@ class RedneckSixpack : DukeItemBase default { pic "HOLODUKE"; + +INVENTORY; } } @@ -200,6 +204,7 @@ class RedneckHipWader : DukeItemBase default { pic "BOOTS"; + +INVENTORY; } } @@ -233,6 +238,7 @@ class RedneckWhiskey : DukeItemBase default { pic "FIRSTAID"; + +INVENTORY; } override void Initialize() { diff --git a/wadsrc/static/zscript/games/duke/actors/respawnmarker.zs b/wadsrc/static/zscript/games/duke/actors/respawnmarker.zs index 1504a969e..661d96722 100644 --- a/wadsrc/static/zscript/games/duke/actors/respawnmarker.zs +++ b/wadsrc/static/zscript/games/duke/actors/respawnmarker.zs @@ -5,6 +5,7 @@ class DukeRespawnMarker : DukeActor default { spriteset "RESPAWNMARKERRED", "RESPAWNMARKERYELLOW", "RESPAWNMARKERGREEN"; + +NOFLOORPAL; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/smallsmoke.zs b/wadsrc/static/zscript/games/duke/actors/smallsmoke.zs index 99d1a59c8..99485383a 100644 --- a/wadsrc/static/zscript/games/duke/actors/smallsmoke.zs +++ b/wadsrc/static/zscript/games/duke/actors/smallsmoke.zs @@ -3,6 +3,7 @@ class DukeSmallSmoke : DukeActor default { pic "SMALLSMOKE"; + +FORCERUNCON; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/steam.zs b/wadsrc/static/zscript/games/duke/actors/steam.zs index bd5e0dcc8..16af73aff 100644 --- a/wadsrc/static/zscript/games/duke/actors/steam.zs +++ b/wadsrc/static/zscript/games/duke/actors/steam.zs @@ -3,6 +3,7 @@ class DukeSteamBase : DukeActor // we need this for in-game checking and the sha default { statnum STAT_STANDABLE; + +FORCERUNCON; } } @@ -15,11 +16,12 @@ class DukeCeilingSteam : DukeSteamBase } -class DukeSteam : DukeActor +class DukeSteam : DukeSteamBase { default { pic "STEAM"; + +FORCERUNCON; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/toiletwater.zs b/wadsrc/static/zscript/games/duke/actors/toiletwater.zs index 2993c74ec..b81db433a 100644 --- a/wadsrc/static/zscript/games/duke/actors/toiletwater.zs +++ b/wadsrc/static/zscript/games/duke/actors/toiletwater.zs @@ -3,6 +3,8 @@ class DukeToiletWater : DukeActor default { pic "TOILETWATER"; + +FORCERUNCON; + +NOTELEPORT; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/transporter.zs b/wadsrc/static/zscript/games/duke/actors/transporter.zs index 2487c1cea..e2ecb6af7 100644 --- a/wadsrc/static/zscript/games/duke/actors/transporter.zs +++ b/wadsrc/static/zscript/games/duke/actors/transporter.zs @@ -4,6 +4,8 @@ class DukeTransporterStar : DukeActor default { pic "TRANSPORTERSTAR"; + +FORCERUNCON; + +NOTELEPORT; } override void Initialize() @@ -42,6 +44,7 @@ class DukeTransporterBeam : DukeActor default { pic "TRANSPORTERBEAM"; + +FORCERUNCON; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/tripbomb.zs b/wadsrc/static/zscript/games/duke/actors/tripbomb.zs index 8ec931d0e..d5f8fc23a 100644 --- a/wadsrc/static/zscript/games/duke/actors/tripbomb.zs +++ b/wadsrc/static/zscript/games/duke/actors/tripbomb.zs @@ -14,6 +14,16 @@ class DukeTripBomb : DukeActor pic "TRIPBOMB"; // Note: The trip bomb has its health defined through CON! Value is 100. Con-based definitions will take precendence. health 100; + +CHECKSLEEP; + +HITRADIUS_FLAG2; + +MOVEFTA_MAKESTANDABLE; + +SE24_NOCARRY; + +DONTANIMATE; + +NOFALLER; + +BLOCK_TRIPBOMB; + +NOFLOORPAL; + + +NOTELEPORT; } override void Initialize() @@ -226,6 +236,12 @@ class DukeLaserLine : DukeActor { pic "LASERLINE"; +FULLBRIGHT; + +NOROTATEWITHSECTOR; + +SHOWWALLSPRITEONMAP; + +SE24_NOCARRY; + +DONTANIMATE; + +NOTELEPORT; + +NOFLOORPAL; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/viewscreen.zs b/wadsrc/static/zscript/games/duke/actors/viewscreen.zs index 454da018f..5823f86fe 100644 --- a/wadsrc/static/zscript/games/duke/actors/viewscreen.zs +++ b/wadsrc/static/zscript/games/duke/actors/viewscreen.zs @@ -3,6 +3,8 @@ class DukeViewscreen : DukeActor default { spriteset "VIEWSCREEN", "STATIC", "VIEWSCR"; + +NOFALLER; + +NOFLOORPAL; } const VIEWSCR_DIST = 1024; // was originally 2048, was increased to 8192 by EDuke32 and RedNukem, but with high resolutions the resulting 512 map units are still too low. @@ -94,6 +96,8 @@ class DukeCamera : DukeActor default { pic "CAMERA1"; + +CAMERA; + +ALWAYSROTATE1; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/waterbubble.zs b/wadsrc/static/zscript/games/duke/actors/waterbubble.zs index 01884fa3a..4361ff268 100644 --- a/wadsrc/static/zscript/games/duke/actors/waterbubble.zs +++ b/wadsrc/static/zscript/games/duke/actors/waterbubble.zs @@ -3,6 +3,8 @@ class DukeWaterBubble : DukeActor default { pic "WATERBUBBLE"; + +FORCERUNCON; + +NOFLOORPAL; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/watersplash.zs b/wadsrc/static/zscript/games/duke/actors/watersplash.zs index 9dede34ab..aea50b103 100644 --- a/wadsrc/static/zscript/games/duke/actors/watersplash.zs +++ b/wadsrc/static/zscript/games/duke/actors/watersplash.zs @@ -3,6 +3,7 @@ class DukeWatersplash : DukeActor default { spriteset "WATERSPLASH2", "WATERSPLASH2A", "WATERSPLASH2B", "WATERSPLASH2C", "WATERSPLASH2D"; + +NOTELEPORT; } override void Initialize() @@ -81,6 +82,7 @@ class RedneckMudSplash : DukeWatersplash default { spriteset "MUD", "MUD1", "MUD2", "MUD3", "MUD4"; + +NOTELEPORT; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/dukeactor.zs b/wadsrc/static/zscript/games/duke/dukeactor.zs index 1ced2af60..66c173d2f 100644 --- a/wadsrc/static/zscript/games/duke/dukeactor.zs +++ b/wadsrc/static/zscript/games/duke/dukeactor.zs @@ -160,28 +160,7 @@ class DukeActor : CoreActor native native Vector3 temp_pos, temp_pos2; native double temp_angle; - // this is not really usable unless all actors are properly scriptified. - flagdef Inventory: flags1, 0; - flagdef ShrinkAutoaim: flags1, 1; - flagdef Badguy: flags1, 2; - flagdef ForceAutoaim: flags1, 3; - flagdef Boss: flags1, 4; - flagdef Badguystayput: flags1, 5; - flagdef GreenSlimeFood: flags1, 6; - flagdef NoDamagePush: flags1, 7; - flagdef NoWaterDrip: flags1, 8; - flagdef InternalBadguy: flags1, 9; - flagdef Killcount: flags1, 10; - flagdef NoCanSeeCheck: flags1, 11; - flagdef HitRadiusCheck: flags1, 12; - flagdef MoveFTA_CheckSee: flags1, 13; - flagdef MoveFTA_MakeStandable: flags1, 14; - flagdef TriggerIfHitSector: flags1, 15; - //flagdef MoveFTA_WakeupCheck: flags1, 16; // this one needs to be auto-set for RR, not for Duke, should not be exposed unless the feature becomes generally available. - flagdef CheckSeeWithPal8: flags1, 17; - flagdef NoShadow: flags1, 18; - flagdef SE24_NoFloorCheck: flags1, 19; - flagdef NoInterpolate: flags1, 20; + // flags are implemented natively to avoid the prefixes. native void getglobalz(); native DukePlayer, double findplayer(); @@ -429,13 +408,13 @@ enum sflags_t SFLAG_NOWATERDIP = 0x00000100, SFLAG_INTERNAL_BADGUY = 0x00000200, // a separate flag is needed for the internal ones because SFLAG_BADGUY has additional semantics. SFLAG_KILLCOUNT = 0x00000400, - SFLAG_NOCANSEECHECK = 0x00000800, + //SFLAG_NOCANSEECHECK = 0x00000800, SFLAG_HITRADIUSCHECK = 0x00001000, - SFLAG_MOVEFTA_CHECKSEE = 0x00002000, + SFLAG_LOOKALLAROUND = 0x00002000, SFLAG_MOVEFTA_MAKESTANDABLE = 0x00004000, SFLAG_TRIGGER_IFHITSECTOR = 0x00008000, SFLAG_MOVEFTA_WAKEUPCHECK = 0x00010000, - SFLAG_MOVEFTA_CHECKSEEWITHPAL8 = 0x00020000, // let's hope this can be done better later. For now this was what blocked merging the Duke and RR variants of movefta + SFLAG_LOOKALLAROUNDWITHPAL8 = 0x00020000, // let's hope this can be done better later. For now this was what blocked merging the Duke and RR variants of movefta SFLAG_NOSHADOW = 0x00040000, SFLAG_SE24_NOCARRY = 0x00080000, SFLAG_NOINTERPOLATE = 0x00100000, @@ -468,7 +447,7 @@ enum sflags2_t SFLAG2_GREENBLOOD = 0x00000800, SFLAG2_ALWAYSROTATE1 = 0x00001000, SFLAG2_DIENOW = 0x00002000, - SFLAG2_TRANFERPALTOJIBS = 0x00004000, + SFLAG2_TRANSFERPALTOJIBS = 0x00004000, SFLAG2_NORADIUSPUSH = 0x00008000, SFLAG2_FREEZEDAMAGE = 0x00010000, SFLAG2_REFLECTIVE = 0x00020000,