From 247b9c3fb5c48c7e531bc468c61ecb6b6a7b1808 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 14 Oct 2005 04:51:16 +0000 Subject: [PATCH] prevent falling back further than the base theme, even if it's renamed --- stepmania/src/ThemeManager.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/stepmania/src/ThemeManager.cpp b/stepmania/src/ThemeManager.cpp index 8cd6c692b5..c87708f7b6 100644 --- a/stepmania/src/ThemeManager.cpp +++ b/stepmania/src/ThemeManager.cpp @@ -175,9 +175,6 @@ void ThemeManager::LoadThemeRecursive( deque &theme, const CString &sThem depth++; ASSERT_M( depth < 20, "Circular theme fallback references detected." ); - if( !sThemeName.CompareNoCase(BASE_THEME_NAME) ) - loaded_base = true; - Theme t; t.iniMetrics = new IniFile; t.sThemeName = sThemeName; @@ -186,6 +183,11 @@ void ThemeManager::LoadThemeRecursive( deque &theme, const CString &sThem if( m_sCurLanguage.CompareNoCase(BASE_LANGUAGE) ) t.iniMetrics->ReadFile( GetLanguageIniPath(sThemeName,m_sCurLanguage) ); + bool bIsBaseTheme = !sThemeName.CompareNoCase(BASE_THEME_NAME); + t.iniMetrics->GetValue( "Global", "IsBaseTheme", bIsBaseTheme ); + if( bIsBaseTheme ) + loaded_base = true; + /* Read the fallback theme. If no fallback theme is specified, and we havn't * already loaded it, fall back on BASE_THEME_NAME. That way, default theme * fallbacks can be disabled with "FallbackTheme=". */ @@ -200,7 +202,7 @@ void ThemeManager::LoadThemeRecursive( deque &theme, const CString &sThem g_vThemes.push_front( t ); - if( !sThemeName.CompareNoCase(sThemeName) ) + if( bIsBaseTheme ) loaded_base = false; depth--;