From 56ea82d526cdbf8aa76926a2c474b70b0bb06dfa Mon Sep 17 00:00:00 2001 From: Sebastian Krzyszkowiak Date: Wed, 20 Sep 2017 18:13:49 +0200 Subject: [PATCH] GetDataFilePath: change order of lookup paths and remove "../data" --- src/utils.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/utils.c b/src/utils.c index 9c24187..199f4b2 100644 --- a/src/utils.c +++ b/src/utils.c @@ -287,29 +287,27 @@ SYMBOL_EXPORT char* GetGameName(struct Game* game, char* format) { static char* TestDataFilePath(struct Game* game, char* filename) { char* result = NULL; - if (al_filename_exists(filename)) { - return strdup(filename); - } - - { - char origfn[255] = "data/"; - strncat(origfn, filename, 249); - - if (al_filename_exists(origfn)) { - return strdup(origfn); - } - } - TestPath(filename, "data/", &result); TestPath(filename, GetGameName(game, "../share/%s/data/"), &result); - TestPath(filename, "../data/", &result); #ifdef ALLEGRO_MACOSX TestPath(filename, "../Resources/data/", &result); TestPath(filename, "../Resources/gamestates/", &result); #endif - return result; + if (result) { + return result; + } + + // try current working directory if everything else fails + char origfn[255] = "data/"; + strncat(origfn, filename, 249); + + if (al_filename_exists(origfn)) { + return strdup(origfn); + } + + return NULL; } SYMBOL_EXPORT char* GetDataFilePath(struct Game* game, char* filename) {