Changeset - r8511:74e4574fb8bc
[Not reviewed]
master
0 2 0
glx - 16 years ago 2008-02-08 16:56:52
glx@openttd.org
(svn r12086) -Fix [FS#1747] (r11425): check overrides only for industries when mapping newgrf entities to 'real' entities
2 files changed with 20 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/newgrf_commons.cpp
Show inline comments
 
@@ -91,11 +91,6 @@ uint16 OverrideManagerBase::GetID(uint8 
 
		}
 
	}
 

	
 
	/* 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
 
	}
 
}
 

	
 
/** 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
src/newgrf_commons.h
Show inline comments
 
@@ -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);
 
};
 

	
0 comments (0 inline, 0 general)