@@ -695,27 +695,13 @@ struct ScriptEnumDesc_t
695695#define BEGIN_SCRIPTDESC ( className, baseClass, description ) BEGIN_SCRIPTDESC_NAMED( className, baseClass, #className, description )
696696#define BEGIN_SCRIPTDESC_ROOT ( className, description ) BEGIN_SCRIPTDESC_ROOT_NAMED( className, #className, description )
697697
698- #ifdef MSVC
699- #define DEFINE_SCRIPTDESC_FUNCTION ( className, baseClass ) \
700- ScriptClassDesc_t * GetScriptDesc ( className * )
701- #else
702- #define DEFINE_SCRIPTDESC_FUNCTION ( className, baseClass ) \
703- template <> ScriptClassDesc_t * GetScriptDesc<baseClass>( baseClass *); \
704- template <> ScriptClassDesc_t * GetScriptDesc<className>( className *)
705- #endif
706-
707698#define BEGIN_SCRIPTDESC_NAMED ( className, baseClass, scriptName, description ) \
708- ScriptClassDesc_t g_##className##_ScriptDesc; \
709- DEFINE_SCRIPTDESC_FUNCTION ( className, baseClass ) \
699+ template <> ScriptClassDesc_t* GetScriptDesc<baseClass>(baseClass*); \
700+ template <> ScriptClassDesc_t* GetScriptDesc<className>(className*); \
701+ ScriptClassDesc_t & g_##className##_ScriptDesc = *GetScriptDesc<className>(nullptr ); \
702+ template <> ScriptClassDesc_t* GetScriptDesc<className>(className*) \
710703 { \
711- static bool bInitialized; \
712- if ( bInitialized ) \
713- { \
714- return &g_##className##_ScriptDesc; \
715- } \
716- \
717- bInitialized = true ; \
718- \
704+ static ScriptClassDesc_t g_##className##_ScriptDesc; \
719705 typedef className _className; \
720706 ScriptClassDesc_t *pDesc = &g_##className##_ScriptDesc; \
721707 pDesc->m_pszDescription = description; \
0 commit comments