mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 06:15:04 +00:00
(svn r12086) -Fix [FS#1747] (r11425): check overrides only for industries when mapping newgrf entities to 'real' entities
This commit is contained in:
parent
7b9efcea21
commit
731137678c
@ -91,11 +91,6 @@ uint16 OverrideManagerBase::GetID(uint8 grf_local_id, uint32 grfid)
|
||||
}
|
||||
}
|
||||
|
||||
/* No mapping found, try the overrides */
|
||||
for (uint16 id = 0; id < max_offset; id++) {
|
||||
if (entity_overrides[id] == grf_local_id && grfid_overrides[id] == grfid) return id;
|
||||
}
|
||||
|
||||
return invalid_ID;
|
||||
}
|
||||
|
||||
@ -169,6 +164,24 @@ void HouseOverrideManager::SetEntitySpec(const HouseSpec *hs)
|
||||
}
|
||||
}
|
||||
|
||||
/** Return the ID (if ever available) of a previously inserted entity.
|
||||
* @param grf_local_id ID of this enity withing the grfID
|
||||
* @param grfid ID of the grf file
|
||||
* @return the ID of the candidate, of the Invalid flag item ID
|
||||
*/
|
||||
uint16 IndustryOverrideManager::GetID(uint8 grf_local_id, uint32 grfid)
|
||||
{
|
||||
uint16 id = OverrideManagerBase::GetID(grf_local_id, grfid);
|
||||
if (id != invalid_ID) return id;
|
||||
|
||||
/* No mapping found, try the overrides */
|
||||
for (id = 0; id < max_offset; id++) {
|
||||
if (entity_overrides[id] == grf_local_id && grfid_overrides[id] == grfid) return id;
|
||||
}
|
||||
|
||||
return invalid_ID;
|
||||
}
|
||||
|
||||
/** Method to find an entity ID and to mark it as reserved for the Industry to be included.
|
||||
* @param grf_local_id ID used by the grf file for pre-installation work (equivalent of TTDPatch's setid
|
||||
* @param grfid ID of the current grf file
|
||||
|
@ -49,7 +49,7 @@ public:
|
||||
virtual uint16 AddEntityID(byte grf_local_id, uint32 grfid, byte substitute_id);
|
||||
|
||||
uint16 GetSubstituteID(byte entity_id);
|
||||
uint16 GetID(uint8 grf_local_id, uint32 grfid);
|
||||
virtual uint16 GetID(uint8 grf_local_id, uint32 grfid);
|
||||
|
||||
inline uint16 GetMaxMapping() { return max_new_entities; }
|
||||
inline uint16 GetMaxOffset() { return max_offset; }
|
||||
@ -72,6 +72,7 @@ public:
|
||||
OverrideManagerBase(offset, maximum, invalid) {}
|
||||
|
||||
virtual uint16 AddEntityID(byte grf_local_id, uint32 grfid, byte substitute_id);
|
||||
virtual uint16 GetID(uint8 grf_local_id, uint32 grfid);
|
||||
void SetEntitySpec(IndustrySpec *inds);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user