diff --git a/src/common/objects/dobjtype.cpp b/src/common/objects/dobjtype.cpp index a3172c5e5..0d1bfdf9a 100644 --- a/src/common/objects/dobjtype.cpp +++ b/src/common/objects/dobjtype.cpp @@ -46,8 +46,6 @@ #include "symbols.h" #include "types.h" -#include "p_visualthinker.h" - // MACROS ------------------------------------------------------------------ // TYPES ------------------------------------------------------------------- @@ -423,7 +421,7 @@ PClass *PClass::FindClass (FName zaname) // //========================================================================== -DObject *PClass::CreateNew(int *statnum) +DObject *PClass::CreateNew() { uint8_t *mem = (uint8_t *)M_Malloc (Size); assert (mem != nullptr); @@ -446,12 +444,6 @@ DObject *PClass::CreateNew(int *statnum) ((DObject *)mem)->SetClass (const_cast(this)); InitializeSpecials(mem, Defaults, &PClass::SpecialInits); - - if(statnum && ((DObject *)mem)->IsKindOf(RUNTIME_CLASS(DVisualThinker))) - { - *statnum = STAT_VISUALTHINKER; - } - return (DObject *)mem; } diff --git a/src/common/objects/dobjtype.h b/src/common/objects/dobjtype.h index 17ad29862..62e6f5ccc 100644 --- a/src/common/objects/dobjtype.h +++ b/src/common/objects/dobjtype.h @@ -90,7 +90,7 @@ public: PClass(); ~PClass(); void InsertIntoHash(bool native); - DObject *CreateNew(int *statnum = nullptr); + DObject *CreateNew(); PClass *CreateDerivedClass(FName name, unsigned int size, bool *newlycreated = nullptr, int fileno = 0); void InitializeActorInfo(); diff --git a/src/g_levellocals.h b/src/g_levellocals.h index c02a6bd01..af2d6bb28 100644 --- a/src/g_levellocals.h +++ b/src/g_levellocals.h @@ -56,6 +56,7 @@ #include "r_data/r_interpolate.h" #include "doom_aabbtree.h" #include "doom_levelmesh.h" +#include "p_visualthinker.h" //============================================================================ // @@ -425,7 +426,12 @@ public: DThinker *CreateThinker(PClass *cls, int statnum = STAT_DEFAULT) { - DThinker *thinker = static_cast(cls->CreateNew(&statnum)); + DThinker *thinker = static_cast(cls->CreateNew()); + if (statnum && thinker->IsKindOf(RUNTIME_CLASS(DVisualThinker))) + { + statnum = STAT_VISUALTHINKER; + } + assert(thinker->IsKindOf(RUNTIME_CLASS(DThinker))); thinker->ObjectFlags |= OF_JustSpawned; Thinkers.Link(thinker, statnum);