From 041d5214a4d34b2582128d1d3c5173b6dce18a9a Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 23 Dec 2022 08:11:57 +0100 Subject: [PATCH] - two new flags for the hitscan attack. --- source/core/thingdef_data.cpp | 2 ++ source/games/duke/src/constants.h | 6 +++--- wadsrc/static/zscript/games/duke/actors/boss1.zs | 1 + wadsrc/static/zscript/games/duke/actors/boss2.zs | 2 +- wadsrc/static/zscript/games/duke/actors/boss3.zs | 1 + wadsrc/static/zscript/games/duke/actors/boss4.zs | 1 + wadsrc/static/zscript/games/duke/actors/boss5.zs | 1 + wadsrc/static/zscript/games/duke/actors/redneckenemies.zs | 1 + 8 files changed, 11 insertions(+), 4 deletions(-) diff --git a/source/core/thingdef_data.cpp b/source/core/thingdef_data.cpp index 3fad8fc55..fb0079e22 100644 --- a/source/core/thingdef_data.cpp +++ b/source/core/thingdef_data.cpp @@ -143,6 +143,7 @@ static FFlagDef DukeActorFlagDefs[] = DEFINE_FLAG(SFLAG2, BREAKMIRRORS, DDukeActor, flags2), DEFINE_FLAG(SFLAG2, CAMERA, DDukeActor, flags2), DEFINE_FLAG(SFLAG2, DONTANIMATE, DDukeActor, flags2), + DEFINE_FLAG(SFLAG2, ALTHITSCANDIRECTION, DDukeActor, flags2), DEFINE_FLAG(SFLAG2, GREENBLOOD, DDukeActor, flags2), DEFINE_FLAG(SFLAG2, ALWAYSROTATE1, DDukeActor, flags2), DEFINE_FLAG(SFLAG2, DIENOW, DDukeActor, flags2), @@ -173,6 +174,7 @@ static FFlagDef DukeActorFlagDefs[] = DEFINE_FLAG(SFLAG3, BIGHEALTH, DDukeActor, flags3), DEFINE_FLAG(SFLAG3, NOGRAVITY, DDukeActor, flags3), DEFINE_FLAG(SFLAG3, SIMPLEINIT, DDukeActor, flags3), + DEFINE_FLAG(SFLAG3, NOHITSCANHIT, DDukeActor, flags1), }; diff --git a/source/games/duke/src/constants.h b/source/games/duke/src/constants.h index b3ba11848..1d40758d6 100644 --- a/source/games/duke/src/constants.h +++ b/source/games/duke/src/constants.h @@ -369,11 +369,11 @@ enum sflags2_t SFLAG2_BREAKMIRRORS = 0x00000080, SFLAG2_CAMERA = 0x00000100, SFLAG2_DONTANIMATE = 0x00000200, - //SFLAG2_INTERPOLATEANGLE = 0x00000400, + SFLAG2_ALTHITSCANDIRECTION = 0x00000400, SFLAG2_GREENBLOOD = 0x00000800, SFLAG2_ALWAYSROTATE1 = 0x00001000, SFLAG2_DIENOW = 0x00002000, - SFLAG2_TRANSFERPALTOJIBS = 0x00004000, + SFLAG2_TRANSFERPALTOJIBS = 0x00004000, SFLAG2_NORADIUSPUSH = 0x00008000, SFLAG2_FREEZEDAMAGE = 0x00010000, SFLAG2_REFLECTIVE = 0x00020000, @@ -407,7 +407,7 @@ enum sflags3_t SFLAG3_BIGHEALTH = 0x00000020, SFLAG3_NOGRAVITY = 0x00000040, // disables makeitfall. SFLAG3_SIMPLEINIT = 0x00000080, // Internal: skip default init stuff in DukeActor::Initialize. - + SFLAG3_NOHITSCANHIT = 0x00000100, // just pretend the hit never happened. RR's tornado uses it. }; using EDukeFlags3 = TFlags; diff --git a/wadsrc/static/zscript/games/duke/actors/boss1.zs b/wadsrc/static/zscript/games/duke/actors/boss1.zs index 37349faad..6b85122c1 100644 --- a/wadsrc/static/zscript/games/duke/actors/boss1.zs +++ b/wadsrc/static/zscript/games/duke/actors/boss1.zs @@ -7,6 +7,7 @@ class DukeBoss1 : DukeActor +KILLCOUNT; +NODAMAGEPUSH; +BOSS; + +ALTHITSCANDIRECTION; } override void Initialize() diff --git a/wadsrc/static/zscript/games/duke/actors/boss2.zs b/wadsrc/static/zscript/games/duke/actors/boss2.zs index 7d850f726..efe037a72 100644 --- a/wadsrc/static/zscript/games/duke/actors/boss2.zs +++ b/wadsrc/static/zscript/games/duke/actors/boss2.zs @@ -3,7 +3,7 @@ class DukeBoss2 : DukeBoss1 default { pic "BOSS2"; - + -ALTHITSCANDIRECTION; +NONSMOKYROCKET; // If this wasn't needed for a CON defined actor it could be handled better } diff --git a/wadsrc/static/zscript/games/duke/actors/boss3.zs b/wadsrc/static/zscript/games/duke/actors/boss3.zs index 4a0df573b..defed8d95 100644 --- a/wadsrc/static/zscript/games/duke/actors/boss3.zs +++ b/wadsrc/static/zscript/games/duke/actors/boss3.zs @@ -3,6 +3,7 @@ class DukeBoss3 : DukeBoss1 default { pic "BOSS3"; + -ALTHITSCANDIRECTION; } override void PlayFTASound() diff --git a/wadsrc/static/zscript/games/duke/actors/boss4.zs b/wadsrc/static/zscript/games/duke/actors/boss4.zs index 06733edd4..a3197ecbd 100644 --- a/wadsrc/static/zscript/games/duke/actors/boss4.zs +++ b/wadsrc/static/zscript/games/duke/actors/boss4.zs @@ -3,6 +3,7 @@ class DukeBoss4 : DukeBoss1 default { pic "BOSS4"; + -ALTHITSCANDIRECTION; } override void PlayFTASound() diff --git a/wadsrc/static/zscript/games/duke/actors/boss5.zs b/wadsrc/static/zscript/games/duke/actors/boss5.zs index 278efb6ba..3bb83516d 100644 --- a/wadsrc/static/zscript/games/duke/actors/boss5.zs +++ b/wadsrc/static/zscript/games/duke/actors/boss5.zs @@ -3,6 +3,7 @@ class DukeBoss5 : DukeBoss1 default { pic "BOSS5"; + -ALTHITSCANDIRECTION; } } diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs index 075eb0185..8c5fde1c1 100644 --- a/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs +++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs @@ -383,6 +383,7 @@ class RedneckTornado : DukeActor { pic "TORNADO"; +INTERNAL_BADGUY; + +NOHITSCANHIT; } override void Initialize() {