diff --git a/src/newgrf.cpp b/src/newgrf.cpp index eb5baa701f..7579636a12 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -77,6 +77,9 @@ GRFLoadedFeatures _loaded_newgrf_features; static const uint MAX_SPRITEGROUP = UINT8_MAX; ///< Maximum GRF-local ID for a spritegroup. +/** Base GRF ID for OpenTTD's base graphics GRFs. */ +static const uint32 OPENTTD_GRAPHICS_BASE_GRF_ID = BSWAP32(0xFF4F5400); + /** Temporary data during loading of GRFs */ struct GrfProcessingState { private: @@ -5679,7 +5682,7 @@ static void GraphicsNew(ByteReader *buf) LoadNextSprite(replace == 0 ? _cur.spriteid++ : replace++, _cur.file_index, _cur.nfo_line, _cur.grf_container_ver); } - if (type == 0x04 && (_cur.grffile->is_ottdfile || _cur.grfconfig->ident.grfid == BSWAP32(0xFF4F4701))) { + if (type == 0x04 && ((_cur.grfconfig->ident.grfid & 0x00FFFFFF) == OPENTTD_GRAPHICS_BASE_GRF_ID || _cur.grfconfig->ident.grfid == BSWAP32(0xFF4F4701))) { /* Signal graphics action 5: Fill duplicate signal sprite block if this is a baseset GRF or OpenGFX */ const SpriteID end = offset + num; for (SpriteID i = offset; i < end; i++) { diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index e7ec998ff3..132f0b7496 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -169,6 +169,12 @@ void SlXvCheckSpecialSavegameVersions() _sl_is_faked_ext = true; _sl_xv_feature_versions[XSLFI_TRACE_RESTRICT] = 1; } + if (_sl_version == 2001) { + DEBUG(sl, 1, "Loading a trace restrict patch savegame version %d as version 195", _sl_version); + _sl_version = 195; + _sl_is_faked_ext = true; + _sl_xv_feature_versions[XSLFI_TRACE_RESTRICT] = 6; + } if (_sl_version == 220) { /* SL_SPRING_2013_v2_0_102 */ DEBUG(sl, 1, "Loading a SpringPP 2013 v2.0.102 savegame version %d as version 187", _sl_version);