summaryrefslogtreecommitdiff
path: root/src/saveload/saveload.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-03-04 09:53:31 +0000
committerrubidium <rubidium@openttd.org>2009-03-04 09:53:31 +0000
commit0d8da02ec1ec610931c2fdbe05a29e7ee3a49144 (patch)
tree9a2c02d0b0de1ad7374ee64afe0beadcb8f2b21f /src/saveload/saveload.cpp
parentf0de54bc10d158bbb1ae58b628c0896a56880540 (diff)
downloadopenttd-0d8da02ec1ec610931c2fdbe05a29e7ee3a49144.tar.xz
(svn r15610) -Change: allow loading of heightmaps and savegames (any form) that are in .tar files
Diffstat (limited to 'src/saveload/saveload.cpp')
-rw-r--r--src/saveload/saveload.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp
index 8b6b8e198..31f3b3c2d 100644
--- a/src/saveload/saveload.cpp
+++ b/src/saveload/saveload.cpp
@@ -1737,6 +1737,8 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb)
assert(mode == SL_LOAD);
DEBUG(desync, 1, "load: %s\n", filename);
+ /* Can't fseek to 0 as in tar files that is not correct */
+ long pos = ftell(_sl.fh);
if (fread(hdr, sizeof(hdr), 1, _sl.fh) != 1) SlError(STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE);
/* see if we have any loader for this type. */
@@ -1744,13 +1746,8 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb)
/* 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
+ fseek(_sl.fh, pos, SEEK_SET);
_sl_version = 0;
_sl_minor_version = 0;
fmt = _saveload_formats + 1; // LZO