mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2025-01-19 05:30:49 +00:00
- disabled the scripted virtual function module after finding out that it only works if each single class that may serve as a parent for scripting is explicitly declared.
Needless to say, this is simply too volatile and would require constant active maintenance, not to mention a huge amount of work up front to get going. It also hid a nasty problem with the Destroy method. Due to the way the garbage collector works, Destroy cannot be exposed to scripts as-is. It may be called from scripts but it may not be overridden from scripts because the garbage collector can call this function after all data needed for calling a scripted override has already been destroyed because if that data is also being collected there is no guarantee that proper order of destruction is observed. So for now Destroy is just a normal native method to scripted classes
This commit is contained in:
parent
9ae272d753
commit
66d28a24b8
149 changed files with 727 additions and 759 deletions
|
@ -584,7 +584,7 @@ public:
|
||||||
AActor () throw();
|
AActor () throw();
|
||||||
AActor (const AActor &other) throw();
|
AActor (const AActor &other) throw();
|
||||||
AActor &operator= (const AActor &other);
|
AActor &operator= (const AActor &other);
|
||||||
void Destroy ();
|
void Destroy () override;
|
||||||
~AActor ();
|
~AActor ();
|
||||||
|
|
||||||
void Serialize(FSerializer &arc);
|
void Serialize(FSerializer &arc);
|
||||||
|
@ -612,6 +612,7 @@ public:
|
||||||
bool CheckNoDelay();
|
bool CheckNoDelay();
|
||||||
|
|
||||||
virtual void BeginPlay(); // Called immediately after the actor is created
|
virtual void BeginPlay(); // Called immediately after the actor is created
|
||||||
|
void CallBeginPlay();
|
||||||
virtual void PostBeginPlay(); // Called immediately before the actor's first tick
|
virtual void PostBeginPlay(); // Called immediately before the actor's first tick
|
||||||
void LevelSpawned(); // Called after BeginPlay if this actor was spawned by the world
|
void LevelSpawned(); // Called after BeginPlay if this actor was spawned by the world
|
||||||
virtual void HandleSpawnFlags(); // Translates SpawnFlags into in-game flags.
|
virtual void HandleSpawnFlags(); // Translates SpawnFlags into in-game flags.
|
||||||
|
@ -620,6 +621,8 @@ public:
|
||||||
|
|
||||||
virtual void Activate (AActor *activator);
|
virtual void Activate (AActor *activator);
|
||||||
virtual void Deactivate (AActor *activator);
|
virtual void Deactivate (AActor *activator);
|
||||||
|
void CallActivate(AActor *activator);
|
||||||
|
void CallDeactivate(AActor *activator);
|
||||||
|
|
||||||
virtual void Tick ();
|
virtual void Tick ();
|
||||||
|
|
||||||
|
@ -629,6 +632,7 @@ public:
|
||||||
// Perform some special damage action. Returns the amount of damage to do.
|
// Perform some special damage action. Returns the amount of damage to do.
|
||||||
// Returning -1 signals the damage routine to exit immediately
|
// Returning -1 signals the damage routine to exit immediately
|
||||||
virtual int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
virtual int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
||||||
|
int CallDoSpecialDamage(AActor *target, int damage, FName damagetype);
|
||||||
|
|
||||||
// Like DoSpecialDamage, but called on the actor receiving the damage.
|
// Like DoSpecialDamage, but called on the actor receiving the damage.
|
||||||
virtual int TakeSpecialDamage (AActor *inflictor, AActor *source, int damage, FName damagetype);
|
virtual int TakeSpecialDamage (AActor *inflictor, AActor *source, int damage, FName damagetype);
|
||||||
|
@ -684,7 +688,8 @@ public:
|
||||||
virtual bool TakeInventory (PClassActor *itemclass, int amount, bool fromdecorate = false, bool notakeinfinite = false);
|
virtual bool TakeInventory (PClassActor *itemclass, int amount, bool fromdecorate = false, bool notakeinfinite = false);
|
||||||
|
|
||||||
// Uses an item and removes it from the inventory.
|
// Uses an item and removes it from the inventory.
|
||||||
virtual bool UseInventory (AInventory *item);
|
virtual bool DoUseInventory (AInventory *item);
|
||||||
|
bool UseInventory(AInventory *item);
|
||||||
|
|
||||||
// Tosses an item out of the inventory.
|
// Tosses an item out of the inventory.
|
||||||
virtual AInventory *DropInventory (AInventory *item);
|
virtual AInventory *DropInventory (AInventory *item);
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#include "serializer.h"
|
#include "serializer.h"
|
||||||
#include "d_player.h"
|
#include "d_player.h"
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DBot, false, true, false, false)
|
IMPLEMENT_CLASS(DBot, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DBot)
|
IMPLEMENT_POINTERS_START(DBot)
|
||||||
IMPLEMENT_POINTER(dest)
|
IMPLEMENT_POINTER(dest)
|
||||||
|
|
|
@ -187,7 +187,7 @@ static const char *KeyConfCommands[] =
|
||||||
|
|
||||||
// CODE --------------------------------------------------------------------
|
// CODE --------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DWaitingCommand, false, false, false, false)
|
IMPLEMENT_CLASS(DWaitingCommand, false, false)
|
||||||
|
|
||||||
void DWaitingCommand::Serialize(FSerializer &arc)
|
void DWaitingCommand::Serialize(FSerializer &arc)
|
||||||
{
|
{
|
||||||
|
@ -225,7 +225,7 @@ void DWaitingCommand::Tick ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DStoredCommand, false, false, false, false)
|
IMPLEMENT_CLASS(DStoredCommand, false, false)
|
||||||
|
|
||||||
DStoredCommand::DStoredCommand ()
|
DStoredCommand::DStoredCommand ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -221,7 +221,7 @@ DehInfo deh =
|
||||||
// from the original actor's defaults. The original actor is then changed to
|
// from the original actor's defaults. The original actor is then changed to
|
||||||
// spawn the new class.
|
// spawn the new class.
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ADehackedPickup, false, true, false, false)
|
IMPLEMENT_CLASS(ADehackedPickup, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(ADehackedPickup)
|
IMPLEMENT_POINTERS_START(ADehackedPickup)
|
||||||
IMPLEMENT_POINTER(RealPickup)
|
IMPLEMENT_POINTER(RealPickup)
|
||||||
|
|
|
@ -41,7 +41,7 @@ class ADehackedPickup : public AInventory
|
||||||
DECLARE_CLASS (ADehackedPickup, AInventory)
|
DECLARE_CLASS (ADehackedPickup, AInventory)
|
||||||
HAS_OBJECT_POINTERS
|
HAS_OBJECT_POINTERS
|
||||||
public:
|
public:
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
const char *PickupMessage ();
|
const char *PickupMessage ();
|
||||||
bool ShouldRespawn ();
|
bool ShouldRespawn ();
|
||||||
bool ShouldStay ();
|
bool ShouldStay ();
|
||||||
|
|
|
@ -109,7 +109,7 @@ public:
|
||||||
virtual void Tick();
|
virtual void Tick();
|
||||||
virtual void AddInventory (AInventory *item);
|
virtual void AddInventory (AInventory *item);
|
||||||
virtual void RemoveInventory (AInventory *item);
|
virtual void RemoveInventory (AInventory *item);
|
||||||
virtual bool UseInventory (AInventory *item);
|
virtual bool DoUseInventory (AInventory *item);
|
||||||
virtual void MarkPrecacheSounds () const;
|
virtual void MarkPrecacheSounds () const;
|
||||||
|
|
||||||
virtual void PlayIdle ();
|
virtual void PlayIdle ();
|
||||||
|
|
|
@ -119,7 +119,7 @@ protected:
|
||||||
DDecalThinker () : DThinker (STAT_DECALTHINKER) {}
|
DDecalThinker () : DThinker (STAT_DECALTHINKER) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DDecalThinker, false, true, false, false)
|
IMPLEMENT_CLASS(DDecalThinker, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DDecalThinker)
|
IMPLEMENT_POINTERS_START(DDecalThinker)
|
||||||
IMPLEMENT_POINTER(TheDecal)
|
IMPLEMENT_POINTER(TheDecal)
|
||||||
|
@ -1153,7 +1153,7 @@ FDecalAnimator::~FDecalAnimator ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DDecalFader, false, false, false, false)
|
IMPLEMENT_CLASS(DDecalFader, false, false)
|
||||||
|
|
||||||
void DDecalFader::Serialize(FSerializer &arc)
|
void DDecalFader::Serialize(FSerializer &arc)
|
||||||
{
|
{
|
||||||
|
@ -1202,7 +1202,7 @@ DThinker *FDecalFaderAnim::CreateThinker (DBaseDecal *actor, side_t *wall) const
|
||||||
return fader;
|
return fader;
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DDecalStretcher, false, false, false, false)
|
IMPLEMENT_CLASS(DDecalStretcher, false, false)
|
||||||
|
|
||||||
void DDecalStretcher::Serialize(FSerializer &arc)
|
void DDecalStretcher::Serialize(FSerializer &arc)
|
||||||
{
|
{
|
||||||
|
@ -1290,7 +1290,7 @@ void DDecalStretcher::Tick ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DDecalSlider, false, false, false, false)
|
IMPLEMENT_CLASS(DDecalSlider, false, false)
|
||||||
|
|
||||||
void DDecalSlider::Serialize(FSerializer &arc)
|
void DDecalSlider::Serialize(FSerializer &arc)
|
||||||
{
|
{
|
||||||
|
@ -1370,7 +1370,7 @@ FDecalAnimator *FDecalLib::FindAnimator (const char *name)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DDecalColorer, false, false, false, false)
|
IMPLEMENT_CLASS(DDecalColorer, false, false)
|
||||||
|
|
||||||
void DDecalColorer::Serialize(FSerializer &arc)
|
void DDecalColorer::Serialize(FSerializer &arc)
|
||||||
{
|
{
|
||||||
|
|
|
@ -61,7 +61,7 @@ ClassReg DObject::RegistrationInfo =
|
||||||
nullptr, // MyClass
|
nullptr, // MyClass
|
||||||
"DObject", // Name
|
"DObject", // Name
|
||||||
nullptr, // ParentType
|
nullptr, // ParentType
|
||||||
&DVMObject<DObject>::RegistrationInfo, // VMExport
|
nullptr,
|
||||||
nullptr, // Pointers
|
nullptr, // Pointers
|
||||||
&DObject::InPlaceConstructor, // ConstructNative
|
&DObject::InPlaceConstructor, // ConstructNative
|
||||||
nullptr,
|
nullptr,
|
||||||
|
@ -358,7 +358,6 @@ void DObject::Destroy ()
|
||||||
DEFINE_ACTION_FUNCTION(DObject, Destroy)
|
DEFINE_ACTION_FUNCTION(DObject, Destroy)
|
||||||
{
|
{
|
||||||
PARAM_SELF_PROLOGUE(DObject);
|
PARAM_SELF_PROLOGUE(DObject);
|
||||||
self->VMSuperCall();
|
|
||||||
self->Destroy();
|
self->Destroy();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,7 +110,7 @@ struct ClassReg
|
||||||
PClass *MyClass;
|
PClass *MyClass;
|
||||||
const char *Name;
|
const char *Name;
|
||||||
ClassReg *ParentType;
|
ClassReg *ParentType;
|
||||||
ClassReg *VMExport;
|
ClassReg *_VMExport;
|
||||||
const size_t *Pointers;
|
const size_t *Pointers;
|
||||||
void (*ConstructNative)(void *);
|
void (*ConstructNative)(void *);
|
||||||
void(*InitNatives)();
|
void(*InitNatives)();
|
||||||
|
@ -157,23 +157,23 @@ protected: \
|
||||||
# define _DECLARE_TI(cls) ClassReg * const cls::RegistrationInfoPtr __attribute__((section(SECTION_CREG))) = &cls::RegistrationInfo;
|
# define _DECLARE_TI(cls) ClassReg * const cls::RegistrationInfoPtr __attribute__((section(SECTION_CREG))) = &cls::RegistrationInfo;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define _IMP_PCLASS(cls, ptrs, create, initn, vmexport) \
|
#define _IMP_PCLASS(cls, ptrs, create) \
|
||||||
ClassReg cls::RegistrationInfo = {\
|
ClassReg cls::RegistrationInfo = {\
|
||||||
nullptr, \
|
nullptr, \
|
||||||
#cls, \
|
#cls, \
|
||||||
&cls::Super::RegistrationInfo, \
|
&cls::Super::RegistrationInfo, \
|
||||||
vmexport, \
|
nullptr, \
|
||||||
ptrs, \
|
ptrs, \
|
||||||
create, \
|
create, \
|
||||||
initn, \
|
nullptr, \
|
||||||
sizeof(cls), \
|
sizeof(cls), \
|
||||||
cls::MetaClassNum }; \
|
cls::MetaClassNum }; \
|
||||||
_DECLARE_TI(cls) \
|
_DECLARE_TI(cls) \
|
||||||
PClass *cls::StaticType() const { return RegistrationInfo.MyClass; }
|
PClass *cls::StaticType() const { return RegistrationInfo.MyClass; }
|
||||||
|
|
||||||
#define IMPLEMENT_CLASS(cls, isabstract, ptrs, fields, vmexport) \
|
#define IMPLEMENT_CLASS(cls, isabstract, ptrs) \
|
||||||
_X_CONSTRUCTOR_##isabstract(cls) \
|
_X_CONSTRUCTOR_##isabstract(cls) \
|
||||||
_IMP_PCLASS(cls, _X_POINTERS_##ptrs(cls), _X_ABSTRACT_##isabstract(cls), _X_FIELDS_##fields(cls), _X_VMEXPORT_##vmexport(cls))
|
_IMP_PCLASS(cls, _X_POINTERS_##ptrs(cls), _X_ABSTRACT_##isabstract(cls))
|
||||||
|
|
||||||
// Taking the address of a field in an object at address 1 instead of
|
// Taking the address of a field in an object at address 1 instead of
|
||||||
// address 0 keeps GCC from complaining about possible misuse of offsetof.
|
// address 0 keeps GCC from complaining about possible misuse of offsetof.
|
||||||
|
@ -190,7 +190,7 @@ protected: \
|
||||||
#define _X_CONSTRUCTOR_false(cls) void cls::InPlaceConstructor(void *mem) { new((EInPlace *)mem) cls; }
|
#define _X_CONSTRUCTOR_false(cls) void cls::InPlaceConstructor(void *mem) { new((EInPlace *)mem) cls; }
|
||||||
#define _X_ABSTRACT_true(cls) nullptr
|
#define _X_ABSTRACT_true(cls) nullptr
|
||||||
#define _X_ABSTRACT_false(cls) cls::InPlaceConstructor
|
#define _X_ABSTRACT_false(cls) cls::InPlaceConstructor
|
||||||
#define _X_VMEXPORT_true(cls) &DVMObject<cls>::RegistrationInfo
|
#define _X_VMEXPORT_true(cls) nullptr
|
||||||
#define _X_VMEXPORT_false(cls) nullptr
|
#define _X_VMEXPORT_false(cls) nullptr
|
||||||
|
|
||||||
enum EObjectFlags
|
enum EObjectFlags
|
||||||
|
@ -481,7 +481,7 @@ public:
|
||||||
// that don't call their base class.
|
// that don't call their base class.
|
||||||
void CheckIfSerialized () const;
|
void CheckIfSerialized () const;
|
||||||
|
|
||||||
virtual void Destroy ();
|
virtual void Destroy();
|
||||||
|
|
||||||
// If you need to replace one object with another and want to
|
// If you need to replace one object with another and want to
|
||||||
// change any pointers from the old object to the new object,
|
// change any pointers from the old object to the new object,
|
||||||
|
|
|
@ -125,7 +125,7 @@ public:
|
||||||
int SideNum;
|
int SideNum;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DSectorMarker, false, false, false, false)
|
IMPLEMENT_CLASS(DSectorMarker, false, false)
|
||||||
|
|
||||||
// EXTERNAL FUNCTION PROTOTYPES --------------------------------------------
|
// EXTERNAL FUNCTION PROTOTYPES --------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -97,8 +97,8 @@ static const size_t TheEnd = ~(size_t)0;
|
||||||
|
|
||||||
// CODE --------------------------------------------------------------------
|
// CODE --------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PErrorType, false, false, false, false)
|
IMPLEMENT_CLASS(PErrorType, false, false)
|
||||||
IMPLEMENT_CLASS(PVoidType, false, false, false, false)
|
IMPLEMENT_CLASS(PVoidType, false, false)
|
||||||
|
|
||||||
void DumpTypeTable()
|
void DumpTypeTable()
|
||||||
{
|
{
|
||||||
|
@ -145,7 +145,7 @@ void DumpTypeTable()
|
||||||
|
|
||||||
/* PClassType *************************************************************/
|
/* PClassType *************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassType, false, false, false, false)
|
IMPLEMENT_CLASS(PClassType, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -173,7 +173,7 @@ void PClassType::DeriveData(PClass *newclass)
|
||||||
|
|
||||||
/* PClassClass ************************************************************/
|
/* PClassClass ************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassClass, false, false, false, false)
|
IMPLEMENT_CLASS(PClassClass, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -191,7 +191,7 @@ PClassClass::PClassClass()
|
||||||
|
|
||||||
/* PType ******************************************************************/
|
/* PType ******************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PType, true, true, false, false)
|
IMPLEMENT_CLASS(PType, true, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PType)
|
IMPLEMENT_POINTERS_START(PType)
|
||||||
IMPLEMENT_POINTER(HashNext)
|
IMPLEMENT_POINTER(HashNext)
|
||||||
|
@ -647,7 +647,7 @@ void PType::StaticInit()
|
||||||
|
|
||||||
/* PBasicType *************************************************************/
|
/* PBasicType *************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PBasicType, true, false, false, false)
|
IMPLEMENT_CLASS(PBasicType, true, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -673,11 +673,11 @@ PBasicType::PBasicType(unsigned int size, unsigned int align)
|
||||||
|
|
||||||
/* PCompoundType **********************************************************/
|
/* PCompoundType **********************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PCompoundType, true, false, false, false)
|
IMPLEMENT_CLASS(PCompoundType, true, false)
|
||||||
|
|
||||||
/* PNamedType *************************************************************/
|
/* PNamedType *************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PNamedType, true, true, false, false)
|
IMPLEMENT_CLASS(PNamedType, true, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PNamedType)
|
IMPLEMENT_POINTERS_START(PNamedType)
|
||||||
IMPLEMENT_POINTER(Outer)
|
IMPLEMENT_POINTER(Outer)
|
||||||
|
@ -725,7 +725,7 @@ FString PNamedType::QualifiedName() const
|
||||||
|
|
||||||
/* PInt *******************************************************************/
|
/* PInt *******************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PInt, false, false, false, false)
|
IMPLEMENT_CLASS(PInt, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -964,7 +964,7 @@ double PInt::GetValueFloat(void *addr) const
|
||||||
|
|
||||||
/* PBool ******************************************************************/
|
/* PBool ******************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PBool, false, false, false, false)
|
IMPLEMENT_CLASS(PBool, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -985,7 +985,7 @@ PBool::PBool()
|
||||||
|
|
||||||
/* PFloat *****************************************************************/
|
/* PFloat *****************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PFloat, false, false, false, false)
|
IMPLEMENT_CLASS(PFloat, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1235,7 +1235,7 @@ void PFloat::SetOps()
|
||||||
|
|
||||||
/* PString ****************************************************************/
|
/* PString ****************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PString, false, false, false, false)
|
IMPLEMENT_CLASS(PString, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1332,7 +1332,7 @@ void PString::DestroyValue(void *addr) const
|
||||||
|
|
||||||
/* PName ******************************************************************/
|
/* PName ******************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PName, false, false, false, false)
|
IMPLEMENT_CLASS(PName, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1382,7 +1382,7 @@ bool PName::ReadValue(FSerializer &ar, const char *key, void *addr) const
|
||||||
|
|
||||||
/* PSpriteID ******************************************************************/
|
/* PSpriteID ******************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PSpriteID, false, false, false, false)
|
IMPLEMENT_CLASS(PSpriteID, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1424,7 +1424,7 @@ bool PSpriteID::ReadValue(FSerializer &ar, const char *key, void *addr) const
|
||||||
|
|
||||||
/* PTextureID ******************************************************************/
|
/* PTextureID ******************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PTextureID, false, false, false, false)
|
IMPLEMENT_CLASS(PTextureID, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1467,7 +1467,7 @@ bool PTextureID::ReadValue(FSerializer &ar, const char *key, void *addr) const
|
||||||
|
|
||||||
/* PSound *****************************************************************/
|
/* PSound *****************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PSound, false, false, false, false)
|
IMPLEMENT_CLASS(PSound, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1517,7 +1517,7 @@ bool PSound::ReadValue(FSerializer &ar, const char *key, void *addr) const
|
||||||
|
|
||||||
/* PColor *****************************************************************/
|
/* PColor *****************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PColor, false, false, false, false)
|
IMPLEMENT_CLASS(PColor, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1534,7 +1534,7 @@ PColor::PColor()
|
||||||
|
|
||||||
/* PStateLabel *****************************************************************/
|
/* PStateLabel *****************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PStateLabel, false, false, false, false)
|
IMPLEMENT_CLASS(PStateLabel, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1550,7 +1550,7 @@ PStateLabel::PStateLabel()
|
||||||
|
|
||||||
/* PPointer ***************************************************************/
|
/* PPointer ***************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PPointer, false, true, false, false)
|
IMPLEMENT_CLASS(PPointer, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PPointer)
|
IMPLEMENT_POINTERS_START(PPointer)
|
||||||
IMPLEMENT_POINTER(PointedType)
|
IMPLEMENT_POINTER(PointedType)
|
||||||
|
@ -1695,7 +1695,7 @@ PPointer *NewPointer(PType *type, bool isconst)
|
||||||
|
|
||||||
/* PStatePointer **********************************************************/
|
/* PStatePointer **********************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PStatePointer, false, false, false, false)
|
IMPLEMENT_CLASS(PStatePointer, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1738,7 +1738,7 @@ bool PStatePointer::ReadValue(FSerializer &ar, const char *key, void *addr) cons
|
||||||
|
|
||||||
/* PClassPointer **********************************************************/
|
/* PClassPointer **********************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassPointer, false, true, false, false)
|
IMPLEMENT_CLASS(PClassPointer,false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PClassPointer)
|
IMPLEMENT_POINTERS_START(PClassPointer)
|
||||||
IMPLEMENT_POINTER(ClassRestriction)
|
IMPLEMENT_POINTER(ClassRestriction)
|
||||||
|
@ -1819,7 +1819,7 @@ PClassPointer *NewClassPointer(PClass *restrict)
|
||||||
|
|
||||||
/* PEnum ******************************************************************/
|
/* PEnum ******************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PEnum, false, true, false, false)
|
IMPLEMENT_CLASS(PEnum, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PEnum)
|
IMPLEMENT_POINTERS_START(PEnum)
|
||||||
IMPLEMENT_POINTER(ValueType)
|
IMPLEMENT_POINTER(ValueType)
|
||||||
|
@ -1872,7 +1872,7 @@ PEnum *NewEnum(FName name, PTypeBase *outer)
|
||||||
|
|
||||||
/* PArray *****************************************************************/
|
/* PArray *****************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PArray, false, true, false, false)
|
IMPLEMENT_CLASS(PArray, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PArray)
|
IMPLEMENT_POINTERS_START(PArray)
|
||||||
IMPLEMENT_POINTER(ElementType)
|
IMPLEMENT_POINTER(ElementType)
|
||||||
|
@ -2035,7 +2035,7 @@ PArray *NewArray(PType *type, unsigned int count)
|
||||||
|
|
||||||
/* PDynArray **************************************************************/
|
/* PDynArray **************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PDynArray, false, true, false, false)
|
IMPLEMENT_CLASS(PDynArray, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PDynArray)
|
IMPLEMENT_POINTERS_START(PDynArray)
|
||||||
IMPLEMENT_POINTER(ElementType)
|
IMPLEMENT_POINTER(ElementType)
|
||||||
|
@ -2118,7 +2118,7 @@ PDynArray *NewDynArray(PType *type)
|
||||||
|
|
||||||
/* PMap *******************************************************************/
|
/* PMap *******************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PMap, false, true, false, false)
|
IMPLEMENT_CLASS(PMap, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PMap)
|
IMPLEMENT_POINTERS_START(PMap)
|
||||||
IMPLEMENT_POINTER(KeyType)
|
IMPLEMENT_POINTER(KeyType)
|
||||||
|
@ -2202,7 +2202,7 @@ PMap *NewMap(PType *keytype, PType *valuetype)
|
||||||
|
|
||||||
/* PStruct ****************************************************************/
|
/* PStruct ****************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PStruct, false, false, false, false)
|
IMPLEMENT_CLASS(PStruct, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -2440,7 +2440,7 @@ PStruct *NewStruct(FName name, PTypeBase *outer)
|
||||||
|
|
||||||
/* PNativeStruct ****************************************************************/
|
/* PNativeStruct ****************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PNativeStruct, false, false, false, false)
|
IMPLEMENT_CLASS(PNativeStruct, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -2478,7 +2478,7 @@ PNativeStruct *NewNativeStruct(FName name, PTypeBase *outer)
|
||||||
|
|
||||||
/* PField *****************************************************************/
|
/* PField *****************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PField, false, false, false, false)
|
IMPLEMENT_CLASS(PField, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -2523,7 +2523,7 @@ PField::PField(FName name, PType *type, DWORD flags, size_t offset, int bitvalue
|
||||||
|
|
||||||
/* PPrototype *************************************************************/
|
/* PPrototype *************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PPrototype, false, false, false, false)
|
IMPLEMENT_CLASS(PPrototype, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -2609,7 +2609,7 @@ PPrototype *NewPrototype(const TArray<PType *> &rettypes, const TArray<PType *>
|
||||||
|
|
||||||
/* PFunction **************************************************************/
|
/* PFunction **************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PFunction, false, false, false, false)
|
IMPLEMENT_CLASS(PFunction, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -2672,7 +2672,7 @@ unsigned PFunction::AddVariant(PPrototype *proto, TArray<DWORD> &argflags, TArra
|
||||||
|
|
||||||
/* PClass *****************************************************************/
|
/* PClass *****************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClass, false, true, false, false)
|
IMPLEMENT_CLASS(PClass, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PClass)
|
IMPLEMENT_POINTERS_START(PClass)
|
||||||
IMPLEMENT_POINTER(ParentClass)
|
IMPLEMENT_POINTER(ParentClass)
|
||||||
|
@ -2907,7 +2907,6 @@ void PClass::StaticShutdown ()
|
||||||
{
|
{
|
||||||
auto cr = ((ClassReg *)*probe);
|
auto cr = ((ClassReg *)*probe);
|
||||||
cr->MyClass = nullptr;
|
cr->MyClass = nullptr;
|
||||||
if (cr->VMExport != nullptr) cr->VMExport->MyClass = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3034,10 +3033,6 @@ PClass *ClassReg::RegisterClass()
|
||||||
{
|
{
|
||||||
cls->ParentClass = ParentType->RegisterClass();
|
cls->ParentClass = ParentType->RegisterClass();
|
||||||
}
|
}
|
||||||
if (VMExport != nullptr)
|
|
||||||
{
|
|
||||||
cls->VMExported = VMExport->RegisterClass();
|
|
||||||
}
|
|
||||||
return cls;
|
return cls;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3717,19 +3712,19 @@ CCMD(typetable)
|
||||||
|
|
||||||
// Symbol tables ------------------------------------------------------------
|
// Symbol tables ------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PTypeBase, true, false, false, false);
|
IMPLEMENT_CLASS(PTypeBase, true, false);
|
||||||
IMPLEMENT_CLASS(PSymbol, true, false, false, false);
|
IMPLEMENT_CLASS(PSymbol, true, false);
|
||||||
IMPLEMENT_CLASS(PSymbolConst, false, false, false, false);
|
IMPLEMENT_CLASS(PSymbolConst, false, false);
|
||||||
IMPLEMENT_CLASS(PSymbolConstNumeric, false, false, false, false);
|
IMPLEMENT_CLASS(PSymbolConstNumeric, false, false);
|
||||||
IMPLEMENT_CLASS(PSymbolConstString, false, false, false, false);
|
IMPLEMENT_CLASS(PSymbolConstString, false, false);
|
||||||
IMPLEMENT_CLASS(PSymbolTreeNode, false, false, false, false)
|
IMPLEMENT_CLASS(PSymbolTreeNode, false, false)
|
||||||
IMPLEMENT_CLASS(PSymbolType, false, true, false, false)
|
IMPLEMENT_CLASS(PSymbolType, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PSymbolType)
|
IMPLEMENT_POINTERS_START(PSymbolType)
|
||||||
IMPLEMENT_POINTER(Type)
|
IMPLEMENT_POINTER(Type)
|
||||||
IMPLEMENT_POINTERS_END
|
IMPLEMENT_POINTERS_END
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PSymbolVMFunction, false, true, false, false)
|
IMPLEMENT_CLASS(PSymbolVMFunction, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PSymbolVMFunction)
|
IMPLEMENT_POINTERS_START(PSymbolVMFunction)
|
||||||
IMPLEMENT_POINTER(Function)
|
IMPLEMENT_POINTER(Function)
|
||||||
|
|
|
@ -809,7 +809,6 @@ public:
|
||||||
|
|
||||||
// Per-class information -------------------------------------
|
// Per-class information -------------------------------------
|
||||||
PClass *ParentClass; // the class this class derives from
|
PClass *ParentClass; // the class this class derives from
|
||||||
PClass *VMExported; // this is here to allow script classes to override native virtual functions
|
|
||||||
const size_t *Pointers; // object pointers defined by this class *only*
|
const size_t *Pointers; // object pointers defined by this class *only*
|
||||||
const size_t *FlatPointers; // object pointers defined by this class and all its superclasses; not initialized by default
|
const size_t *FlatPointers; // object pointers defined by this class and all its superclasses; not initialized by default
|
||||||
BYTE *Defaults;
|
BYTE *Defaults;
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
#include "serializer.h"
|
#include "serializer.h"
|
||||||
#include "doomstat.h"
|
#include "doomstat.h"
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DSectorEffect, false, false, false, false)
|
IMPLEMENT_CLASS(DSectorEffect, false, false)
|
||||||
|
|
||||||
DSectorEffect::DSectorEffect ()
|
DSectorEffect::DSectorEffect ()
|
||||||
: DThinker(STAT_SECTOREFFECT)
|
: DThinker(STAT_SECTOREFFECT)
|
||||||
|
@ -71,7 +71,7 @@ void DSectorEffect::Serialize(FSerializer &arc)
|
||||||
arc("sector", m_Sector);
|
arc("sector", m_Sector);
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DMover, false, true, false, false)
|
IMPLEMENT_CLASS(DMover, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DMover)
|
IMPLEMENT_POINTERS_START(DMover)
|
||||||
IMPLEMENT_POINTER(interpolation)
|
IMPLEMENT_POINTER(interpolation)
|
||||||
|
@ -108,7 +108,7 @@ void DMover::StopInterpolation(bool force)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DMovingFloor, false, false, false, false)
|
IMPLEMENT_CLASS(DMovingFloor, false, false)
|
||||||
|
|
||||||
DMovingFloor::DMovingFloor ()
|
DMovingFloor::DMovingFloor ()
|
||||||
{
|
{
|
||||||
|
@ -121,7 +121,7 @@ DMovingFloor::DMovingFloor (sector_t *sector)
|
||||||
interpolation = sector->SetInterpolation(sector_t::FloorMove, true);
|
interpolation = sector->SetInterpolation(sector_t::FloorMove, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DMovingCeiling, false, false, false, false)
|
IMPLEMENT_CLASS(DMovingCeiling, false, false)
|
||||||
|
|
||||||
DMovingCeiling::DMovingCeiling ()
|
DMovingCeiling::DMovingCeiling ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,7 +12,7 @@ public:
|
||||||
|
|
||||||
|
|
||||||
void Serialize(FSerializer &arc);
|
void Serialize(FSerializer &arc);
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
|
|
||||||
sector_t *GetSector() const { return m_Sector; }
|
sector_t *GetSector() const { return m_Sector; }
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ protected:
|
||||||
DMover ();
|
DMover ();
|
||||||
|
|
||||||
void Serialize(FSerializer &arc);
|
void Serialize(FSerializer &arc);
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
class DMovingFloor : public DMover
|
class DMovingFloor : public DMover
|
||||||
|
|
173
src/dthinker.cpp
173
src/dthinker.cpp
|
@ -48,7 +48,7 @@ extern cycle_t BotSupportCycles;
|
||||||
extern cycle_t ActionCycles;
|
extern cycle_t ActionCycles;
|
||||||
extern int BotWTG;
|
extern int BotWTG;
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DThinker, false, false, false, true)
|
IMPLEMENT_CLASS(DThinker, false, false)
|
||||||
|
|
||||||
DThinker *NextToThink;
|
DThinker *NextToThink;
|
||||||
|
|
||||||
|
@ -56,6 +56,12 @@ FThinkerList DThinker::Thinkers[MAX_STATNUM+2];
|
||||||
FThinkerList DThinker::FreshThinkers[MAX_STATNUM+1];
|
FThinkerList DThinker::FreshThinkers[MAX_STATNUM+1];
|
||||||
bool DThinker::bSerialOverride = false;
|
bool DThinker::bSerialOverride = false;
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void FThinkerList::AddTail(DThinker *thinker)
|
void FThinkerList::AddTail(DThinker *thinker)
|
||||||
{
|
{
|
||||||
assert(thinker->PrevThinker == NULL && thinker->NextThinker == NULL);
|
assert(thinker->PrevThinker == NULL && thinker->NextThinker == NULL);
|
||||||
|
@ -80,6 +86,12 @@ void FThinkerList::AddTail(DThinker *thinker)
|
||||||
GC::WriteBarrier(Sentinel, thinker);
|
GC::WriteBarrier(Sentinel, thinker);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
DThinker *FThinkerList::GetHead() const
|
DThinker *FThinkerList::GetHead() const
|
||||||
{
|
{
|
||||||
if (Sentinel == NULL || Sentinel->NextThinker == Sentinel)
|
if (Sentinel == NULL || Sentinel->NextThinker == Sentinel)
|
||||||
|
@ -90,6 +102,12 @@ DThinker *FThinkerList::GetHead() const
|
||||||
return Sentinel->NextThinker;
|
return Sentinel->NextThinker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
DThinker *FThinkerList::GetTail() const
|
DThinker *FThinkerList::GetTail() const
|
||||||
{
|
{
|
||||||
if (Sentinel == NULL || Sentinel->PrevThinker == Sentinel)
|
if (Sentinel == NULL || Sentinel->PrevThinker == Sentinel)
|
||||||
|
@ -99,11 +117,23 @@ DThinker *FThinkerList::GetTail() const
|
||||||
return Sentinel->PrevThinker;
|
return Sentinel->PrevThinker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
bool FThinkerList::IsEmpty() const
|
bool FThinkerList::IsEmpty() const
|
||||||
{
|
{
|
||||||
return Sentinel == NULL || Sentinel->NextThinker == NULL;
|
return Sentinel == NULL || Sentinel->NextThinker == NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void DThinker::SaveList(FSerializer &arc, DThinker *node)
|
void DThinker::SaveList(FSerializer &arc, DThinker *node)
|
||||||
{
|
{
|
||||||
if (node != NULL)
|
if (node != NULL)
|
||||||
|
@ -234,6 +264,12 @@ void DThinker::Destroy ()
|
||||||
Super::Destroy();
|
Super::Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void DThinker::Remove()
|
void DThinker::Remove()
|
||||||
{
|
{
|
||||||
if (this == NextToThink)
|
if (this == NextToThink)
|
||||||
|
@ -254,6 +290,12 @@ void DThinker::Remove()
|
||||||
PrevThinker = NULL;
|
PrevThinker = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void DThinker::PostBeginPlay ()
|
void DThinker::PostBeginPlay ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -261,15 +303,41 @@ void DThinker::PostBeginPlay ()
|
||||||
DEFINE_ACTION_FUNCTION(DThinker, PostBeginPlay)
|
DEFINE_ACTION_FUNCTION(DThinker, PostBeginPlay)
|
||||||
{
|
{
|
||||||
PARAM_SELF_PROLOGUE(DThinker);
|
PARAM_SELF_PROLOGUE(DThinker);
|
||||||
self->VMSuperCall();
|
|
||||||
self->PostBeginPlay();
|
self->PostBeginPlay();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DThinker::CallPostBeginPlay()
|
||||||
|
{
|
||||||
|
IFVIRTUAL(DThinker, PostBeginPlay)
|
||||||
|
{
|
||||||
|
// Without the type cast this picks the 'void *' assignment...
|
||||||
|
VMValue params[1] = { (DObject*)this };
|
||||||
|
VMFrameStack stack;
|
||||||
|
stack.Call(func, params, 1, nullptr, 0, nullptr);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PostBeginPlay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void DThinker::PostSerialize()
|
void DThinker::PostSerialize()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
DThinker *DThinker::FirstThinker (int statnum)
|
DThinker *DThinker::FirstThinker (int statnum)
|
||||||
{
|
{
|
||||||
DThinker *node;
|
DThinker *node;
|
||||||
|
@ -290,6 +358,12 @@ DThinker *DThinker::FirstThinker (int statnum)
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void DThinker::ChangeStatNum (int statnum)
|
void DThinker::ChangeStatNum (int statnum)
|
||||||
{
|
{
|
||||||
FThinkerList *list;
|
FThinkerList *list;
|
||||||
|
@ -313,7 +387,12 @@ void DThinker::ChangeStatNum (int statnum)
|
||||||
list->AddTail(this);
|
list->AddTail(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
// Mark the first thinker of each list
|
// Mark the first thinker of each list
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void DThinker::MarkRoots()
|
void DThinker::MarkRoots()
|
||||||
{
|
{
|
||||||
for (int i = 0; i <= MAX_STATNUM; ++i)
|
for (int i = 0; i <= MAX_STATNUM; ++i)
|
||||||
|
@ -324,7 +403,12 @@ void DThinker::MarkRoots()
|
||||||
GC::Mark(Thinkers[MAX_STATNUM+1].Sentinel);
|
GC::Mark(Thinkers[MAX_STATNUM+1].Sentinel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
// Destroy every thinker
|
// Destroy every thinker
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void DThinker::DestroyAllThinkers ()
|
void DThinker::DestroyAllThinkers ()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -341,6 +425,12 @@ void DThinker::DestroyAllThinkers ()
|
||||||
GC::FullGC();
|
GC::FullGC();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void DThinker::DestroyThinkersInList (FThinkerList &list)
|
void DThinker::DestroyThinkersInList (FThinkerList &list)
|
||||||
{
|
{
|
||||||
if (list.Sentinel != NULL)
|
if (list.Sentinel != NULL)
|
||||||
|
@ -355,6 +445,12 @@ void DThinker::DestroyThinkersInList (FThinkerList &list)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void DThinker::RunThinkers ()
|
void DThinker::RunThinkers ()
|
||||||
{
|
{
|
||||||
int i, count;
|
int i, count;
|
||||||
|
@ -385,6 +481,12 @@ void DThinker::RunThinkers ()
|
||||||
ThinkCycles.Unclock();
|
ThinkCycles.Unclock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
int DThinker::TickThinkers (FThinkerList *list, FThinkerList *dest)
|
int DThinker::TickThinkers (FThinkerList *list, FThinkerList *dest)
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
@ -407,7 +509,7 @@ int DThinker::TickThinkers (FThinkerList *list, FThinkerList *dest)
|
||||||
node->Remove();
|
node->Remove();
|
||||||
dest->AddTail(node);
|
dest->AddTail(node);
|
||||||
}
|
}
|
||||||
node->PostBeginPlay();
|
node->CallPostBeginPlay();
|
||||||
}
|
}
|
||||||
else if (dest != NULL)
|
else if (dest != NULL)
|
||||||
{
|
{
|
||||||
|
@ -416,7 +518,7 @@ int DThinker::TickThinkers (FThinkerList *list, FThinkerList *dest)
|
||||||
|
|
||||||
if (!(node->ObjectFlags & OF_EuthanizeMe))
|
if (!(node->ObjectFlags & OF_EuthanizeMe))
|
||||||
{ // Only tick thinkers not scheduled for destruction
|
{ // Only tick thinkers not scheduled for destruction
|
||||||
node->Tick();
|
node->CallTick();
|
||||||
node->ObjectFlags &= ~OF_JustSpawned;
|
node->ObjectFlags &= ~OF_JustSpawned;
|
||||||
GC::CheckGC();
|
GC::CheckGC();
|
||||||
}
|
}
|
||||||
|
@ -425,6 +527,12 @@ int DThinker::TickThinkers (FThinkerList *list, FThinkerList *dest)
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void DThinker::Tick ()
|
void DThinker::Tick ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -432,11 +540,28 @@ void DThinker::Tick ()
|
||||||
DEFINE_ACTION_FUNCTION(DThinker, Tick)
|
DEFINE_ACTION_FUNCTION(DThinker, Tick)
|
||||||
{
|
{
|
||||||
PARAM_SELF_PROLOGUE(DThinker);
|
PARAM_SELF_PROLOGUE(DThinker);
|
||||||
self->VMSuperCall();
|
|
||||||
self->Tick();
|
self->Tick();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DThinker::CallTick()
|
||||||
|
{
|
||||||
|
IFVIRTUAL(DThinker, Tick)
|
||||||
|
{
|
||||||
|
// Without the type cast this picks the 'void *' assignment...
|
||||||
|
VMValue params[1] = { (DObject*)this };
|
||||||
|
VMFrameStack stack;
|
||||||
|
stack.Call(func, params, 1, nullptr, 0, nullptr);
|
||||||
|
}
|
||||||
|
else Tick();
|
||||||
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
size_t DThinker::PropagateMark()
|
size_t DThinker::PropagateMark()
|
||||||
{
|
{
|
||||||
// Do not choke on partially initialized objects (as happens when loading a savegame fails)
|
// Do not choke on partially initialized objects (as happens when loading a savegame fails)
|
||||||
|
@ -450,6 +575,12 @@ size_t DThinker::PropagateMark()
|
||||||
return Super::PropagateMark();
|
return Super::PropagateMark();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
FThinkerIterator::FThinkerIterator (const PClass *type, int statnum)
|
FThinkerIterator::FThinkerIterator (const PClass *type, int statnum)
|
||||||
{
|
{
|
||||||
if ((unsigned)statnum > MAX_STATNUM)
|
if ((unsigned)statnum > MAX_STATNUM)
|
||||||
|
@ -467,6 +598,12 @@ FThinkerIterator::FThinkerIterator (const PClass *type, int statnum)
|
||||||
m_SearchingFresh = false;
|
m_SearchingFresh = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
FThinkerIterator::FThinkerIterator (const PClass *type, int statnum, DThinker *prev)
|
FThinkerIterator::FThinkerIterator (const PClass *type, int statnum, DThinker *prev)
|
||||||
{
|
{
|
||||||
if ((unsigned)statnum > MAX_STATNUM)
|
if ((unsigned)statnum > MAX_STATNUM)
|
||||||
|
@ -491,12 +628,24 @@ FThinkerIterator::FThinkerIterator (const PClass *type, int statnum, DThinker *p
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
void FThinkerIterator::Reinit ()
|
void FThinkerIterator::Reinit ()
|
||||||
{
|
{
|
||||||
m_CurrThinker = DThinker::Thinkers[m_Stat].GetHead();
|
m_CurrThinker = DThinker::Thinkers[m_Stat].GetHead();
|
||||||
m_SearchingFresh = false;
|
m_SearchingFresh = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
DThinker *FThinkerIterator::Next (bool exact)
|
DThinker *FThinkerIterator::Next (bool exact)
|
||||||
{
|
{
|
||||||
if (m_ParentType == NULL)
|
if (m_ParentType == NULL)
|
||||||
|
@ -542,8 +691,13 @@ DThinker *FThinkerIterator::Next (bool exact)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
// This is for scripting, which needs the iterator wrapped into an object with the needed functions exported.
|
// This is for scripting, which needs the iterator wrapped into an object with the needed functions exported.
|
||||||
// Unfortunately we cannot have templated type conversions in scripts.
|
// Unfortunately we cannot have templated type conversions in scripts.
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
class DThinkerIterator : public DObject, public FThinkerIterator
|
class DThinkerIterator : public DObject, public FThinkerIterator
|
||||||
{
|
{
|
||||||
DECLARE_CLASS(DThinkerIterator, DObject)
|
DECLARE_CLASS(DThinkerIterator, DObject)
|
||||||
|
@ -555,7 +709,7 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DThinkerIterator, false, false, false, false);
|
IMPLEMENT_CLASS(DThinkerIterator, false, false);
|
||||||
DEFINE_ACTION_FUNCTION(DThinkerIterator, Create)
|
DEFINE_ACTION_FUNCTION(DThinkerIterator, Create)
|
||||||
{
|
{
|
||||||
PARAM_PROLOGUE;
|
PARAM_PROLOGUE;
|
||||||
|
@ -577,8 +731,11 @@ DEFINE_ACTION_FUNCTION(DThinkerIterator, Reinit)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
ADD_STAT (think)
|
ADD_STAT (think)
|
||||||
{
|
{
|
||||||
|
|
|
@ -66,10 +66,12 @@ class DThinker : public DObject
|
||||||
DECLARE_CLASS (DThinker, DObject)
|
DECLARE_CLASS (DThinker, DObject)
|
||||||
public:
|
public:
|
||||||
DThinker (int statnum = STAT_DEFAULT) throw();
|
DThinker (int statnum = STAT_DEFAULT) throw();
|
||||||
void Destroy ();
|
void Destroy () override;
|
||||||
virtual ~DThinker ();
|
virtual ~DThinker ();
|
||||||
virtual void Tick ();
|
virtual void Tick ();
|
||||||
|
void CallTick();
|
||||||
virtual void PostBeginPlay (); // Called just before the first tick
|
virtual void PostBeginPlay (); // Called just before the first tick
|
||||||
|
void CallPostBeginPlay();
|
||||||
virtual void PostSerialize();
|
virtual void PostSerialize();
|
||||||
size_t PropagateMark();
|
size_t PropagateMark();
|
||||||
|
|
||||||
|
|
|
@ -1785,7 +1785,7 @@ public:
|
||||||
void Destroy() { Super::Destroy(); m_Sector->lightingdata=NULL; }
|
void Destroy() { Super::Destroy(); m_Sector->lightingdata=NULL; }
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DLightLevel, false, false, false, false)
|
IMPLEMENT_CLASS(DLightLevel, false, false)
|
||||||
|
|
||||||
void DLightLevel::Serialize(FSerializer &arc)
|
void DLightLevel::Serialize(FSerializer &arc)
|
||||||
{
|
{
|
||||||
|
@ -2975,7 +2975,7 @@ void FParser::SF_ObjAwaken(void)
|
||||||
|
|
||||||
if(mo)
|
if(mo)
|
||||||
{
|
{
|
||||||
mo->Activate(Script->trigger);
|
mo->CallActivate(Script->trigger);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DFsSection, false, true, false, false)
|
IMPLEMENT_CLASS(DFsSection, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DFsSection)
|
IMPLEMENT_POINTERS_START(DFsSection)
|
||||||
IMPLEMENT_POINTER(next)
|
IMPLEMENT_POINTER(next)
|
||||||
|
|
|
@ -99,7 +99,7 @@ AActor *trigger_obj;
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DFsScript, false, true, false, false)
|
IMPLEMENT_CLASS(DFsScript, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DFsScript)
|
IMPLEMENT_POINTERS_START(DFsScript)
|
||||||
IMPLEMENT_POINTER(parent)
|
IMPLEMENT_POINTER(parent)
|
||||||
|
@ -269,7 +269,7 @@ void DFsScript::ParseScript(char *position)
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DRunningScript, false, true, false, false)
|
IMPLEMENT_CLASS(DRunningScript, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DRunningScript)
|
IMPLEMENT_POINTERS_START(DRunningScript)
|
||||||
IMPLEMENT_POINTER(prev)
|
IMPLEMENT_POINTER(prev)
|
||||||
|
@ -380,7 +380,7 @@ void DRunningScript::Serialize(FSerializer &arc)
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DFraggleThinker, false, true, false, false)
|
IMPLEMENT_CLASS(DFraggleThinker, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DFraggleThinker)
|
IMPLEMENT_POINTERS_START(DFraggleThinker)
|
||||||
IMPLEMENT_POINTER(RunningScripts)
|
IMPLEMENT_POINTER(RunningScripts)
|
||||||
|
|
|
@ -337,7 +337,7 @@ public:
|
||||||
|
|
||||||
DFsScript();
|
DFsScript();
|
||||||
~DFsScript();
|
~DFsScript();
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
void Serialize(FSerializer &ar);
|
void Serialize(FSerializer &ar);
|
||||||
|
|
||||||
DFsVariable *NewVariable(const char *name, int vtype);
|
DFsVariable *NewVariable(const char *name, int vtype);
|
||||||
|
@ -652,7 +652,7 @@ class DRunningScript : public DObject
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DRunningScript(AActor *trigger=NULL, DFsScript *owner = NULL, int index = 0) ;
|
DRunningScript(AActor *trigger=NULL, DFsScript *owner = NULL, int index = 0) ;
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
void Serialize(FSerializer &arc);
|
void Serialize(FSerializer &arc);
|
||||||
|
|
||||||
TObjPtr<DFsScript> script;
|
TObjPtr<DFsScript> script;
|
||||||
|
@ -687,7 +687,7 @@ public:
|
||||||
bool nocheckposition;
|
bool nocheckposition;
|
||||||
|
|
||||||
DFraggleThinker();
|
DFraggleThinker();
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
|
|
||||||
|
|
||||||
void Serialize(FSerializer & arc);
|
void Serialize(FSerializer & arc);
|
||||||
|
|
|
@ -179,7 +179,7 @@ AActor* actorvalue(const svalue_t &svalue)
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DFsVariable, false, true, false, false)
|
IMPLEMENT_CLASS(DFsVariable, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DFsVariable)
|
IMPLEMENT_POINTERS_START(DFsVariable)
|
||||||
IMPLEMENT_POINTER(next)
|
IMPLEMENT_POINTER(next)
|
||||||
|
|
|
@ -17,7 +17,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiTomeOfPower, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiTomeOfPower, false, false)
|
||||||
|
|
||||||
bool AArtiTomeOfPower::Use (bool pickup)
|
bool AArtiTomeOfPower::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
@ -51,7 +51,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiTimeBomb, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiTimeBomb, false, false)
|
||||||
|
|
||||||
bool AArtiTimeBomb::Use (bool pickup)
|
bool AArtiTimeBomb::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
|
|
@ -58,7 +58,7 @@ public:
|
||||||
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ARainPillar, false, false, false, false)
|
IMPLEMENT_CLASS(ARainPillar, false, false)
|
||||||
|
|
||||||
int ARainPillar::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
int ARainPillar::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
||||||
{
|
{
|
||||||
|
@ -80,7 +80,7 @@ public:
|
||||||
TObjPtr<AActor> Rain1, Rain2;
|
TObjPtr<AActor> Rain1, Rain2;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ARainTracker, false, false, false, false)
|
IMPLEMENT_CLASS(ARainTracker, false, false)
|
||||||
|
|
||||||
void ARainTracker::Serialize(FSerializer &arc)
|
void ARainTracker::Serialize(FSerializer &arc)
|
||||||
{
|
{
|
||||||
|
@ -367,8 +367,8 @@ public:
|
||||||
void EndPowerup ();
|
void EndPowerup ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APhoenixRod, false, false, false, false)
|
IMPLEMENT_CLASS(APhoenixRod, false, false)
|
||||||
IMPLEMENT_CLASS(APhoenixRodPowered, false, false, false, false)
|
IMPLEMENT_CLASS(APhoenixRodPowered, false, false)
|
||||||
|
|
||||||
void APhoenixRodPowered::EndPowerup ()
|
void APhoenixRodPowered::EndPowerup ()
|
||||||
{
|
{
|
||||||
|
@ -388,7 +388,7 @@ public:
|
||||||
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APhoenixFX2, false, false, false, false)
|
IMPLEMENT_CLASS(APhoenixFX2, false, false)
|
||||||
|
|
||||||
int APhoenixFX2::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
int APhoenixFX2::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,7 +17,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiBoostArmor, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiBoostArmor, false, false)
|
||||||
|
|
||||||
bool AArtiBoostArmor::Use (bool pickup)
|
bool AArtiBoostArmor::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
|
|
@ -58,11 +58,11 @@ public:
|
||||||
BYTE CHolyCount;
|
BYTE CHolyCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ACWeapWraithverge, false, false, false, false)
|
IMPLEMENT_CLASS(ACWeapWraithverge, false, false)
|
||||||
|
|
||||||
// Holy Spirit --------------------------------------------------------------
|
// Holy Spirit --------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AHolySpirit, false, false, false, false)
|
IMPLEMENT_CLASS(AHolySpirit, false, false)
|
||||||
|
|
||||||
bool AHolySpirit::Slam(AActor *thing)
|
bool AHolySpirit::Slam(AActor *thing)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,7 +25,7 @@ public:
|
||||||
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ACStaffMissile, false, false, false, false)
|
IMPLEMENT_CLASS(ACStaffMissile, false, false)
|
||||||
|
|
||||||
int ACStaffMissile::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
int ACStaffMissile::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,7 +31,7 @@ public:
|
||||||
FState *GetAtkState (bool hold);
|
FState *GetAtkState (bool hold);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AFWeapAxe, false, false, false, false)
|
IMPLEMENT_CLASS(AFWeapAxe, false, false)
|
||||||
|
|
||||||
FState *AFWeapAxe::GetUpState ()
|
FState *AFWeapAxe::GetUpState ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,9 +11,9 @@
|
||||||
#include "vm.h"
|
#include "vm.h"
|
||||||
*/
|
*/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AFighterWeapon, false, false, false, false)
|
IMPLEMENT_CLASS(AFighterWeapon, false, false)
|
||||||
IMPLEMENT_CLASS(AClericWeapon, false, false, false, false)
|
IMPLEMENT_CLASS(AClericWeapon, false, false)
|
||||||
IMPLEMENT_CLASS(AMageWeapon, false, false, false, false)
|
IMPLEMENT_CLASS(AMageWeapon, false, false)
|
||||||
|
|
||||||
static FRandom pr_fpatk ("FPunchAttack");
|
static FRandom pr_fpatk ("FPunchAttack");
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ public:
|
||||||
int DoSpecialDamage(AActor *victim, int damage, FName damagetype);
|
int DoSpecialDamage(AActor *victim, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AFSwordMissile, false, false, false, false)
|
IMPLEMENT_CLASS(AFSwordMissile, false, false)
|
||||||
|
|
||||||
int AFSwordMissile::DoSpecialDamage(AActor *victim, int damage, FName damagetype)
|
int AFSwordMissile::DoSpecialDamage(AActor *victim, int damage, FName damagetype)
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,7 +24,7 @@ DECLARE_ACTION(A_CheckThrowBomb)
|
||||||
|
|
||||||
// Poison Bag Artifact (Flechette) ------------------------------------------
|
// Poison Bag Artifact (Flechette) ------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiPoisonBag, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiPoisonBag, false, false)
|
||||||
|
|
||||||
// Poison Bag 1 (The Cleric's) ----------------------------------------------
|
// Poison Bag 1 (The Cleric's) ----------------------------------------------
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiPoisonBag1, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiPoisonBag1, false, false)
|
||||||
|
|
||||||
bool AArtiPoisonBag1::Use (bool pickup)
|
bool AArtiPoisonBag1::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
@ -60,7 +60,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiPoisonBag2, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiPoisonBag2, false, false)
|
||||||
|
|
||||||
bool AArtiPoisonBag2::Use (bool pickup)
|
bool AArtiPoisonBag2::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
@ -85,7 +85,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiPoisonBag3, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiPoisonBag3, false, false)
|
||||||
|
|
||||||
bool AArtiPoisonBag3::Use (bool pickup)
|
bool AArtiPoisonBag3::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
@ -136,7 +136,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiPoisonBagGiver, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiPoisonBagGiver, false, false)
|
||||||
|
|
||||||
bool AArtiPoisonBagGiver::Use (bool pickup)
|
bool AArtiPoisonBagGiver::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
@ -167,7 +167,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiPoisonBagShooter, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiPoisonBagShooter, false, false)
|
||||||
|
|
||||||
bool AArtiPoisonBagShooter::Use (bool pickup)
|
bool AArtiPoisonBagShooter::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
@ -296,7 +296,7 @@ public:
|
||||||
void BeginPlay ();
|
void BeginPlay ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APoisonCloud, false, false, false, false)
|
IMPLEMENT_CLASS(APoisonCloud, false, false)
|
||||||
|
|
||||||
void APoisonCloud::BeginPlay ()
|
void APoisonCloud::BeginPlay ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,7 +25,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiHealingRadius, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiHealingRadius, false, false)
|
||||||
|
|
||||||
bool AArtiHealingRadius::Use (bool pickup)
|
bool AArtiHealingRadius::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
|
|
@ -72,7 +72,7 @@ public:
|
||||||
void Die (AActor *source, AActor *inflictor, int dmgflags);
|
void Die (AActor *source, AActor *inflictor, int dmgflags);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AHeresiarch, false, false, false, false)
|
IMPLEMENT_CLASS(AHeresiarch, false, false)
|
||||||
|
|
||||||
void AHeresiarch::Serialize(FSerializer &arc)
|
void AHeresiarch::Serialize(FSerializer &arc)
|
||||||
{
|
{
|
||||||
|
@ -122,7 +122,7 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASorcBall, false, false, false, false)
|
IMPLEMENT_CLASS(ASorcBall, false, false)
|
||||||
|
|
||||||
// First ball (purple) - fires projectiles ----------------------------------
|
// First ball (purple) - fires projectiles ----------------------------------
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ public:
|
||||||
virtual void CastSorcererSpell ();
|
virtual void CastSorcererSpell ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASorcBall1, false, false, false, false)
|
IMPLEMENT_CLASS(ASorcBall1, false, false)
|
||||||
|
|
||||||
// Second ball (blue) - generates the shield --------------------------------
|
// Second ball (blue) - generates the shield --------------------------------
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ public:
|
||||||
virtual void CastSorcererSpell ();
|
virtual void CastSorcererSpell ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASorcBall2, false, false, false, false)
|
IMPLEMENT_CLASS(ASorcBall2, false, false)
|
||||||
|
|
||||||
// Third ball (green) - summons Bishops -------------------------------------
|
// Third ball (green) - summons Bishops -------------------------------------
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ public:
|
||||||
virtual void CastSorcererSpell ();
|
virtual void CastSorcererSpell ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASorcBall3, false, false, false, false)
|
IMPLEMENT_CLASS(ASorcBall3, false, false)
|
||||||
|
|
||||||
// Sorcerer spell 1 (The burning, bouncing head thing) ----------------------
|
// Sorcerer spell 1 (The burning, bouncing head thing) ----------------------
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ public:
|
||||||
void PostBeginPlay ();
|
void PostBeginPlay ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AZCorpseLynchedNoHeart, false, false, false, false)
|
IMPLEMENT_CLASS(AZCorpseLynchedNoHeart, false, false)
|
||||||
|
|
||||||
void AZCorpseLynchedNoHeart::PostBeginPlay ()
|
void AZCorpseLynchedNoHeart::PostBeginPlay ()
|
||||||
{
|
{
|
||||||
|
@ -329,7 +329,7 @@ public:
|
||||||
void Activate (AActor *activator);
|
void Activate (AActor *activator);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AZBell, false, false, false, false)
|
IMPLEMENT_CLASS(AZBell, false, false)
|
||||||
|
|
||||||
void AZBell::Activate (AActor *activator)
|
void AZBell::Activate (AActor *activator)
|
||||||
{
|
{
|
||||||
|
|
|
@ -32,7 +32,7 @@ public:
|
||||||
int DoSpecialDamage (AActor *victim, int damage, FName damagetype);
|
int DoSpecialDamage (AActor *victim, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AFrostMissile, false, false, false, false)
|
IMPLEMENT_CLASS(AFrostMissile, false, false)
|
||||||
|
|
||||||
int AFrostMissile::DoSpecialDamage (AActor *victim, int damage, FName damagetype)
|
int AFrostMissile::DoSpecialDamage (AActor *victim, int damage, FName damagetype)
|
||||||
{
|
{
|
||||||
|
|
|
@ -34,7 +34,7 @@ public:
|
||||||
int SpecialMissileHit (AActor *victim);
|
int SpecialMissileHit (AActor *victim);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ALightning, false, false, false, false)
|
IMPLEMENT_CLASS(ALightning, false, false)
|
||||||
|
|
||||||
int ALightning::SpecialMissileHit (AActor *thing)
|
int ALightning::SpecialMissileHit (AActor *thing)
|
||||||
{
|
{
|
||||||
|
@ -87,7 +87,7 @@ public:
|
||||||
int SpecialMissileHit (AActor *thing);
|
int SpecialMissileHit (AActor *thing);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ALightningZap, false, false, false, false)
|
IMPLEMENT_CLASS(ALightningZap, false, false)
|
||||||
|
|
||||||
int ALightningZap::SpecialMissileHit (AActor *thing)
|
int ALightningZap::SpecialMissileHit (AActor *thing)
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,7 +56,7 @@ public:
|
||||||
BYTE MStaffCount;
|
BYTE MStaffCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AMWeapBloodscourge, false, false, false, false)
|
IMPLEMENT_CLASS(AMWeapBloodscourge, false, false)
|
||||||
|
|
||||||
// Mage Staff FX2 (Bloodscourge) --------------------------------------------
|
// Mage Staff FX2 (Bloodscourge) --------------------------------------------
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ public:
|
||||||
bool SpecialBlastHandling (AActor *source, double strength);
|
bool SpecialBlastHandling (AActor *source, double strength);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AMageStaffFX2, false, false, false, false)
|
IMPLEMENT_CLASS(AMageStaffFX2, false, false)
|
||||||
|
|
||||||
int AMageStaffFX2::SpecialMissileHit (AActor *victim)
|
int AMageStaffFX2::SpecialMissileHit (AActor *victim)
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,7 +26,7 @@ public:
|
||||||
void Deactivate (AActor *activator);
|
void Deactivate (AActor *activator);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AThrustFloor, false, false, false, false)
|
IMPLEMENT_CLASS(AThrustFloor, false, false)
|
||||||
|
|
||||||
void AThrustFloor::Activate (AActor *activator)
|
void AThrustFloor::Activate (AActor *activator)
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,7 +21,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiDarkServant, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiDarkServant, false, false)
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -34,7 +34,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiTeleportOther, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiTeleportOther, false, false)
|
||||||
|
|
||||||
// Teleport Other FX --------------------------------------------------------
|
// Teleport Other FX --------------------------------------------------------
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ public:
|
||||||
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ATelOtherFX1, false, false, false, false)
|
IMPLEMENT_CLASS(ATelOtherFX1, false, false)
|
||||||
|
|
||||||
static void TeloSpawn (AActor *source, const char *type)
|
static void TeloSpawn (AActor *source, const char *type)
|
||||||
{
|
{
|
||||||
|
|
|
@ -903,7 +903,7 @@ public:
|
||||||
void Tick ();
|
void Tick ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DAutosaver, false, false, false, false)
|
IMPLEMENT_CLASS(DAutosaver, false, false)
|
||||||
|
|
||||||
void DAutosaver::Tick ()
|
void DAutosaver::Tick ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,7 +23,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArtiTeleport, false, false, false, false)
|
IMPLEMENT_CLASS(AArtiTeleport, false, false)
|
||||||
|
|
||||||
bool AArtiTeleport::Use (bool pickup)
|
bool AArtiTeleport::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,7 +31,7 @@ void P_MinotaurSlam (AActor *source, AActor *target);
|
||||||
|
|
||||||
DECLARE_ACTION(A_MinotaurLook)
|
DECLARE_ACTION(A_MinotaurLook)
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AMinotaur, false, false, false, false)
|
IMPLEMENT_CLASS(AMinotaur, false, false)
|
||||||
|
|
||||||
void AMinotaur::Tick ()
|
void AMinotaur::Tick ()
|
||||||
{
|
{
|
||||||
|
@ -72,7 +72,7 @@ int AMinotaur::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
||||||
|
|
||||||
// Minotaur Friend ----------------------------------------------------------
|
// Minotaur Friend ----------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AMinotaurFriend, false, false, false, false)
|
IMPLEMENT_CLASS(AMinotaurFriend, false, false)
|
||||||
|
|
||||||
void AMinotaurFriend::BeginPlay ()
|
void AMinotaurFriend::BeginPlay ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,7 +28,7 @@ public:
|
||||||
void Deactivate (AActor *activator);
|
void Deactivate (AActor *activator);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASwitchableDecoration, false, false, false, false)
|
IMPLEMENT_CLASS(ASwitchableDecoration, false, false)
|
||||||
|
|
||||||
void ASwitchableDecoration::Activate (AActor *activator)
|
void ASwitchableDecoration::Activate (AActor *activator)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +49,7 @@ public:
|
||||||
void Deactivate (AActor *activator) {}
|
void Deactivate (AActor *activator) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASwitchingDecoration, false, false, false, false)
|
IMPLEMENT_CLASS(ASwitchingDecoration, false, false)
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
|
@ -295,7 +295,7 @@ class DCorpsePointer : public DThinker
|
||||||
HAS_OBJECT_POINTERS
|
HAS_OBJECT_POINTERS
|
||||||
public:
|
public:
|
||||||
DCorpsePointer (AActor *ptr);
|
DCorpsePointer (AActor *ptr);
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
void Serialize(FSerializer &arc);
|
void Serialize(FSerializer &arc);
|
||||||
TObjPtr<AActor> Corpse;
|
TObjPtr<AActor> Corpse;
|
||||||
DWORD Count; // Only the first corpse pointer's count is valid.
|
DWORD Count; // Only the first corpse pointer's count is valid.
|
||||||
|
@ -303,7 +303,7 @@ private:
|
||||||
DCorpsePointer () {}
|
DCorpsePointer () {}
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DCorpsePointer, false, true, false, false)
|
IMPLEMENT_CLASS(DCorpsePointer, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DCorpsePointer)
|
IMPLEMENT_POINTERS_START(DCorpsePointer)
|
||||||
IMPLEMENT_POINTER(Corpse)
|
IMPLEMENT_POINTER(Corpse)
|
||||||
|
|
|
@ -9,11 +9,11 @@
|
||||||
#include "serializer.h"
|
#include "serializer.h"
|
||||||
#include "cmdlib.h"
|
#include "cmdlib.h"
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AArmor, false, false, false, false)
|
IMPLEMENT_CLASS(AArmor, false, false)
|
||||||
IMPLEMENT_CLASS(ABasicArmor, false, false, false, false)
|
IMPLEMENT_CLASS(ABasicArmor, false, false)
|
||||||
IMPLEMENT_CLASS(ABasicArmorPickup, false, false, false, false)
|
IMPLEMENT_CLASS(ABasicArmorPickup, false, false)
|
||||||
IMPLEMENT_CLASS(ABasicArmorBonus, false, false, true, false)
|
IMPLEMENT_CLASS(ABasicArmorBonus, false, false)
|
||||||
IMPLEMENT_CLASS(AHexenArmor, false, false, false, false)
|
IMPLEMENT_CLASS(AHexenArmor, false, false)
|
||||||
|
|
||||||
|
|
||||||
DEFINE_FIELD(ABasicArmor, AbsorbCount)
|
DEFINE_FIELD(ABasicArmor, AbsorbCount)
|
||||||
|
|
|
@ -40,11 +40,11 @@ static FRandom pr_torch ("Torch");
|
||||||
#define TIMEFREEZE_TICS ( 12 * TICRATE )
|
#define TIMEFREEZE_TICS ( 12 * TICRATE )
|
||||||
*/
|
*/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerup, false, false, false, false)
|
IMPLEMENT_CLASS(APowerup, false, false)
|
||||||
|
|
||||||
// Powerup-Giver -------------------------------------------------------------
|
// Powerup-Giver -------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassPowerupGiver, false, false, false, false)
|
IMPLEMENT_CLASS(PClassPowerupGiver, false, false)
|
||||||
|
|
||||||
void PClassPowerupGiver::ReplaceClassRef(PClass *oldclass, PClass *newclass)
|
void PClassPowerupGiver::ReplaceClassRef(PClass *oldclass, PClass *newclass)
|
||||||
{
|
{
|
||||||
|
@ -388,7 +388,7 @@ bool APowerup::GetNoTeleportFreeze ()
|
||||||
|
|
||||||
// Invulnerability Powerup ---------------------------------------------------
|
// Invulnerability Powerup ---------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerInvulnerable, false, false, false, false)
|
IMPLEMENT_CLASS(APowerInvulnerable, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -525,7 +525,7 @@ int APowerInvulnerable::AlterWeaponSprite (visstyle_t *vis)
|
||||||
|
|
||||||
// Strength (aka Berserk) Powerup --------------------------------------------
|
// Strength (aka Berserk) Powerup --------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerStrength, false, false, false, false)
|
IMPLEMENT_CLASS(APowerStrength, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -590,7 +590,7 @@ PalEntry APowerStrength::GetBlend ()
|
||||||
|
|
||||||
// Invisibility Powerup ------------------------------------------------------
|
// Invisibility Powerup ------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerInvisibility, false, false, false, false)
|
IMPLEMENT_CLASS(APowerInvisibility, false, false)
|
||||||
|
|
||||||
// Invisibility flag combos
|
// Invisibility flag combos
|
||||||
#define INVISIBILITY_FLAGS1 (MF_SHADOW)
|
#define INVISIBILITY_FLAGS1 (MF_SHADOW)
|
||||||
|
@ -795,7 +795,7 @@ bool APowerInvisibility::HandlePickup (AInventory *item)
|
||||||
|
|
||||||
// Ironfeet Powerup ----------------------------------------------------------
|
// Ironfeet Powerup ----------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerIronFeet, false, false, false, false)
|
IMPLEMENT_CLASS(APowerIronFeet, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -832,7 +832,7 @@ void APowerIronFeet::DoEffect ()
|
||||||
|
|
||||||
// Strife Environment Suit Powerup -------------------------------------------
|
// Strife Environment Suit Powerup -------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerMask, false, false, false, false)
|
IMPLEMENT_CLASS(APowerMask, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -869,7 +869,7 @@ void APowerMask::DoEffect ()
|
||||||
|
|
||||||
// Light-Amp Powerup ---------------------------------------------------------
|
// Light-Amp Powerup ---------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerLightAmp, false, false, false, false)
|
IMPLEMENT_CLASS(APowerLightAmp, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -911,7 +911,7 @@ void APowerLightAmp::EndEffect ()
|
||||||
|
|
||||||
// Torch Powerup -------------------------------------------------------------
|
// Torch Powerup -------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerTorch, false, false, false, false)
|
IMPLEMENT_CLASS(APowerTorch, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -974,7 +974,7 @@ void APowerTorch::DoEffect ()
|
||||||
|
|
||||||
// Flight (aka Wings of Wrath) powerup ---------------------------------------
|
// Flight (aka Wings of Wrath) powerup ---------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerFlight, false, false, false, false)
|
IMPLEMENT_CLASS(APowerFlight, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1114,7 +1114,7 @@ bool APowerFlight::DrawPowerup (int x, int y)
|
||||||
|
|
||||||
// Weapon Level 2 (aka Tome of Power) Powerup --------------------------------
|
// Weapon Level 2 (aka Tome of Power) Powerup --------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerWeaponLevel2, false, false, false, false)
|
IMPLEMENT_CLASS(APowerWeaponLevel2, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1198,7 +1198,7 @@ void APowerWeaponLevel2::EndEffect ()
|
||||||
|
|
||||||
// Speed Powerup -------------------------------------------------------------
|
// Speed Powerup -------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerSpeed, false, false, false, false)
|
IMPLEMENT_CLASS(APowerSpeed, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(APowerSpeed, SpeedFlags)
|
DEFINE_FIELD(APowerSpeed, SpeedFlags)
|
||||||
|
|
||||||
|
@ -1287,11 +1287,11 @@ void APowerSpeed::DoEffect ()
|
||||||
|
|
||||||
// Minotaur (aka Dark Servant) powerup ---------------------------------------
|
// Minotaur (aka Dark Servant) powerup ---------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerMinotaur, false, false, false, false)
|
IMPLEMENT_CLASS(APowerMinotaur, false, false)
|
||||||
|
|
||||||
// Targeter powerup ---------------------------------------------------------
|
// Targeter powerup ---------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerTargeter, false, false, false, false)
|
IMPLEMENT_CLASS(APowerTargeter, false, false)
|
||||||
|
|
||||||
void APowerTargeter::Travelled ()
|
void APowerTargeter::Travelled ()
|
||||||
{
|
{
|
||||||
|
@ -1406,7 +1406,7 @@ void APowerTargeter::PositionAccuracy ()
|
||||||
|
|
||||||
// Frightener Powerup --------------------------------
|
// Frightener Powerup --------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerFrightener, false, false, false, false)
|
IMPLEMENT_CLASS(APowerFrightener, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1442,7 +1442,7 @@ void APowerFrightener::EndEffect ()
|
||||||
|
|
||||||
// Buddha Powerup --------------------------------
|
// Buddha Powerup --------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerBuddha, false, false, false, false)
|
IMPLEMENT_CLASS(APowerBuddha, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1478,11 +1478,11 @@ void APowerBuddha::EndEffect ()
|
||||||
|
|
||||||
// Scanner powerup ----------------------------------------------------------
|
// Scanner powerup ----------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerScanner, false, false, false, false)
|
IMPLEMENT_CLASS(APowerScanner, false, false)
|
||||||
|
|
||||||
// Time freezer powerup -----------------------------------------------------
|
// Time freezer powerup -----------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS( APowerTimeFreezer, false, false, false, false)
|
IMPLEMENT_CLASS( APowerTimeFreezer, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1609,7 +1609,7 @@ void APowerTimeFreezer::EndEffect()
|
||||||
|
|
||||||
// Damage powerup ------------------------------------------------------
|
// Damage powerup ------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerDamage, false, false, false, false)
|
IMPLEMENT_CLASS(APowerDamage, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1666,7 +1666,7 @@ void APowerDamage::ModifyDamage(int damage, FName damageType, int &newdamage, bo
|
||||||
|
|
||||||
// Quarter damage powerup ------------------------------------------------------
|
// Quarter damage powerup ------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerProtection, false, false, false, false)
|
IMPLEMENT_CLASS(APowerProtection, false, false)
|
||||||
|
|
||||||
#define PROTECTION_FLAGS3 (MF3_NORADIUSDMG | MF3_DONTMORPH | MF3_DONTSQUASH | MF3_DONTBLAST | MF3_NOTELEOTHER)
|
#define PROTECTION_FLAGS3 (MF3_NORADIUSDMG | MF3_DONTMORPH | MF3_DONTSQUASH | MF3_DONTBLAST | MF3_NOTELEOTHER)
|
||||||
#define PROTECTION_FLAGS5 (MF5_NOPAIN | MF5_DONTRIP)
|
#define PROTECTION_FLAGS5 (MF5_NOPAIN | MF5_DONTRIP)
|
||||||
|
@ -1744,7 +1744,7 @@ void APowerProtection::ModifyDamage(int damage, FName damageType, int &newdamage
|
||||||
|
|
||||||
// Drain rune -------------------------------------------------------
|
// Drain rune -------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerDrain, false, false, false, false)
|
IMPLEMENT_CLASS(APowerDrain, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1784,7 +1784,7 @@ void APowerDrain::EndEffect( )
|
||||||
|
|
||||||
// Regeneration rune -------------------------------------------------------
|
// Regeneration rune -------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerRegeneration, false, false, false, false)
|
IMPLEMENT_CLASS(APowerRegeneration, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1806,7 +1806,7 @@ void APowerRegeneration::DoEffect()
|
||||||
|
|
||||||
// High jump rune -------------------------------------------------------
|
// High jump rune -------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerHighJump, false, false, false, false)
|
IMPLEMENT_CLASS(APowerHighJump, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1844,7 +1844,7 @@ void APowerHighJump::EndEffect( )
|
||||||
|
|
||||||
// Double firing speed rune ---------------------------------------------
|
// Double firing speed rune ---------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerDoubleFiringSpeed, false, false, false, false)
|
IMPLEMENT_CLASS(APowerDoubleFiringSpeed, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1882,7 +1882,7 @@ void APowerDoubleFiringSpeed::EndEffect( )
|
||||||
|
|
||||||
// Morph powerup ------------------------------------------------------
|
// Morph powerup ------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerMorph, false, false, false, false)
|
IMPLEMENT_CLASS(APowerMorph, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(APowerMorph, PlayerClass)
|
DEFINE_FIELD(APowerMorph, PlayerClass)
|
||||||
DEFINE_FIELD(APowerMorph, MorphFlash)
|
DEFINE_FIELD(APowerMorph, MorphFlash)
|
||||||
|
@ -1990,7 +1990,7 @@ void APowerMorph::EndEffect( )
|
||||||
|
|
||||||
// Infinite Ammo Powerup -----------------------------------------------------
|
// Infinite Ammo Powerup -----------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerInfiniteAmmo, false, false, false, false)
|
IMPLEMENT_CLASS(APowerInfiniteAmmo, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -12,7 +12,7 @@ class APowerup : public AInventory
|
||||||
DECLARE_CLASS (APowerup, AInventory)
|
DECLARE_CLASS (APowerup, AInventory)
|
||||||
public:
|
public:
|
||||||
virtual void Tick ();
|
virtual void Tick ();
|
||||||
virtual void Destroy ();
|
virtual void Destroy () override;
|
||||||
virtual bool HandlePickup (AInventory *item);
|
virtual bool HandlePickup (AInventory *item);
|
||||||
virtual AInventory *CreateCopy (AActor *other);
|
virtual AInventory *CreateCopy (AActor *other);
|
||||||
virtual AInventory *CreateTossable ();
|
virtual AInventory *CreateTossable ();
|
||||||
|
|
|
@ -37,10 +37,10 @@ class ACustomBridge : public AActor
|
||||||
DECLARE_CLASS (ACustomBridge, AActor)
|
DECLARE_CLASS (ACustomBridge, AActor)
|
||||||
public:
|
public:
|
||||||
void BeginPlay ();
|
void BeginPlay ();
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ACustomBridge, false, false, false, false)
|
IMPLEMENT_CLASS(ACustomBridge, false, false)
|
||||||
|
|
||||||
void ACustomBridge::BeginPlay ()
|
void ACustomBridge::BeginPlay ()
|
||||||
{
|
{
|
||||||
|
@ -155,7 +155,7 @@ public:
|
||||||
void BeginPlay ();
|
void BeginPlay ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AInvisibleBridge, false, false, false, false)
|
IMPLEMENT_CLASS(AInvisibleBridge, false, false)
|
||||||
|
|
||||||
void AInvisibleBridge::BeginPlay ()
|
void AInvisibleBridge::BeginPlay ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -64,7 +64,7 @@ protected:
|
||||||
DAngle Range;
|
DAngle Range;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecurityCamera, false, false, false, false)
|
IMPLEMENT_CLASS(ASecurityCamera, false, false)
|
||||||
|
|
||||||
void ASecurityCamera::Serialize(FSerializer &arc)
|
void ASecurityCamera::Serialize(FSerializer &arc)
|
||||||
{
|
{
|
||||||
|
@ -124,7 +124,7 @@ protected:
|
||||||
DAngle MaxPitchChange;
|
DAngle MaxPitchChange;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AAimingCamera, false, false, false, false)
|
IMPLEMENT_CLASS(AAimingCamera, false, false)
|
||||||
|
|
||||||
void AAimingCamera::Serialize(FSerializer &arc)
|
void AAimingCamera::Serialize(FSerializer &arc)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,5 +23,5 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AGlassShard, false, false, false, false)
|
IMPLEMENT_CLASS(AGlassShard, false, false)
|
||||||
|
|
||||||
|
|
|
@ -58,14 +58,14 @@ static int ImpactCount;
|
||||||
|
|
||||||
CVAR (Bool, cl_spreaddecals, true, CVAR_ARCHIVE)
|
CVAR (Bool, cl_spreaddecals, true, CVAR_ARCHIVE)
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DBaseDecal, false, true, false, false)
|
IMPLEMENT_CLASS(DBaseDecal, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DBaseDecal)
|
IMPLEMENT_POINTERS_START(DBaseDecal)
|
||||||
IMPLEMENT_POINTER(WallPrev)
|
IMPLEMENT_POINTER(WallPrev)
|
||||||
IMPLEMENT_POINTER(WallNext)
|
IMPLEMENT_POINTER(WallNext)
|
||||||
IMPLEMENT_POINTERS_END
|
IMPLEMENT_POINTERS_END
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DImpactDecal, false, false, false, false)
|
IMPLEMENT_CLASS(DImpactDecal, false, false)
|
||||||
|
|
||||||
DBaseDecal::DBaseDecal ()
|
DBaseDecal::DBaseDecal ()
|
||||||
: DThinker(STAT_DECAL),
|
: DThinker(STAT_DECAL),
|
||||||
|
@ -746,7 +746,7 @@ public:
|
||||||
void BeginPlay ();
|
void BeginPlay ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ADecal, false, false, false, false)
|
IMPLEMENT_CLASS(ADecal, false, false)
|
||||||
|
|
||||||
void ADecal::BeginPlay ()
|
void ADecal::BeginPlay ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include "p_checkposition.h"
|
#include "p_checkposition.h"
|
||||||
#include "virtual.h"
|
#include "virtual.h"
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AFastProjectile, false, false, false, false)
|
IMPLEMENT_CLASS(AFastProjectile, false, false)
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
@ -135,11 +135,13 @@ void AFastProjectile::Tick ()
|
||||||
ripcount = count >> 3;
|
ripcount = count >> 3;
|
||||||
|
|
||||||
// call the scripted 'Effect' method.
|
// call the scripted 'Effect' method.
|
||||||
VINDEX(AFastProjectile, Effect);
|
IFVIRTUAL(AFastProjectile, Effect)
|
||||||
// Without the type cast this picks the 'void *' assignment...
|
{
|
||||||
VMValue params[1] = { (DObject*)this };
|
// Without the type cast this picks the 'void *' assignment...
|
||||||
VMFrameStack stack;
|
VMValue params[1] = { (DObject*)this };
|
||||||
stack.Call(VFUNC, params, 1, nullptr, 0, nullptr);
|
VMFrameStack stack;
|
||||||
|
stack.Call(func, params, 1, nullptr, 0, nullptr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#include "d_player.h"
|
#include "d_player.h"
|
||||||
#include "serializer.h"
|
#include "serializer.h"
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DFlashFader, false, true, false, false)
|
IMPLEMENT_CLASS(DFlashFader, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DFlashFader)
|
IMPLEMENT_POINTERS_START(DFlashFader)
|
||||||
IMPLEMENT_POINTER(ForWho)
|
IMPLEMENT_POINTER(ForWho)
|
||||||
|
|
|
@ -46,13 +46,13 @@ public:
|
||||||
void Deactivate (AActor *activator);
|
void Deactivate (AActor *activator);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AParticleFountain, false, false, false, false)
|
IMPLEMENT_CLASS(AParticleFountain, false, false)
|
||||||
|
|
||||||
void AParticleFountain::PostBeginPlay ()
|
void AParticleFountain::PostBeginPlay ()
|
||||||
{
|
{
|
||||||
Super::PostBeginPlay ();
|
Super::PostBeginPlay ();
|
||||||
if (!(SpawnFlags & MTF_DORMANT))
|
if (!(SpawnFlags & MTF_DORMANT))
|
||||||
Activate (NULL);
|
CallActivate (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AParticleFountain::Activate (AActor *activator)
|
void AParticleFountain::Activate (AActor *activator)
|
||||||
|
|
|
@ -46,7 +46,7 @@ public:
|
||||||
int TakeSpecialDamage(AActor *inflictor, AActor *source, int damage, FName damagetype);
|
int TakeSpecialDamage(AActor *inflictor, AActor *source, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AHateTarget, false, false, false, false)
|
IMPLEMENT_CLASS(AHateTarget, false, false)
|
||||||
|
|
||||||
void AHateTarget::BeginPlay()
|
void AHateTarget::BeginPlay()
|
||||||
{
|
{
|
||||||
|
|
|
@ -470,7 +470,7 @@ bool P_CheckKeys (AActor *owner, int keynum, bool remote)
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AKey, false, false, false, false)
|
IMPLEMENT_CLASS(AKey, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(AKey, KeyNumber)
|
DEFINE_FIELD(AKey, KeyNumber)
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
static FRandom pr_lightning ("Lightning");
|
static FRandom pr_lightning ("Lightning");
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DLightningThinker, false, false, false, false)
|
IMPLEMENT_CLASS(DLightningThinker, false, false)
|
||||||
|
|
||||||
DLightningThinker::DLightningThinker ()
|
DLightningThinker::DLightningThinker ()
|
||||||
: DThinker (STAT_LIGHTNING)
|
: DThinker (STAT_LIGHTNING)
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
//
|
//
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AMapMarker, false, false, false, false)
|
IMPLEMENT_CLASS(AMapMarker, false, false)
|
||||||
|
|
||||||
void AMapMarker::BeginPlay ()
|
void AMapMarker::BeginPlay ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -616,7 +616,7 @@ void InitAllPowerupEffects(AInventory *item)
|
||||||
|
|
||||||
// Base class for morphing projectiles --------------------------------------
|
// Base class for morphing projectiles --------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AMorphProjectile, false, false, false, false)
|
IMPLEMENT_CLASS(AMorphProjectile, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(AMorphProjectile, PlayerClass)
|
DEFINE_FIELD(AMorphProjectile, PlayerClass)
|
||||||
DEFINE_FIELD(AMorphProjectile, MonsterClass)
|
DEFINE_FIELD(AMorphProjectile, MonsterClass)
|
||||||
|
@ -653,7 +653,7 @@ void AMorphProjectile::Serialize(FSerializer &arc)
|
||||||
|
|
||||||
// Morphed Monster (you must subclass this to do something useful) ---------
|
// Morphed Monster (you must subclass this to do something useful) ---------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AMorphedMonster, false, true, false, false)
|
IMPLEMENT_CLASS(AMorphedMonster, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(AMorphedMonster)
|
IMPLEMENT_POINTERS_START(AMorphedMonster)
|
||||||
IMPLEMENT_POINTER(UnmorphedMe)
|
IMPLEMENT_POINTER(UnmorphedMe)
|
||||||
|
|
|
@ -66,7 +66,7 @@ public:
|
||||||
TObjPtr<AInterpolationPoint> Next;
|
TObjPtr<AInterpolationPoint> Next;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AInterpolationPoint, false, true, false, false)
|
IMPLEMENT_CLASS(AInterpolationPoint, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(AInterpolationPoint)
|
IMPLEMENT_POINTERS_START(AInterpolationPoint)
|
||||||
IMPLEMENT_POINTER(Next)
|
IMPLEMENT_POINTER(Next)
|
||||||
|
@ -135,7 +135,7 @@ public:
|
||||||
void Tick () {} // Does absolutely nothing itself
|
void Tick () {} // Does absolutely nothing itself
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AInterpolationSpecial, false, false, false, false)
|
IMPLEMENT_CLASS(AInterpolationSpecial, false, false)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
== PathFollower: something that follows a camera path
|
== PathFollower: something that follows a camera path
|
||||||
|
@ -178,7 +178,7 @@ protected:
|
||||||
int HoldTime;
|
int HoldTime;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APathFollower, false, true, false, false)
|
IMPLEMENT_CLASS(APathFollower, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(APathFollower)
|
IMPLEMENT_POINTERS_START(APathFollower)
|
||||||
IMPLEMENT_POINTER(PrevNode)
|
IMPLEMENT_POINTER(PrevNode)
|
||||||
|
@ -342,9 +342,9 @@ void APathFollower::Tick ()
|
||||||
if (CurrNode != NULL)
|
if (CurrNode != NULL)
|
||||||
NewNode ();
|
NewNode ();
|
||||||
if (CurrNode == NULL || CurrNode->Next == NULL)
|
if (CurrNode == NULL || CurrNode->Next == NULL)
|
||||||
Deactivate (this);
|
CallDeactivate (this);
|
||||||
if ((args[2] & 1) == 0 && CurrNode->Next->Next == NULL)
|
if ((args[2] & 1) == 0 && CurrNode->Next->Next == NULL)
|
||||||
Deactivate (this);
|
CallDeactivate (this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -480,7 +480,7 @@ protected:
|
||||||
bool Interpolate ();
|
bool Interpolate ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AActorMover, false, false, false, false)
|
IMPLEMENT_CLASS(AActorMover, false, false)
|
||||||
|
|
||||||
void AActorMover::BeginPlay()
|
void AActorMover::BeginPlay()
|
||||||
{
|
{
|
||||||
|
@ -596,7 +596,7 @@ protected:
|
||||||
TObjPtr<AActor> Activator;
|
TObjPtr<AActor> Activator;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AMovingCamera, false, true, false, false)
|
IMPLEMENT_CLASS(AMovingCamera, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(AMovingCamera)
|
IMPLEMENT_POINTERS_START(AMovingCamera)
|
||||||
IMPLEMENT_POINTER(Activator)
|
IMPLEMENT_POINTER(Activator)
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
static FRandom pr_restore ("RestorePos");
|
static FRandom pr_restore ("RestorePos");
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassInventory, false, false, false, false)
|
IMPLEMENT_CLASS(PClassInventory, false, false)
|
||||||
|
|
||||||
PClassInventory::PClassInventory()
|
PClassInventory::PClassInventory()
|
||||||
{
|
{
|
||||||
|
@ -70,7 +70,7 @@ void PClassInventory::Finalize(FStateDefinitions &statedef)
|
||||||
((AActor*)Defaults)->flags |= MF_SPECIAL;
|
((AActor*)Defaults)->flags |= MF_SPECIAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassAmmo, false, false, false, false)
|
IMPLEMENT_CLASS(PClassAmmo, false, false)
|
||||||
|
|
||||||
PClassAmmo::PClassAmmo()
|
PClassAmmo::PClassAmmo()
|
||||||
{
|
{
|
||||||
|
@ -86,7 +86,7 @@ void PClassAmmo::DeriveData(PClass *newclass)
|
||||||
newc->DropAmount = DropAmount;
|
newc->DropAmount = DropAmount;
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AAmmo, false, false, false, false)
|
IMPLEMENT_CLASS(AAmmo, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(AAmmo, BackpackAmount)
|
DEFINE_FIELD(AAmmo, BackpackAmount)
|
||||||
DEFINE_FIELD(AAmmo, BackpackMaxAmount)
|
DEFINE_FIELD(AAmmo, BackpackMaxAmount)
|
||||||
|
@ -480,7 +480,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_RestoreSpecialPosition)
|
||||||
int AInventory::StaticLastMessageTic;
|
int AInventory::StaticLastMessageTic;
|
||||||
const char *AInventory::StaticLastMessage;
|
const char *AInventory::StaticLastMessage;
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AInventory, false, true, false, false)
|
IMPLEMENT_CLASS(AInventory, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(AInventory)
|
IMPLEMENT_POINTERS_START(AInventory)
|
||||||
IMPLEMENT_POINTER(Owner)
|
IMPLEMENT_POINTER(Owner)
|
||||||
|
@ -1378,7 +1378,7 @@ bool AInventory::DrawPowerup (int x, int y)
|
||||||
/* AArtifact implementation */
|
/* AArtifact implementation */
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerupGiver, false, false, false, false)
|
IMPLEMENT_CLASS(APowerupGiver, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1679,8 +1679,8 @@ void AInventory::DetachFromOwner ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AStateProvider, false, false, false, false)
|
IMPLEMENT_CLASS(AStateProvider, false, false)
|
||||||
IMPLEMENT_CLASS(ACustomInventory, false, false, false, false)
|
IMPLEMENT_CLASS(ACustomInventory, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1725,7 +1725,7 @@ bool ACustomInventory::TryPickup (AActor *&toucher)
|
||||||
return useok;
|
return useok;
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassHealth, false, false, false, false)
|
IMPLEMENT_CLASS(PClassHealth, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1754,7 +1754,7 @@ void PClassHealth::DeriveData(PClass *newclass)
|
||||||
newc->LowHealthMessage = LowHealthMessage;
|
newc->LowHealthMessage = LowHealthMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AHealth, false, false, false, false)
|
IMPLEMENT_CLASS(AHealth, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(AHealth, PrevHealth)
|
DEFINE_FIELD(AHealth, PrevHealth)
|
||||||
|
|
||||||
|
@ -1799,7 +1799,7 @@ bool AHealth::TryPickup (AActor *&other)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AHealthPickup, false, false, false, false)
|
IMPLEMENT_CLASS(AHealthPickup, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(AHealthPickup, autousemode)
|
DEFINE_FIELD(AHealthPickup, autousemode)
|
||||||
|
|
||||||
|
@ -1879,7 +1879,7 @@ void AHealthPickup::Serialize(FSerializer &arc)
|
||||||
|
|
||||||
// Backpack -----------------------------------------------------------------
|
// Backpack -----------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ABackpackItem, false, false, false, false)
|
IMPLEMENT_CLASS(ABackpackItem, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(ABackpackItem, bDepleted)
|
DEFINE_FIELD(ABackpackItem, bDepleted)
|
||||||
|
|
||||||
|
@ -2058,7 +2058,7 @@ void ABackpackItem::DetachFromOwner ()
|
||||||
//
|
//
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AMapRevealer, false, false, false, false)
|
IMPLEMENT_CLASS(AMapRevealer, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -2083,7 +2083,7 @@ bool AMapRevealer::TryPickup (AActor *&toucher)
|
||||||
//
|
//
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AScoreItem, false, false, false, false)
|
IMPLEMENT_CLASS(AScoreItem, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -159,7 +159,7 @@ public:
|
||||||
|
|
||||||
virtual void MarkPrecacheSounds() const;
|
virtual void MarkPrecacheSounds() const;
|
||||||
virtual void BeginPlay ();
|
virtual void BeginPlay ();
|
||||||
virtual void Destroy ();
|
virtual void Destroy () override;
|
||||||
virtual void DepleteOrDestroy ();
|
virtual void DepleteOrDestroy ();
|
||||||
virtual void Tick ();
|
virtual void Tick ();
|
||||||
virtual bool ShouldRespawn ();
|
virtual bool ShouldRespawn ();
|
||||||
|
@ -331,7 +331,7 @@ public:
|
||||||
virtual bool TryPickupRestricted (AActor *&toucher);
|
virtual bool TryPickupRestricted (AActor *&toucher);
|
||||||
virtual bool PickupForAmmo (AWeapon *ownedWeapon);
|
virtual bool PickupForAmmo (AWeapon *ownedWeapon);
|
||||||
virtual bool Use (bool pickup);
|
virtual bool Use (bool pickup);
|
||||||
virtual void Destroy();
|
virtual void Destroy() override;
|
||||||
|
|
||||||
virtual FState *GetUpState ();
|
virtual FState *GetUpState ();
|
||||||
virtual FState *GetDownState ();
|
virtual FState *GetDownState ();
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include "doomstat.h"
|
#include "doomstat.h"
|
||||||
#include "v_font.h"
|
#include "v_font.h"
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassPuzzleItem, false, false, false, false)
|
IMPLEMENT_CLASS(PClassPuzzleItem, false, false)
|
||||||
|
|
||||||
void PClassPuzzleItem::DeriveData(PClass *newclass)
|
void PClassPuzzleItem::DeriveData(PClass *newclass)
|
||||||
{
|
{
|
||||||
|
@ -17,7 +17,7 @@ void PClassPuzzleItem::DeriveData(PClass *newclass)
|
||||||
static_cast<PClassPuzzleItem *>(newclass)->PuzzFailMessage = PuzzFailMessage;
|
static_cast<PClassPuzzleItem *>(newclass)->PuzzFailMessage = PuzzFailMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APuzzleItem, false, false, false, false)
|
IMPLEMENT_CLASS(APuzzleItem, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(APuzzleItem, PuzzleItemNumber)
|
DEFINE_FIELD(APuzzleItem, PuzzleItemNumber)
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
static FRandom pr_quake ("Quake");
|
static FRandom pr_quake ("Quake");
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DEarthquake, false, true, false, false)
|
IMPLEMENT_CLASS(DEarthquake, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DEarthquake)
|
IMPLEMENT_POINTERS_START(DEarthquake)
|
||||||
IMPLEMENT_POINTER(m_Spot)
|
IMPLEMENT_POINTER(m_Spot)
|
||||||
|
|
|
@ -230,4 +230,4 @@ class ARandomSpawner : public AActor
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ARandomSpawner, false, false, false, false)
|
IMPLEMENT_CLASS(ARandomSpawner, false, false)
|
||||||
|
|
|
@ -50,7 +50,7 @@ public:
|
||||||
void Activate (AActor *activator);
|
void Activate (AActor *activator);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecretTrigger, false, false, false, false)
|
IMPLEMENT_CLASS(ASecretTrigger, false, false)
|
||||||
|
|
||||||
void ASecretTrigger::PostBeginPlay ()
|
void ASecretTrigger::PostBeginPlay ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
// The base class for sector actions ----------------------------------------
|
// The base class for sector actions ----------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASectorAction, false, false, false, false)
|
IMPLEMENT_CLASS(ASectorAction, false, false)
|
||||||
|
|
||||||
ASectorAction::ASectorAction (bool activatedByUse) :
|
ASectorAction::ASectorAction (bool activatedByUse) :
|
||||||
ActivatedByUse (activatedByUse) {}
|
ActivatedByUse (activatedByUse) {}
|
||||||
|
@ -142,7 +142,7 @@ public:
|
||||||
bool DoTriggerAction (AActor *triggerer, int activationType);
|
bool DoTriggerAction (AActor *triggerer, int activationType);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActEnter, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActEnter, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActEnter::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActEnter::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
@ -160,7 +160,7 @@ public:
|
||||||
bool DoTriggerAction (AActor *triggerer, int activationType);
|
bool DoTriggerAction (AActor *triggerer, int activationType);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActExit, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActExit, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActExit::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActExit::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
@ -181,7 +181,7 @@ public:
|
||||||
// Skull Tag uses 9999 for a special that is triggered whenever
|
// 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.
|
// the player is on the sector's floor. I think this is more useful.
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActHitFloor, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActHitFloor, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActHitFloor::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActHitFloor::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
@ -199,7 +199,7 @@ public:
|
||||||
bool DoTriggerAction (AActor *triggerer, int activationType);
|
bool DoTriggerAction (AActor *triggerer, int activationType);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActHitCeil, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActHitCeil, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActHitCeil::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActHitCeil::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
@ -218,7 +218,7 @@ public:
|
||||||
bool DoTriggerAction (AActor *triggerer, int activationType);
|
bool DoTriggerAction (AActor *triggerer, int activationType);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActUse, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActUse, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActUse::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActUse::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
@ -237,7 +237,7 @@ public:
|
||||||
bool DoTriggerAction (AActor *triggerer, int activationType);
|
bool DoTriggerAction (AActor *triggerer, int activationType);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActUseWall, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActUseWall, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActUseWall::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActUseWall::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
@ -255,7 +255,7 @@ public:
|
||||||
bool DoTriggerAction (AActor *triggerer, int activationType);
|
bool DoTriggerAction (AActor *triggerer, int activationType);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActEyesDive, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActEyesDive, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActEyesDive::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActEyesDive::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
@ -273,7 +273,7 @@ public:
|
||||||
bool DoTriggerAction (AActor *triggerer, int activationType);
|
bool DoTriggerAction (AActor *triggerer, int activationType);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActEyesSurface, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActEyesSurface, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActEyesSurface::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActEyesSurface::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
@ -291,7 +291,7 @@ public:
|
||||||
bool DoTriggerAction (AActor *triggerer, int activationType);
|
bool DoTriggerAction (AActor *triggerer, int activationType);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActEyesBelowC, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActEyesBelowC, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActEyesBelowC::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActEyesBelowC::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
@ -309,7 +309,7 @@ public:
|
||||||
bool DoTriggerAction (AActor *triggerer, int activationType);
|
bool DoTriggerAction (AActor *triggerer, int activationType);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActEyesAboveC, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActEyesAboveC, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActEyesAboveC::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActEyesAboveC::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
@ -327,7 +327,7 @@ public:
|
||||||
bool DoTriggerAction (AActor *triggerer, int activationType);
|
bool DoTriggerAction (AActor *triggerer, int activationType);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASecActHitFakeFloor, false, false, false, false)
|
IMPLEMENT_CLASS(ASecActHitFakeFloor, false, false)
|
||||||
|
|
||||||
|
|
||||||
bool ASecActHitFakeFloor::DoTriggerAction (AActor *triggerer, int activationType)
|
bool ASecActHitFakeFloor::DoTriggerAction (AActor *triggerer, int activationType)
|
||||||
|
|
|
@ -15,7 +15,7 @@ class AColorSetter : public AActor
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AColorSetter, false, false, false, false)
|
IMPLEMENT_CLASS(AColorSetter, false, false)
|
||||||
|
|
||||||
class AFadeSetter : public AActor
|
class AFadeSetter : public AActor
|
||||||
{
|
{
|
||||||
|
@ -30,4 +30,4 @@ class AFadeSetter : public AActor
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AFadeSetter, false, false, false, false)
|
IMPLEMENT_CLASS(AFadeSetter, false, false)
|
||||||
|
|
|
@ -24,7 +24,7 @@ public:
|
||||||
DBaseDecal (const DBaseDecal *basis);
|
DBaseDecal (const DBaseDecal *basis);
|
||||||
|
|
||||||
void Serialize(FSerializer &arc);
|
void Serialize(FSerializer &arc);
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
FTextureID StickToWall(side_t *wall, double x, double y, F3DFloor * ffloor);
|
FTextureID StickToWall(side_t *wall, double x, double y, F3DFloor * ffloor);
|
||||||
double GetRealZ (const side_t *wall) const;
|
double GetRealZ (const side_t *wall) const;
|
||||||
void SetShade (DWORD rgb);
|
void SetShade (DWORD rgb);
|
||||||
|
@ -66,7 +66,7 @@ public:
|
||||||
static DImpactDecal *StaticCreate(const FDecalTemplate *tpl, const DVector3 &pos, side_t *wall, F3DFloor * ffloor, PalEntry color = 0);
|
static DImpactDecal *StaticCreate(const FDecalTemplate *tpl, const DVector3 &pos, side_t *wall, F3DFloor * ffloor, PalEntry color = 0);
|
||||||
|
|
||||||
void BeginPlay ();
|
void BeginPlay ();
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DBaseDecal *CloneSelf(const FDecalTemplate *tpl, double x, double y, double z, side_t *wall, F3DFloor * ffloor) const;
|
DBaseDecal *CloneSelf(const FDecalTemplate *tpl, double x, double y, double z, side_t *wall, F3DFloor * ffloor) const;
|
||||||
|
@ -88,7 +88,7 @@ class ASkyViewpoint : public AActor
|
||||||
DECLARE_CLASS (ASkyViewpoint, AActor)
|
DECLARE_CLASS (ASkyViewpoint, AActor)
|
||||||
public:
|
public:
|
||||||
void BeginPlay ();
|
void BeginPlay ();
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
// For an EE compatible linedef based definition.
|
// For an EE compatible linedef based definition.
|
||||||
|
@ -116,7 +116,7 @@ public:
|
||||||
DFlashFader (float r1, float g1, float b1, float a1,
|
DFlashFader (float r1, float g1, float b1, float a1,
|
||||||
float r2, float g2, float b2, float a2,
|
float r2, float g2, float b2, float a2,
|
||||||
float time, AActor *who);
|
float time, AActor *who);
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
void Serialize(FSerializer &arc);
|
void Serialize(FSerializer &arc);
|
||||||
void Tick ();
|
void Tick ();
|
||||||
AActor *WhoFor() { return ForWho; }
|
AActor *WhoFor() { return ForWho; }
|
||||||
|
@ -206,7 +206,7 @@ public:
|
||||||
|
|
||||||
void Serialize(FSerializer &arc);
|
void Serialize(FSerializer &arc);
|
||||||
void Die (AActor *source, AActor *inflictor, int dmgflags);
|
void Die (AActor *source, AActor *inflictor, int dmgflags);
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
|
|
||||||
TObjPtr<AActor> UnmorphedMe;
|
TObjPtr<AActor> UnmorphedMe;
|
||||||
int UnmorphTime, MorphStyle;
|
int UnmorphTime, MorphStyle;
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
|
|
||||||
// arg0 = Visibility*4 for this skybox
|
// arg0 = Visibility*4 for this skybox
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASkyViewpoint, false, false, false, false)
|
IMPLEMENT_CLASS(ASkyViewpoint, false, false)
|
||||||
|
|
||||||
// If this actor has no TID, make it the default sky box
|
// If this actor has no TID, make it the default sky box
|
||||||
void ASkyViewpoint::BeginPlay ()
|
void ASkyViewpoint::BeginPlay ()
|
||||||
|
@ -73,7 +73,7 @@ void ASkyViewpoint::Destroy ()
|
||||||
Super::Destroy();
|
Super::Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASkyCamCompat, false, false, false, false)
|
IMPLEMENT_CLASS(ASkyCamCompat, false, false)
|
||||||
|
|
||||||
void ASkyCamCompat::BeginPlay()
|
void ASkyCamCompat::BeginPlay()
|
||||||
{
|
{
|
||||||
|
@ -98,7 +98,7 @@ public:
|
||||||
void PostBeginPlay ();
|
void PostBeginPlay ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASkyPicker, false, false, false, false)
|
IMPLEMENT_CLASS(ASkyPicker, false, false)
|
||||||
|
|
||||||
void ASkyPicker::PostBeginPlay ()
|
void ASkyPicker::PostBeginPlay ()
|
||||||
{
|
{
|
||||||
|
@ -142,7 +142,7 @@ void ASkyPicker::PostBeginPlay ()
|
||||||
|
|
||||||
// arg0 = opacity of plane; 0 = invisible, 255 = fully opaque
|
// arg0 = opacity of plane; 0 = invisible, 255 = fully opaque
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AStackPoint, false, false, false, false)
|
IMPLEMENT_CLASS(AStackPoint, false, false)
|
||||||
|
|
||||||
void AStackPoint::BeginPlay ()
|
void AStackPoint::BeginPlay ()
|
||||||
{
|
{
|
||||||
|
@ -157,10 +157,10 @@ class ASectorSilencer : public AActor
|
||||||
DECLARE_CLASS (ASectorSilencer, AActor)
|
DECLARE_CLASS (ASectorSilencer, AActor)
|
||||||
public:
|
public:
|
||||||
void BeginPlay ();
|
void BeginPlay ();
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASectorSilencer, false, false, false, false)
|
IMPLEMENT_CLASS(ASectorSilencer, false, false)
|
||||||
|
|
||||||
void ASectorSilencer::BeginPlay ()
|
void ASectorSilencer::BeginPlay ()
|
||||||
{
|
{
|
||||||
|
@ -184,7 +184,7 @@ public:
|
||||||
void BeginPlay ();
|
void BeginPlay ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASectorFlagSetter, false, false, false, false)
|
IMPLEMENT_CLASS(ASectorFlagSetter, false, false)
|
||||||
|
|
||||||
void ASectorFlagSetter::BeginPlay ()
|
void ASectorFlagSetter::BeginPlay ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -46,14 +46,14 @@ public:
|
||||||
void Activate (AActor *deactivator);
|
void Activate (AActor *deactivator);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASoundEnvironment, false, false, false, false)
|
IMPLEMENT_CLASS(ASoundEnvironment, false, false)
|
||||||
|
|
||||||
void ASoundEnvironment::PostBeginPlay ()
|
void ASoundEnvironment::PostBeginPlay ()
|
||||||
{
|
{
|
||||||
Super::PostBeginPlay ();
|
Super::PostBeginPlay ();
|
||||||
if (!(flags2 & MF2_DORMANT))
|
if (!(flags2 & MF2_DORMANT))
|
||||||
{
|
{
|
||||||
Activate (this);
|
CallActivate (this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ public:
|
||||||
TObjPtr<DSeqNode> Sequence;
|
TObjPtr<DSeqNode> Sequence;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASoundSequenceSlot, false, true, false, false)
|
IMPLEMENT_CLASS(ASoundSequenceSlot, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(ASoundSequenceSlot)
|
IMPLEMENT_POINTERS_START(ASoundSequenceSlot)
|
||||||
IMPLEMENT_POINTER(Sequence)
|
IMPLEMENT_POINTER(Sequence)
|
||||||
|
@ -104,14 +104,14 @@ class ASoundSequence : public AActor
|
||||||
{
|
{
|
||||||
DECLARE_CLASS (ASoundSequence, AActor)
|
DECLARE_CLASS (ASoundSequence, AActor)
|
||||||
public:
|
public:
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
void PostBeginPlay ();
|
void PostBeginPlay ();
|
||||||
void Activate (AActor *activator);
|
void Activate (AActor *activator);
|
||||||
void Deactivate (AActor *activator);
|
void Deactivate (AActor *activator);
|
||||||
void MarkPrecacheSounds () const;
|
void MarkPrecacheSounds () const;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASoundSequence, false, false, false, false)
|
IMPLEMENT_CLASS(ASoundSequence, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -45,7 +45,7 @@ public:
|
||||||
void Activate (AActor *activator);
|
void Activate (AActor *activator);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASpark, false, false, false, false)
|
IMPLEMENT_CLASS(ASpark, false, false)
|
||||||
|
|
||||||
void ASpark::Activate (AActor *activator)
|
void ASpark::Activate (AActor *activator)
|
||||||
{
|
{
|
||||||
|
|
|
@ -44,8 +44,8 @@
|
||||||
static FRandom pr_spot ("SpecialSpot");
|
static FRandom pr_spot ("SpecialSpot");
|
||||||
static FRandom pr_spawnmace ("SpawnMace");
|
static FRandom pr_spawnmace ("SpawnMace");
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DSpotState, false, false, false, false)
|
IMPLEMENT_CLASS(DSpotState, false, false)
|
||||||
IMPLEMENT_CLASS(ASpecialSpot, false, false, false, false)
|
IMPLEMENT_CLASS(ASpecialSpot, false, false)
|
||||||
TObjPtr<DSpotState> DSpotState::SpotState;
|
TObjPtr<DSpotState> DSpotState::SpotState;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|
|
@ -11,7 +11,7 @@ class ASpecialSpot : public AActor
|
||||||
public:
|
public:
|
||||||
|
|
||||||
void BeginPlay();
|
void BeginPlay();
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ public:
|
||||||
|
|
||||||
|
|
||||||
DSpotState ();
|
DSpotState ();
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
void Tick ();
|
void Tick ();
|
||||||
static DSpotState *GetSpotState(bool create = true);
|
static DSpotState *GetSpotState(bool create = true);
|
||||||
FSpotList *FindSpotList(PClassActor *type);
|
FSpotList *FindSpotList(PClassActor *type);
|
||||||
|
|
|
@ -42,7 +42,7 @@ public:
|
||||||
void PostBeginPlay ();
|
void PostBeginPlay ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AWaterZone, false, false, false, false)
|
IMPLEMENT_CLASS(AWaterZone, false, false)
|
||||||
|
|
||||||
void AWaterZone::PostBeginPlay ()
|
void AWaterZone::PostBeginPlay ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
#include "doomstat.h"
|
#include "doomstat.h"
|
||||||
#include "serializer.h"
|
#include "serializer.h"
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassWeaponPiece, false, false, false, false)
|
IMPLEMENT_CLASS(PClassWeaponPiece, false, false)
|
||||||
IMPLEMENT_CLASS(AWeaponHolder, false, false, false, false)
|
IMPLEMENT_CLASS(AWeaponHolder, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(AWeaponHolder, PieceMask);
|
DEFINE_FIELD(AWeaponHolder, PieceMask);
|
||||||
DEFINE_FIELD(AWeaponHolder, PieceWeapon);
|
DEFINE_FIELD(AWeaponHolder, PieceWeapon);
|
||||||
|
@ -27,7 +27,7 @@ void AWeaponHolder::Serialize(FSerializer &arc)
|
||||||
("pieceweapon", PieceWeapon);
|
("pieceweapon", PieceWeapon);
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AWeaponPiece, false, true, false, false)
|
IMPLEMENT_CLASS(AWeaponPiece, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(AWeaponPiece)
|
IMPLEMENT_POINTERS_START(AWeaponPiece)
|
||||||
IMPLEMENT_POINTER(FullWeapon)
|
IMPLEMENT_POINTER(FullWeapon)
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
extern FFlagDef WeaponFlagDefs[];
|
extern FFlagDef WeaponFlagDefs[];
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AWeapon, false, true, true, false)
|
IMPLEMENT_CLASS(AWeapon, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(AWeapon)
|
IMPLEMENT_POINTERS_START(AWeapon)
|
||||||
IMPLEMENT_POINTER(Ammo1)
|
IMPLEMENT_POINTER(Ammo1)
|
||||||
|
@ -80,7 +80,7 @@ TMap<PClassWeapon *, int> Weapons_hton;
|
||||||
|
|
||||||
static int ntoh_cmp(const void *a, const void *b);
|
static int ntoh_cmp(const void *a, const void *b);
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassWeapon, false, false, false, false)
|
IMPLEMENT_CLASS(PClassWeapon, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
@ -866,7 +866,7 @@ FState *AWeapon::GetStateForButtonName (FName button)
|
||||||
|
|
||||||
/* Weapon giver ***********************************************************/
|
/* Weapon giver ***********************************************************/
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AWeaponGiver, false, false, false, false)
|
IMPLEMENT_CLASS(AWeaponGiver, false, false)
|
||||||
|
|
||||||
DEFINE_FIELD(AWeaponGiver, DropAmmoFactor);
|
DEFINE_FIELD(AWeaponGiver, DropAmmoFactor);
|
||||||
|
|
||||||
|
|
|
@ -44,15 +44,15 @@
|
||||||
EXTERN_CVAR(Int, con_scaletext)
|
EXTERN_CVAR(Int, con_scaletext)
|
||||||
int active_con_scaletext();
|
int active_con_scaletext();
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DHUDMessage, false, true, false, false)
|
IMPLEMENT_CLASS(DHUDMessage, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DHUDMessage)
|
IMPLEMENT_POINTERS_START(DHUDMessage)
|
||||||
IMPLEMENT_POINTER(Next)
|
IMPLEMENT_POINTER(Next)
|
||||||
IMPLEMENT_POINTERS_END
|
IMPLEMENT_POINTERS_END
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DHUDMessageFadeOut, false, false, false, false)
|
IMPLEMENT_CLASS(DHUDMessageFadeOut, false, false)
|
||||||
IMPLEMENT_CLASS(DHUDMessageFadeInOut, false, false, false, false)
|
IMPLEMENT_CLASS(DHUDMessageFadeInOut, false, false)
|
||||||
IMPLEMENT_CLASS(DHUDMessageTypeOnFadeOut, false, false, false, false)
|
IMPLEMENT_CLASS(DHUDMessageTypeOnFadeOut, false, false)
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* Basic HUD message. Appears and disappears without any special effects *
|
* Basic HUD message. Appears and disappears without any special effects *
|
||||||
|
|
|
@ -341,7 +341,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
DBaseStatusBar (int reltop, int hres=320, int vres=200);
|
DBaseStatusBar (int reltop, int hres=320, int vres=200);
|
||||||
void Destroy ();
|
void Destroy() override;
|
||||||
|
|
||||||
void SetScaled (bool scale, bool force=false);
|
void SetScaled (bool scale, bool force=false);
|
||||||
|
|
||||||
|
|
|
@ -1531,7 +1531,7 @@ private:
|
||||||
SBarInfoMainBlock *lastPopup;
|
SBarInfoMainBlock *lastPopup;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DSBarInfo, false, true, false, false)
|
IMPLEMENT_CLASS(DSBarInfo, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DSBarInfo)
|
IMPLEMENT_POINTERS_START(DSBarInfo)
|
||||||
IMPLEMENT_POINTER(ammo1)
|
IMPLEMENT_POINTER(ammo1)
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
#define XHAIRPICKUPSIZE (2+XHAIRSHRINKSIZE)
|
#define XHAIRPICKUPSIZE (2+XHAIRSHRINKSIZE)
|
||||||
#define POWERUPICONSIZE 32
|
#define POWERUPICONSIZE 32
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DBaseStatusBar, false, true, false, false)
|
IMPLEMENT_CLASS(DBaseStatusBar, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DBaseStatusBar)
|
IMPLEMENT_POINTERS_START(DBaseStatusBar)
|
||||||
IMPLEMENT_POINTER(Messages[0])
|
IMPLEMENT_POINTER(Messages[0])
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
// Coin ---------------------------------------------------------------------
|
// Coin ---------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ACoin, false, false, false, false)
|
IMPLEMENT_CLASS(ACoin, false, false)
|
||||||
|
|
||||||
const char *ACoin::PickupMessage ()
|
const char *ACoin::PickupMessage ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,7 +17,7 @@ public:
|
||||||
int DoSpecialDamage (AActor *victim, int damage, FName damagetype);
|
int DoSpecialDamage (AActor *victim, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ALoreShot, false, false, false, false)
|
IMPLEMENT_CLASS(ALoreShot, false, false)
|
||||||
|
|
||||||
int ALoreShot::DoSpecialDamage (AActor *victim, int damage, FName damagetype)
|
int ALoreShot::DoSpecialDamage (AActor *victim, int damage, FName damagetype)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,7 +23,7 @@ public:
|
||||||
PalEntry GetBlend ();
|
PalEntry GetBlend ();
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AProgLevelEnder, false, false, false, false)
|
IMPLEMENT_CLASS(AProgLevelEnder, false, false)
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -47,7 +47,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ATeleporterBeacon, false, false, false, false)
|
IMPLEMENT_CLASS(ATeleporterBeacon, false, false)
|
||||||
|
|
||||||
bool ATeleporterBeacon::Use (bool pickup)
|
bool ATeleporterBeacon::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,7 +16,7 @@ public:
|
||||||
void Touch (AActor *toucher);
|
void Touch (AActor *toucher);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASpectralMonster, false, false, false, false)
|
IMPLEMENT_CLASS(ASpectralMonster, false, false)
|
||||||
|
|
||||||
void ASpectralMonster::Touch (AActor *toucher)
|
void ASpectralMonster::Touch (AActor *toucher)
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
// Degnin Ore ---------------------------------------------------------------
|
// Degnin Ore ---------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ADegninOre, false, false, false, false)
|
IMPLEMENT_CLASS(ADegninOre, false, false)
|
||||||
|
|
||||||
DEFINE_ACTION_FUNCTION(AActor, A_RemoveForceField)
|
DEFINE_ACTION_FUNCTION(AActor, A_RemoveForceField)
|
||||||
{
|
{
|
||||||
|
@ -75,7 +75,7 @@ public:
|
||||||
bool TryPickup (AActor *&toucher);
|
bool TryPickup (AActor *&toucher);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AHealthTraining, false, false, false, false)
|
IMPLEMENT_CLASS(AHealthTraining, false, false)
|
||||||
|
|
||||||
bool AHealthTraining::TryPickup (AActor *&toucher)
|
bool AHealthTraining::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
@ -105,7 +105,7 @@ public:
|
||||||
bool Use (bool pickup);
|
bool Use (bool pickup);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AScanner, false, false, false, false)
|
IMPLEMENT_CLASS(AScanner, false, false)
|
||||||
|
|
||||||
bool AScanner::Use (bool pickup)
|
bool AScanner::Use (bool pickup)
|
||||||
{
|
{
|
||||||
|
@ -130,7 +130,7 @@ public:
|
||||||
bool SpecialDropAction (AActor *dropper);
|
bool SpecialDropAction (AActor *dropper);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APrisonPass, false, false, false, false)
|
IMPLEMENT_CLASS(APrisonPass, false, false)
|
||||||
|
|
||||||
bool APrisonPass::TryPickup (AActor *&toucher)
|
bool APrisonPass::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
@ -163,7 +163,7 @@ bool APrisonPass::SpecialDropAction (AActor *dropper)
|
||||||
// actions and cannot be held. ----------------------------------------------
|
// actions and cannot be held. ----------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ADummyStrifeItem, false, false, false, false)
|
IMPLEMENT_CLASS(ADummyStrifeItem, false, false)
|
||||||
|
|
||||||
// Sound the alarm! ---------------------------------------------------------
|
// Sound the alarm! ---------------------------------------------------------
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@ public:
|
||||||
bool SpecialDropAction (AActor *dropper);
|
bool SpecialDropAction (AActor *dropper);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ARaiseAlarm, false, false, false, false)
|
IMPLEMENT_CLASS(ARaiseAlarm, false, false)
|
||||||
|
|
||||||
bool ARaiseAlarm::TryPickup (AActor *&toucher)
|
bool ARaiseAlarm::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
@ -209,7 +209,7 @@ public:
|
||||||
bool TryPickup (AActor *&toucher);
|
bool TryPickup (AActor *&toucher);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AOpenDoor222, false, false, false, false)
|
IMPLEMENT_CLASS(AOpenDoor222, false, false)
|
||||||
|
|
||||||
bool AOpenDoor222::TryPickup (AActor *&toucher)
|
bool AOpenDoor222::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
@ -228,7 +228,7 @@ public:
|
||||||
bool SpecialDropAction (AActor *dropper);
|
bool SpecialDropAction (AActor *dropper);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ACloseDoor222, false, false, false, false)
|
IMPLEMENT_CLASS(ACloseDoor222, false, false)
|
||||||
|
|
||||||
bool ACloseDoor222::TryPickup (AActor *&toucher)
|
bool ACloseDoor222::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
@ -262,7 +262,7 @@ public:
|
||||||
bool SpecialDropAction (AActor *dropper);
|
bool SpecialDropAction (AActor *dropper);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AOpenDoor224, false, false, false, false)
|
IMPLEMENT_CLASS(AOpenDoor224, false, false)
|
||||||
|
|
||||||
bool AOpenDoor224::TryPickup (AActor *&toucher)
|
bool AOpenDoor224::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
@ -287,7 +287,7 @@ public:
|
||||||
bool TryPickup (AActor *&toucher);
|
bool TryPickup (AActor *&toucher);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AAmmoFillup, false, false, false, false)
|
IMPLEMENT_CLASS(AAmmoFillup, false, false)
|
||||||
|
|
||||||
bool AAmmoFillup::TryPickup (AActor *&toucher)
|
bool AAmmoFillup::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
@ -325,7 +325,7 @@ public:
|
||||||
bool TryPickup (AActor *&toucher);
|
bool TryPickup (AActor *&toucher);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AHealthFillup, false, false, false, false)
|
IMPLEMENT_CLASS(AHealthFillup, false, false)
|
||||||
|
|
||||||
bool AHealthFillup::TryPickup (AActor *&toucher)
|
bool AHealthFillup::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
@ -342,7 +342,7 @@ bool AHealthFillup::TryPickup (AActor *&toucher)
|
||||||
|
|
||||||
// Upgrade Stamina ----------------------------------------------------------
|
// Upgrade Stamina ----------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AUpgradeStamina, false, false, false, false)
|
IMPLEMENT_CLASS(AUpgradeStamina, false, false)
|
||||||
|
|
||||||
bool AUpgradeStamina::TryPickup (AActor *&toucher)
|
bool AUpgradeStamina::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
@ -360,7 +360,7 @@ bool AUpgradeStamina::TryPickup (AActor *&toucher)
|
||||||
|
|
||||||
// Upgrade Accuracy ---------------------------------------------------------
|
// Upgrade Accuracy ---------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AUpgradeAccuracy, false, false, false, false)
|
IMPLEMENT_CLASS(AUpgradeAccuracy, false, false)
|
||||||
|
|
||||||
bool AUpgradeAccuracy::TryPickup (AActor *&toucher)
|
bool AUpgradeAccuracy::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
@ -373,7 +373,7 @@ bool AUpgradeAccuracy::TryPickup (AActor *&toucher)
|
||||||
|
|
||||||
// Start a slideshow --------------------------------------------------------
|
// Start a slideshow --------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASlideshowStarter, false, false, false, false)
|
IMPLEMENT_CLASS(ASlideshowStarter, false, false)
|
||||||
|
|
||||||
bool ASlideshowStarter::TryPickup (AActor *&toucher)
|
bool ASlideshowStarter::TryPickup (AActor *&toucher)
|
||||||
{
|
{
|
||||||
|
|
|
@ -72,7 +72,7 @@ public:
|
||||||
int TakeSpecialDamage (AActor *inflictor, AActor *source, int damage, FName damagetype);
|
int TakeSpecialDamage (AActor *inflictor, AActor *source, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AForceFieldGuard, false, false, false, false)
|
IMPLEMENT_CLASS(AForceFieldGuard, false, false)
|
||||||
|
|
||||||
int AForceFieldGuard::TakeSpecialDamage (AActor *inflictor, AActor *source, int damage, FName damagetype)
|
int AForceFieldGuard::TakeSpecialDamage (AActor *inflictor, AActor *source, int damage, FName damagetype)
|
||||||
{
|
{
|
||||||
|
@ -197,7 +197,7 @@ public:
|
||||||
void Die (AActor *source, AActor *inflictor, int dmgflags);
|
void Die (AActor *source, AActor *inflictor, int dmgflags);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APowerCoupling, false, false, false, false)
|
IMPLEMENT_CLASS(APowerCoupling, false, false)
|
||||||
|
|
||||||
void APowerCoupling::Die (AActor *source, AActor *inflictor, int dmgflags)
|
void APowerCoupling::Die (AActor *source, AActor *inflictor, int dmgflags)
|
||||||
{
|
{
|
||||||
|
@ -239,7 +239,7 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AMeat, false, false, false, false)
|
IMPLEMENT_CLASS(AMeat, false, false)
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -184,7 +184,7 @@ public:
|
||||||
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APoisonBolt, false, false, false, false)
|
IMPLEMENT_CLASS(APoisonBolt, false, false)
|
||||||
|
|
||||||
int APoisonBolt::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
int APoisonBolt::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
||||||
{
|
{
|
||||||
|
@ -607,7 +607,7 @@ public:
|
||||||
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
int DoSpecialDamage (AActor *target, int damage, FName damagetype);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(APhosphorousFire, false, false, false, false)
|
IMPLEMENT_CLASS(APhosphorousFire, false, false)
|
||||||
|
|
||||||
int APhosphorousFire::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
int APhosphorousFire::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
||||||
{
|
{
|
||||||
|
@ -734,7 +734,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_FireGrenade)
|
||||||
|
|
||||||
// The Almighty Sigil! ------------------------------------------------------
|
// The Almighty Sigil! ------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_CLASS(ASigil, false, false, false, false)
|
IMPLEMENT_CLASS(ASigil, false, false)
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -851,7 +851,7 @@ private:
|
||||||
double ItemFlash;
|
double ItemFlash;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DStrifeStatusBar, false, false, false, false);
|
IMPLEMENT_CLASS(DStrifeStatusBar, false, false);
|
||||||
|
|
||||||
DBaseStatusBar *CreateStrifeStatusBar ()
|
DBaseStatusBar *CreateStrifeStatusBar ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -151,7 +151,7 @@ int GetSpriteIndex(const char * spritename, bool add)
|
||||||
return (lastindex = (int)sprites.Push (temp));
|
return (lastindex = (int)sprites.Push (temp));
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_CLASS(PClassActor, false, true, false, false)
|
IMPLEMENT_CLASS(PClassActor, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(PClassActor)
|
IMPLEMENT_POINTERS_START(PClassActor)
|
||||||
IMPLEMENT_POINTER(DropItems)
|
IMPLEMENT_POINTER(DropItems)
|
||||||
|
|
|
@ -54,12 +54,12 @@
|
||||||
|
|
||||||
FIntermissionDescriptorList IntermissionDescriptors;
|
FIntermissionDescriptorList IntermissionDescriptors;
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DIntermissionScreen, false, false, false, false)
|
IMPLEMENT_CLASS(DIntermissionScreen, false, false)
|
||||||
IMPLEMENT_CLASS(DIntermissionScreenFader, false, false, false, false)
|
IMPLEMENT_CLASS(DIntermissionScreenFader, false, false)
|
||||||
IMPLEMENT_CLASS(DIntermissionScreenText, false, false, false, false)
|
IMPLEMENT_CLASS(DIntermissionScreenText, false, false)
|
||||||
IMPLEMENT_CLASS(DIntermissionScreenCast, false, false, false, false)
|
IMPLEMENT_CLASS(DIntermissionScreenCast, false, false)
|
||||||
IMPLEMENT_CLASS(DIntermissionScreenScroller, false, false, false, false)
|
IMPLEMENT_CLASS(DIntermissionScreenScroller, false, false)
|
||||||
IMPLEMENT_CLASS(DIntermissionController, false, true, false, false)
|
IMPLEMENT_CLASS(DIntermissionController, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DIntermissionController)
|
IMPLEMENT_POINTERS_START(DIntermissionController)
|
||||||
IMPLEMENT_POINTER(mScreen)
|
IMPLEMENT_POINTER(mScreen)
|
||||||
|
|
|
@ -176,7 +176,7 @@ public:
|
||||||
virtual int Responder (event_t *ev);
|
virtual int Responder (event_t *ev);
|
||||||
virtual int Ticker ();
|
virtual int Ticker ();
|
||||||
virtual void Drawer ();
|
virtual void Drawer ();
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
FTextureID GetBackground(bool *fill)
|
FTextureID GetBackground(bool *fill)
|
||||||
{
|
{
|
||||||
*fill = mFlatfill;
|
*fill = mFlatfill;
|
||||||
|
@ -301,7 +301,7 @@ public:
|
||||||
bool Responder (event_t *ev);
|
bool Responder (event_t *ev);
|
||||||
void Ticker ();
|
void Ticker ();
|
||||||
void Drawer ();
|
void Drawer ();
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
|
|
||||||
friend void F_AdvanceIntermission();
|
friend void F_AdvanceIntermission();
|
||||||
};
|
};
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
#include "cmdlib.h"
|
#include "cmdlib.h"
|
||||||
#include "i_system.h"
|
#include "i_system.h"
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DArgs, false, false, false, false)
|
IMPLEMENT_CLASS(DArgs, false, false)
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -1033,7 +1033,7 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DSuicider, false, true, false, false)
|
IMPLEMENT_CLASS(DSuicider, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DSuicider)
|
IMPLEMENT_POINTERS_START(DSuicider)
|
||||||
IMPLEMENT_POINTER(Pawn)
|
IMPLEMENT_POINTER(Pawn)
|
||||||
|
|
|
@ -95,7 +95,7 @@ public:
|
||||||
desc->CalcIndent();
|
desc->CalcIndent();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Destroy()
|
void Destroy() override
|
||||||
{
|
{
|
||||||
if (mStartItem >= 0)
|
if (mStartItem >= 0)
|
||||||
{
|
{
|
||||||
|
@ -331,7 +331,7 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DColorPickerMenu, true, false, false, false)
|
IMPLEMENT_CLASS(DColorPickerMenu, true, false)
|
||||||
|
|
||||||
CCMD(undocolorpic)
|
CCMD(undocolorpic)
|
||||||
{
|
{
|
||||||
|
|
|
@ -236,7 +236,7 @@ class DJoystickConfigMenu : public DOptionMenu
|
||||||
DECLARE_CLASS(DJoystickConfigMenu, DOptionMenu)
|
DECLARE_CLASS(DJoystickConfigMenu, DOptionMenu)
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DJoystickConfigMenu, false, false, false, false)
|
IMPLEMENT_CLASS(DJoystickConfigMenu, false, false)
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
#include "d_event.h"
|
#include "d_event.h"
|
||||||
#include "menu/menu.h"
|
#include "menu/menu.h"
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DListMenu, false, false, false, false)
|
IMPLEMENT_CLASS(DListMenu, false, false)
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -103,7 +103,7 @@ protected:
|
||||||
char savegamestring[SAVESTRINGSIZE];
|
char savegamestring[SAVESTRINGSIZE];
|
||||||
|
|
||||||
DLoadSaveMenu(DMenu *parent = NULL, FListMenuDescriptor *desc = NULL);
|
DLoadSaveMenu(DMenu *parent = NULL, FListMenuDescriptor *desc = NULL);
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
|
|
||||||
int RemoveSaveSlot (int index);
|
int RemoveSaveSlot (int index);
|
||||||
void UnloadSaveData ();
|
void UnloadSaveData ();
|
||||||
|
@ -119,7 +119,7 @@ public:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DLoadSaveMenu, false, false, false, false)
|
IMPLEMENT_CLASS(DLoadSaveMenu, false, false)
|
||||||
|
|
||||||
TArray<FSaveGameNode*> DLoadSaveMenu::SaveGames;
|
TArray<FSaveGameNode*> DLoadSaveMenu::SaveGames;
|
||||||
int DLoadSaveMenu::LastSaved = -1;
|
int DLoadSaveMenu::LastSaved = -1;
|
||||||
|
@ -466,6 +466,7 @@ void DLoadSaveMenu::Destroy()
|
||||||
if (currentSavePic != nullptr) delete currentSavePic;
|
if (currentSavePic != nullptr) delete currentSavePic;
|
||||||
currentSavePic = nullptr;
|
currentSavePic = nullptr;
|
||||||
ClearSaveStuff ();
|
ClearSaveStuff ();
|
||||||
|
Super::Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
@ -927,14 +928,14 @@ class DSaveMenu : public DLoadSaveMenu
|
||||||
public:
|
public:
|
||||||
|
|
||||||
DSaveMenu(DMenu *parent = NULL, FListMenuDescriptor *desc = NULL);
|
DSaveMenu(DMenu *parent = NULL, FListMenuDescriptor *desc = NULL);
|
||||||
void Destroy();
|
void Destroy() override;
|
||||||
void DoSave (FSaveGameNode *node);
|
void DoSave (FSaveGameNode *node);
|
||||||
bool Responder (event_t *ev);
|
bool Responder (event_t *ev);
|
||||||
bool MenuEvent (int mkey, bool fromcontroller);
|
bool MenuEvent (int mkey, bool fromcontroller);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DSaveMenu, false, false, false, false)
|
IMPLEMENT_CLASS(DSaveMenu, false, false)
|
||||||
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
@ -975,6 +976,7 @@ void DSaveMenu::Destroy()
|
||||||
if (Selected == 0) Selected = -1;
|
if (Selected == 0) Selected = -1;
|
||||||
else Selected--;
|
else Selected--;
|
||||||
}
|
}
|
||||||
|
Super::Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
@ -1102,7 +1104,7 @@ public:
|
||||||
bool MenuEvent (int mkey, bool fromcontroller);
|
bool MenuEvent (int mkey, bool fromcontroller);
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DLoadMenu, false, false, false, false)
|
IMPLEMENT_CLASS(DLoadMenu, false, false)
|
||||||
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
|
@ -91,7 +91,7 @@ static bool MenuEnabled = true;
|
||||||
//
|
//
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
IMPLEMENT_CLASS(DMenu, false, true, false, false)
|
IMPLEMENT_CLASS(DMenu, false, true)
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(DMenu)
|
IMPLEMENT_POINTERS_START(DMenu)
|
||||||
IMPLEMENT_POINTER(mParentMenu)
|
IMPLEMENT_POINTER(mParentMenu)
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue