(svn r10963) -Revert(10700): Although the idea was good, it was more prone of errors than usefull.

So now, it will be better to jump to the overriden tile when it is been marked as an override
pull/155/head
belugas 17 years ago
parent 339579e22a
commit 69f9545a20

@ -212,7 +212,7 @@ struct IndustryTileSpec {
/* industry_cmd.cpp*/ /* industry_cmd.cpp*/
const IndustrySpec *GetIndustrySpec(IndustryType thistype); ///< Array of industries data const IndustrySpec *GetIndustrySpec(IndustryType thistype); ///< Array of industries data
const IndustryTileSpec *GetIndustryTileSpec(IndustryGfx gfx, bool full_check = true); ///< Array of industry tiles data const IndustryTileSpec *GetIndustryTileSpec(IndustryGfx gfx); ///< Array of industry tiles data
void ResetIndustries(); void ResetIndustries();
void PlantRandomFarmField(const Industry *i); void PlantRandomFarmField(const Industry *i);

@ -113,19 +113,13 @@ const IndustrySpec *GetIndustrySpec(IndustryType thistype)
* This will ensure at once : proper access and * This will ensure at once : proper access and
* not allowing modifications of it. * not allowing modifications of it.
* @param gfx of industrytile (which is the index in _industry_tile_specs) * @param gfx of industrytile (which is the index in _industry_tile_specs)
* @param full_check (default to true) verify if an override is available.
* If so, use it instead of the gfx provided.
* @pre gfx < INVALID_INDUSTRYTILE * @pre gfx < INVALID_INDUSTRYTILE
* @return a pointer to the corresponding industrytile spec * @return a pointer to the corresponding industrytile spec
**/ **/
const IndustryTileSpec *GetIndustryTileSpec(IndustryGfx gfx, bool full_check) const IndustryTileSpec *GetIndustryTileSpec(IndustryGfx gfx)
{ {
assert(gfx < INVALID_INDUSTRYTILE); assert(gfx < INVALID_INDUSTRYTILE);
const IndustryTileSpec *its = &_industry_tile_specs[gfx]; return &_industry_tile_specs[gfx];
if (full_check && its->grf_prop.override != INVALID_INDUSTRYTILE) {
its = &_industry_tile_specs[its->grf_prop.override];
}
return its;
} }
Industry::~Industry() Industry::~Industry()
@ -334,6 +328,7 @@ static void GetAcceptedCargo_Industry(TileIndex tile, AcceptedCargo ac)
{ {
IndustryGfx gfx = GetIndustryGfx(tile); IndustryGfx gfx = GetIndustryGfx(tile);
const IndustryTileSpec *itspec = GetIndustryTileSpec(gfx); const IndustryTileSpec *itspec = GetIndustryTileSpec(gfx);
if (itspec->grf_prop.override != INVALID_INDUSTRYTILE) itspec = GetIndustryTileSpec(itspec->grf_prop.override);
/* When we have to use a callback, we put our data in the next two variables */ /* When we have to use a callback, we put our data in the next two variables */
CargoID raw_accepts_cargo[lengthof(itspec->accepts_cargo)]; CargoID raw_accepts_cargo[lengthof(itspec->accepts_cargo)];

@ -87,8 +87,8 @@ uint32 GetIndustryIDAtOffset(TileIndex new_tile, TileIndex old_tile, const Indus
if (GetIndustryIndex(new_tile) == i->index) { // Does it belong to the same industry? if (GetIndustryIndex(new_tile) == i->index) { // Does it belong to the same industry?
IndustryGfx gfx = GetIndustryGfx(new_tile); IndustryGfx gfx = GetIndustryGfx(new_tile);
const IndustryTileSpec *indtsp = GetIndustryTileSpec(gfx, false); const IndustryTileSpec *indtsp = GetIndustryTileSpec(gfx);
const IndustryTileSpec *indold = GetIndustryTileSpec(GetIndustryGfx(old_tile), false); const IndustryTileSpec *indold = GetIndustryTileSpec(GetIndustryGfx(old_tile));
if (gfx < NEW_INDUSTRYOFFSET) { // Does it belongs to an old type? if (gfx < NEW_INDUSTRYOFFSET) { // Does it belongs to an old type?
/* It is an old tile. We have to see if it's been overriden */ /* It is an old tile. We have to see if it's been overriden */

Loading…
Cancel
Save