changeset 7667:988d508662a6 draft

(svn r11198) -Fix: When industry override is not possible because it is already been overridden, mark the new candidate as not being an override
author belugas <belugas@openttd.org>
date Thu, 04 Oct 2007 00:59:52 +0000
parents 93b6cfc32b2e
children 38e0a757d4d1
files src/newgrf_commons.cpp src/newgrf_commons.h
diffstat 2 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/newgrf_commons.cpp
+++ b/src/newgrf_commons.cpp
@@ -188,7 +188,7 @@
  * 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 @@
 			 * 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
 		}
 	}
 
--- a/src/newgrf_commons.h
+++ b/src/newgrf_commons.h
@@ -71,7 +71,7 @@
 			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);
 };