summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/saveload.cpp6
-rw-r--r--src/stdafx.h10
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