diff --git a/stepmania/src/GameLoop.cpp b/stepmania/src/GameLoop.cpp index 675e0514f8..4e7b466638 100644 --- a/stepmania/src/GameLoop.cpp +++ b/stepmania/src/GameLoop.cpp @@ -135,6 +135,9 @@ namespace /* Clear theme metrics, so ThemeMetrics are cleared. */ THEME->ClearSubscribers(); + /* In case the previous theme overloaded class bindings, reinitialize them. */ + LUA->RegisterTypes(); + THEME->SwitchThemeAndLanguage( g_sNewTheme, THEME->GetCurLanguage(), PREFSMAN->m_bPseudoLocalize ); PREFSMAN->m_sTheme.Set( g_sNewTheme ); diff --git a/stepmania/src/ThemeManager.cpp b/stepmania/src/ThemeManager.cpp index 766e8bf55a..1e54e745e1 100644 --- a/stepmania/src/ThemeManager.cpp +++ b/stepmania/src/ThemeManager.cpp @@ -473,8 +473,6 @@ void ThemeManager::RunLuaScripts( const RString &sMask ) void ThemeManager::UpdateLuaGlobals() { - LUA->RegisterTypes(); - #if !defined(SMPACKAGE) /* explicitly refresh cached metrics that we use. */ ScreenDimensions::ReloadScreenDimensions();