diff --git a/stepmania/src/ThemeManager.cpp b/stepmania/src/ThemeManager.cpp index 642efb8670..6ca91ae16d 100644 --- a/stepmania/src/ThemeManager.cpp +++ b/stepmania/src/ThemeManager.cpp @@ -975,12 +975,10 @@ LuaReference ThemeManager::GetMetricR( const RString &sClassName, const RString return ref; } -void ThemeManager::GetMetric( const RString &sClassName, const RString &sValueName, LuaReference &valueOut ) +void ThemeManager::PushMetric( Lua *L, const RString &sClassName, const RString &sValueName ) { RString sValue = GetMetricRaw( g_pLoadedThemeData->iniMetrics, sClassName, sValueName ); - Lua *L = LUA->Get(); - if( EndsWith(sValueName, "Command") ) { ActorUtil::ParseActorCommands( L, sValue ); @@ -990,7 +988,12 @@ void ThemeManager::GetMetric( const RString &sClassName, const RString &sValueNa LuaHelpers::PrepareExpression( sValue ); LuaHelpers::RunExpression( L, sValue ); } +} +void ThemeManager::GetMetric( const RString &sClassName, const RString &sValueName, LuaReference &valueOut ) +{ + Lua *L = LUA->Get(); + PushMetric( L, sClassName, sValueName ); valueOut.SetFromStack( L ); LUA->Release( L ); } diff --git a/stepmania/src/ThemeManager.h b/stepmania/src/ThemeManager.h index 3d8ac80326..a74e49af01 100644 --- a/stepmania/src/ThemeManager.h +++ b/stepmania/src/ThemeManager.h @@ -70,6 +70,7 @@ public: void ClearThemePathCache(); bool HasMetric( const RString &sClassName, const RString &sValueName ); + void PushMetric( Lua *L, const RString &sClassName, const RString &sValueName ); RString GetMetric( const RString &sClassName, const RString &sValueName ); int GetMetricI( const RString &sClassName, const RString &sValueName ); float GetMetricF( const RString &sClassName, const RString &sValueName );