diff options
-rw-r--r-- | src/saveload.cpp | 6 | ||||
-rw-r--r-- | src/stdafx.h | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/saveload.cpp b/src/saveload.cpp index e4aa5d593..7b3b199f8 100644 --- a/src/saveload.cpp +++ b/src/saveload.cpp @@ -1595,7 +1595,13 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode) /* No loader found, treat as version 0 and use LZO format */ if (fmt == endof(_saveload_formats)) { DEBUG(sl, 0, "Unknown savegame type, trying to load it as the buggy format"); +#if defined(WINCE) + /* Of course some system had not to support rewind ;) */ + fseek(_sl.fh, 0L, SEEK_SET); + clearerr(_sl.fh); +#else rewind(_sl.fh); +#endif _sl_version = 0; _sl_minor_version = 0; fmt = _saveload_formats + 1; // LZO diff --git a/src/stdafx.h b/src/stdafx.h index 6c6a21ec7..d400f9c3c 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -157,11 +157,19 @@ # include <stddef.h> #endif /* defined(_MSC_VER) */ +#if defined(WINCE) +# define strdup _strdup +#endif /* WINCE */ + /* NOTE: the string returned by these functions is only valid until the next * call to the same function and is not thread- or reentrancy-safe */ #if !defined(STRGEN) # if defined(WIN32) || defined(WIN64) -# define fopen(file, mode) _wfopen(OTTD2FS(file), L ## mode) +# if defined(WINCE) +/* XXX - WinCE without MSVCRT doesn't support wfopen, so it seems */ +# else +# define fopen(file, mode) _wfopen(OTTD2FS(file), L ## mode) +# endif const char *FS2OTTD(const wchar_t *name); const wchar_t *OTTD2FS(const char *name); # else |