diff options
author | rubidium <rubidium@openttd.org> | 2009-06-18 09:47:06 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-06-18 09:47:06 +0000 |
commit | 98b4f1fce2714f25c4dc78d258b97e4c05d9d2f6 (patch) | |
tree | 81a25e7f8ea2cb196f6d5236e9a01e45fd3a42f2 | |
parent | b88443f035077990ccdb7966e08af69f9654fe58 (diff) | |
download | openttd-98b4f1fce2714f25c4dc78d258b97e4c05d9d2f6.tar.xz |
(svn r16590) -Fix [FS#2967]: don't crash when tars/newgrfs are removed, just tell the file could be opened/found.
-rw-r--r-- | src/fileio.cpp | 2 | ||||
-rw-r--r-- | src/newgrf.cpp | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/fileio.cpp b/src/fileio.cpp index 7abf732fb..bcccb3419 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -337,7 +337,7 @@ FILE *FioFOpenFileSp(const char *filename, const char *mode, Searchpath sp, Subd FILE *FioFOpenFileTar(TarFileListEntry *entry, size_t *filesize) { FILE *f = fopen(entry->tar_filename, "rb"); - assert(f != NULL); + if (f == NULL) return f; fseek(f, entry->position, SEEK_SET); if (filesize != NULL) *filesize = entry->size; diff --git a/src/newgrf.cpp b/src/newgrf.cpp index c226d295e..1426208e7 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -6212,8 +6212,11 @@ void LoadNewGRF(uint load_index, uint file_index) if (c->status == GCS_DISABLED || c->status == GCS_NOT_FOUND) continue; if (stage > GLS_INIT && HasBit(c->flags, GCF_INIT_ONLY)) continue; - /* @todo usererror() */ - if (!FioCheckFileExists(c->filename)) usererror("NewGRF file is missing '%s'", c->filename); + if (!FioCheckFileExists(c->filename)) { + DEBUG(grf, 0, "NewGRF file is missing '%s'; disabling", c->filename); + c->status = GCS_NOT_FOUND; + continue; + } if (stage == GLS_LABELSCAN) InitNewGRFFile(c, _cur_spriteid); LoadNewGRFFile(c, slot++, stage); |