From 1851fda405ad4f84d34ecc3d616b30bb558ec683 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 1 Nov 2005 17:46:48 +0000 Subject: [PATCH] move --metric hanlding to LoadThemeRecursive --- stepmania/src/ThemeManager.cpp | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/stepmania/src/ThemeManager.cpp b/stepmania/src/ThemeManager.cpp index 29b8ca02e4..fdc6ec359a 100644 --- a/stepmania/src/ThemeManager.cpp +++ b/stepmania/src/ThemeManager.cpp @@ -204,9 +204,24 @@ void ThemeManager::LoadThemeRecursive( deque &theme, const CString &sThem } if( sFallback.empty() ) - return; + break; sThemeName = sFallback; } + + /* Overlay metrics from the command line. */ + CString sMetric; + for( int i = 0; GetCommandlineArgument( "metric", &sMetric, i ); ++i ) + { + /* sMetric must be "foo::bar=baz". "foo" and "bar" never contain "=", so in + * "foo::bar=1+1=2", "baz" is always "1+1=2". Neither foo nor bar may be + * empty, but baz may be. */ + Regex re( "^([^=]+)::([^=]+)=(.*)$" ); + vector sBits; + if( !re.Compare( sMetric, sBits ) ) + RageException::Throw( "Invalid argument \"--metric=%s\"", sMetric.c_str() ); + + g_vThemes.front().iniMetrics->SetValue( sBits[0], sBits[1], sBits[2] ); + } } CString ThemeManager::GetDefaultLanguage() @@ -245,20 +260,6 @@ void ThemeManager::SwitchThemeAndLanguage( const CString &sThemeName_, const CSt // load current theme LoadThemeRecursive( g_vThemes, m_sCurThemeName ); - CString sMetric; - for( int i = 0; GetCommandlineArgument( "metric", &sMetric, i ); ++i ) - { - /* sMetric must be "foo::bar=baz". "foo" and "bar" never contain "=", so in - * "foo::bar=1+1=2", "baz" is always "1+1=2". Neither foo nor bar may be - * empty, but baz may be. */ - Regex re( "^([^=]+)::([^=]+)=(.*)$" ); - vector sBits; - if( !re.Compare( sMetric, sBits ) ) - RageException::Throw( "Invalid argument \"--metric=%s\"", sMetric.c_str() ); - - g_vThemes.front().iniMetrics->SetValue( sBits[0], sBits[1], sBits[2] ); - } - LOG->MapLog( "theme", "Theme: %s", sThemeName.c_str() ); LOG->MapLog( "language", "Language: %s", sLanguage.c_str() );