diff --git a/src/newgrf_commons.cpp b/src/newgrf_commons.cpp index 173997d99c..68269c643a 100644 --- a/src/newgrf_commons.cpp +++ b/src/newgrf_commons.cpp @@ -188,7 +188,7 @@ uint16 IndustryOverrideManager::AddEntityID(byte grf_local_id, uint32 grfid, byt * checking what is available * @param inds Industryspec that comes from the grf decoding process */ -void IndustryOverrideManager::SetEntitySpec(const IndustrySpec *inds) +void IndustryOverrideManager::SetEntitySpec(IndustrySpec *inds) { /* First step : We need to find if this industry is already specified in the savegame data */ IndustryType ind_id = this->GetID(inds->grf_prop.local_id, inds->grf_prop.grffile->grfid); @@ -206,6 +206,7 @@ void IndustryOverrideManager::SetEntitySpec(const IndustrySpec *inds) * Or it is a simple substitute. * In both case, we need to find a free available slot */ ind_id = this->AddEntityID(inds->grf_prop.local_id, inds->grf_prop.grffile->grfid, inds->grf_prop.subst_id); + inds->grf_prop.override = invalid_ID; // make sure it will not be detected as overriden } } diff --git a/src/newgrf_commons.h b/src/newgrf_commons.h index 51ebd93b87..a8e3eabf9a 100644 --- a/src/newgrf_commons.h +++ b/src/newgrf_commons.h @@ -71,7 +71,7 @@ public: OverrideManagerBase(offset, maximum, invalid) {} virtual uint16 AddEntityID(byte grf_local_id, uint32 grfid, byte substitute_id); - void SetEntitySpec(const IndustrySpec *inds); + void SetEntitySpec(IndustrySpec *inds); };