diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 55182b8b5a..3dc4fca19f 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -87,7 +87,11 @@ ReferenceThroughBaseContainer> _gted; ///< Tempo */ void GrfMsgI(int severity, const std::string &msg) { - Debug(grf, severity, "[{}:{}] {}", _cur_gps.grfconfig->filename, _cur_gps.nfo_line, msg); + if (_cur_gps.grfconfig == nullptr) { + Debug(grf, severity, "{}", msg); + } else { + Debug(grf, severity, "[{}:{}] {}", _cur_gps.grfconfig->filename, _cur_gps.nfo_line, msg); + } } /** @@ -371,6 +375,7 @@ void GRFUnsafe(ByteReader &) /** Reset and clear all NewGRFs */ static void ResetNewGRF() { + _cur_gps.grfconfig = nullptr; _cur_gps.grffile = nullptr; _grf_files.clear(); @@ -1823,6 +1828,10 @@ void LoadNewGRF(SpriteID load_index, uint num_baseset) } } + /* We've finished reading files. */ + _cur_gps.grfconfig = nullptr; + _cur_gps.grffile = nullptr; + /* Pseudo sprite processing is finished; free temporary stuff */ _cur_gps.ClearDataForNextFile();