diff options
author | Nicola Mettifogo | 2008-07-30 16:06:46 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2008-07-30 16:06:46 +0000 |
commit | 55e4eb8d15e1cb9966963bdd5bf326db587e98fb (patch) | |
tree | 6a856cb10c00b4bf375fea309b3ad434c570d9e6 | |
parent | 9e4bc568619567d1e49a8928cec61c93a6b3d860 (diff) | |
download | scummvm-rg350-55e4eb8d15e1cb9966963bdd5bf326db587e98fb.tar.gz scummvm-rg350-55e4eb8d15e1cb9966963bdd5bf326db587e98fb.tar.bz2 scummvm-rg350-55e4eb8d15e1cb9966963bdd5bf326db587e98fb.zip |
Fixed Win32 build, after Fingolfin's commits (probably because of the revert in revision 33456).
svn-id: r33458
-rw-r--r-- | common/system.cpp | 110 | ||||
-rw-r--r-- | common/system.h | 6 |
2 files changed, 16 insertions, 100 deletions
diff --git a/common/system.cpp b/common/system.cpp index 200b1a3fc7..f959ec7ab0 100644 --- a/common/system.cpp +++ b/common/system.cpp @@ -128,7 +128,7 @@ FIXME: The config file loading code below needs to be cleaned up. Port specific variants should be pushed into the respective ports. Ideally, the default OSystem::openConfigFileForReading/Writing methods - should be removed completely. + should be removed completely. */ #include "common/file.h" @@ -141,6 +141,12 @@ FIXME: The config file loading code below needs to be cleaned up. #include "backends/platform/iphone/osys_iphone.h" #endif +#if defined(WIN32) +#include <windows.h> +// winnt.h defines ARRAYSIZE, but we want our own one... +#undef ARRAYSIZE +#endif + #if defined(UNIX) #ifdef MACOSX @@ -152,104 +158,8 @@ FIXME: The config file loading code below needs to be cleaned up. #define DEFAULT_CONFIG_FILE "scummvm.ini" #endif -static Common::String getDefaultConfigFileName() { - char configFile[MAXPATHLEN]; - -#if defined (WIN32) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__) - OSVERSIONINFO win32OsVersion; - ZeroMemory(&win32OsVersion, sizeof(OSVERSIONINFO)); - win32OsVersion.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&win32OsVersion); - // Check for non-9X version of Windows. - if (win32OsVersion.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS) { - // Use the Application Data directory of the user profile. - if (win32OsVersion.dwMajorVersion >= 5) { - if (!GetEnvironmentVariable("APPDATA", configFile, sizeof(configFile))) - error("Unable to access application data directory"); - } else { - if (!GetEnvironmentVariable("USERPROFILE", configFile, sizeof(configFile))) - error("Unable to access user profile directory"); - - strcat(configFile, "\\Application Data"); - CreateDirectory(configFile, NULL); - } - - strcat(configFile, "\\ScummVM"); - CreateDirectory(configFile, NULL); - strcat(configFile, "\\" DEFAULT_CONFIG_FILE); - - if (fopen(configFile, "r") == NULL) { - // Check windows directory - char oldConfigFile[MAXPATHLEN]; - GetWindowsDirectory(oldConfigFile, MAXPATHLEN); - strcat(oldConfigFile, "\\" DEFAULT_CONFIG_FILE); - if (fopen(oldConfigFile, "r")) { - printf("The default location of the config file (scummvm.ini) in ScummVM has changed,\n"); - printf("under Windows NT4/2000/XP/Vista. You may want to consider moving your config\n"); - printf("file from the old default location:\n"); - printf("%s\n", oldConfigFile); - printf("to the new default location:\n"); - printf("%s\n\n", configFile); - strcpy(configFile, oldConfigFile); - } - } - } else { - // Check windows directory - GetWindowsDirectory(configFile, MAXPATHLEN); - strcat(configFile, "\\" DEFAULT_CONFIG_FILE); - } - -#elif defined(PALMOS_MODE) - strcpy(configFile,"/PALM/Programs/ScummVM/" DEFAULT_CONFIG_FILE); -#elif defined(IPHONE) - strcpy(configFile, OSystem_IPHONE::getConfigPath()); -#elif defined(__PLAYSTATION2__) - ((OSystem_PS2*)g_system)->makeConfigPath(configFile); -#elif defined(__PSP__) - strcpy(configFile, "ms0:/" DEFAULT_CONFIG_FILE); -#elif defined (__SYMBIAN32__) - strcpy(configFile, Symbian::GetExecutablePath()); - strcat(configFile, DEFAULT_CONFIG_FILE); -#elif defined(UNIX) && !defined(GP2X) && !defined(IPHONE) - // On UNIX type systems, by default we store the config file inside - // to the HOME directory of the user. - // - // GP2X is Linux based but Home dir can be read only so do not use - // it and put the config in the executable dir. - // - // On the iPhone, the home dir of the user when you launch the app - // from the Springboard, is /. Which we don't want. - const char *home = getenv("HOME"); - if (home != NULL && strlen(home) < MAXPATHLEN) - snprintf(configFile, MAXPATHLEN, "%s/%s", home, DEFAULT_CONFIG_FILE); - else - strcpy(configFile, DEFAULT_CONFIG_FILE); - -#else - strcpy(configFile, DEFAULT_CONFIG_FILE); -#endif - - return configFile; -} - -Common::SeekableReadStream *OSystem::openConfigFileForReading() { - Common::File *confFile = new Common::File(); - assert(confFile); - confFile->open(getDefaultConfigFileName()); - return confFile; -} -Common::WriteStream *OSystem::openConfigFileForWriting() { -#ifdef __DC__ - return 0; -#else - Common::DumpFile *confFile = new Common::DumpFile(); - assert(confFile); - confFile->open(getDefaultConfigFileName()); - return confFile; -#endif -} /* @@ -257,7 +167,7 @@ FIXME: The config file loading code below needs to be cleaned up. Port specific variants should be pushed into the respective ports. Ideally, the default OSystem::openConfigFileForReading/Writing methods - should be removed completely. + should be removed completely. */ #include "common/file.h" @@ -286,7 +196,7 @@ static Common::String getDefaultConfigFileName() { #if defined(UNIX) && !defined(GP2X) && !defined(IPHONE) // On UNIX type systems, by default we store the config file inside // to the HOME directory of the user. - // + // // GP2X is Linux based but Home dir can be read only so do not use // it and put the config in the executable dir. // @@ -345,7 +255,7 @@ static Common::String getDefaultConfigFileName() { #elif defined(PALMOS_MODE) strcpy(configFile,"/PALM/Programs/ScummVM/" DEFAULT_CONFIG_FILE); #elif defined(IPHONE) - strcpy(configFile, OSystem_IPHONE::getConfigPath()); + strcpy(configFile, OSystem_IPHONE::getConfigPath()); #elif defined(__PLAYSTATION2__) ((OSystem_PS2*)g_system)->makeConfigPath(configFile); #elif defined(__PSP__) diff --git a/common/system.h b/common/system.h index b895a5cfba..6e432a4e5c 100644 --- a/common/system.h +++ b/common/system.h @@ -44,6 +44,8 @@ namespace Common { class EventManager; class SaveFileManager; class TimerManager; + class SeekableReadStream; + class WriteStream; } class FilesystemFactory; @@ -916,6 +918,10 @@ public: return ""; } //@} + + + Common::SeekableReadStream *openConfigFileForReading(); + Common::WriteStream *openConfigFileForWriting(); }; |