initialize gameFolder to be SDL_GetBasePath()

This commit is contained in:
Edward Rudd 2013-12-31 17:19:05 -05:00
parent f106e31c6f
commit f2bb0b2e79
1 changed files with 16 additions and 8 deletions

View File

@ -21,6 +21,8 @@
#include "config.h" #include "config.h"
#include <SDL2/SDL_filesystem.h>
#include <boost/program_options/options_description.hpp> #include <boost/program_options/options_description.hpp>
#include <boost/program_options/parsers.hpp> #include <boost/program_options/parsers.hpp>
#include <boost/program_options/variables_map.hpp> #include <boost/program_options/variables_map.hpp>
@ -46,7 +48,13 @@ Config::Config()
solidFonts(false), solidFonts(false),
gameFolder("."), gameFolder("."),
allowSymlinks(false) allowSymlinks(false)
{} {
char *dataDir = SDL_GetBasePath();
if (dataDir) {
gameFolder = dataDir;
SDL_free(dataDir);
}
}
void Config::read() void Config::read()
{ {
@ -101,9 +109,9 @@ void Config::readGameINI()
{ {
if (!customScript.empty()) if (!customScript.empty())
{ {
size_t pos = customScript.find_last_of("/\\"); size_t pos = customScript.find_last_of("/\\");
if (pos == customScript.npos) pos = 0; if (pos == customScript.npos) pos = 0;
game.title = customScript.substr(pos); game.title = customScript.substr(pos);
return; return;
} }
@ -131,8 +139,8 @@ void Config::readGameINI()
strReplace(game.scripts, '\\', '/'); strReplace(game.scripts, '\\', '/');
if (game.title.empty()) { if (game.title.empty()) {
size_t pos = gameFolder.find_last_of("/\\"); size_t pos = gameFolder.find_last_of("/\\");
if (pos == gameFolder.npos) pos = 0; if (pos == gameFolder.npos) pos = 0;
game.title = gameFolder.substr(pos); game.title = gameFolder.substr(pos);
} }
} }