From b4b0403a7774046c2a4c9adea23818be242fd9a2 Mon Sep 17 00:00:00 2001 From: Sebastian Krzyszkowiak Date: Tue, 8 Aug 2017 00:06:37 +0200 Subject: [PATCH] GetDataFilePath: add ability to mask data files with android specific versions --- src/utils.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/utils.c b/src/utils.c index 3650b62..04f7f2e 100644 --- a/src/utils.c +++ b/src/utils.c @@ -286,12 +286,12 @@ SYMBOL_EXPORT char* GetGameName(struct Game *game, char* format) { return AddGarbage(game, result); } -SYMBOL_EXPORT char* GetDataFilePath(struct Game *game, char* filename) { - char *result = 0; +SYMBOL_INTERNAL char* TestDataFilePath(struct Game *game, char* filename) { + char *result = NULL; if (al_filename_exists(filename)) { - return AddGarbage(game, strdup(filename)); + return strdup(filename); } { @@ -299,7 +299,7 @@ SYMBOL_EXPORT char* GetDataFilePath(struct Game *game, char* filename) { strcat(origfn, filename); if (al_filename_exists(origfn)) { - return AddGarbage(game, strdup(origfn)); + return strdup(origfn); } } @@ -312,11 +312,30 @@ SYMBOL_EXPORT char* GetDataFilePath(struct Game *game, char* filename) { TestPath(filename, "../Resources/gamestates/", &result); #endif - if (!result) { - FatalError(game, true, "Could not find data file: %s!", filename); - exit(1); + return result; +} + +SYMBOL_EXPORT char* GetDataFilePath(struct Game *game, char* filename) { + + char *result = 0; + +#ifdef ALLEGRO_ANDROID + char origfn[255] = "android/"; + strcat(origfn, filename); + + result = TestDataFilePath(game, origfn); + if (result) { + return AddGarbage(game, result); } - return AddGarbage(game, result); +#endif + + result = TestDataFilePath(game, filename); + if (result) { + return AddGarbage(game, result); + } + + FatalError(game, true, "Could not find data file: %s!", filename); + exit(1); } ALLEGRO_DEBUG_CHANNEL("libsuperderpy")