mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 08:34:40 +00:00
fix inheritance conflict loop by declaring a singular root for class EngineObject : public StrongRefBase
This commit is contained in:
parent
8dc3163fae
commit
2e25059b27
1 changed files with 23 additions and 1 deletions
|
|
@ -282,6 +282,28 @@ class EngineObject;
|
||||||
template< typename T > friend struct ::_SCOPE; \
|
template< typename T > friend struct ::_SCOPE; \
|
||||||
template< typename T > friend T* _CREATE(); \
|
template< typename T > friend T* _CREATE(); \
|
||||||
template< typename T, typename Base > friend class ::EngineClassTypeInfo; \
|
template< typename T, typename Base > friend class ::EngineClassTypeInfo; \
|
||||||
|
private: \
|
||||||
|
typedef ::_Private::_AbstractClassBase< ThisType > _ClassBase; \
|
||||||
|
static EngineClassTypeInfo< ThisType, _ClassBase > _smTypeInfo; \
|
||||||
|
static EngineExportScope& __engineExportScope(); \
|
||||||
|
static EnginePropertyTable& _smPropertyTable; \
|
||||||
|
const EngineTypeInfo* __typeinfo() const override; \
|
||||||
|
public:
|
||||||
|
|
||||||
|
/// Declare an abstract base class @a type derived from the class @a super.
|
||||||
|
///
|
||||||
|
/// Nearly identical to DECLARE_ABSTRACT_CLASS macro, but with virtual methods
|
||||||
|
/// that are suppose to be override'd in child classes.
|
||||||
|
///
|
||||||
|
/// @see DECLARE_ABSTRACT_CLASS
|
||||||
|
#define DECLARE_ABSTRACT_BASE_CLASS(type) \
|
||||||
|
public: \
|
||||||
|
typedef type ThisType; \
|
||||||
|
typedef void SuperType; \
|
||||||
|
template< typename T > friend struct ::_EngineTypeTraits; \
|
||||||
|
template< typename T > friend struct ::_SCOPE; \
|
||||||
|
template< typename T > friend T* _CREATE(); \
|
||||||
|
template< typename T, typename Base > friend class ::EngineClassTypeInfo; \
|
||||||
private: \
|
private: \
|
||||||
typedef ::_Private::_AbstractClassBase< ThisType > _ClassBase; \
|
typedef ::_Private::_AbstractClassBase< ThisType > _ClassBase; \
|
||||||
static EngineClassTypeInfo< ThisType, _ClassBase > _smTypeInfo; \
|
static EngineClassTypeInfo< ThisType, _ClassBase > _smTypeInfo; \
|
||||||
|
|
@ -504,7 +526,7 @@ class EngineObject : public StrongRefBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
DECLARE_ABSTRACT_CLASS( EngineObject, void );
|
DECLARE_ABSTRACT_BASE_CLASS( EngineObject );
|
||||||
DECLARE_INSCOPE( _GLOBALSCOPE );
|
DECLARE_INSCOPE( _GLOBALSCOPE );
|
||||||
DECLARE_INSTANTIABLE;
|
DECLARE_INSTANTIABLE;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue