(svn r11198) -Fix: When industry override is not possible because it is already been overridden, mark the new candidate as not being an override

This commit is contained in:
belugas 2007-10-04 00:59:52 +00:00
parent 7525f791c7
commit aae3ca07c4
2 changed files with 3 additions and 2 deletions

View File

@ -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
}
}

View File

@ -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);
};