resol ruta de resources.pack amb SDL_GetBasePath
This commit is contained in:
@@ -48,6 +48,16 @@ Director::Director(int argc, const char *argv[]) {
|
||||
// Inicializa las opciones del programa (defaults + dispositivos d'entrada)
|
||||
Options::init();
|
||||
|
||||
// Obtén la ruta del directori on viu l'executable (acabada amb '/').
|
||||
// SDL_GetBasePath és independent del CWD i evita el `argv[0]` poc fiable.
|
||||
#ifdef __EMSCRIPTEN__
|
||||
// En Emscripten els assets viuen a l'arrel del MEMFS — no hi ha ruta real.
|
||||
executablePath = "";
|
||||
#else
|
||||
const char *base_path = SDL_GetBasePath();
|
||||
executablePath = (base_path != nullptr) ? base_path : "";
|
||||
#endif
|
||||
|
||||
// Comprueba los parametros del programa (pot activar console)
|
||||
checkProgramArguments(argc, argv);
|
||||
|
||||
@@ -81,7 +91,12 @@ Director::Director(int argc, const char *argv[]) {
|
||||
#else
|
||||
const bool enable_fallback = true;
|
||||
#endif
|
||||
if (!ResourceHelper::initializeResourceSystem("resources.pack", enable_fallback)) {
|
||||
#ifdef MACOS_BUNDLE
|
||||
const std::string pack_path = executablePath + "../Resources/resources.pack";
|
||||
#else
|
||||
const std::string pack_path = executablePath + "resources.pack";
|
||||
#endif
|
||||
if (!ResourceHelper::initializeResourceSystem(pack_path, enable_fallback)) {
|
||||
std::cerr << "Fatal: resource system init failed (missing resources.pack?)" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
@@ -435,10 +450,6 @@ bool Director::setFileList() {
|
||||
|
||||
// Comprueba los parametros del programa
|
||||
void Director::checkProgramArguments(int argc, const char *argv[]) {
|
||||
// Establece la ruta del programa
|
||||
executablePath = argv[0];
|
||||
|
||||
// Comprueba el resto de parametros
|
||||
for (int i = 1; i < argc; ++i) {
|
||||
if (strcmp(argv[i], "--console") == 0) {
|
||||
Options::settings.console = true;
|
||||
|
||||
Reference in New Issue
Block a user