const fixes

This commit is contained in:
Chris Danford
2004-11-06 06:34:21 +00:00
parent 51a3563cbc
commit 8df7954d2d
2 changed files with 85 additions and 80 deletions
+45 -40
View File
@@ -125,7 +125,7 @@ void ThemeManager::GetThemeNames( CStringArray& AddTo )
}
}
bool ThemeManager::DoesThemeExist( CString sThemeName )
bool ThemeManager::DoesThemeExist( const CString &sThemeName )
{
CStringArray asThemeNames;
GetThemeNames( asThemeNames );
@@ -153,7 +153,7 @@ void ThemeManager::GetLanguages( CStringArray& AddTo )
AddTo.erase(it, AddTo.end());
}
bool ThemeManager::DoesLanguageExist( CString sLanguage )
bool ThemeManager::DoesLanguageExist( const CString &sLanguage )
{
CStringArray asLanguages;
GetLanguages( asLanguages );
@@ -164,7 +164,7 @@ bool ThemeManager::DoesLanguageExist( CString sLanguage )
return false;
}
void ThemeManager::LoadThemeRecursive( deque<Theme> &theme, CString sThemeName )
void ThemeManager::LoadThemeRecursive( deque<Theme> &theme, const CString &sThemeName )
{
static int depth = 0;
static bool loaded_base = false;
@@ -201,20 +201,22 @@ void ThemeManager::LoadThemeRecursive( deque<Theme> &theme, CString sThemeName )
depth--;
}
void ThemeManager::SwitchThemeAndLanguage( CString sThemeName, CString sLanguage )
void ThemeManager::SwitchThemeAndLanguage( const CString &sThemeName, const CString &sLanguage )
{
if( !DoesThemeExist(sThemeName) )
sThemeName = BASE_THEME_NAME;
if( !DoesLanguageExist(sLanguage) )
sLanguage = BASE_LANGUAGE;
CString sTheme = sThemeName;
CString sLang = sLanguage;
if( !DoesThemeExist(sTheme) )
sTheme = BASE_THEME_NAME;
if( !DoesLanguageExist(sLang) )
sLang = BASE_LANGUAGE;
LOG->Trace("ThemeManager::SwitchThemeAndLanguage: \"%s\", \"%s\"",
sThemeName.c_str(), m_sCurThemeName.c_str() );
sTheme.c_str(), sLang.c_str() );
if( sThemeName == m_sCurThemeName && sLanguage == m_sCurLanguage )
if( sTheme == m_sCurThemeName && sLang == m_sCurLanguage )
return;
m_sCurThemeName = sThemeName;
m_sCurLanguage = sLanguage;
m_sCurThemeName = sTheme;
m_sCurLanguage = sLang;
// clear theme path cache
for( int i = 0; i < NUM_ELEMENT_CATEGORIES; ++i )
@@ -239,8 +241,8 @@ void ThemeManager::SwitchThemeAndLanguage( CString sThemeName, CString sLanguage
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());
LOG->MapLog("theme", "Theme: %s", sTheme.c_str());
LOG->MapLog("language", "Language: %s", sLang.c_str());
// reload common sounds
if ( SCREENMAN != NULL )
@@ -257,34 +259,36 @@ CString ThemeManager::GetThemeDirFromName( const CString &sThemeName )
return THEMES_DIR + sThemeName + "/";
}
CString ThemeManager::GetPathToAndFallback( CString sThemeName, ElementCategory category, CString sClassName, CString sElement )
CString ThemeManager::GetPathToAndFallback( const CString &sThemeName, ElementCategory category, const CString &sClassName, const CString &sElement )
{
CString sClass = sClassName;
int n = 100;
while( n-- )
{
// search with requested name
CString sRet = GetPathToRaw( sThemeName, category, sClassName, sElement );
CString sRet = GetPathToRaw( sThemeName, category, sClass, sElement );
if( !sRet.empty() )
return sRet;
// search fallback name (if any)
CString sFallback;
GetMetricRaw( sClassName, "Fallback", sFallback );
GetMetricRaw( sClass, "Fallback", sFallback );
if( sFallback.empty() )
return "";
sClassName = sFallback;
sClass = sFallback;
}
RageException::Throw("Infinite recursion looking up theme element from theme \"%s\", class \"%s\"",
sThemeName.c_str(), sClassName.c_str() );
sThemeName.c_str(), sClass.c_str() );
}
CString ThemeManager::GetPathToRaw( CString sThemeName, ElementCategory category, CString sClassName, CString sElement )
CString ThemeManager::GetPathToRaw( const CString &sThemeName, ElementCategory category, const CString &sClassName, const CString &sElement )
{
try_element_again:
const CString sThemeDir = GetThemeDirFromName( sThemeName );
const CString sCategory = ELEMENT_CATEGORY_STRING[category];
const CString &sCategory = ELEMENT_CATEGORY_STRING[category];
CStringArray asElementPaths;
@@ -426,7 +430,7 @@ try_element_again:
}
}
CString ThemeManager::GetPath( ElementCategory category, CString sClassName, CString sElement, bool bOptional )
CString ThemeManager::GetPath( ElementCategory category, const CString &sClassName, const CString &sElement, bool bOptional )
{
CString sFileName = ClassAndElementToFileName( sClassName, sElement );
@@ -460,7 +464,7 @@ try_element_again:
return "";
}
CString sCategory = ELEMENT_CATEGORY_STRING[category];
const CString &sCategory = ELEMENT_CATEGORY_STRING[category];
/* We can't fall back on _missing in Other: the file types are unknown. */
CString sMessage = "The theme element \"" + sCategory + "/" + sFileName +"\" is missing.";
@@ -504,12 +508,12 @@ try_element_again:
}
CString ThemeManager::GetMetricsIniPath( CString sThemeName )
CString ThemeManager::GetMetricsIniPath( const CString &sThemeName )
{
return GetThemeDirFromName( sThemeName ) + METRICS_FILE;
}
bool ThemeManager::HasMetric( CString sClassName, CString sValueName )
bool ThemeManager::HasMetric( const CString &sClassName, const CString &sValueName )
{
CString sThrowAway;
return GetMetricRaw( sClassName, sValueName, sThrowAway );
@@ -518,7 +522,8 @@ bool ThemeManager::HasMetric( CString sClassName, CString sValueName )
void ThemeManager::ReloadMetrics()
{
// force a reload of the metrics cache
const CString sThemeName = m_sCurThemeName, sCurLanguage = m_sCurLanguage;
const CString sThemeName = m_sCurThemeName;
const CString sCurLanguage = m_sCurLanguage;
m_sCurThemeName = "";
m_sCurLanguage = "";
@@ -534,7 +539,7 @@ void ThemeManager::ReloadMetrics()
}
bool ThemeManager::GetMetricRaw( CString sClassName, CString sValueName, CString &ret, int level )
bool ThemeManager::GetMetricRaw( const CString &sClassName, const CString &sValueName, CString &ret, int level )
{
if( level > 100 )
RageException::Throw("Infinite recursion looking up theme metric \"%s::%s\"", sClassName.c_str(), sValueName.c_str() );
@@ -557,7 +562,7 @@ bool ThemeManager::GetMetricRaw( CString sClassName, CString sValueName, CString
return false;
}
CString ThemeManager::GetMetricRaw( CString sClassName, CString sValueName )
CString ThemeManager::GetMetricRaw( const CString &sClassName, const CString &sValueName )
{
try_metric_again:
@@ -593,7 +598,7 @@ try_metric_again:
}
/* Get a string metric. */
CString ThemeManager::GetMetric( CString sClassName, CString sValueName )
CString ThemeManager::GetMetric( const CString &sClassName, const CString &sValueName )
{
CString sValue = GetMetricRaw(sClassName,sValueName);
@@ -607,12 +612,12 @@ CString ThemeManager::GetMetric( CString sClassName, CString sValueName )
return sValue;
}
int ThemeManager::GetMetricI( CString sClassName, CString sValueName )
int ThemeManager::GetMetricI( const CString &sClassName, const CString &sValueName )
{
return atoi( GetMetricRaw(sClassName,sValueName) );
}
float ThemeManager::GetMetricF( CString sClassName, CString sValueName )
float ThemeManager::GetMetricF( const CString &sClassName, const CString &sValueName )
{
CString str = GetMetricRaw( sClassName,sValueName );
@@ -622,7 +627,7 @@ float ThemeManager::GetMetricF( CString sClassName, CString sValueName )
}
// #include "LuaHelpers.h"
bool ThemeManager::GetMetricB( CString sClassName, CString sValueName )
bool ThemeManager::GetMetricB( const CString &sClassName, const CString &sValueName )
{
CString str = GetMetricRaw( sClassName,sValueName );
if( str == "0" )
@@ -635,7 +640,7 @@ bool ThemeManager::GetMetricB( CString sClassName, CString sValueName )
return Lua::RunExpressionB( str );
}
RageColor ThemeManager::GetMetricC( CString sClassName, CString sValueName )
RageColor ThemeManager::GetMetricC( const CString &sClassName, const CString &sValueName )
{
RageColor ret(1,1,1,1);
if( !ret.FromString( GetMetricRaw(sClassName,sValueName) ) )
@@ -655,7 +660,7 @@ void ThemeManager::NextTheme()
SwitchThemeAndLanguage( as[iNewIndex], m_sCurLanguage );
}
void ThemeManager::GetLanguagesForTheme( CString sThemeName, CStringArray& asLanguagesOut )
void ThemeManager::GetLanguagesForTheme( const CString &sThemeName, CStringArray& asLanguagesOut )
{
CString sLanguageDir = GetThemeDirFromName(sThemeName) + LANGUAGES_SUBDIR;
CStringArray as;
@@ -673,17 +678,17 @@ void ThemeManager::GetLanguagesForTheme( CString sThemeName, CStringArray& asLan
asLanguagesOut = as;
}
CString ThemeManager::GetLanguageIniPath( CString sThemeName, CString sLanguage )
CString ThemeManager::GetLanguageIniPath( const CString &sThemeName, const CString &sLanguage )
{
return GetThemeDirFromName(sThemeName) + LANGUAGES_SUBDIR + sLanguage + ".ini";
}
// TODO: remove these and update the places that use them
CString ThemeManager::GetPathToB( CString sFileName, bool bOptional ) { CString sClassName, sElement; FileNameToClassAndElement(sFileName,sClassName,sElement); return GetPathB(sClassName,sElement,bOptional); }
CString ThemeManager::GetPathToF( CString sFileName, bool bOptional ) { CString sClassName, sElement; FileNameToClassAndElement(sFileName,sClassName,sElement); return GetPathF(sClassName,sElement,bOptional); }
CString ThemeManager::GetPathToG( CString sFileName, bool bOptional ) { CString sClassName, sElement; FileNameToClassAndElement(sFileName,sClassName,sElement); return GetPathG(sClassName,sElement,bOptional); }
CString ThemeManager::GetPathToS( CString sFileName, bool bOptional ) { CString sClassName, sElement; FileNameToClassAndElement(sFileName,sClassName,sElement); return GetPathS(sClassName,sElement,bOptional); }
CString ThemeManager::GetPathToO( CString sFileName, bool bOptional ) { CString sClassName, sElement; FileNameToClassAndElement(sFileName,sClassName,sElement); return GetPathO(sClassName,sElement,bOptional); }
CString ThemeManager::GetPathToB( const CString &sFileName, bool bOptional ) { CString sClassName, sElement; FileNameToClassAndElement(sFileName,sClassName,sElement); return GetPathB(sClassName,sElement,bOptional); }
CString ThemeManager::GetPathToF( const CString &sFileName, bool bOptional ) { CString sClassName, sElement; FileNameToClassAndElement(sFileName,sClassName,sElement); return GetPathF(sClassName,sElement,bOptional); }
CString ThemeManager::GetPathToG( const CString &sFileName, bool bOptional ) { CString sClassName, sElement; FileNameToClassAndElement(sFileName,sClassName,sElement); return GetPathG(sClassName,sElement,bOptional); }
CString ThemeManager::GetPathToS( const CString &sFileName, bool bOptional ) { CString sClassName, sElement; FileNameToClassAndElement(sFileName,sClassName,sElement); return GetPathS(sClassName,sElement,bOptional); }
CString ThemeManager::GetPathToO( const CString &sFileName, bool bOptional ) { CString sClassName, sElement; FileNameToClassAndElement(sFileName,sClassName,sElement); return GetPathO(sClassName,sElement,bOptional); }
void ThemeManager::GetModifierNames( set<CString>& AddTo )
{