diff options
author | erorcun <erayorcunus@gmail.com> | 2020-05-11 23:33:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-11 23:33:13 +0200 |
commit | 5f40f06bf024e3806e0fe5a92ca14ee6b22a9933 (patch) | |
tree | 3008c5a5977736453221f00daa1f34f9d292906b /src/fakerw/fake.cpp | |
parent | RenderPedCB from VC (diff) | |
parent | Fix appveyor (hopefully) (diff) | |
download | re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar.gz re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar.bz2 re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar.lz re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar.xz re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.tar.zst re3-5f40f06bf024e3806e0fe5a92ca14ee6b22a9933.zip |
Diffstat (limited to 'src/fakerw/fake.cpp')
-rw-r--r-- | src/fakerw/fake.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/fakerw/fake.cpp b/src/fakerw/fake.cpp index f1531490..50d12b2f 100644 --- a/src/fakerw/fake.cpp +++ b/src/fakerw/fake.cpp @@ -7,6 +7,9 @@ #include <rpskin.h> #include <assert.h> #include <string.h> +#ifndef _WIN32 +#include "crossplatform.h" +#endif using namespace rw; @@ -371,8 +374,24 @@ RwStream *RwStreamOpen(RwStreamType type, RwStreamAccessType accessType, const v StreamFile fakefile; file = rwNewT(StreamFile, 1, 0); memcpy(file, &fakefile, sizeof(StreamFile)); +#ifndef _WIN32 + // Be case-insensitive and fix backslashes (from https://github.com/OneSadCookie/fcaseopen/) + FILE* first = fopen((char*)pData, "r"); + char *r; + if (!first) { + r = (char*)alloca(strlen((char*)pData) + 2); + // Use default path(and pass error handling to librw) if we can't find any match + if (!casepath((char*)pData, r)) + r = (char*)pData; + } else + fclose(first); + + if(file->open((char*)r, mode)) + return file; +#else if(file->open((char*)pData, mode)) return file; +#endif rwFree(file); return nil; } |