From 69e5da0b544e83ed445cf500938c24602230fa2c Mon Sep 17 00:00:00 2001 From: PeterN Date: Sat, 8 May 2021 11:36:39 +0100 Subject: [PATCH] Codechange: Don't save unused NewGRF override mappings. (#9202) --- src/newgrf_commons.h | 1 + src/saveload/newgrf_sl.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/newgrf_commons.h b/src/newgrf_commons.h index ed18aaa9e2..b86e3d10af 100644 --- a/src/newgrf_commons.h +++ b/src/newgrf_commons.h @@ -218,6 +218,7 @@ public: inline uint16 GetMaxMapping() const { return max_new_entities; } inline uint16 GetMaxOffset() const { return max_offset; } + inline bool IsValidID(uint16 entity_id) const { return entity_overrides[entity_id] != invalid_ID; } }; diff --git a/src/saveload/newgrf_sl.cpp b/src/saveload/newgrf_sl.cpp index b2d2b0df99..f7f6ab72e0 100644 --- a/src/saveload/newgrf_sl.cpp +++ b/src/saveload/newgrf_sl.cpp @@ -30,6 +30,7 @@ static const SaveLoad _newgrf_mapping_desc[] = { void Save_NewGRFMapping(const OverrideManagerBase &mapping) { for (uint i = 0; i < mapping.GetMaxMapping(); i++) { + if (!mapping.IsValidID(i)) continue; SlSetArrayIndex(i); SlObject(&mapping.mapping_ID[i], _newgrf_mapping_desc); }