Try opening relative path files from internal storage.
I'm not falling back to external storage because the application should be aware of whether external storage is available and choose whether or not to use it.
This commit is contained in:
parent
35f0215807
commit
2ee48c6885
1 changed files with 17 additions and 2 deletions
|
@ -429,13 +429,28 @@ SDL_RWFromFile(const char *file, const char *mode)
|
|||
#if defined(ANDROID)
|
||||
#ifdef HAVE_STDIO_H
|
||||
/* Try to open the file on the filesystem first */
|
||||
{
|
||||
if (*file == '/') {
|
||||
FILE *fp = fopen(file, mode);
|
||||
if (fp) {
|
||||
return SDL_RWFromFP(fp, 1);
|
||||
}
|
||||
} else {
|
||||
/* Try opening it from internal storage if it's a relative path */
|
||||
char *path;
|
||||
FILE *fp;
|
||||
|
||||
path = SDL_stack_alloc(char, PATH_MAX);
|
||||
if (path) {
|
||||
SDL_snprintf(path, PATH_MAX, "%s/%s",
|
||||
SDL_AndroidGetInternalStoragePath(), file);
|
||||
fp = fopen(path, mode);
|
||||
SDL_stack_free(path);
|
||||
if (fp) {
|
||||
return SDL_RWFromFP(fp, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif /* HAVE_STDIO_H */
|
||||
|
||||
/* Try to open the file from the asset system */
|
||||
rwops = SDL_AllocRW();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue