- Replaced the ActorInfo definitions of several internal classes with DECORATE definitions

SVN r1133 (trunk)
This commit is contained in:
Christoph Oelckers 2008-08-08 22:52:04 +00:00
parent ef2c9243c5
commit 14e94b86e2
38 changed files with 456 additions and 336 deletions

View File

@ -1,4 +1,5 @@
August 8, 2008 (Changes by Graf Zahl)
- Replaced the ActorInfo definitions of several internal classes with DECORATE definitions
- Converted teleport fog and destinations to DECORATE.
- AActor::PreExplode is gone now that the last item that was using it has been converted.
- Converted the Sigil and the remaining things in a_strifeitems.cpp to DECORATE.

View File

@ -301,6 +301,7 @@ ACTOR(ClassBossHealth)
ACTOR(ClericAttack)
ACTOR(FighterAttack)
ACTOR(MageAttack)
ACTOR(IceSetTics)
ACTOR(TemplarAttack)
ACTOR(SentinelAttack)

View File

@ -21,13 +21,13 @@ static FRandom pr_freeze ("FreezeDeathChunks");
class ASwitchableDecoration : public AActor
{
DECLARE_STATELESS_ACTOR (ASwitchableDecoration, AActor)
DECLARE_CLASS (ASwitchableDecoration, AActor)
public:
void Activate (AActor *activator);
void Deactivate (AActor *activator);
};
IMPLEMENT_ABSTRACT_ACTOR (ASwitchableDecoration)
IMPLEMENT_CLASS (ASwitchableDecoration)
void ASwitchableDecoration::Activate (AActor *activator)
{
@ -43,65 +43,12 @@ void ASwitchableDecoration::Deactivate (AActor *activator)
class ASwitchingDecoration : public ASwitchableDecoration
{
DECLARE_STATELESS_ACTOR (ASwitchingDecoration, ASwitchableDecoration)
DECLARE_CLASS (ASwitchingDecoration, ASwitchableDecoration)
public:
void Deactivate (AActor *activator) {}
};
IMPLEMENT_ABSTRACT_ACTOR (ASwitchingDecoration)
/***************************** IceChunk ************************************/
class AIceChunk : public AActor
{
DECLARE_ACTOR (AIceChunk, AActor)
};
FState AIceChunk::States[] =
{
S_NORMAL (ICEC, 'A', 10, NULL , &States[1]),
S_NORMAL (ICEC, 'B', 10, A_IceSetTics , &States[2]),
S_NORMAL (ICEC, 'C', 10, A_IceSetTics , &States[3]),
S_NORMAL (ICEC, 'D', 10, A_IceSetTics , NULL),
};
IMPLEMENT_ACTOR (AIceChunk, Any, -1, 0)
PROP_RadiusFixed (3)
PROP_HeightFixed (4)
PROP_Mass(5)
PROP_Gravity (FRACUNIT/8)
PROP_Flags (MF_DROPOFF)
PROP_Flags2 (MF2_CANNOTPUSH|MF2_FLOORCLIP|MF2_NOTELEPORT)
PROP_SpawnState (0)
END_DEFAULTS
/***************************************************************************/
// A chunk of ice that is also a player -------------------------------------
class AIceChunkHead : public APlayerChunk
{
DECLARE_ACTOR (AIceChunkHead, APlayerChunk)
};
FState AIceChunkHead::States[] =
{
S_NORMAL (PLAY, 'A', 0, NULL , &States[1]),
S_NORMAL (ICEC, 'A', 10, A_IceCheckHeadDone , &States[1])
};
IMPLEMENT_ACTOR (AIceChunkHead, Any, -1, 0)
PROP_RadiusFixed (3)
PROP_HeightFixed (4)
PROP_Mass(5)
PROP_DamageType (NAME_Ice)
PROP_Gravity (FRACUNIT/8)
PROP_Flags (MF_DROPOFF)
PROP_Flags2 (MF2_CANNOTPUSH)
PROP_SpawnState (0)
END_DEFAULTS
IMPLEMENT_CLASS (ASwitchingDecoration)
//----------------------------------------------------------------------------
//
@ -255,20 +202,6 @@ void A_IceSetTics (AActor *actor)
}
}
//============================================================================
//
// A_IceCheckHeadDone
//
//============================================================================
void A_IceCheckHeadDone (AActor *actor)
{
if (actor->player == NULL)
{
actor->Destroy ();
}
}
//============================================================================
//
// A_FreezeDeathChunks
@ -298,7 +231,7 @@ void A_FreezeDeathChunks (AActor *actor)
i = (pr_freeze.Random2()) % (numChunks/4);
for (i = MAX (24, numChunks + i); i >= 0; i--)
{
mo = Spawn<AIceChunk> (
mo = Spawn("IceChunk",
actor->x + (((pr_freeze()-128)*actor->radius)>>7),
actor->y + (((pr_freeze()-128)*actor->radius)>>7),
actor->z + (pr_freeze()*actor->height/255), ALLOW_REPLACE);
@ -315,17 +248,20 @@ void A_FreezeDeathChunks (AActor *actor)
}
if (actor->player)
{ // attach the player's view to a chunk of ice
AIceChunkHead *head = Spawn<AIceChunkHead> (actor->x, actor->y,
AActor *head = Spawn("IceChunkHead", actor->x, actor->y,
actor->z + actor->player->mo->ViewHeight, ALLOW_REPLACE);
head->momz = FixedDiv(head->z-actor->z, actor->height)<<2;
head->momx = pr_freeze.Random2 () << (FRACBITS-7);
head->momy = pr_freeze.Random2 () << (FRACBITS-7);
head->player = actor->player;
actor->player = NULL;
head->ObtainInventory (actor);
head->health = actor->health;
head->angle = actor->angle;
head->player->mo = head;
if (head->IsKindOf(RUNTIME_CLASS(APlayerPawn)))
{
head->player->mo = static_cast<APlayerPawn*>(head);
head->player = actor->player;
actor->player = NULL;
head->ObtainInventory (actor);
}
head->pitch = 0;
head->RenderStyle = actor->RenderStyle;
head->alpha = actor->alpha;

View File

@ -38,21 +38,6 @@
#include "r_main.h"
#include "p_local.h"
class ADoomBuilderCamera : public AActor
{
DECLARE_STATELESS_ACTOR (ADoomBuilderCamera, AActor)
public:
void PostBeginPlay ();
};
IMPLEMENT_STATELESS_ACTOR (ADoomBuilderCamera, Any, 32000, 0)
END_DEFAULTS
void ADoomBuilderCamera::PostBeginPlay ()
{
Destroy ();
}
/*
== SecurityCamera
==
@ -64,7 +49,7 @@ void ADoomBuilderCamera::PostBeginPlay ()
class ASecurityCamera : public AActor
{
DECLARE_STATELESS_ACTOR (ASecurityCamera, AActor)
DECLARE_CLASS (ASecurityCamera, AActor)
public:
void PostBeginPlay ();
void Tick ();
@ -78,11 +63,7 @@ protected:
angle_t Range;
};
IMPLEMENT_STATELESS_ACTOR (ASecurityCamera, Any, 9025, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
PROP_RenderStyle (STYLE_None)
END_DEFAULTS
IMPLEMENT_CLASS (ASecurityCamera)
void ASecurityCamera::Serialize (FArchive &arc)
{
@ -137,7 +118,7 @@ void ASecurityCamera::Tick ()
class AAimingCamera : public ASecurityCamera
{
DECLARE_STATELESS_ACTOR (AAimingCamera, ASecurityCamera)
DECLARE_CLASS (AAimingCamera, ASecurityCamera)
public:
void PostBeginPlay ();
void Tick ();
@ -147,8 +128,7 @@ protected:
int MaxPitchChange;
};
IMPLEMENT_STATELESS_ACTOR (AAimingCamera, Any, 9073, 0)
END_DEFAULTS
IMPLEMENT_CLASS (AAimingCamera)
void AAimingCamera::Serialize (FArchive &arc)
{

View File

@ -8,7 +8,7 @@ static FRandom pr_dirt ("SpawnDirt");
class AGlassShard : public AActor
{
DECLARE_STATELESS_ACTOR (AGlassShard, AActor)
DECLARE_CLASS (AGlassShard, AActor)
public:
bool FloorBounceMissile (secplane_t &plane)
{
@ -24,7 +24,7 @@ public:
}
};
IMPLEMENT_ABSTRACT_ACTOR(AGlassShard)
IMPLEMENT_CLASS(AGlassShard)
// Dirt stuff

View File

@ -708,13 +708,12 @@ CCMD (spray)
class ADecal : public AActor
{
DECLARE_STATELESS_ACTOR (ADecal, AActor);
DECLARE_CLASS (ADecal, AActor);
public:
void BeginPlay ();
};
IMPLEMENT_STATELESS_ACTOR (ADecal, Any, 9200, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ADecal)
void ADecal::BeginPlay ()
{

View File

@ -38,19 +38,14 @@
class AParticleFountain : public AActor
{
DECLARE_STATELESS_ACTOR (AParticleFountain, AActor)
DECLARE_CLASS (AParticleFountain, AActor)
public:
void PostBeginPlay ();
void Activate (AActor *activator);
void Deactivate (AActor *activator);
};
IMPLEMENT_STATELESS_ACTOR (AParticleFountain, Any, -1, 0)
PROP_HeightFixed (0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
PROP_RenderFlags (RF_INVISIBLE)
END_DEFAULTS
IMPLEMENT_CLASS (AParticleFountain)
void AParticleFountain::PostBeginPlay ()
{

View File

@ -39,26 +39,14 @@
class AHateTarget : public AActor
{
DECLARE_ACTOR (AHateTarget, AActor)
DECLARE_CLASS (AHateTarget, AActor)
public:
void BeginPlay ();
angle_t AngleIncrements (void);
int TakeSpecialDamage (AActor *inflictor, AActor *source, int damage, FName damagetype);
};
FState AHateTarget::States[] =
{
S_NORMAL (TNT1, 'A', -1, NULL , NULL)
};
IMPLEMENT_ACTOR (AHateTarget, Any, 9076, 0)
PROP_RadiusFixed (20)
PROP_HeightFixed (56)
PROP_Flags (MF_SHOOTABLE|MF_NOGRAVITY|MF_NOBLOOD)
PROP_Flags3 (MF3_DONTSPLASH)
PROP_SpawnState (0)
PROP_MassLong (INT_MAX)
END_DEFAULTS
IMPLEMENT_CLASS (AHateTarget)
void AHateTarget::BeginPlay ()
{

View File

@ -51,18 +51,7 @@
//
//--------------------------------------------------------------------------
FState AMapMarker::States[] =
{
S_NORMAL (AMRK, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR(AMapMarker, Any, 9040, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
PROP_RenderFlags (RF_INVISIBLE)
PROP_SpawnState (0)
PROP_XScale (FRACUNIT/2)
PROP_YScale (FRACUNIT/2)
END_DEFAULTS
IMPLEMENT_CLASS(AMapMarker)
void AMapMarker::BeginPlay ()
{

View File

@ -49,7 +49,7 @@
class AInterpolationPoint : public AActor
{
DECLARE_STATELESS_ACTOR (AInterpolationPoint, AActor)
DECLARE_CLASS (AInterpolationPoint, AActor)
HAS_OBJECT_POINTERS
public:
void BeginPlay ();
@ -67,12 +67,6 @@ IMPLEMENT_POINTY_CLASS (AInterpolationPoint)
DECLARE_POINTER (Next)
END_POINTERS
BEGIN_STATELESS_DEFAULTS (AInterpolationPoint, Any, 9070, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
PROP_RenderStyle (STYLE_None)
END_DEFAULTS
void AInterpolationPoint::Serialize (FArchive &arc)
{
Super::Serialize (arc);
@ -135,15 +129,12 @@ AInterpolationPoint *AInterpolationPoint::ScanForLoop ()
class AInterpolationSpecial : public AActor
{
DECLARE_STATELESS_ACTOR (AInterpolationSpecial, AActor)
DECLARE_CLASS (AInterpolationSpecial, AActor)
public:
void Tick () {} // Does absolutely nothing itself
};
IMPLEMENT_STATELESS_ACTOR (AInterpolationSpecial, Any, 9075, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR)
PROP_Flags3 (MF3_DONTSPLASH)
END_DEFAULTS
IMPLEMENT_CLASS (AInterpolationSpecial, Any, 9075, 0)
/*
== PathFollower: something that follows a camera path
@ -163,7 +154,7 @@ END_DEFAULTS
class APathFollower : public AActor
{
DECLARE_STATELESS_ACTOR (APathFollower, AActor)
DECLARE_CLASS (APathFollower, AActor)
HAS_OBJECT_POINTERS
public:
void BeginPlay ();
@ -190,11 +181,6 @@ IMPLEMENT_POINTY_CLASS (APathFollower)
DECLARE_POINTER (CurrNode)
END_POINTERS
BEGIN_STATELESS_DEFAULTS (APathFollower, Any, 9071, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
END_DEFAULTS
void APathFollower::Serialize (FArchive &arc)
{
Super::Serialize (arc);
@ -518,7 +504,7 @@ bool APathFollower::Interpolate ()
class AActorMover : public APathFollower
{
DECLARE_STATELESS_ACTOR (AActorMover, APathFollower)
DECLARE_CLASS (AActorMover, APathFollower)
public:
void PostBeginPlay ();
void Activate (AActor *activator);
@ -527,8 +513,7 @@ protected:
bool Interpolate ();
};
IMPLEMENT_STATELESS_ACTOR (AActorMover, Any, 9074, 0)
END_DEFAULTS
IMPLEMENT_CLASS (AActorMover)
void AActorMover::PostBeginPlay ()
{
@ -628,7 +613,7 @@ void AActorMover::Deactivate (AActor *activator)
class AMovingCamera : public APathFollower
{
DECLARE_STATELESS_ACTOR (AMovingCamera, APathFollower)
DECLARE_CLASS (AMovingCamera, APathFollower)
HAS_OBJECT_POINTERS
public:
void PostBeginPlay ();
@ -644,9 +629,6 @@ IMPLEMENT_POINTY_CLASS (AMovingCamera)
DECLARE_POINTER (Activator)
END_POINTERS
BEGIN_STATELESS_DEFAULTS (AMovingCamera, Any, 9072, 0)
END_DEFAULTS
void AMovingCamera::Serialize (FArchive &arc)
{
Super::Serialize (arc);

View File

@ -43,16 +43,13 @@ EXTERN_CVAR(String, secretmessage)
class ASecretTrigger : public AActor
{
DECLARE_STATELESS_ACTOR (ASecretTrigger, AActor)
DECLARE_CLASS (ASecretTrigger, AActor)
public:
void PostBeginPlay ();
void Activate (AActor *activator);
};
IMPLEMENT_STATELESS_ACTOR (ASecretTrigger, Any, 9046, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
END_DEFAULTS
IMPLEMENT_CLASS (ASecretTrigger)
void ASecretTrigger::PostBeginPlay ()
{

View File

@ -37,10 +37,7 @@
// The base class for sector actions ----------------------------------------
IMPLEMENT_STATELESS_ACTOR (ASectorAction, Any, -1, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
END_DEFAULTS
IMPLEMENT_CLASS (ASectorAction)
void ASectorAction::Destroy ()
{
@ -111,13 +108,13 @@ bool ASectorAction::CheckTrigger (AActor *triggerer) const
class ASecActEnter : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActEnter, ASectorAction)
DECLARE_CLASS (ASecActEnter, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
IMPLEMENT_STATELESS_ACTOR (ASecActEnter, Any, 9998, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActEnter)
bool ASecActEnter::TriggerAction (AActor *triggerer, int activationType)
{
@ -129,13 +126,13 @@ bool ASecActEnter::TriggerAction (AActor *triggerer, int activationType)
class ASecActExit : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActExit, ASectorAction)
DECLARE_CLASS (ASecActExit, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
IMPLEMENT_STATELESS_ACTOR (ASecActExit, Any, 9997, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActExit)
bool ASecActExit::TriggerAction (AActor *triggerer, int activationType)
{
@ -147,15 +144,15 @@ bool ASecActExit::TriggerAction (AActor *triggerer, int activationType)
class ASecActHitFloor : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActHitFloor, ASectorAction)
DECLARE_CLASS (ASecActHitFloor, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
// Skull Tag uses 9999 for a special that is triggered whenever
// the player is on the sector's floor. I think this is more useful.
IMPLEMENT_STATELESS_ACTOR (ASecActHitFloor, Any, 9999, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActHitFloor)
bool ASecActHitFloor::TriggerAction (AActor *triggerer, int activationType)
{
@ -167,13 +164,13 @@ bool ASecActHitFloor::TriggerAction (AActor *triggerer, int activationType)
class ASecActHitCeil : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActHitCeil, ASectorAction)
DECLARE_CLASS (ASecActHitCeil, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
IMPLEMENT_STATELESS_ACTOR (ASecActHitCeil, Any, 9996, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActHitCeil)
bool ASecActHitCeil::TriggerAction (AActor *triggerer, int activationType)
{
@ -185,13 +182,13 @@ bool ASecActHitCeil::TriggerAction (AActor *triggerer, int activationType)
class ASecActUse : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActUse, ASectorAction)
DECLARE_CLASS (ASecActUse, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
IMPLEMENT_STATELESS_ACTOR (ASecActUse, Any, 9995, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActUse)
bool ASecActUse::TriggerAction (AActor *triggerer, int activationType)
{
@ -203,13 +200,13 @@ bool ASecActUse::TriggerAction (AActor *triggerer, int activationType)
class ASecActUseWall : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActUseWall, ASectorAction)
DECLARE_CLASS (ASecActUseWall, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
IMPLEMENT_STATELESS_ACTOR (ASecActUseWall, Any, 9994, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActUseWall)
bool ASecActUseWall::TriggerAction (AActor *triggerer, int activationType)
{
@ -221,13 +218,13 @@ bool ASecActUseWall::TriggerAction (AActor *triggerer, int activationType)
class ASecActEyesDive : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActEyesDive, ASectorAction)
DECLARE_CLASS (ASecActEyesDive, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
IMPLEMENT_STATELESS_ACTOR (ASecActEyesDive, Any, 9993, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActEyesDive)
bool ASecActEyesDive::TriggerAction (AActor *triggerer, int activationType)
{
@ -239,13 +236,13 @@ bool ASecActEyesDive::TriggerAction (AActor *triggerer, int activationType)
class ASecActEyesSurface : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActEyesSurface, ASectorAction)
DECLARE_CLASS (ASecActEyesSurface, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
IMPLEMENT_STATELESS_ACTOR (ASecActEyesSurface, Any, 9992, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActEyesSurface)
bool ASecActEyesSurface::TriggerAction (AActor *triggerer, int activationType)
{
@ -257,13 +254,13 @@ bool ASecActEyesSurface::TriggerAction (AActor *triggerer, int activationType)
class ASecActEyesBelowC : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActEyesBelowC, ASectorAction)
DECLARE_CLASS (ASecActEyesBelowC, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
IMPLEMENT_STATELESS_ACTOR (ASecActEyesBelowC, Any, 9983, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActEyesBelowC)
bool ASecActEyesBelowC::TriggerAction (AActor *triggerer, int activationType)
{
@ -275,13 +272,13 @@ bool ASecActEyesBelowC::TriggerAction (AActor *triggerer, int activationType)
class ASecActEyesAboveC : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActEyesAboveC, ASectorAction)
DECLARE_CLASS (ASecActEyesAboveC, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
IMPLEMENT_STATELESS_ACTOR (ASecActEyesAboveC, Any, 9982, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActEyesAboveC)
bool ASecActEyesAboveC::TriggerAction (AActor *triggerer, int activationType)
{
@ -293,13 +290,13 @@ bool ASecActEyesAboveC::TriggerAction (AActor *triggerer, int activationType)
class ASecActHitFakeFloor : public ASectorAction
{
DECLARE_STATELESS_ACTOR (ASecActHitFakeFloor, ASectorAction)
DECLARE_CLASS (ASecActHitFakeFloor, ASectorAction)
public:
bool TriggerAction (AActor *triggerer, int activationType);
};
IMPLEMENT_STATELESS_ACTOR (ASecActHitFakeFloor, Any, 9989, 0)
END_DEFAULTS
IMPLEMENT_CLASS (ASecActHitFakeFloor)
bool ASecActHitFakeFloor::TriggerAction (AActor *triggerer, int activationType)
{

View File

@ -4,7 +4,7 @@
class AColorSetter : public AActor
{
DECLARE_STATELESS_ACTOR(AColorSetter, AActor)
DECLARE_CLASS(AColorSetter, AActor)
void PostBeginPlay()
{
@ -15,16 +15,11 @@ class AColorSetter : public AActor
};
IMPLEMENT_STATELESS_ACTOR(AColorSetter, Any, 9038, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
PROP_RenderStyle (STYLE_None)
END_DEFAULTS
IMPLEMENT_CLASS(AColorSetter)
class AFadeSetter : public AActor
{
DECLARE_STATELESS_ACTOR(AFadeSetter, AActor)
DECLARE_CLASS(AFadeSetter, AActor)
void PostBeginPlay()
{
@ -35,8 +30,4 @@ class AFadeSetter : public AActor
};
IMPLEMENT_STATELESS_ACTOR(AFadeSetter, Any, 9039, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
PROP_RenderStyle (STYLE_None)
END_DEFAULTS
IMPLEMENT_CLASS(AFadeSetter)

View File

@ -87,7 +87,7 @@ public:
class ASkyViewpoint : public AActor
{
DECLARE_STATELESS_ACTOR (ASkyViewpoint, AActor)
DECLARE_CLASS (ASkyViewpoint, AActor)
public:
void Serialize (FArchive &arc);
void BeginPlay ();
@ -173,7 +173,7 @@ public:
class AMapMarker : public AActor
{
DECLARE_ACTOR(AMapMarker, AActor)
DECLARE_CLASS(AMapMarker, AActor)
public:
void BeginPlay ();
void Activate (AActor *activator);

View File

@ -38,10 +38,7 @@
// arg0 = Visibility*4 for this skybox
IMPLEMENT_STATELESS_ACTOR (ASkyViewpoint, Any, 9080, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
END_DEFAULTS
IMPLEMENT_CLASS (ASkyViewpoint)
// If this actor has no TID, make it the default sky box
void ASkyViewpoint::BeginPlay ()
@ -101,15 +98,12 @@ void ASkyViewpoint::Destroy ()
class ASkyPicker : public AActor
{
DECLARE_STATELESS_ACTOR (ASkyPicker, AActor)
DECLARE_CLASS (ASkyPicker, AActor)
public:
void PostBeginPlay ();
};
IMPLEMENT_STATELESS_ACTOR (ASkyPicker, Any, 9081, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
END_DEFAULTS
IMPLEMENT_CLASS (ASkyPicker)
void ASkyPicker::PostBeginPlay ()
{
@ -152,12 +146,12 @@ void ASkyPicker::PostBeginPlay ()
class AStackPoint : public ASkyViewpoint
{
DECLARE_STATELESS_ACTOR (AStackPoint, ASkyViewpoint)
DECLARE_CLASS (AStackPoint, ASkyViewpoint)
public:
void BeginPlay ();
};
IMPLEMENT_ABSTRACT_ACTOR (AStackPoint)
IMPLEMENT_CLASS (AStackPoint)
void AStackPoint::BeginPlay ()
{
@ -172,23 +166,20 @@ void AStackPoint::BeginPlay ()
class AUpperStackLookOnly : public AStackPoint
{
DECLARE_STATELESS_ACTOR (AUpperStackLookOnly, AStackPoint)
DECLARE_CLASS (AUpperStackLookOnly, AStackPoint)
public:
void PostBeginPlay ();
};
class ALowerStackLookOnly : public AStackPoint
{
DECLARE_STATELESS_ACTOR (ALowerStackLookOnly, AStackPoint)
DECLARE_CLASS (ALowerStackLookOnly, AStackPoint)
public:
void PostBeginPlay ();
};
IMPLEMENT_STATELESS_ACTOR (AUpperStackLookOnly, Any, 9077, 0)
END_DEFAULTS
IMPLEMENT_STATELESS_ACTOR (ALowerStackLookOnly, Any, 9078, 0)
END_DEFAULTS
IMPLEMENT_CLASS (AUpperStackLookOnly)
IMPLEMENT_CLASS (ALowerStackLookOnly)
void AUpperStackLookOnly::PostBeginPlay ()
{
@ -218,16 +209,13 @@ void ALowerStackLookOnly::PostBeginPlay ()
class ASectorSilencer : public AActor
{
DECLARE_STATELESS_ACTOR (ASectorSilencer, AActor)
DECLARE_CLASS (ASectorSilencer, AActor)
public:
void BeginPlay ();
void Destroy ();
};
IMPLEMENT_STATELESS_ACTOR (ASectorSilencer, Any, 9082, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
PROP_RenderStyle (STYLE_None)
END_DEFAULTS
IMPLEMENT_CLASS (ASectorSilencer)
void ASectorSilencer::BeginPlay ()
{

View File

@ -39,17 +39,14 @@
class ASoundEnvironment : public AActor
{
DECLARE_STATELESS_ACTOR (ASoundEnvironment, AActor)
DECLARE_CLASS (ASoundEnvironment, AActor)
public:
void PostBeginPlay ();
void Deactivate (AActor *activator);
void Activate (AActor *deactivator);
};
IMPLEMENT_STATELESS_ACTOR (ASoundEnvironment, Any, 9048, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
END_DEFAULTS
IMPLEMENT_CLASS (ASoundEnvironment)
void ASoundEnvironment::PostBeginPlay ()
{

View File

@ -70,7 +70,7 @@
class ASoundSequenceSlot : public AActor
{
DECLARE_STATELESS_ACTOR (ASoundSequenceSlot, AActor)
DECLARE_CLASS (ASoundSequenceSlot, AActor)
HAS_OBJECT_POINTERS
public:
void Serialize (FArchive &arc);
@ -82,11 +82,6 @@ IMPLEMENT_POINTY_CLASS(ASoundSequenceSlot)
DECLARE_POINTER(Sequence)
END_POINTERS
BEGIN_STATELESS_DEFAULTS (ASoundSequenceSlot, Any, -1, 0)
PROP_Flags (MF_NOSECTOR|MF_NOBLOCKMAP)
PROP_Flags3 (MF3_DONTSPLASH)
END_DEFAULTS
//==========================================================================
//
// ASoundSequenceSlot :: Serialize
@ -103,7 +98,7 @@ void ASoundSequenceSlot::Serialize (FArchive &arc)
class ASoundSequence : public AActor
{
DECLARE_STATELESS_ACTOR (ASoundSequence, AActor)
DECLARE_CLASS (ASoundSequence, AActor)
public:
void Destroy ();
void PostBeginPlay ();
@ -111,10 +106,7 @@ public:
void Deactivate (AActor *activator);
};
IMPLEMENT_STATELESS_ACTOR (ASoundSequence, Any, 14066, 0)
PROP_Flags (MF_NOSECTOR|MF_NOBLOCKMAP)
PROP_Flags3 (MF3_DONTSPLASH)
END_DEFAULTS
IMPLEMENT_CLASS (ASoundSequence)
//==========================================================================
//

View File

@ -40,15 +40,13 @@
class ASpark : public AActor
{
DECLARE_STATELESS_ACTOR (ASpark, AActor)
DECLARE_CLASS (ASpark, AActor)
public:
angle_t AngleIncrements ();
void Activate (AActor *activator);
};
IMPLEMENT_STATELESS_ACTOR (ASpark, Any, 9026, 0)
PROP_Flags (MF_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY)
END_DEFAULTS
IMPLEMENT_CLASS (ASpark)
angle_t ASpark::AngleIncrements ()
{

View File

@ -37,15 +37,12 @@
class AWaterZone : public AActor
{
DECLARE_STATELESS_ACTOR (AWaterZone, AActor)
DECLARE_CLASS (AWaterZone, AActor)
public:
void PostBeginPlay ();
};
IMPLEMENT_STATELESS_ACTOR (AWaterZone, Any, 9045, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOGRAVITY)
PROP_Flags3 (MF3_DONTSPLASH)
END_DEFAULTS
IMPLEMENT_CLASS (AWaterZone)
void AWaterZone::PostBeginPlay ()
{

View File

@ -109,7 +109,7 @@ enum
class ASectorAction : public AActor
{
DECLARE_ACTOR (ASectorAction, AActor)
DECLARE_CLASS (ASectorAction, AActor)
public:
void Destroy ();
void BeginPlay ();

View File

@ -0,0 +1,54 @@
//==========================================================================
//
// Ice chunk
//
//==========================================================================
ACTOR IceChunk
{
Radius 3
Height 4
Mass 5
Gravity 0.125
+DROPOFF
+CANNOTPUSH
+FLOORCLIP
+NOTELEPORT
action native A_IceSetTics ();
States
{
Spawn:
ICEC A 1
ICEC ABCD 10 A_IceSetTics
Stop
}
}
//==========================================================================
//
// A chunk of ice that is also a player
//
//==========================================================================
ACTOR IceChunkHead : PlayerChunk
{
Radius 3
Height 4
Mass 5
Gravity 0.125
DamageType Ice
+DROPOFF
+CANNOTPUSH
States
{
Spawn:
ICEC A 0
ICEC A 10 A_CheckPlayerDone
wait
}
}

View File

@ -0,0 +1,22 @@
ACTOR DoomBuilderCamera 32000
{
States
{
Spawn:
TNT1 A 1
Stop
}
}
ACTOR SecurityCamera 9025 native
{
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
RenderStyle None
}
ACTOR AimingCamera : SecurityCamera 9073 native
{
}

View File

@ -169,10 +169,8 @@ ACTOR Dirt6
// Stained glass ------------------------------------------------------------
ACTOR SGShard1 : GlassShard
ACTOR GlassShard native
{
SpawnID 54
Radius 5
Mass 5
Projectile
@ -180,6 +178,11 @@ ACTOR SGShard1 : GlassShard
-ACTIVATEIMPACT
+HEXENBOUNCE
BounceFactor 0.3
}
ACTOR SGShard1 : GlassShard
{
SpawnID 54
States
{
Spawn:
@ -194,13 +197,6 @@ ACTOR SGShard1 : GlassShard
ACTOR SGShard2 : GlassShard
{
SpawnID 55
Radius 5
Mass 5
Projectile
-ACTIVATEMCROSS
-ACTIVATEIMPACT
+HEXENBOUNCE
BounceFactor 0.3
States
{
Spawn:
@ -215,13 +211,6 @@ ACTOR SGShard2 : GlassShard
ACTOR SGShard3 : GlassShard
{
SpawnID 56
Radius 5
Mass 5
Projectile
-ACTIVATEMCROSS
-ACTIVATEIMPACT
+HEXENBOUNCE
BounceFactor 0.3
States
{
Spawn:
@ -236,13 +225,6 @@ ACTOR SGShard3 : GlassShard
ACTOR SGShard4 : GlassShard
{
SpawnID 57
Radius 5
Mass 5
Projectile
-ACTIVATEMCROSS
-ACTIVATEIMPACT
+HEXENBOUNCE
BounceFactor 0.3
States
{
Spawn:
@ -257,13 +239,6 @@ ACTOR SGShard4 : GlassShard
ACTOR SGShard5 : GlassShard
{
SpawnID 58
Radius 5
Mass 5
Projectile
-ACTIVATEMCROSS
-ACTIVATEIMPACT
+HEXENBOUNCE
BounceFactor 0.3
States
{
Spawn:
@ -278,13 +253,6 @@ ACTOR SGShard5 : GlassShard
ACTOR SGShard6 : GlassShard
{
SpawnID 59
Radius 5
Mass 5
Projectile
-ACTIVATEMCROSS
-ACTIVATEIMPACT
+HEXENBOUNCE
BounceFactor 0.3
States
{
Spawn:
@ -299,13 +267,6 @@ ACTOR SGShard6 : GlassShard
ACTOR SGShard7 : GlassShard
{
SpawnID 60
Radius 5
Mass 5
Projectile
-ACTIVATEMCROSS
-ACTIVATEIMPACT
+HEXENBOUNCE
BounceFactor 0.3
States
{
Spawn:
@ -320,13 +281,6 @@ ACTOR SGShard7 : GlassShard
ACTOR SGShard8 : GlassShard
{
SpawnID 61
Radius 5
Mass 5
Projectile
-ACTIVATEMCROSS
-ACTIVATEIMPACT
+HEXENBOUNCE
BounceFactor 0.3
States
{
Spawn:
@ -341,13 +295,6 @@ ACTOR SGShard8 : GlassShard
ACTOR SGShard9 : GlassShard
{
SpawnID 62
Radius 5
Mass 5
Projectile
-ACTIVATEMCROSS
-ACTIVATEIMPACT
+HEXENBOUNCE
BounceFactor 0.3
States
{
Spawn:
@ -362,13 +309,6 @@ ACTOR SGShard9 : GlassShard
ACTOR SGShard0 : GlassShard
{
SpawnID 63
Radius 5
Mass 5
Projectile
-ACTIVATEMCROSS
-ACTIVATEIMPACT
+HEXENBOUNCE
BounceFactor 0.3
States
{
Spawn:

View File

@ -0,0 +1,3 @@
ACTOR Decal 9200 native
{
}

View File

@ -1,3 +1,10 @@
ACTOR ParticleFountain native
{
Height 0
+NOBLOCKMAP
+NOGRAVITY
+INVISIBLE
}
ACTOR RedParticleFountain : ParticleFountain 9027
{

View File

@ -0,0 +1,19 @@
// Hate Target --------------------------------------------------------------
ACTOR HateTarget 9076 native
{
Radius 20
Height 56
+SHOOTABLE
+NOGRAVITY
+NOBLOOD
+DONTSPLASH
Mass 0x7fffffff
States
{
Spawn:
TNT1 A -1
}
}

View File

@ -0,0 +1,15 @@
ACTOR MapMarker 9040 native
{
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
+INVISIBLE
Scale 0.5
States
{
Spawn:
AMRK A -1
Stop
}
}

View File

@ -0,0 +1,33 @@
ACTOR InterpolationPoint 9070 native
{
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
RenderStyle None
}
ACTOR InterpolationSpecial 9075 native
{
+NOBLOCKMAP
+NOSECTOR
+NOGRAVITY
+DONTSPLASH
}
ACTOR PathFollower 9071 native
{
+NOBLOCKMAP
+NOSECTOR
+NOGRAVITY
+DONTSPLASH
}
ACTOR ActorMover : PathFollower 9074 native
{
}
ACTOR MovingCamera : PathFollower 9072 native
{
}

View File

@ -0,0 +1,9 @@
ACTOR SecretTrigger 9046 native
{
+NOBLOCKMAP
+NOSECTOR
+NOGRAVITY
+DONTSPLASH
}

View File

@ -0,0 +1,75 @@
ACTOR SectorAction native
{
+NOBLOCKMAP
+NOSECTOR
+NOGRAVITY
+DONTSPLASH
}
// Triggered when entering sector -------------------------------------------
ACTOR SecActEnter : SectorAction 9998 native
{
}
// Triggered when leaving sector --------------------------------------------
ACTOR SecActExit : SectorAction 9997 native
{
}
// Triggered when hitting sector's floor ------------------------------------
ACTOR SecActHitFloor : SectorAction 9999 native
{
}
// Triggered when hitting sector's ceiling ----------------------------------
ACTOR SecActHitCeil : SectorAction 9996 native
{
}
// Triggered when using inside sector ---------------------------------------
ACTOR SecActUse : SectorAction 9995 native
{
}
// Triggered when using a sector's wall -------------------------------------
ACTOR SecActUseWall : SectorAction 9994 native
{
}
// Triggered when eyes go below fake floor ----------------------------------
ACTOR SecActEyesDive : SectorAction 9993 native
{
}
// Triggered when eyes go above fake floor ----------------------------------
ACTOR SecActEyesSurface : SectorAction 9992 native
{
}
// Triggered when eyes go below fake floor ----------------------------------
ACTOR SecActEyesBelowC : SectorAction 9983 native
{
}
// Triggered when eyes go above fake floor ----------------------------------
ACTOR SecActEyesAboveC : SectorAction 9982 native
{
}
// Triggered when eyes go below fake floor ----------------------------------
ACTOR SecActHitFakeFloor : SectorAction 9989 native
{
}

View File

@ -0,0 +1,16 @@
ACTOR ColorSetter 9038 native
{
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
RenderStyle None
}
ACTOR FadeSetter 9039 native
{
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
RenderStyle None
}

View File

@ -118,3 +118,15 @@ ACTOR CustomSprite 9988 native
Stop
}
}
// SwitchableDecoration: Activate and Deactivate change state ---------------
ACTOR SwitchableDecoration native
{
}
ACTOR SwitchingDecoration : SwitchableDecoration native
{
}

View File

@ -0,0 +1,37 @@
ACTOR SkyViewpoint 9080 native
{
+NOSECTOR
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
}
ACTOR SkyPicker 9081 native
{
+NOSECTOR
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
}
ACTOR StackPoint : SkyViewpoint native
{
}
ACTOR UpperStackLookOnly : StackPoint 9077 native
{
}
ACTOR LowerStackLookOnly : StackPoint 9078 native
{
}
ACTOR SectorSilencer 9082 native
{
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
RenderStyle None
}

View File

@ -0,0 +1,9 @@
ACTOR SoundEnvironment 9048 native
{
+NOSECTOR
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
}

View File

@ -6,6 +6,19 @@ ACTOR AmbientSound 14065 native
+DONTSPLASH
}
ACTOR SoundSequenceSlot native
{
+NOSECTOR
+NOBLOCKMAP
+DONTSPLASH
}
ACTOR SoundSequence 14066 native
{
+NOSECTOR
+NOBLOCKMAP
+DONTSPLASH
}
// Heretic Sound sequences -----------------------------------------------------------

View File

@ -0,0 +1,8 @@
ACTOR Spark 9026 native
{
+NOSECTOR
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
}

View File

@ -0,0 +1,7 @@
ACTOR WaterZone 9045 native
{
+NOSECTOR
+NOBLOCKMAP
+NOGRAVITY
+DONTSPLASH
}

View File

@ -5,13 +5,26 @@
#include "actors/shared/sharedmisc.txt"
#include "actors/shared/blood.txt"
#include "actors/shared/debris.txt"
#include "actors/shared/decal.txt"
#include "actors/shared/splashes.txt"
#include "actors/shared/pickups.txt"
#include "actors/shared/fountain.txt"
#include "actors/shared/spark.txt"
#include "actors/shared/soundsequence.txt"
#include "actors/shared/soundenvironment.txt"
#include "actors/shared/bridge.txt"
#include "actors/shared/specialspot.txt"
#include "actors/shared/teleport.txt"
#include "actors/shared/camera.txt"
#include "actors/shared/movingcamera.txt"
#include "actors/shared/mapmarker.txt"
#include "actors/shared/waterzone.txt"
#include "actors/shared/skies.txt"
#include "actors/shared/hatetarget.txt"
#include "actors/shared/secrettrigger.txt"
#include "actors/shared/setcolor.txt"
#include "actors/shared/sectoraction.txt"
#include "actors/shared/action.txt"
#include "actors/doom/doomplayer.txt"
#include "actors/doom/possessed.txt"