make hack more surgical
This commit is contained in:
@@ -199,6 +199,18 @@ LuaManager::~LuaManager()
|
||||
lua_close( L );
|
||||
}
|
||||
|
||||
void LuaManager::RegisterTypes()
|
||||
{
|
||||
if( g_vRegisterActorTypes )
|
||||
{
|
||||
for( unsigned i=0; i<g_vRegisterActorTypes->size(); i++ )
|
||||
{
|
||||
RegisterActorFn fn = (*g_vRegisterActorTypes)[i];
|
||||
fn( L );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LuaManager::ResetState()
|
||||
{
|
||||
if( L != NULL )
|
||||
@@ -221,15 +233,8 @@ void LuaManager::ResetState()
|
||||
|
||||
for( const LuaFunctionList *p = g_LuaFunctions; p; p=p->next )
|
||||
lua_register( L, p->name, p->func );
|
||||
|
||||
if( g_vRegisterActorTypes )
|
||||
{
|
||||
for( unsigned i=0; i<g_vRegisterActorTypes->size(); i++ )
|
||||
{
|
||||
RegisterActorFn fn = (*g_vRegisterActorTypes)[i];
|
||||
fn( L );
|
||||
}
|
||||
}
|
||||
|
||||
RegisterTypes();
|
||||
|
||||
LuaReference::AfterResetAll();
|
||||
}
|
||||
|
||||
@@ -18,6 +18,9 @@ public:
|
||||
|
||||
bool RunScriptFile( const CString &sFile );
|
||||
|
||||
/* Register all subscribing types. There's no harm in registering when already registered. */
|
||||
void RegisterTypes();
|
||||
|
||||
/* Reset the environment, freeing any globals left over by previously executed scripts. */
|
||||
void ResetState();
|
||||
|
||||
|
||||
@@ -1092,9 +1092,9 @@ int main(int argc, char* argv[])
|
||||
MESSAGEMAN = new MessageManager;
|
||||
STATSMAN = new StatsManager;
|
||||
|
||||
// UGLY: Reload the current theme now that all global singletons are
|
||||
// constructed so that they can be registered with Lua.
|
||||
THEME->UpdateLuaGlobals();
|
||||
// UGLY: Now that all global singletons are constructed so that they, let them
|
||||
// all register with Lua.
|
||||
LUA->RegisterTypes();
|
||||
|
||||
SAFE_DELETE( loading_window ); // destroy this before init'ing Display
|
||||
|
||||
|
||||
Reference in New Issue
Block a user