diff --git a/src/playsim/actor.h b/src/playsim/actor.h index a96e7f316..ebdfeebaa 100644 --- a/src/playsim/actor.h +++ b/src/playsim/actor.h @@ -444,6 +444,7 @@ enum ActorFlag9 MF9_SHADOWAIMVERT = 0x00000008, // [inkoalawetrust] Monster aim is also offset vertically when aiming at shadow actors. MF9_DECOUPLEDANIMATIONS = 0x00000010, // [RL0] Decouple model animations from states MF9_NOSECTORDAMAGE = 0x00000020, // [inkoalawetrust] Actor ignores any sector-based damage (i.e damaging floors, NOT crushers) + MF9_ISPUFF = 0x00000020, // [AA] Set on actors by P_SpawnPuff }; // --- mobj.renderflags --- diff --git a/src/playsim/p_mobj.cpp b/src/playsim/p_mobj.cpp index e39db44cb..e004c4a46 100644 --- a/src/playsim/p_mobj.cpp +++ b/src/playsim/p_mobj.cpp @@ -6289,6 +6289,9 @@ AActor *P_SpawnPuff (AActor *source, PClassActor *pufftype, const DVector3 &pos1 // Angle is the opposite of the hit direction (i.e. the puff faces the source.) puff->Angles.Yaw = hitdir + DAngle::fromDeg(180); + // [AA] Mark the spawned actor as a puff with a flag. + puff->flags9 |= MF9_ISPUFF; + // If a puff has a crash state and an actor was not hit, // it will enter the crash state. This is used by the StrifeSpark // and BlasterPuff. diff --git a/src/scripting/thingdef_data.cpp b/src/scripting/thingdef_data.cpp index bc62f2250..b8cfd8d74 100644 --- a/src/scripting/thingdef_data.cpp +++ b/src/scripting/thingdef_data.cpp @@ -354,6 +354,7 @@ static FFlagDef ActorFlagDefs[]= DEFINE_FLAG(MF9, SHADOWAIMVERT, AActor, flags9), DEFINE_FLAG(MF9, DECOUPLEDANIMATIONS, AActor, flags9), DEFINE_FLAG(MF9, NOSECTORDAMAGE, AActor, flags9), + DEFINE_FLAG(MF9, ISPUFF, AActor, flags9), //[AA] was spawned by SpawnPuff // Effect flags DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),