- Changed the rocket so that the FX_ROCKET flag is set in the actor

definition and not in BeginPlay.
- Changed the special explosion behavior of the rocket to a flag
  (MF5_DEHEXPLOSION) so that its effects can be used on other actors
  as well without having to inherit from the rocket.


SVN r353 (trunk)
This commit is contained in:
Christoph Oelckers 2006-10-15 20:27:16 +00:00
parent 92c3a89255
commit 39d2ef0460
9 changed files with 16 additions and 8 deletions

View file

@ -1,3 +1,10 @@
October 15, 2006 (Changes by Graf Zahl)
- Changed the rocket so that the FX_ROCKET flag is set in the actor
definition and not in BeginPlay.
- Changed the special explosion behavior of the rocket to a flag
(MF5_DEHEXPLOSION) so that its effects can be used on other actors
as well without having to inherit from the rocket.
October 7, 2006 (Changes by Graf Zahl) October 7, 2006 (Changes by Graf Zahl)
- Fixed: PrintAlias passed FString objects directly to Printf. - Fixed: PrintAlias passed FString objects directly to Printf.
- Added bitwise not (~) operator to ACS. - Added bitwise not (~) operator to ACS.

View file

@ -283,6 +283,7 @@ enum
MF5_CHASEGOAL = 0x00000080, // Walks to goal instead of target if a valid goal is set. MF5_CHASEGOAL = 0x00000080, // Walks to goal instead of target if a valid goal is set.
MF5_BLOODSPLATTER = 0x00000100, // Blood splatter like in Raven's games. MF5_BLOODSPLATTER = 0x00000100, // Blood splatter like in Raven's games.
MF5_OLDRADIUSDMG = 0x00000200, // Use old radius damage code (for barrels and boss brain) MF5_OLDRADIUSDMG = 0x00000200, // Use old radius damage code (for barrels and boss brain)
MF5_DEHEXPLOSION = 0x00000400, // Use the DEHACKED explosion options when this projectile explodes
// --- mobj.renderflags --- // --- mobj.renderflags ---

View file

@ -26,7 +26,6 @@ class ARocket : public AActor
{ {
DECLARE_ACTOR (ARocket, AActor) DECLARE_ACTOR (ARocket, AActor)
public: public:
void BeginPlay ();
}; };
class AArchvile : public AActor class AArchvile : public AActor

View file

@ -706,6 +706,8 @@ IMPLEMENT_ACTOR (ARocket, Doom, -1, 127)
PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY) PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT) PROP_Flags2 (MF2_PCROSS|MF2_IMPACT|MF2_NOTELEPORT)
PROP_Flags4 (MF4_RANDOMIZE) PROP_Flags4 (MF4_RANDOMIZE)
PROP_Flags5 (MF5_DEHEXPLOSION)
PROP_FXFlags (FX_ROCKET)
PROP_SpawnState (S_ROCKET) PROP_SpawnState (S_ROCKET)
PROP_DeathState (S_EXPLODE) PROP_DeathState (S_EXPLODE)
@ -715,12 +717,6 @@ IMPLEMENT_ACTOR (ARocket, Doom, -1, 127)
PROP_Obituary("$OB_MPROCKET") PROP_Obituary("$OB_MPROCKET")
END_DEFAULTS END_DEFAULTS
void ARocket::BeginPlay ()
{
Super::BeginPlay ();
effects |= FX_ROCKET;
}
// //
// A_FireMissile // A_FireMissile
// //

View file

@ -287,6 +287,7 @@ enum
ADEF_BounceCount, ADEF_BounceCount,
ADEF_FloatSpeed, ADEF_FloatSpeed,
ADEF_RDFactor, ADEF_RDFactor,
ADEF_FXFlags,
ADEF_SpawnState, ADEF_SpawnState,
ADEF_SeeState, ADEF_SeeState,

View file

@ -230,6 +230,7 @@ static void ApplyActorDefault (int defnum, const char *datastr, int dataint)
case ADEF_BounceFactor: actor->bouncefactor = dataint; break; case ADEF_BounceFactor: actor->bouncefactor = dataint; break;
case ADEF_BounceCount: actor->bouncecount = dataint; break; case ADEF_BounceCount: actor->bouncecount = dataint; break;
case ADEF_RDFactor: sgClass->Meta.SetMetaFixed (AMETA_RDFactor, dataint); break; case ADEF_RDFactor: sgClass->Meta.SetMetaFixed (AMETA_RDFactor, dataint); break;
case ADEF_FXFlags: actor->effects = dataint; break;
case ADEF_SpawnState: actor->SpawnState = datastate; break; case ADEF_SpawnState: actor->SpawnState = datastate; break;
case ADEF_SeeState: actor->SeeState = datastate; break; case ADEF_SeeState: actor->SeeState = datastate; break;

View file

@ -264,6 +264,8 @@ public:
#define PROP_BounceFactor(x) ADD_LONG_PROP(ADEF_BounceFactor,x) #define PROP_BounceFactor(x) ADD_LONG_PROP(ADEF_BounceFactor,x)
#define PROP_BounceCount(x) ADD_LONG_PROP(ADEF_BounceCount,x) #define PROP_BounceCount(x) ADD_LONG_PROP(ADEF_BounceCount,x)
#define PROP_RadiusdamageFactor(x) ADD_LONG_PROP(ADEF_RDFactor,x) #define PROP_RadiusdamageFactor(x) ADD_LONG_PROP(ADEF_RDFactor,x)
#define PROP_FXFlags(x) ADD_LONG_PROP(ADEF_FXFlags,x)
#define PROP_SpawnState(x) ADD_BYTE_PROP(ADEF_SpawnState,x) #define PROP_SpawnState(x) ADD_BYTE_PROP(ADEF_SpawnState,x)
#define PROP_SeeState(x) ADD_BYTE_PROP(ADEF_SeeState,x) #define PROP_SeeState(x) ADD_BYTE_PROP(ADEF_SeeState,x)

View file

@ -1078,7 +1078,7 @@ void P_ExplodeMissile (AActor *mo, line_t *line)
if (mo->DeathState != NULL) if (mo->DeathState != NULL)
{ {
// [RH] Change render style of exploding rockets // [RH] Change render style of exploding rockets
if (mo->IsKindOf (RUNTIME_CLASS(ARocket))) if (mo->flags5 & MF5_DEHEXPLOSION)
{ {
if (deh.ExplosionStyle == 255) if (deh.ExplosionStyle == 255)
{ {

View file

@ -219,6 +219,7 @@ static flagdef ActorFlags[]=
DEFINE_FLAG(MF5, NODAMAGE, AActor, flags5), DEFINE_FLAG(MF5, NODAMAGE, AActor, flags5),
DEFINE_FLAG(MF5, BLOODSPLATTER, AActor, flags5), DEFINE_FLAG(MF5, BLOODSPLATTER, AActor, flags5),
DEFINE_FLAG(MF5, OLDRADIUSDMG, AActor, flags5), DEFINE_FLAG(MF5, OLDRADIUSDMG, AActor, flags5),
DEFINE_FLAG(MF5, DEHEXPLOSION, AActor, flags5),
// Effect flags // Effect flags
DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects), DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),