From: Ingo Ruhnke Date: Fri, 1 Aug 2014 16:26:40 +0000 (+0200) Subject: Removed platform specific path magic and use SDL_GetBasePath() instead (untested) X-Git-Url: https://git.octo.it/?a=commitdiff_plain;h=ae48cb0a4ac8c0502e448212f5873b457c2c62dd;p=supertux.git Removed platform specific path magic and use SDL_GetBasePath() instead (untested) --- diff --git a/src/supertux/main.cpp b/src/supertux/main.cpp index b1d0cedb5..73d3e146a 100644 --- a/src/supertux/main.cpp +++ b/src/supertux/main.cpp @@ -31,12 +31,6 @@ extern "C" { #include "video/renderer.hpp" #include "supertux/main.hpp" -#ifdef MACOSX -namespace supertux_apple { -# include -} // namespace supertux_apple -#endif - #include "addon/addon_manager.hpp" #include "audio/sound_manager.hpp" #include "control/joystickkeyboardcontroller.hpp" @@ -149,7 +143,10 @@ Main::init_physfs(const char* argv0) PHYSFS_addToSearchPath(writedir.c_str(), 0); // when started from source dir... - std::string dir = PHYSFS_getBaseDir(); + char* base_path = SDL_GetBasePath(); + std::string dir = base_path; + SDL_free(base_path); + if (dir[dir.length() - 1] != '/') dir += "/"; dir += "data"; @@ -166,44 +163,6 @@ Main::init_physfs(const char* argv0) } } -#ifdef MACOSX - { - using namespace supertux_apple; - - // when started from Application file on Mac OS X... - char path[PATH_MAX]; - CFBundleRef mainBundle = CFBundleGetMainBundle(); - if(mainBundle == 0) - throw "Assertion failed: mainBundle != 0"; - CFURLRef mainBundleURL = CFBundleCopyBundleURL(mainBundle); - if(mainBundleURL == 0) - throw "Assertion failed: mainBundleURL != 0"; - CFStringRef pathStr = CFURLCopyFileSystemPath(mainBundleURL, kCFURLPOSIXPathStyle); - if(pathStr == 0) - throw "Assertion failed: pathStr != 0"; - CFStringGetCString(pathStr, path, PATH_MAX, kCFStringEncodingUTF8); - CFRelease(mainBundleURL); - CFRelease(pathStr); - - dir = std::string(path) + "/Contents/Resources/data"; - testfname = dir + "/credits.txt"; - sourcedir = false; - f = fopen(testfname.c_str(), "r"); - if(f) { - fclose(f); - if(!PHYSFS_addToSearchPath(dir.c_str(), 1)) { - log_warning << "Couldn't add '" << dir << "' to physfs searchpath: " << PHYSFS_getLastError() << std::endl; - } else { - sourcedir = true; - } - } - } -#endif - -#ifdef _WIN32 - PHYSFS_addToSearchPath(".\\data", 1); -#endif - if(!sourcedir) { std::string datadir = PHYSFS_getBaseDir(); datadir = datadir.substr(0, datadir.rfind(INSTALL_SUBDIR_BIN));