- the last picnums in actors_r.cpp

This commit is contained in:
Christoph Oelckers 2022-12-30 18:05:44 +01:00
parent 14bf74c0f9
commit 1bc9de1cf0
8 changed files with 17 additions and 33 deletions

View file

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

View file

@ -666,7 +666,7 @@ void moveeffectors_r(void) //STATNUM 3
handle_se02(act);
break;
//Flashing sector lights after reactor RTILE_EXPLOSION2
//Flashing sector lights after reactor explosion
case SE_3_RANDOM_LIGHTS_AFTER_SHOT_OUT:
handle_se03(act);
break;
@ -815,21 +815,6 @@ void moveeffectors_r(void) //STATNUM 3
}
//---------------------------------------------------------------------------
//
// game specific part of makeitfall.
//
//---------------------------------------------------------------------------
double adjustfall(DDukeActor *actor, double c)
{
if ((actor->spr.picnum == RTILE_BIKERB || actor->spr.picnum == RTILE_CHEERB) && c == gs.gravity)
c = gs.gravity * 0.25;
else if (actor->spr.picnum == RTILE_BIKERBV2 && c == gs.gravity)
c = gs.gravity * 0.125;
return c;
}
//---------------------------------------------------------------------------
//
//
@ -873,7 +858,7 @@ void destroyit(DDukeActor *actor)
DukeSectIterator it1(actor->sector());
while (auto a2 = it1.Next())
{
if (a2->spr.picnum == RTILE_DESTROYTAGS)
if (a2->GetClass() == RedneckDestroyTagsClass)
{
lotag = a2->spr.lotag;
spr = a2;
@ -890,7 +875,7 @@ void destroyit(DDukeActor *actor)
DukeSectIterator its(it_sect);
while (auto a3 = its.Next())
{
if (a3->spr.picnum == RTILE_DESTRUCTO)
if (a3->GetClass() == RedneckDestructoClass)
{
a3->attackertype = DukeShotSparkClass;
a3->hitextra = 1;
@ -949,18 +934,8 @@ void destroyit(DDukeActor *actor)
it1.Reset(actor->sector());
while (auto a2 = it1.Next())
{
switch (a2->spr.picnum)
{
case RTILE_DESTRUCTO:
case RTILE_DESTROYTAGS:
case RTILE_TORNADO:
case RTILE_APLAYER:
case RTILE_COOT:
break;
default:
if (!(a2->flags3 & SFLAG3_DESTRUCTOIMMUNE))
a2->Destroy();
break;
}
}
}

View file

@ -118,3 +118,5 @@ xx(DukePlayerBase)
xx(DukePlayerPawn)
xx(RedneckRock)
xx(RedneckRock2)
xx(RedneckDestroyTags)
xx(RedneckDestructo)

View file

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

View file

@ -250,6 +250,7 @@ class RedneckDestructo : DukeActor
{
default
{
+DESTRUCTOIMMUNE;
pic "DESTRUCTO";
statnum STAT_DESTRUCT;
}
@ -265,6 +266,7 @@ class RedneckDestroyTags : DukeActor
{
default
{
+DESTRUCTOIMMUNE;
pic "DESTROYTAGS";
}
override void Initialize()

View file

@ -5,6 +5,7 @@ class RedneckCoot : DukeActor
pic "COOT";
+INTERNAL_BADGUY;
+KILLCOUNT;
+DESTRUCTOIMMUNE;
}
override void PlayFTASound()

View file

@ -1,15 +1,16 @@
class DukePlayerBase : DukeActor
{
}
class DukePlayerPawn : DukePlayerBase
{
default
{
pic "APLAYER";
+DESTRUCTOIMMUNE;
}
}
class DukePlayerPawn : DukePlayerBase
{
}
class DukePlayerOnWater : DukeActor
{
default

View file

@ -402,6 +402,7 @@ class RedneckTornado : DukeActor
default
{
pic "TORNADO";
+DESTRUCTOIMMUNE;
+INTERNAL_BADGUY;
+NOHITSCANHIT;
}