have smpackage read theme from static.ini in case the game hasn't been run yet to create preferences.ini

This commit is contained in:
Chris Danford
2006-02-25 04:34:19 +00:00
parent ad8dbf5e86
commit f5174d5d99
4 changed files with 39 additions and 12 deletions
+5 -6
View File
@@ -8,13 +8,12 @@
#include "Foreach.h"
#include "Preference.h"
#include "RageLog.h"
const RString DEFAULTS_INI_PATH = "Data/Defaults.ini"; // these can be overridden
//PREFERENCES_INI_PATH // overlay on Defaults.ini, contains the user's choices
#include "SpecialFiles.h"
const RString STATIC_INI_PATH = "Data/Static.ini"; // overlay on the 2 above, can't be overridden
const RString TYPE_TXT_FILE = "Data/Type.txt";
//DEFAULTS_INI_PATH = "Data/Defaults.ini"; // these can be overridden
//PREFERENCES_INI_PATH // overlay on Defaults.ini, contains the user's choices
//STATIC_INI_PATH = "Data/Static.ini"; // overlay on the 2 above, can't be overridden
//TYPE_TXT_FILE = "Data/Type.txt";
PrefsManager* PREFSMAN = NULL; // global and accessable from anywhere in our program
+3
View File
@@ -10,6 +10,9 @@ const RString SpecialFiles::BASE_LANGUAGE = "en";
const RString SpecialFiles::METRICS_FILE = "metrics.ini";
const RString SpecialFiles::CACHE_DIR = "Cache/";
const RString SpecialFiles::BASE_THEME_NAME = "default";
const RString SpecialFiles::DEFAULTS_INI_PATH = "Data/Defaults.ini";
const RString SpecialFiles::STATIC_INI_PATH = "Data/Static.ini";
const RString SpecialFiles::TYPE_TXT_FILE = "Data/Type.txt";
/*
+3
View File
@@ -13,6 +13,9 @@ namespace SpecialFiles
extern const RString METRICS_FILE;
extern const RString CACHE_DIR;
extern const RString BASE_THEME_NAME;
extern const RString DEFAULTS_INI_PATH;
extern const RString STATIC_INI_PATH;
extern const RString TYPE_TXT_FILE;
}
#endif
+28 -6
View File
@@ -71,19 +71,41 @@ BOOL CSmpackageApp::InitInstance()
// TODO: Use PrefsManager to get the current language instead? PrefsManager would
// need to be split up to reduce dependencies
IniFile ini;
RString sTheme = SpecialFiles::BASE_THEME_NAME;
{
RString sType = "Preferences";
GetFileContents( SpecialFiles::TYPE_TXT_FILE, sType, true );
IniFile ini;
if( ini.ReadFile(SpecialFiles::STATIC_INI_PATH) )
{
while( 1 )
{
if( ini.GetValue(sType, "Theme", sTheme) )
break;
if( ini.GetValue(sType, "Fallback", sType) )
continue;
break;
}
}
}
RString sLanguage;
bool bPseudoLocalize = false;
bool bShowLogOutput = false;
bool bLogToDisk = false;
if( ini.ReadFile(SpecialFiles::PREFERENCES_INI_PATH) )
{
IniFile ini;
if( ini.ReadFile(SpecialFiles::PREFERENCES_INI_PATH) )
{
ini.GetValue( "Options", "Theme", sTheme );
ini.GetValue( "Options", "Language", sLanguage );
ini.GetValue( "Options", "PseudoLocalize", bPseudoLocalize );
ini.GetValue( "Options", "ShowLogOutput", bShowLogOutput );
ini.GetValue( "Options", "LogToDisk", bLogToDisk );
ini.GetValue( "Options", "PseudoLocalize", bPseudoLocalize );
ini.GetValue( "Options", "ShowLogOutput", bShowLogOutput );
ini.GetValue( "Options", "LogToDisk", bLogToDisk );
}
}
THEME->SwitchThemeAndLanguage( SpecialFiles::BASE_THEME_NAME, sLanguage, bPseudoLocalize );
THEME->SwitchThemeAndLanguage( sTheme, sLanguage, bPseudoLocalize );
LOG->SetShowLogOutput( bShowLogOutput );
LOG->SetLogToDisk( bLogToDisk );
LOG->SetInfoToDisk( true );