- NOHITJIBS flag.

This commit is contained in:
Christoph Oelckers 2022-12-30 22:09:33 +01:00
parent 91ee3cb7b8
commit fc0c8e0787
9 changed files with 31 additions and 24 deletions

View file

@ -195,6 +195,7 @@ static FFlagDef DukeActorFlagDefs[] =
DEFINE_FLAG(SFLAG3, MOVE_NOPLAYERINTERACT, DDukeActor, flags3), DEFINE_FLAG(SFLAG3, MOVE_NOPLAYERINTERACT, DDukeActor, flags3),
DEFINE_FLAG(SFLAG3, MAGMAIMMUNE, DDukeActor, flags3), DEFINE_FLAG(SFLAG3, MAGMAIMMUNE, DDukeActor, flags3),
DEFINE_FLAG(SFLAG3, DESTRUCTOIMMUNE, DDukeActor, flags3), DEFINE_FLAG(SFLAG3, DESTRUCTOIMMUNE, DDukeActor, flags3),
DEFINE_FLAG(SFLAG3, NOHITJIBS, DDukeActor, flags3),
}; };

View file

@ -440,6 +440,7 @@ enum sflags3_t
SFLAG3_MOVE_NOPLAYERINTERACT = 0x04000000, SFLAG3_MOVE_NOPLAYERINTERACT = 0x04000000,
SFLAG3_MAGMAIMMUNE = 0x08000000, SFLAG3_MAGMAIMMUNE = 0x08000000,
SFLAG3_DESTRUCTOIMMUNE = 0x10000000, SFLAG3_DESTRUCTOIMMUNE = 0x10000000,
SFLAG3_NOHITJIBS = 0x20000000,
}; };
using EDukeFlags3 = TFlags<sflags3_t, uint32_t>; using EDukeFlags3 = TFlags<sflags3_t, uint32_t>;

View file

@ -173,8 +173,7 @@ void checkhitdefault_d(DDukeActor* targ, DDukeActor* proj)
if (proj->spr.picnum == DTILE_RPG) proj->spr.extra <<= 1; if (proj->spr.picnum == DTILE_RPG) proj->spr.extra <<= 1;
if ((targ->spr.picnum != DTILE_DRONE) && (targ->spr.picnum != DTILE_ROTATEGUN) && (targ->spr.picnum != DTILE_COMMANDER) && targ->spr.picnum != DTILE_GREENSLIME) if (!(targ->flags3 & SFLAG3_NOHITJIBS) && !(proj->flags3 & SFLAG3_NOHITJIBS))
if (proj->spr.picnum != DTILE_FREEZEBLAST)
{ {
auto spawned = spawn(proj, DukeJibs6Class); auto spawned = spawn(proj, DukeJibs6Class);
if (spawned) if (spawned)

View file

@ -171,8 +171,7 @@ void checkhitdefault_r(DDukeActor* targ, DDukeActor* proj)
if (proj->spr.picnum == RTILE_RPG) proj->spr.extra <<= 1; if (proj->spr.picnum == RTILE_RPG) proj->spr.extra <<= 1;
else if (isRRRA() && proj->spr.picnum == RTILE_RPG2) proj->spr.extra <<= 1; else if (isRRRA() && proj->spr.picnum == RTILE_RPG2) proj->spr.extra <<= 1;
if ((targ->spr.picnum != RTILE_DRONE)) if (!(targ->flags3 & SFLAG3_NOHITJIBS) && !(proj->flags3 & SFLAG3_NOHITJIBS))
if (proj->spr.picnum != RTILE_FREEZEBLAST)
{ {
auto spawned = spawn(proj, DukeJibs6Class); auto spawned = spawn(proj, DukeJibs6Class);
if (spawned) if (spawned)

View file

@ -9,6 +9,7 @@ class DukeCommander : DukeActor
+FLOATING; +FLOATING;
+SHOOTCENTERED; +SHOOTCENTERED;
+NORANDOMANGLEWHENBLOCKED; +NORANDOMANGLEWHENBLOCKED;
+NOHITJIBS;
gutsoffset -24; gutsoffset -24;
falladjustz 0; falladjustz 0;
floating_floordist 8; floating_floordist 8;

View file

@ -12,6 +12,7 @@ class DukeFreezeBlast : DukeProjectile
+FULLBRIGHT; +FULLBRIGHT;
+FREEZEDAMAGE; +FREEZEDAMAGE;
+REFLECTIVE; +REFLECTIVE;
+NOHITJIBS;
} }
override bool postmoveeffect(CollisionData coll) override bool postmoveeffect(CollisionData coll)

View file

@ -8,6 +8,7 @@ class DukeGreenSlime : DukeActor
+DONTDIVEALIVE; +DONTDIVEALIVE;
+FORCESECTORSHADE; +FORCESECTORSHADE;
+SHRINKAUTOAIM; +SHRINKAUTOAIM;
+NOHITJIBS;
sparkoffset -8; sparkoffset -8;
} }

View file

@ -9,6 +9,7 @@ class DukeDrone : DukeActor
+FLOATING; +FLOATING;
+QUICKALTERANG; +QUICKALTERANG;
+NOJIBS; +NOJIBS;
+NOHITJIBS;
falladjustz 0; falladjustz 0;
floating_floordist 30; floating_floordist 30;
floating_ceilingdist 50; floating_ceilingdist 50;
@ -28,6 +29,7 @@ class DukeTurret : DukeActor
+INTERNAL_BADGUY; +INTERNAL_BADGUY;
+KILLCOUNT; +KILLCOUNT;
+NOVERTICALMOVE; +NOVERTICALMOVE;
+NOHITJIBS;
aimoffset 32; aimoffset 32;
} }
@ -54,6 +56,7 @@ class DukeRotateGun : DukeActor
+SHOOTCENTERED; +SHOOTCENTERED;
+NOVERTICALMOVE; +NOVERTICALMOVE;
+MOVE_NOPLAYERINTERACT; +MOVE_NOPLAYERINTERACT;
+NOHITJIBS;
sparkoffset -8; sparkoffset -8;
aimoffset 32; aimoffset 32;
shootzoffset 0; shootzoffset 0;

View file

@ -456,6 +456,7 @@ class RedneckMosquito : DukeActor
+FLOATING; +FLOATING;
+QUICKALTERANG; +QUICKALTERANG;
+NOJIBS; +NOJIBS;
+NOHITJIBS;
falladjustz 0; falladjustz 0;
floating_floordist 30; floating_floordist 30;
floating_ceilingdist 50; floating_ceilingdist 50;