mirror of
https://github.com/ZDoom/qzdoom.git
synced 2025-01-18 15:11:46 +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 (const AActor &other) throw();
|
||||
AActor &operator= (const AActor &other);
|
||||
void Destroy ();
|
||||
void Destroy () override;
|
||||
~AActor ();
|
||||
|
||||
void Serialize(FSerializer &arc);
|
||||
|
@ -612,6 +612,7 @@ public:
|
|||
bool CheckNoDelay();
|
||||
|
||||
virtual void BeginPlay(); // Called immediately after the actor is created
|
||||
void CallBeginPlay();
|
||||
virtual void PostBeginPlay(); // Called immediately before the actor's first tick
|
||||
void LevelSpawned(); // Called after BeginPlay if this actor was spawned by the world
|
||||
virtual void HandleSpawnFlags(); // Translates SpawnFlags into in-game flags.
|
||||
|
@ -620,6 +621,8 @@ public:
|
|||
|
||||
virtual void Activate (AActor *activator);
|
||||
virtual void Deactivate (AActor *activator);
|
||||
void CallActivate(AActor *activator);
|
||||
void CallDeactivate(AActor *activator);
|
||||
|
||||
virtual void Tick ();
|
||||
|
||||
|
@ -629,6 +632,7 @@ public:
|
|||
// Perform some special damage action. Returns the amount of damage to do.
|
||||
// Returning -1 signals the damage routine to exit immediately
|
||||
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.
|
||||
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);
|
||||
|
||||
// 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.
|
||||
virtual AInventory *DropInventory (AInventory *item);
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include "serializer.h"
|
||||
#include "d_player.h"
|
||||
|
||||
IMPLEMENT_CLASS(DBot, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DBot, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DBot)
|
||||
IMPLEMENT_POINTER(dest)
|
||||
|
|
|
@ -187,7 +187,7 @@ static const char *KeyConfCommands[] =
|
|||
|
||||
// CODE --------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(DWaitingCommand, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DWaitingCommand, false, false)
|
||||
|
||||
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 ()
|
||||
{
|
||||
|
|
|
@ -221,7 +221,7 @@ DehInfo deh =
|
|||
// from the original actor's defaults. The original actor is then changed to
|
||||
// spawn the new class.
|
||||
|
||||
IMPLEMENT_CLASS(ADehackedPickup, false, true, false, false)
|
||||
IMPLEMENT_CLASS(ADehackedPickup, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(ADehackedPickup)
|
||||
IMPLEMENT_POINTER(RealPickup)
|
||||
|
|
|
@ -41,7 +41,7 @@ class ADehackedPickup : public AInventory
|
|||
DECLARE_CLASS (ADehackedPickup, AInventory)
|
||||
HAS_OBJECT_POINTERS
|
||||
public:
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
const char *PickupMessage ();
|
||||
bool ShouldRespawn ();
|
||||
bool ShouldStay ();
|
||||
|
|
|
@ -109,7 +109,7 @@ public:
|
|||
virtual void Tick();
|
||||
virtual void AddInventory (AInventory *item);
|
||||
virtual void RemoveInventory (AInventory *item);
|
||||
virtual bool UseInventory (AInventory *item);
|
||||
virtual bool DoUseInventory (AInventory *item);
|
||||
virtual void MarkPrecacheSounds () const;
|
||||
|
||||
virtual void PlayIdle ();
|
||||
|
|
|
@ -119,7 +119,7 @@ protected:
|
|||
DDecalThinker () : DThinker (STAT_DECALTHINKER) {}
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(DDecalThinker, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DDecalThinker, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DDecalThinker)
|
||||
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)
|
||||
{
|
||||
|
@ -1202,7 +1202,7 @@ DThinker *FDecalFaderAnim::CreateThinker (DBaseDecal *actor, side_t *wall) const
|
|||
return fader;
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(DDecalStretcher, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DDecalStretcher, false, false)
|
||||
|
||||
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)
|
||||
{
|
||||
|
@ -1370,7 +1370,7 @@ FDecalAnimator *FDecalLib::FindAnimator (const char *name)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(DDecalColorer, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DDecalColorer, false, false)
|
||||
|
||||
void DDecalColorer::Serialize(FSerializer &arc)
|
||||
{
|
||||
|
|
|
@ -61,7 +61,7 @@ ClassReg DObject::RegistrationInfo =
|
|||
nullptr, // MyClass
|
||||
"DObject", // Name
|
||||
nullptr, // ParentType
|
||||
&DVMObject<DObject>::RegistrationInfo, // VMExport
|
||||
nullptr,
|
||||
nullptr, // Pointers
|
||||
&DObject::InPlaceConstructor, // ConstructNative
|
||||
nullptr,
|
||||
|
@ -358,7 +358,6 @@ void DObject::Destroy ()
|
|||
DEFINE_ACTION_FUNCTION(DObject, Destroy)
|
||||
{
|
||||
PARAM_SELF_PROLOGUE(DObject);
|
||||
self->VMSuperCall();
|
||||
self->Destroy();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ struct ClassReg
|
|||
PClass *MyClass;
|
||||
const char *Name;
|
||||
ClassReg *ParentType;
|
||||
ClassReg *VMExport;
|
||||
ClassReg *_VMExport;
|
||||
const size_t *Pointers;
|
||||
void (*ConstructNative)(void *);
|
||||
void(*InitNatives)();
|
||||
|
@ -157,23 +157,23 @@ protected: \
|
|||
# define _DECLARE_TI(cls) ClassReg * const cls::RegistrationInfoPtr __attribute__((section(SECTION_CREG))) = &cls::RegistrationInfo;
|
||||
#endif
|
||||
|
||||
#define _IMP_PCLASS(cls, ptrs, create, initn, vmexport) \
|
||||
#define _IMP_PCLASS(cls, ptrs, create) \
|
||||
ClassReg cls::RegistrationInfo = {\
|
||||
nullptr, \
|
||||
#cls, \
|
||||
&cls::Super::RegistrationInfo, \
|
||||
vmexport, \
|
||||
nullptr, \
|
||||
ptrs, \
|
||||
create, \
|
||||
initn, \
|
||||
nullptr, \
|
||||
sizeof(cls), \
|
||||
cls::MetaClassNum }; \
|
||||
_DECLARE_TI(cls) \
|
||||
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) \
|
||||
_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
|
||||
// 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_ABSTRACT_true(cls) nullptr
|
||||
#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
|
||||
|
||||
enum EObjectFlags
|
||||
|
@ -481,7 +481,7 @@ public:
|
|||
// that don't call their base class.
|
||||
void CheckIfSerialized () const;
|
||||
|
||||
virtual void Destroy ();
|
||||
virtual void Destroy();
|
||||
|
||||
// If you need to replace one object with another and want to
|
||||
// change any pointers from the old object to the new object,
|
||||
|
|
|
@ -125,7 +125,7 @@ public:
|
|||
int SideNum;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(DSectorMarker, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DSectorMarker, false, false)
|
||||
|
||||
// EXTERNAL FUNCTION PROTOTYPES --------------------------------------------
|
||||
|
||||
|
|
|
@ -97,8 +97,8 @@ static const size_t TheEnd = ~(size_t)0;
|
|||
|
||||
// CODE --------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(PErrorType, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PVoidType, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PErrorType, false, false)
|
||||
IMPLEMENT_CLASS(PVoidType, false, false)
|
||||
|
||||
void DumpTypeTable()
|
||||
{
|
||||
|
@ -145,7 +145,7 @@ void DumpTypeTable()
|
|||
|
||||
/* PClassType *************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PClassType, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PClassType, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -173,7 +173,7 @@ void PClassType::DeriveData(PClass *newclass)
|
|||
|
||||
/* PClassClass ************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PClassClass, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PClassClass, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -191,7 +191,7 @@ PClassClass::PClassClass()
|
|||
|
||||
/* PType ******************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PType, true, true, false, false)
|
||||
IMPLEMENT_CLASS(PType, true, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PType)
|
||||
IMPLEMENT_POINTER(HashNext)
|
||||
|
@ -647,7 +647,7 @@ void PType::StaticInit()
|
|||
|
||||
/* 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 **********************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PCompoundType, true, false, false, false)
|
||||
IMPLEMENT_CLASS(PCompoundType, true, false)
|
||||
|
||||
/* PNamedType *************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PNamedType, true, true, false, false)
|
||||
IMPLEMENT_CLASS(PNamedType, true, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PNamedType)
|
||||
IMPLEMENT_POINTER(Outer)
|
||||
|
@ -725,7 +725,7 @@ FString PNamedType::QualifiedName() const
|
|||
|
||||
/* PInt *******************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PInt, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PInt, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -964,7 +964,7 @@ double PInt::GetValueFloat(void *addr) const
|
|||
|
||||
/* PBool ******************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PBool, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PBool, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -985,7 +985,7 @@ PBool::PBool()
|
|||
|
||||
/* PFloat *****************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PFloat, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PFloat, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -1235,7 +1235,7 @@ void PFloat::SetOps()
|
|||
|
||||
/* PString ****************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PString, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PString, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -1332,7 +1332,7 @@ void PString::DestroyValue(void *addr) const
|
|||
|
||||
/* 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 ******************************************************************/
|
||||
|
||||
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 ******************************************************************/
|
||||
|
||||
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 *****************************************************************/
|
||||
|
||||
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 *****************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PColor, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PColor, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -1534,7 +1534,7 @@ PColor::PColor()
|
|||
|
||||
/* PStateLabel *****************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PStateLabel, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PStateLabel, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -1550,7 +1550,7 @@ PStateLabel::PStateLabel()
|
|||
|
||||
/* PPointer ***************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PPointer, false, true, false, false)
|
||||
IMPLEMENT_CLASS(PPointer, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PPointer)
|
||||
IMPLEMENT_POINTER(PointedType)
|
||||
|
@ -1695,7 +1695,7 @@ PPointer *NewPointer(PType *type, bool isconst)
|
|||
|
||||
/* 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 **********************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PClassPointer, false, true, false, false)
|
||||
IMPLEMENT_CLASS(PClassPointer,false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PClassPointer)
|
||||
IMPLEMENT_POINTER(ClassRestriction)
|
||||
|
@ -1819,7 +1819,7 @@ PClassPointer *NewClassPointer(PClass *restrict)
|
|||
|
||||
/* PEnum ******************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PEnum, false, true, false, false)
|
||||
IMPLEMENT_CLASS(PEnum, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PEnum)
|
||||
IMPLEMENT_POINTER(ValueType)
|
||||
|
@ -1872,7 +1872,7 @@ PEnum *NewEnum(FName name, PTypeBase *outer)
|
|||
|
||||
/* PArray *****************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PArray, false, true, false, false)
|
||||
IMPLEMENT_CLASS(PArray, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PArray)
|
||||
IMPLEMENT_POINTER(ElementType)
|
||||
|
@ -2035,7 +2035,7 @@ PArray *NewArray(PType *type, unsigned int count)
|
|||
|
||||
/* PDynArray **************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PDynArray, false, true, false, false)
|
||||
IMPLEMENT_CLASS(PDynArray, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PDynArray)
|
||||
IMPLEMENT_POINTER(ElementType)
|
||||
|
@ -2118,7 +2118,7 @@ PDynArray *NewDynArray(PType *type)
|
|||
|
||||
/* PMap *******************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PMap, false, true, false, false)
|
||||
IMPLEMENT_CLASS(PMap, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PMap)
|
||||
IMPLEMENT_POINTER(KeyType)
|
||||
|
@ -2202,7 +2202,7 @@ PMap *NewMap(PType *keytype, PType *valuetype)
|
|||
|
||||
/* PStruct ****************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PStruct, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PStruct, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -2440,7 +2440,7 @@ PStruct *NewStruct(FName name, PTypeBase *outer)
|
|||
|
||||
/* PNativeStruct ****************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PNativeStruct, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PNativeStruct, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -2478,7 +2478,7 @@ PNativeStruct *NewNativeStruct(FName name, PTypeBase *outer)
|
|||
|
||||
/* 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 *************************************************************/
|
||||
|
||||
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 **************************************************************/
|
||||
|
||||
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 *****************************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(PClass, false, true, false, false)
|
||||
IMPLEMENT_CLASS(PClass, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PClass)
|
||||
IMPLEMENT_POINTER(ParentClass)
|
||||
|
@ -2907,7 +2907,6 @@ void PClass::StaticShutdown ()
|
|||
{
|
||||
auto cr = ((ClassReg *)*probe);
|
||||
cr->MyClass = nullptr;
|
||||
if (cr->VMExport != nullptr) cr->VMExport->MyClass = nullptr;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3034,10 +3033,6 @@ PClass *ClassReg::RegisterClass()
|
|||
{
|
||||
cls->ParentClass = ParentType->RegisterClass();
|
||||
}
|
||||
if (VMExport != nullptr)
|
||||
{
|
||||
cls->VMExported = VMExport->RegisterClass();
|
||||
}
|
||||
return cls;
|
||||
}
|
||||
|
||||
|
@ -3717,19 +3712,19 @@ CCMD(typetable)
|
|||
|
||||
// Symbol tables ------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(PTypeBase, true, false, false, false);
|
||||
IMPLEMENT_CLASS(PSymbol, true, false, false, false);
|
||||
IMPLEMENT_CLASS(PSymbolConst, false, false, false, false);
|
||||
IMPLEMENT_CLASS(PSymbolConstNumeric, false, false, false, false);
|
||||
IMPLEMENT_CLASS(PSymbolConstString, false, false, false, false);
|
||||
IMPLEMENT_CLASS(PSymbolTreeNode, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PSymbolType, false, true, false, false)
|
||||
IMPLEMENT_CLASS(PTypeBase, true, false);
|
||||
IMPLEMENT_CLASS(PSymbol, true, false);
|
||||
IMPLEMENT_CLASS(PSymbolConst, false, false);
|
||||
IMPLEMENT_CLASS(PSymbolConstNumeric, false, false);
|
||||
IMPLEMENT_CLASS(PSymbolConstString, false, false);
|
||||
IMPLEMENT_CLASS(PSymbolTreeNode, false, false)
|
||||
IMPLEMENT_CLASS(PSymbolType, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PSymbolType)
|
||||
IMPLEMENT_POINTER(Type)
|
||||
IMPLEMENT_POINTERS_END
|
||||
|
||||
IMPLEMENT_CLASS(PSymbolVMFunction, false, true, false, false)
|
||||
IMPLEMENT_CLASS(PSymbolVMFunction, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PSymbolVMFunction)
|
||||
IMPLEMENT_POINTER(Function)
|
||||
|
|
|
@ -809,7 +809,6 @@ public:
|
|||
|
||||
// Per-class information -------------------------------------
|
||||
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 *FlatPointers; // object pointers defined by this class and all its superclasses; not initialized by default
|
||||
BYTE *Defaults;
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include "serializer.h"
|
||||
#include "doomstat.h"
|
||||
|
||||
IMPLEMENT_CLASS(DSectorEffect, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DSectorEffect, false, false)
|
||||
|
||||
DSectorEffect::DSectorEffect ()
|
||||
: DThinker(STAT_SECTOREFFECT)
|
||||
|
@ -71,7 +71,7 @@ void DSectorEffect::Serialize(FSerializer &arc)
|
|||
arc("sector", m_Sector);
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(DMover, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DMover, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DMover)
|
||||
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 ()
|
||||
{
|
||||
|
@ -121,7 +121,7 @@ DMovingFloor::DMovingFloor (sector_t *sector)
|
|||
interpolation = sector->SetInterpolation(sector_t::FloorMove, true);
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(DMovingCeiling, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DMovingCeiling, false, false)
|
||||
|
||||
DMovingCeiling::DMovingCeiling ()
|
||||
{
|
||||
|
|
|
@ -12,7 +12,7 @@ public:
|
|||
|
||||
|
||||
void Serialize(FSerializer &arc);
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
|
||||
sector_t *GetSector() const { return m_Sector; }
|
||||
|
||||
|
@ -35,7 +35,7 @@ protected:
|
|||
DMover ();
|
||||
|
||||
void Serialize(FSerializer &arc);
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
};
|
||||
|
||||
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 int BotWTG;
|
||||
|
||||
IMPLEMENT_CLASS(DThinker, false, false, false, true)
|
||||
IMPLEMENT_CLASS(DThinker, false, false)
|
||||
|
||||
DThinker *NextToThink;
|
||||
|
||||
|
@ -56,6 +56,12 @@ FThinkerList DThinker::Thinkers[MAX_STATNUM+2];
|
|||
FThinkerList DThinker::FreshThinkers[MAX_STATNUM+1];
|
||||
bool DThinker::bSerialOverride = false;
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void FThinkerList::AddTail(DThinker *thinker)
|
||||
{
|
||||
assert(thinker->PrevThinker == NULL && thinker->NextThinker == NULL);
|
||||
|
@ -80,6 +86,12 @@ void FThinkerList::AddTail(DThinker *thinker)
|
|||
GC::WriteBarrier(Sentinel, thinker);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
DThinker *FThinkerList::GetHead() const
|
||||
{
|
||||
if (Sentinel == NULL || Sentinel->NextThinker == Sentinel)
|
||||
|
@ -90,6 +102,12 @@ DThinker *FThinkerList::GetHead() const
|
|||
return Sentinel->NextThinker;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
DThinker *FThinkerList::GetTail() const
|
||||
{
|
||||
if (Sentinel == NULL || Sentinel->PrevThinker == Sentinel)
|
||||
|
@ -99,11 +117,23 @@ DThinker *FThinkerList::GetTail() const
|
|||
return Sentinel->PrevThinker;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
bool FThinkerList::IsEmpty() const
|
||||
{
|
||||
return Sentinel == NULL || Sentinel->NextThinker == NULL;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DThinker::SaveList(FSerializer &arc, DThinker *node)
|
||||
{
|
||||
if (node != NULL)
|
||||
|
@ -234,6 +264,12 @@ void DThinker::Destroy ()
|
|||
Super::Destroy();
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DThinker::Remove()
|
||||
{
|
||||
if (this == NextToThink)
|
||||
|
@ -254,6 +290,12 @@ void DThinker::Remove()
|
|||
PrevThinker = NULL;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DThinker::PostBeginPlay ()
|
||||
{
|
||||
}
|
||||
|
@ -261,15 +303,41 @@ void DThinker::PostBeginPlay ()
|
|||
DEFINE_ACTION_FUNCTION(DThinker, PostBeginPlay)
|
||||
{
|
||||
PARAM_SELF_PROLOGUE(DThinker);
|
||||
self->VMSuperCall();
|
||||
self->PostBeginPlay();
|
||||
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()
|
||||
{
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
DThinker *DThinker::FirstThinker (int statnum)
|
||||
{
|
||||
DThinker *node;
|
||||
|
@ -290,6 +358,12 @@ DThinker *DThinker::FirstThinker (int statnum)
|
|||
return node;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DThinker::ChangeStatNum (int statnum)
|
||||
{
|
||||
FThinkerList *list;
|
||||
|
@ -313,7 +387,12 @@ void DThinker::ChangeStatNum (int statnum)
|
|||
list->AddTail(this);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// Mark the first thinker of each list
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DThinker::MarkRoots()
|
||||
{
|
||||
for (int i = 0; i <= MAX_STATNUM; ++i)
|
||||
|
@ -324,7 +403,12 @@ void DThinker::MarkRoots()
|
|||
GC::Mark(Thinkers[MAX_STATNUM+1].Sentinel);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// Destroy every thinker
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DThinker::DestroyAllThinkers ()
|
||||
{
|
||||
int i;
|
||||
|
@ -341,6 +425,12 @@ void DThinker::DestroyAllThinkers ()
|
|||
GC::FullGC();
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DThinker::DestroyThinkersInList (FThinkerList &list)
|
||||
{
|
||||
if (list.Sentinel != NULL)
|
||||
|
@ -355,6 +445,12 @@ void DThinker::DestroyThinkersInList (FThinkerList &list)
|
|||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DThinker::RunThinkers ()
|
||||
{
|
||||
int i, count;
|
||||
|
@ -385,6 +481,12 @@ void DThinker::RunThinkers ()
|
|||
ThinkCycles.Unclock();
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
int DThinker::TickThinkers (FThinkerList *list, FThinkerList *dest)
|
||||
{
|
||||
int count = 0;
|
||||
|
@ -407,7 +509,7 @@ int DThinker::TickThinkers (FThinkerList *list, FThinkerList *dest)
|
|||
node->Remove();
|
||||
dest->AddTail(node);
|
||||
}
|
||||
node->PostBeginPlay();
|
||||
node->CallPostBeginPlay();
|
||||
}
|
||||
else if (dest != NULL)
|
||||
{
|
||||
|
@ -416,7 +518,7 @@ int DThinker::TickThinkers (FThinkerList *list, FThinkerList *dest)
|
|||
|
||||
if (!(node->ObjectFlags & OF_EuthanizeMe))
|
||||
{ // Only tick thinkers not scheduled for destruction
|
||||
node->Tick();
|
||||
node->CallTick();
|
||||
node->ObjectFlags &= ~OF_JustSpawned;
|
||||
GC::CheckGC();
|
||||
}
|
||||
|
@ -425,6 +527,12 @@ int DThinker::TickThinkers (FThinkerList *list, FThinkerList *dest)
|
|||
return count;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DThinker::Tick ()
|
||||
{
|
||||
}
|
||||
|
@ -432,11 +540,28 @@ void DThinker::Tick ()
|
|||
DEFINE_ACTION_FUNCTION(DThinker, Tick)
|
||||
{
|
||||
PARAM_SELF_PROLOGUE(DThinker);
|
||||
self->VMSuperCall();
|
||||
self->Tick();
|
||||
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()
|
||||
{
|
||||
// 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();
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
FThinkerIterator::FThinkerIterator (const PClass *type, int statnum)
|
||||
{
|
||||
if ((unsigned)statnum > MAX_STATNUM)
|
||||
|
@ -467,6 +598,12 @@ FThinkerIterator::FThinkerIterator (const PClass *type, int statnum)
|
|||
m_SearchingFresh = false;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
FThinkerIterator::FThinkerIterator (const PClass *type, int statnum, DThinker *prev)
|
||||
{
|
||||
if ((unsigned)statnum > MAX_STATNUM)
|
||||
|
@ -491,12 +628,24 @@ FThinkerIterator::FThinkerIterator (const PClass *type, int statnum, DThinker *p
|
|||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void FThinkerIterator::Reinit ()
|
||||
{
|
||||
m_CurrThinker = DThinker::Thinkers[m_Stat].GetHead();
|
||||
m_SearchingFresh = false;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
DThinker *FThinkerIterator::Next (bool exact)
|
||||
{
|
||||
if (m_ParentType == NULL)
|
||||
|
@ -542,8 +691,13 @@ DThinker *FThinkerIterator::Next (bool exact)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
class DThinkerIterator : public DObject, public FThinkerIterator
|
||||
{
|
||||
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)
|
||||
{
|
||||
PARAM_PROLOGUE;
|
||||
|
@ -577,8 +731,11 @@ DEFINE_ACTION_FUNCTION(DThinkerIterator, Reinit)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
ADD_STAT (think)
|
||||
{
|
||||
|
|
|
@ -66,10 +66,12 @@ class DThinker : public DObject
|
|||
DECLARE_CLASS (DThinker, DObject)
|
||||
public:
|
||||
DThinker (int statnum = STAT_DEFAULT) throw();
|
||||
void Destroy ();
|
||||
void Destroy () override;
|
||||
virtual ~DThinker ();
|
||||
virtual void Tick ();
|
||||
void CallTick();
|
||||
virtual void PostBeginPlay (); // Called just before the first tick
|
||||
void CallPostBeginPlay();
|
||||
virtual void PostSerialize();
|
||||
size_t PropagateMark();
|
||||
|
||||
|
|
|
@ -1785,7 +1785,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
@ -2975,7 +2975,7 @@ void FParser::SF_ObjAwaken(void)
|
|||
|
||||
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_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_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_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_POINTER(RunningScripts)
|
||||
|
|
|
@ -337,7 +337,7 @@ public:
|
|||
|
||||
DFsScript();
|
||||
~DFsScript();
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
void Serialize(FSerializer &ar);
|
||||
|
||||
DFsVariable *NewVariable(const char *name, int vtype);
|
||||
|
@ -652,7 +652,7 @@ class DRunningScript : public DObject
|
|||
|
||||
public:
|
||||
DRunningScript(AActor *trigger=NULL, DFsScript *owner = NULL, int index = 0) ;
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
void Serialize(FSerializer &arc);
|
||||
|
||||
TObjPtr<DFsScript> script;
|
||||
|
@ -687,7 +687,7 @@ public:
|
|||
bool nocheckposition;
|
||||
|
||||
DFraggleThinker();
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
|
||||
|
||||
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_POINTER(next)
|
||||
|
|
|
@ -17,7 +17,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiTomeOfPower, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiTomeOfPower, false, false)
|
||||
|
||||
bool AArtiTomeOfPower::Use (bool pickup)
|
||||
{
|
||||
|
@ -51,7 +51,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiTimeBomb, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiTimeBomb, false, false)
|
||||
|
||||
bool AArtiTimeBomb::Use (bool pickup)
|
||||
{
|
||||
|
|
|
@ -58,7 +58,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
@ -80,7 +80,7 @@ public:
|
|||
TObjPtr<AActor> Rain1, Rain2;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ARainTracker, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ARainTracker, false, false)
|
||||
|
||||
void ARainTracker::Serialize(FSerializer &arc)
|
||||
{
|
||||
|
@ -367,8 +367,8 @@ public:
|
|||
void EndPowerup ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(APhoenixRod, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APhoenixRodPowered, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APhoenixRod, false, false)
|
||||
IMPLEMENT_CLASS(APhoenixRodPowered, false, false)
|
||||
|
||||
void APhoenixRodPowered::EndPowerup ()
|
||||
{
|
||||
|
@ -388,7 +388,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
|
|
@ -17,7 +17,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiBoostArmor, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiBoostArmor, false, false)
|
||||
|
||||
bool AArtiBoostArmor::Use (bool pickup)
|
||||
{
|
||||
|
|
|
@ -58,11 +58,11 @@ public:
|
|||
BYTE CHolyCount;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ACWeapWraithverge, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ACWeapWraithverge, false, false)
|
||||
|
||||
// Holy Spirit --------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(AHolySpirit, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AHolySpirit, false, false)
|
||||
|
||||
bool AHolySpirit::Slam(AActor *thing)
|
||||
{
|
||||
|
|
|
@ -25,7 +25,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
|
|
@ -31,7 +31,7 @@ public:
|
|||
FState *GetAtkState (bool hold);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AFWeapAxe, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AFWeapAxe, false, false)
|
||||
|
||||
FState *AFWeapAxe::GetUpState ()
|
||||
{
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
#include "vm.h"
|
||||
*/
|
||||
|
||||
IMPLEMENT_CLASS(AFighterWeapon, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AClericWeapon, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AMageWeapon, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AFighterWeapon, false, false)
|
||||
IMPLEMENT_CLASS(AClericWeapon, false, false)
|
||||
IMPLEMENT_CLASS(AMageWeapon, false, false)
|
||||
|
||||
static FRandom pr_fpatk ("FPunchAttack");
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
|
|
@ -24,7 +24,7 @@ DECLARE_ACTION(A_CheckThrowBomb)
|
|||
|
||||
// Poison Bag Artifact (Flechette) ------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(AArtiPoisonBag, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiPoisonBag, false, false)
|
||||
|
||||
// Poison Bag 1 (The Cleric's) ----------------------------------------------
|
||||
|
||||
|
@ -35,7 +35,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiPoisonBag1, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiPoisonBag1, false, false)
|
||||
|
||||
bool AArtiPoisonBag1::Use (bool pickup)
|
||||
{
|
||||
|
@ -60,7 +60,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiPoisonBag2, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiPoisonBag2, false, false)
|
||||
|
||||
bool AArtiPoisonBag2::Use (bool pickup)
|
||||
{
|
||||
|
@ -85,7 +85,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiPoisonBag3, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiPoisonBag3, false, false)
|
||||
|
||||
bool AArtiPoisonBag3::Use (bool pickup)
|
||||
{
|
||||
|
@ -136,7 +136,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiPoisonBagGiver, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiPoisonBagGiver, false, false)
|
||||
|
||||
bool AArtiPoisonBagGiver::Use (bool pickup)
|
||||
{
|
||||
|
@ -167,7 +167,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiPoisonBagShooter, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiPoisonBagShooter, false, false)
|
||||
|
||||
bool AArtiPoisonBagShooter::Use (bool pickup)
|
||||
{
|
||||
|
@ -296,7 +296,7 @@ public:
|
|||
void BeginPlay ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(APoisonCloud, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APoisonCloud, false, false)
|
||||
|
||||
void APoisonCloud::BeginPlay ()
|
||||
{
|
||||
|
|
|
@ -25,7 +25,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiHealingRadius, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiHealingRadius, false, false)
|
||||
|
||||
bool AArtiHealingRadius::Use (bool pickup)
|
||||
{
|
||||
|
|
|
@ -72,7 +72,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
@ -122,7 +122,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASorcBall, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASorcBall, false, false)
|
||||
|
||||
// First ball (purple) - fires projectiles ----------------------------------
|
||||
|
||||
|
@ -140,7 +140,7 @@ public:
|
|||
virtual void CastSorcererSpell ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASorcBall1, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASorcBall1, false, false)
|
||||
|
||||
// Second ball (blue) - generates the shield --------------------------------
|
||||
|
||||
|
@ -156,7 +156,7 @@ public:
|
|||
virtual void CastSorcererSpell ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASorcBall2, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASorcBall2, false, false)
|
||||
|
||||
// Third ball (green) - summons Bishops -------------------------------------
|
||||
|
||||
|
@ -172,7 +172,7 @@ public:
|
|||
virtual void CastSorcererSpell ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASorcBall3, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASorcBall3, false, false)
|
||||
|
||||
// Sorcerer spell 1 (The burning, bouncing head thing) ----------------------
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ public:
|
|||
void PostBeginPlay ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AZCorpseLynchedNoHeart, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AZCorpseLynchedNoHeart, false, false)
|
||||
|
||||
void AZCorpseLynchedNoHeart::PostBeginPlay ()
|
||||
{
|
||||
|
@ -329,7 +329,7 @@ public:
|
|||
void Activate (AActor *activator);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AZBell, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AZBell, false, false)
|
||||
|
||||
void AZBell::Activate (AActor *activator)
|
||||
{
|
||||
|
|
|
@ -32,7 +32,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
|
|
@ -34,7 +34,7 @@ public:
|
|||
int SpecialMissileHit (AActor *victim);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ALightning, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ALightning, false, false)
|
||||
|
||||
int ALightning::SpecialMissileHit (AActor *thing)
|
||||
{
|
||||
|
@ -87,7 +87,7 @@ public:
|
|||
int SpecialMissileHit (AActor *thing);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ALightningZap, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ALightningZap, false, false)
|
||||
|
||||
int ALightningZap::SpecialMissileHit (AActor *thing)
|
||||
{
|
||||
|
|
|
@ -56,7 +56,7 @@ public:
|
|||
BYTE MStaffCount;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AMWeapBloodscourge, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AMWeapBloodscourge, false, false)
|
||||
|
||||
// Mage Staff FX2 (Bloodscourge) --------------------------------------------
|
||||
|
||||
|
@ -68,7 +68,7 @@ public:
|
|||
bool SpecialBlastHandling (AActor *source, double strength);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AMageStaffFX2, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AMageStaffFX2, false, false)
|
||||
|
||||
int AMageStaffFX2::SpecialMissileHit (AActor *victim)
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ public:
|
|||
void Deactivate (AActor *activator);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AThrustFloor, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AThrustFloor, false, false)
|
||||
|
||||
void AThrustFloor::Activate (AActor *activator)
|
||||
{
|
||||
|
|
|
@ -21,7 +21,7 @@ public:
|
|||
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);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiTeleportOther, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiTeleportOther, false, false)
|
||||
|
||||
// Teleport Other FX --------------------------------------------------------
|
||||
|
||||
|
@ -45,7 +45,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
|
|
@ -903,7 +903,7 @@ public:
|
|||
void Tick ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(DAutosaver, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DAutosaver, false, false)
|
||||
|
||||
void DAutosaver::Tick ()
|
||||
{
|
||||
|
|
|
@ -23,7 +23,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AArtiTeleport, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArtiTeleport, false, false)
|
||||
|
||||
bool AArtiTeleport::Use (bool pickup)
|
||||
{
|
||||
|
|
|
@ -31,7 +31,7 @@ void P_MinotaurSlam (AActor *source, AActor *target);
|
|||
|
||||
DECLARE_ACTION(A_MinotaurLook)
|
||||
|
||||
IMPLEMENT_CLASS(AMinotaur, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AMinotaur, false, false)
|
||||
|
||||
void AMinotaur::Tick ()
|
||||
{
|
||||
|
@ -72,7 +72,7 @@ int AMinotaur::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
|||
|
||||
// Minotaur Friend ----------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(AMinotaurFriend, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AMinotaurFriend, false, false)
|
||||
|
||||
void AMinotaurFriend::BeginPlay ()
|
||||
{
|
||||
|
|
|
@ -28,7 +28,7 @@ public:
|
|||
void Deactivate (AActor *activator);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASwitchableDecoration, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASwitchableDecoration, false, false)
|
||||
|
||||
void ASwitchableDecoration::Activate (AActor *activator)
|
||||
{
|
||||
|
@ -49,7 +49,7 @@ public:
|
|||
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
|
||||
public:
|
||||
DCorpsePointer (AActor *ptr);
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
void Serialize(FSerializer &arc);
|
||||
TObjPtr<AActor> Corpse;
|
||||
DWORD Count; // Only the first corpse pointer's count is valid.
|
||||
|
@ -303,7 +303,7 @@ private:
|
|||
DCorpsePointer () {}
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(DCorpsePointer, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DCorpsePointer, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DCorpsePointer)
|
||||
IMPLEMENT_POINTER(Corpse)
|
||||
|
|
|
@ -9,11 +9,11 @@
|
|||
#include "serializer.h"
|
||||
#include "cmdlib.h"
|
||||
|
||||
IMPLEMENT_CLASS(AArmor, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ABasicArmor, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ABasicArmorPickup, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ABasicArmorBonus, false, false, true, false)
|
||||
IMPLEMENT_CLASS(AHexenArmor, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AArmor, false, false)
|
||||
IMPLEMENT_CLASS(ABasicArmor, false, false)
|
||||
IMPLEMENT_CLASS(ABasicArmorPickup, false, false)
|
||||
IMPLEMENT_CLASS(ABasicArmorBonus, false, false)
|
||||
IMPLEMENT_CLASS(AHexenArmor, false, false)
|
||||
|
||||
|
||||
DEFINE_FIELD(ABasicArmor, AbsorbCount)
|
||||
|
|
|
@ -40,11 +40,11 @@ static FRandom pr_torch ("Torch");
|
|||
#define TIMEFREEZE_TICS ( 12 * TICRATE )
|
||||
*/
|
||||
|
||||
IMPLEMENT_CLASS(APowerup, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerup, false, false)
|
||||
|
||||
// Powerup-Giver -------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(PClassPowerupGiver, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PClassPowerupGiver, false, false)
|
||||
|
||||
void PClassPowerupGiver::ReplaceClassRef(PClass *oldclass, PClass *newclass)
|
||||
{
|
||||
|
@ -388,7 +388,7 @@ bool APowerup::GetNoTeleportFreeze ()
|
|||
|
||||
// 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 --------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerStrength, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerStrength, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -590,7 +590,7 @@ PalEntry APowerStrength::GetBlend ()
|
|||
|
||||
// Invisibility Powerup ------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerInvisibility, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerInvisibility, false, false)
|
||||
|
||||
// Invisibility flag combos
|
||||
#define INVISIBILITY_FLAGS1 (MF_SHADOW)
|
||||
|
@ -795,7 +795,7 @@ bool APowerInvisibility::HandlePickup (AInventory *item)
|
|||
|
||||
// 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 -------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerMask, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerMask, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -869,7 +869,7 @@ void APowerMask::DoEffect ()
|
|||
|
||||
// Light-Amp Powerup ---------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerLightAmp, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerLightAmp, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -911,7 +911,7 @@ void APowerLightAmp::EndEffect ()
|
|||
|
||||
// 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 ---------------------------------------
|
||||
|
||||
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 --------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerWeaponLevel2, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerWeaponLevel2, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -1198,7 +1198,7 @@ void APowerWeaponLevel2::EndEffect ()
|
|||
|
||||
// Speed Powerup -------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerSpeed, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerSpeed, false, false)
|
||||
|
||||
DEFINE_FIELD(APowerSpeed, SpeedFlags)
|
||||
|
||||
|
@ -1287,11 +1287,11 @@ void APowerSpeed::DoEffect ()
|
|||
|
||||
// Minotaur (aka Dark Servant) powerup ---------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerMinotaur, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerMinotaur, false, false)
|
||||
|
||||
// Targeter powerup ---------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerTargeter, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerTargeter, false, false)
|
||||
|
||||
void APowerTargeter::Travelled ()
|
||||
{
|
||||
|
@ -1406,7 +1406,7 @@ void APowerTargeter::PositionAccuracy ()
|
|||
|
||||
// Frightener Powerup --------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerFrightener, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerFrightener, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -1442,7 +1442,7 @@ void APowerFrightener::EndEffect ()
|
|||
|
||||
// Buddha Powerup --------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerBuddha, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerBuddha, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -1478,11 +1478,11 @@ void APowerBuddha::EndEffect ()
|
|||
|
||||
// Scanner powerup ----------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerScanner, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerScanner, false, false)
|
||||
|
||||
// Time freezer powerup -----------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS( APowerTimeFreezer, false, false, false, false)
|
||||
IMPLEMENT_CLASS( APowerTimeFreezer, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -1609,7 +1609,7 @@ void APowerTimeFreezer::EndEffect()
|
|||
|
||||
// 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 ------------------------------------------------------
|
||||
|
||||
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_FLAGS5 (MF5_NOPAIN | MF5_DONTRIP)
|
||||
|
@ -1744,7 +1744,7 @@ void APowerProtection::ModifyDamage(int damage, FName damageType, int &newdamage
|
|||
|
||||
// Drain rune -------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerDrain, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerDrain, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -1784,7 +1784,7 @@ void APowerDrain::EndEffect( )
|
|||
|
||||
// Regeneration rune -------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerRegeneration, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerRegeneration, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -1806,7 +1806,7 @@ void APowerRegeneration::DoEffect()
|
|||
|
||||
// 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 ---------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerDoubleFiringSpeed, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerDoubleFiringSpeed, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -1882,7 +1882,7 @@ void APowerDoubleFiringSpeed::EndEffect( )
|
|||
|
||||
// Morph powerup ------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(APowerMorph, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APowerMorph, false, false)
|
||||
|
||||
DEFINE_FIELD(APowerMorph, PlayerClass)
|
||||
DEFINE_FIELD(APowerMorph, MorphFlash)
|
||||
|
@ -1990,7 +1990,7 @@ void APowerMorph::EndEffect( )
|
|||
|
||||
// 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)
|
||||
public:
|
||||
virtual void Tick ();
|
||||
virtual void Destroy ();
|
||||
virtual void Destroy () override;
|
||||
virtual bool HandlePickup (AInventory *item);
|
||||
virtual AInventory *CreateCopy (AActor *other);
|
||||
virtual AInventory *CreateTossable ();
|
||||
|
|
|
@ -37,10 +37,10 @@ class ACustomBridge : public AActor
|
|||
DECLARE_CLASS (ACustomBridge, AActor)
|
||||
public:
|
||||
void BeginPlay ();
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ACustomBridge, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ACustomBridge, false, false)
|
||||
|
||||
void ACustomBridge::BeginPlay ()
|
||||
{
|
||||
|
@ -155,7 +155,7 @@ public:
|
|||
void BeginPlay ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AInvisibleBridge, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AInvisibleBridge, false, false)
|
||||
|
||||
void AInvisibleBridge::BeginPlay ()
|
||||
{
|
||||
|
|
|
@ -64,7 +64,7 @@ protected:
|
|||
DAngle Range;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASecurityCamera, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASecurityCamera, false, false)
|
||||
|
||||
void ASecurityCamera::Serialize(FSerializer &arc)
|
||||
{
|
||||
|
@ -124,7 +124,7 @@ protected:
|
|||
DAngle MaxPitchChange;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AAimingCamera, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AAimingCamera, false, false)
|
||||
|
||||
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)
|
||||
|
||||
IMPLEMENT_CLASS(DBaseDecal, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DBaseDecal, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DBaseDecal)
|
||||
IMPLEMENT_POINTER(WallPrev)
|
||||
IMPLEMENT_POINTER(WallNext)
|
||||
IMPLEMENT_POINTERS_END
|
||||
|
||||
IMPLEMENT_CLASS(DImpactDecal, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DImpactDecal, false, false)
|
||||
|
||||
DBaseDecal::DBaseDecal ()
|
||||
: DThinker(STAT_DECAL),
|
||||
|
@ -746,7 +746,7 @@ public:
|
|||
void BeginPlay ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ADecal, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ADecal, false, false)
|
||||
|
||||
void ADecal::BeginPlay ()
|
||||
{
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "p_checkposition.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;
|
||||
|
||||
// call the scripted 'Effect' method.
|
||||
VINDEX(AFastProjectile, Effect);
|
||||
// Without the type cast this picks the 'void *' assignment...
|
||||
VMValue params[1] = { (DObject*)this };
|
||||
VMFrameStack stack;
|
||||
stack.Call(VFUNC, params, 1, nullptr, 0, nullptr);
|
||||
IFVIRTUAL(AFastProjectile, Effect)
|
||||
{
|
||||
// Without the type cast this picks the 'void *' assignment...
|
||||
VMValue params[1] = { (DObject*)this };
|
||||
VMFrameStack stack;
|
||||
stack.Call(func, params, 1, nullptr, 0, nullptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#include "d_player.h"
|
||||
#include "serializer.h"
|
||||
|
||||
IMPLEMENT_CLASS(DFlashFader, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DFlashFader, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DFlashFader)
|
||||
IMPLEMENT_POINTER(ForWho)
|
||||
|
|
|
@ -46,13 +46,13 @@ public:
|
|||
void Deactivate (AActor *activator);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AParticleFountain, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AParticleFountain, false, false)
|
||||
|
||||
void AParticleFountain::PostBeginPlay ()
|
||||
{
|
||||
Super::PostBeginPlay ();
|
||||
if (!(SpawnFlags & MTF_DORMANT))
|
||||
Activate (NULL);
|
||||
CallActivate (NULL);
|
||||
}
|
||||
|
||||
void AParticleFountain::Activate (AActor *activator)
|
||||
|
|
|
@ -46,7 +46,7 @@ public:
|
|||
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()
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
static FRandom pr_lightning ("Lightning");
|
||||
|
||||
IMPLEMENT_CLASS(DLightningThinker, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DLightningThinker, false, false)
|
||||
|
||||
DLightningThinker::DLightningThinker ()
|
||||
: DThinker (STAT_LIGHTNING)
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
//
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(AMapMarker, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AMapMarker, false, false)
|
||||
|
||||
void AMapMarker::BeginPlay ()
|
||||
{
|
||||
|
|
|
@ -616,7 +616,7 @@ void InitAllPowerupEffects(AInventory *item)
|
|||
|
||||
// Base class for morphing projectiles --------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(AMorphProjectile, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AMorphProjectile, false, false)
|
||||
|
||||
DEFINE_FIELD(AMorphProjectile, PlayerClass)
|
||||
DEFINE_FIELD(AMorphProjectile, MonsterClass)
|
||||
|
@ -653,7 +653,7 @@ void AMorphProjectile::Serialize(FSerializer &arc)
|
|||
|
||||
// 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_POINTER(UnmorphedMe)
|
||||
|
|
|
@ -66,7 +66,7 @@ public:
|
|||
TObjPtr<AInterpolationPoint> Next;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AInterpolationPoint, false, true, false, false)
|
||||
IMPLEMENT_CLASS(AInterpolationPoint, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(AInterpolationPoint)
|
||||
IMPLEMENT_POINTER(Next)
|
||||
|
@ -135,7 +135,7 @@ public:
|
|||
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
|
||||
|
@ -178,7 +178,7 @@ protected:
|
|||
int HoldTime;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(APathFollower, false, true, false, false)
|
||||
IMPLEMENT_CLASS(APathFollower, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(APathFollower)
|
||||
IMPLEMENT_POINTER(PrevNode)
|
||||
|
@ -342,9 +342,9 @@ void APathFollower::Tick ()
|
|||
if (CurrNode != NULL)
|
||||
NewNode ();
|
||||
if (CurrNode == NULL || CurrNode->Next == NULL)
|
||||
Deactivate (this);
|
||||
CallDeactivate (this);
|
||||
if ((args[2] & 1) == 0 && CurrNode->Next->Next == NULL)
|
||||
Deactivate (this);
|
||||
CallDeactivate (this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -480,7 +480,7 @@ protected:
|
|||
bool Interpolate ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AActorMover, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AActorMover, false, false)
|
||||
|
||||
void AActorMover::BeginPlay()
|
||||
{
|
||||
|
@ -596,7 +596,7 @@ protected:
|
|||
TObjPtr<AActor> Activator;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AMovingCamera, false, true, false, false)
|
||||
IMPLEMENT_CLASS(AMovingCamera, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(AMovingCamera)
|
||||
IMPLEMENT_POINTER(Activator)
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
static FRandom pr_restore ("RestorePos");
|
||||
|
||||
IMPLEMENT_CLASS(PClassInventory, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PClassInventory, false, false)
|
||||
|
||||
PClassInventory::PClassInventory()
|
||||
{
|
||||
|
@ -70,7 +70,7 @@ void PClassInventory::Finalize(FStateDefinitions &statedef)
|
|||
((AActor*)Defaults)->flags |= MF_SPECIAL;
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(PClassAmmo, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PClassAmmo, false, false)
|
||||
|
||||
PClassAmmo::PClassAmmo()
|
||||
{
|
||||
|
@ -86,7 +86,7 @@ void PClassAmmo::DeriveData(PClass *newclass)
|
|||
newc->DropAmount = DropAmount;
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(AAmmo, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AAmmo, false, false)
|
||||
|
||||
DEFINE_FIELD(AAmmo, BackpackAmount)
|
||||
DEFINE_FIELD(AAmmo, BackpackMaxAmount)
|
||||
|
@ -480,7 +480,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_RestoreSpecialPosition)
|
|||
int AInventory::StaticLastMessageTic;
|
||||
const char *AInventory::StaticLastMessage;
|
||||
|
||||
IMPLEMENT_CLASS(AInventory, false, true, false, false)
|
||||
IMPLEMENT_CLASS(AInventory, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(AInventory)
|
||||
IMPLEMENT_POINTER(Owner)
|
||||
|
@ -1378,7 +1378,7 @@ bool AInventory::DrawPowerup (int x, int y)
|
|||
/* 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(ACustomInventory, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AStateProvider, false, false)
|
||||
IMPLEMENT_CLASS(ACustomInventory, false, false)
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
|
@ -1725,7 +1725,7 @@ bool ACustomInventory::TryPickup (AActor *&toucher)
|
|||
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;
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(AHealth, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AHealth, false, false)
|
||||
|
||||
DEFINE_FIELD(AHealth, PrevHealth)
|
||||
|
||||
|
@ -1799,7 +1799,7 @@ bool AHealth::TryPickup (AActor *&other)
|
|||
return false;
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(AHealthPickup, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AHealthPickup, false, false)
|
||||
|
||||
DEFINE_FIELD(AHealthPickup, autousemode)
|
||||
|
||||
|
@ -1879,7 +1879,7 @@ void AHealthPickup::Serialize(FSerializer &arc)
|
|||
|
||||
// Backpack -----------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(ABackpackItem, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ABackpackItem, false, false)
|
||||
|
||||
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 BeginPlay ();
|
||||
virtual void Destroy ();
|
||||
virtual void Destroy () override;
|
||||
virtual void DepleteOrDestroy ();
|
||||
virtual void Tick ();
|
||||
virtual bool ShouldRespawn ();
|
||||
|
@ -331,7 +331,7 @@ public:
|
|||
virtual bool TryPickupRestricted (AActor *&toucher);
|
||||
virtual bool PickupForAmmo (AWeapon *ownedWeapon);
|
||||
virtual bool Use (bool pickup);
|
||||
virtual void Destroy();
|
||||
virtual void Destroy() override;
|
||||
|
||||
virtual FState *GetUpState ();
|
||||
virtual FState *GetDownState ();
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "doomstat.h"
|
||||
#include "v_font.h"
|
||||
|
||||
IMPLEMENT_CLASS(PClassPuzzleItem, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PClassPuzzleItem, false, false)
|
||||
|
||||
void PClassPuzzleItem::DeriveData(PClass *newclass)
|
||||
{
|
||||
|
@ -17,7 +17,7 @@ void PClassPuzzleItem::DeriveData(PClass *newclass)
|
|||
static_cast<PClassPuzzleItem *>(newclass)->PuzzFailMessage = PuzzFailMessage;
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(APuzzleItem, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APuzzleItem, false, false)
|
||||
|
||||
DEFINE_FIELD(APuzzleItem, PuzzleItemNumber)
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
static FRandom pr_quake ("Quake");
|
||||
|
||||
IMPLEMENT_CLASS(DEarthquake, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DEarthquake, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DEarthquake)
|
||||
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);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASecretTrigger, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASecretTrigger, false, false)
|
||||
|
||||
void ASecretTrigger::PostBeginPlay ()
|
||||
{
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
// The base class for sector actions ----------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(ASectorAction, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASectorAction, false, false)
|
||||
|
||||
ASectorAction::ASectorAction (bool activatedByUse) :
|
||||
ActivatedByUse (activatedByUse) {}
|
||||
|
@ -142,7 +142,7 @@ public:
|
|||
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)
|
||||
|
@ -160,7 +160,7 @@ public:
|
|||
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)
|
||||
|
@ -181,7 +181,7 @@ public:
|
|||
// Skull Tag uses 9999 for a special that is triggered whenever
|
||||
// the player is on the sector's floor. I think this is more useful.
|
||||
|
||||
IMPLEMENT_CLASS(ASecActHitFloor, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASecActHitFloor, false, false)
|
||||
|
||||
|
||||
bool ASecActHitFloor::DoTriggerAction (AActor *triggerer, int activationType)
|
||||
|
@ -199,7 +199,7 @@ public:
|
|||
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)
|
||||
|
@ -218,7 +218,7 @@ public:
|
|||
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)
|
||||
|
@ -237,7 +237,7 @@ public:
|
|||
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)
|
||||
|
@ -255,7 +255,7 @@ public:
|
|||
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)
|
||||
|
@ -273,7 +273,7 @@ public:
|
|||
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)
|
||||
|
@ -291,7 +291,7 @@ public:
|
|||
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)
|
||||
|
@ -309,7 +309,7 @@ public:
|
|||
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)
|
||||
|
@ -327,7 +327,7 @@ public:
|
|||
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)
|
||||
|
|
|
@ -15,7 +15,7 @@ class AColorSetter : public AActor
|
|||
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AColorSetter, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AColorSetter, false, false)
|
||||
|
||||
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);
|
||||
|
||||
void Serialize(FSerializer &arc);
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
FTextureID StickToWall(side_t *wall, double x, double y, F3DFloor * ffloor);
|
||||
double GetRealZ (const side_t *wall) const;
|
||||
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);
|
||||
|
||||
void BeginPlay ();
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
|
||||
protected:
|
||||
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)
|
||||
public:
|
||||
void BeginPlay ();
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
};
|
||||
|
||||
// For an EE compatible linedef based definition.
|
||||
|
@ -116,7 +116,7 @@ public:
|
|||
DFlashFader (float r1, float g1, float b1, float a1,
|
||||
float r2, float g2, float b2, float a2,
|
||||
float time, AActor *who);
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
void Serialize(FSerializer &arc);
|
||||
void Tick ();
|
||||
AActor *WhoFor() { return ForWho; }
|
||||
|
@ -206,7 +206,7 @@ public:
|
|||
|
||||
void Serialize(FSerializer &arc);
|
||||
void Die (AActor *source, AActor *inflictor, int dmgflags);
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
|
||||
TObjPtr<AActor> UnmorphedMe;
|
||||
int UnmorphTime, MorphStyle;
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
// 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
|
||||
void ASkyViewpoint::BeginPlay ()
|
||||
|
@ -73,7 +73,7 @@ void ASkyViewpoint::Destroy ()
|
|||
Super::Destroy();
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(ASkyCamCompat, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASkyCamCompat, false, false)
|
||||
|
||||
void ASkyCamCompat::BeginPlay()
|
||||
{
|
||||
|
@ -98,7 +98,7 @@ public:
|
|||
void PostBeginPlay ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASkyPicker, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASkyPicker, false, false)
|
||||
|
||||
void ASkyPicker::PostBeginPlay ()
|
||||
{
|
||||
|
@ -142,7 +142,7 @@ void ASkyPicker::PostBeginPlay ()
|
|||
|
||||
// arg0 = opacity of plane; 0 = invisible, 255 = fully opaque
|
||||
|
||||
IMPLEMENT_CLASS(AStackPoint, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AStackPoint, false, false)
|
||||
|
||||
void AStackPoint::BeginPlay ()
|
||||
{
|
||||
|
@ -157,10 +157,10 @@ class ASectorSilencer : public AActor
|
|||
DECLARE_CLASS (ASectorSilencer, AActor)
|
||||
public:
|
||||
void BeginPlay ();
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASectorSilencer, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASectorSilencer, false, false)
|
||||
|
||||
void ASectorSilencer::BeginPlay ()
|
||||
{
|
||||
|
@ -184,7 +184,7 @@ public:
|
|||
void BeginPlay ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASectorFlagSetter, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASectorFlagSetter, false, false)
|
||||
|
||||
void ASectorFlagSetter::BeginPlay ()
|
||||
{
|
||||
|
|
|
@ -46,14 +46,14 @@ public:
|
|||
void Activate (AActor *deactivator);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASoundEnvironment, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASoundEnvironment, false, false)
|
||||
|
||||
void ASoundEnvironment::PostBeginPlay ()
|
||||
{
|
||||
Super::PostBeginPlay ();
|
||||
if (!(flags2 & MF2_DORMANT))
|
||||
{
|
||||
Activate (this);
|
||||
CallActivate (this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ public:
|
|||
TObjPtr<DSeqNode> Sequence;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASoundSequenceSlot, false, true, false, false)
|
||||
IMPLEMENT_CLASS(ASoundSequenceSlot, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(ASoundSequenceSlot)
|
||||
IMPLEMENT_POINTER(Sequence)
|
||||
|
@ -104,14 +104,14 @@ class ASoundSequence : public AActor
|
|||
{
|
||||
DECLARE_CLASS (ASoundSequence, AActor)
|
||||
public:
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
void PostBeginPlay ();
|
||||
void Activate (AActor *activator);
|
||||
void Deactivate (AActor *activator);
|
||||
void MarkPrecacheSounds () const;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASoundSequence, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASoundSequence, false, false)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
|
|
@ -45,7 +45,7 @@ public:
|
|||
void Activate (AActor *activator);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASpark, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASpark, false, false)
|
||||
|
||||
void ASpark::Activate (AActor *activator)
|
||||
{
|
||||
|
|
|
@ -44,8 +44,8 @@
|
|||
static FRandom pr_spot ("SpecialSpot");
|
||||
static FRandom pr_spawnmace ("SpawnMace");
|
||||
|
||||
IMPLEMENT_CLASS(DSpotState, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASpecialSpot, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DSpotState, false, false)
|
||||
IMPLEMENT_CLASS(ASpecialSpot, false, false)
|
||||
TObjPtr<DSpotState> DSpotState::SpotState;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
|
|
@ -11,7 +11,7 @@ class ASpecialSpot : public AActor
|
|||
public:
|
||||
|
||||
void BeginPlay();
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
};
|
||||
|
||||
|
||||
|
@ -28,7 +28,7 @@ public:
|
|||
|
||||
|
||||
DSpotState ();
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
void Tick ();
|
||||
static DSpotState *GetSpotState(bool create = true);
|
||||
FSpotList *FindSpotList(PClassActor *type);
|
||||
|
|
|
@ -42,7 +42,7 @@ public:
|
|||
void PostBeginPlay ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AWaterZone, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AWaterZone, false, false)
|
||||
|
||||
void AWaterZone::PostBeginPlay ()
|
||||
{
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#include "doomstat.h"
|
||||
#include "serializer.h"
|
||||
|
||||
IMPLEMENT_CLASS(PClassWeaponPiece, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AWeaponHolder, false, false, false, false)
|
||||
IMPLEMENT_CLASS(PClassWeaponPiece, false, false)
|
||||
IMPLEMENT_CLASS(AWeaponHolder, false, false)
|
||||
|
||||
DEFINE_FIELD(AWeaponHolder, PieceMask);
|
||||
DEFINE_FIELD(AWeaponHolder, PieceWeapon);
|
||||
|
@ -27,7 +27,7 @@ void AWeaponHolder::Serialize(FSerializer &arc)
|
|||
("pieceweapon", PieceWeapon);
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(AWeaponPiece, false, true, false, false)
|
||||
IMPLEMENT_CLASS(AWeaponPiece, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(AWeaponPiece)
|
||||
IMPLEMENT_POINTER(FullWeapon)
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
extern FFlagDef WeaponFlagDefs[];
|
||||
|
||||
IMPLEMENT_CLASS(AWeapon, false, true, true, false)
|
||||
IMPLEMENT_CLASS(AWeapon, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(AWeapon)
|
||||
IMPLEMENT_POINTER(Ammo1)
|
||||
|
@ -80,7 +80,7 @@ TMap<PClassWeapon *, int> Weapons_hton;
|
|||
|
||||
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 ***********************************************************/
|
||||
|
||||
IMPLEMENT_CLASS(AWeaponGiver, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AWeaponGiver, false, false)
|
||||
|
||||
DEFINE_FIELD(AWeaponGiver, DropAmmoFactor);
|
||||
|
||||
|
|
|
@ -44,15 +44,15 @@
|
|||
EXTERN_CVAR(Int, con_scaletext)
|
||||
int active_con_scaletext();
|
||||
|
||||
IMPLEMENT_CLASS(DHUDMessage, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DHUDMessage, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DHUDMessage)
|
||||
IMPLEMENT_POINTER(Next)
|
||||
IMPLEMENT_POINTERS_END
|
||||
|
||||
IMPLEMENT_CLASS(DHUDMessageFadeOut, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DHUDMessageFadeInOut, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DHUDMessageTypeOnFadeOut, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DHUDMessageFadeOut, false, false)
|
||||
IMPLEMENT_CLASS(DHUDMessageFadeInOut, false, false)
|
||||
IMPLEMENT_CLASS(DHUDMessageTypeOnFadeOut, false, false)
|
||||
|
||||
/*************************************************************************
|
||||
* Basic HUD message. Appears and disappears without any special effects *
|
||||
|
|
|
@ -341,7 +341,7 @@ public:
|
|||
};
|
||||
|
||||
DBaseStatusBar (int reltop, int hres=320, int vres=200);
|
||||
void Destroy ();
|
||||
void Destroy() override;
|
||||
|
||||
void SetScaled (bool scale, bool force=false);
|
||||
|
||||
|
|
|
@ -1531,7 +1531,7 @@ private:
|
|||
SBarInfoMainBlock *lastPopup;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(DSBarInfo, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DSBarInfo, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DSBarInfo)
|
||||
IMPLEMENT_POINTER(ammo1)
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
#define XHAIRPICKUPSIZE (2+XHAIRSHRINKSIZE)
|
||||
#define POWERUPICONSIZE 32
|
||||
|
||||
IMPLEMENT_CLASS(DBaseStatusBar, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DBaseStatusBar, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DBaseStatusBar)
|
||||
IMPLEMENT_POINTER(Messages[0])
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
// Coin ---------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(ACoin, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ACoin, false, false)
|
||||
|
||||
const char *ACoin::PickupMessage ()
|
||||
{
|
||||
|
|
|
@ -17,7 +17,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
|
|
@ -23,7 +23,7 @@ public:
|
|||
PalEntry GetBlend ();
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AProgLevelEnder, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AProgLevelEnder, false, false)
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
|
|
|
@ -47,7 +47,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ATeleporterBeacon, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ATeleporterBeacon, false, false)
|
||||
|
||||
bool ATeleporterBeacon::Use (bool pickup)
|
||||
{
|
||||
|
|
|
@ -16,7 +16,7 @@ public:
|
|||
void Touch (AActor *toucher);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ASpectralMonster, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASpectralMonster, false, false)
|
||||
|
||||
void ASpectralMonster::Touch (AActor *toucher)
|
||||
{
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
// Degnin Ore ---------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(ADegninOre, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ADegninOre, false, false)
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_RemoveForceField)
|
||||
{
|
||||
|
@ -75,7 +75,7 @@ public:
|
|||
bool TryPickup (AActor *&toucher);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AHealthTraining, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AHealthTraining, false, false)
|
||||
|
||||
bool AHealthTraining::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
@ -105,7 +105,7 @@ public:
|
|||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AScanner, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AScanner, false, false)
|
||||
|
||||
bool AScanner::Use (bool pickup)
|
||||
{
|
||||
|
@ -130,7 +130,7 @@ public:
|
|||
bool SpecialDropAction (AActor *dropper);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(APrisonPass, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APrisonPass, false, false)
|
||||
|
||||
bool APrisonPass::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
@ -163,7 +163,7 @@ bool APrisonPass::SpecialDropAction (AActor *dropper)
|
|||
// actions and cannot be held. ----------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(ADummyStrifeItem, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ADummyStrifeItem, false, false)
|
||||
|
||||
// Sound the alarm! ---------------------------------------------------------
|
||||
|
||||
|
@ -175,7 +175,7 @@ public:
|
|||
bool SpecialDropAction (AActor *dropper);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ARaiseAlarm, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ARaiseAlarm, false, false)
|
||||
|
||||
bool ARaiseAlarm::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
@ -209,7 +209,7 @@ public:
|
|||
bool TryPickup (AActor *&toucher);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AOpenDoor222, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AOpenDoor222, false, false)
|
||||
|
||||
bool AOpenDoor222::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
@ -228,7 +228,7 @@ public:
|
|||
bool SpecialDropAction (AActor *dropper);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(ACloseDoor222, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ACloseDoor222, false, false)
|
||||
|
||||
bool ACloseDoor222::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
@ -262,7 +262,7 @@ public:
|
|||
bool SpecialDropAction (AActor *dropper);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AOpenDoor224, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AOpenDoor224, false, false)
|
||||
|
||||
bool AOpenDoor224::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
@ -287,7 +287,7 @@ public:
|
|||
bool TryPickup (AActor *&toucher);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AAmmoFillup, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AAmmoFillup, false, false)
|
||||
|
||||
bool AAmmoFillup::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
@ -325,7 +325,7 @@ public:
|
|||
bool TryPickup (AActor *&toucher);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(AHealthFillup, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AHealthFillup, false, false)
|
||||
|
||||
bool AHealthFillup::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
@ -342,7 +342,7 @@ bool AHealthFillup::TryPickup (AActor *&toucher)
|
|||
|
||||
// Upgrade Stamina ----------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(AUpgradeStamina, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AUpgradeStamina, false, false)
|
||||
|
||||
bool AUpgradeStamina::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
@ -360,7 +360,7 @@ bool AUpgradeStamina::TryPickup (AActor *&toucher)
|
|||
|
||||
// Upgrade Accuracy ---------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(AUpgradeAccuracy, false, false, false, false)
|
||||
IMPLEMENT_CLASS(AUpgradeAccuracy, false, false)
|
||||
|
||||
bool AUpgradeAccuracy::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
@ -373,7 +373,7 @@ bool AUpgradeAccuracy::TryPickup (AActor *&toucher)
|
|||
|
||||
// Start a slideshow --------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(ASlideshowStarter, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASlideshowStarter, false, false)
|
||||
|
||||
bool ASlideshowStarter::TryPickup (AActor *&toucher)
|
||||
{
|
||||
|
|
|
@ -72,7 +72,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
@ -197,7 +197,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
@ -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);
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(APoisonBolt, false, false, false, false)
|
||||
IMPLEMENT_CLASS(APoisonBolt, false, false)
|
||||
|
||||
int APoisonBolt::DoSpecialDamage (AActor *target, int damage, FName damagetype)
|
||||
{
|
||||
|
@ -607,7 +607,7 @@ public:
|
|||
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)
|
||||
{
|
||||
|
@ -734,7 +734,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_FireGrenade)
|
|||
|
||||
// The Almighty Sigil! ------------------------------------------------------
|
||||
|
||||
IMPLEMENT_CLASS(ASigil, false, false, false, false)
|
||||
IMPLEMENT_CLASS(ASigil, false, false)
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
|
|
|
@ -851,7 +851,7 @@ private:
|
|||
double ItemFlash;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(DStrifeStatusBar, false, false, false, false);
|
||||
IMPLEMENT_CLASS(DStrifeStatusBar, false, false);
|
||||
|
||||
DBaseStatusBar *CreateStrifeStatusBar ()
|
||||
{
|
||||
|
|
|
@ -151,7 +151,7 @@ int GetSpriteIndex(const char * spritename, bool add)
|
|||
return (lastindex = (int)sprites.Push (temp));
|
||||
}
|
||||
|
||||
IMPLEMENT_CLASS(PClassActor, false, true, false, false)
|
||||
IMPLEMENT_CLASS(PClassActor, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(PClassActor)
|
||||
IMPLEMENT_POINTER(DropItems)
|
||||
|
|
|
@ -54,12 +54,12 @@
|
|||
|
||||
FIntermissionDescriptorList IntermissionDescriptors;
|
||||
|
||||
IMPLEMENT_CLASS(DIntermissionScreen, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionScreenFader, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionScreenText, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionScreenCast, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionScreenScroller, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionController, false, true, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionScreen, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionScreenFader, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionScreenText, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionScreenCast, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionScreenScroller, false, false)
|
||||
IMPLEMENT_CLASS(DIntermissionController, false, true)
|
||||
|
||||
IMPLEMENT_POINTERS_START(DIntermissionController)
|
||||
IMPLEMENT_POINTER(mScreen)
|
||||
|
|
|
@ -176,7 +176,7 @@ public:
|
|||
virtual int Responder (event_t *ev);
|
||||
virtual int Ticker ();
|
||||
virtual void Drawer ();
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
FTextureID GetBackground(bool *fill)
|
||||
{
|
||||
*fill = mFlatfill;
|
||||
|
@ -301,7 +301,7 @@ public:
|
|||
bool Responder (event_t *ev);
|
||||
void Ticker ();
|
||||
void Drawer ();
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
|
||||
friend void F_AdvanceIntermission();
|
||||
};
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#include "cmdlib.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_POINTER(Pawn)
|
||||
|
|
|
@ -95,7 +95,7 @@ public:
|
|||
desc->CalcIndent();
|
||||
}
|
||||
|
||||
void Destroy()
|
||||
void Destroy() override
|
||||
{
|
||||
if (mStartItem >= 0)
|
||||
{
|
||||
|
@ -331,7 +331,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(DColorPickerMenu, true, false, false, false)
|
||||
IMPLEMENT_CLASS(DColorPickerMenu, true, false)
|
||||
|
||||
CCMD(undocolorpic)
|
||||
{
|
||||
|
|
|
@ -236,7 +236,7 @@ class DJoystickConfigMenu : public 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 "menu/menu.h"
|
||||
|
||||
IMPLEMENT_CLASS(DListMenu, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DListMenu, false, false)
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
|
|
|
@ -103,7 +103,7 @@ protected:
|
|||
char savegamestring[SAVESTRINGSIZE];
|
||||
|
||||
DLoadSaveMenu(DMenu *parent = NULL, FListMenuDescriptor *desc = NULL);
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
|
||||
int RemoveSaveSlot (int index);
|
||||
void UnloadSaveData ();
|
||||
|
@ -119,7 +119,7 @@ public:
|
|||
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS(DLoadSaveMenu, false, false, false, false)
|
||||
IMPLEMENT_CLASS(DLoadSaveMenu, false, false)
|
||||
|
||||
TArray<FSaveGameNode*> DLoadSaveMenu::SaveGames;
|
||||
int DLoadSaveMenu::LastSaved = -1;
|
||||
|
@ -466,6 +466,7 @@ void DLoadSaveMenu::Destroy()
|
|||
if (currentSavePic != nullptr) delete currentSavePic;
|
||||
currentSavePic = nullptr;
|
||||
ClearSaveStuff ();
|
||||
Super::Destroy();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
|
@ -927,14 +928,14 @@ class DSaveMenu : public DLoadSaveMenu
|
|||
public:
|
||||
|
||||
DSaveMenu(DMenu *parent = NULL, FListMenuDescriptor *desc = NULL);
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
void DoSave (FSaveGameNode *node);
|
||||
bool Responder (event_t *ev);
|
||||
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;
|
||||
else Selected--;
|
||||
}
|
||||
Super::Destroy();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
|
@ -1102,7 +1104,7 @@ public:
|
|||
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_POINTER(mParentMenu)
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue