From 5a34b744b107adba5206a8aa0167c1096f9a901f Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 25 May 2012 17:23:19 +0000 Subject: [PATCH] (svn r24273) -Fix: [NewGRF] GetReverseCargoTranslation() was unnecessary complicated and also returned the wrong thing for cargos not present in the translation table. --- src/newgrf_cargo.cpp | 15 --------------- src/newgrf_cargo.h | 1 - src/newgrf_industries.cpp | 2 +- src/newgrf_station.cpp | 2 +- 4 files changed, 2 insertions(+), 18 deletions(-) diff --git a/src/newgrf_cargo.cpp b/src/newgrf_cargo.cpp index 85f203a331..f9da37e7bc 100644 --- a/src/newgrf_cargo.cpp +++ b/src/newgrf_cargo.cpp @@ -126,18 +126,3 @@ CargoID GetCargoTranslation(uint8 cargo, const GRFFile *grffile, bool usebit) } return CT_INVALID; } - -uint8 GetReverseCargoTranslation(CargoID cargo, const GRFFile *grffile) -{ - /* Note: All grf versions use CargoBit here. Pre-version 7 do NOT use the 'climate dependent' ID. */ - const CargoSpec *cs = CargoSpec::Get(cargo); - - /* If the GRF contains a translation table (and the cargo is in the table) - * then get the cargo ID for the label */ - for (uint i = 0; i < grffile->cargo_max; i++) { - if (cs->label == grffile->cargo_list[i]) return i; - } - - /* No matching label was found, so we return the 'climate independent' 'bitnum' */ - return cs->bitnum; -} diff --git a/src/newgrf_cargo.h b/src/newgrf_cargo.h index ddebeeb30a..51add1e7a9 100644 --- a/src/newgrf_cargo.h +++ b/src/newgrf_cargo.h @@ -27,6 +27,5 @@ struct GRFFile; SpriteID GetCustomCargoSprite(const CargoSpec *cs); uint16 GetCargoCallback(CallbackID callback, uint32 param1, uint32 param2, const CargoSpec *cs); CargoID GetCargoTranslation(uint8 cargo, const GRFFile *grffile, bool usebit = false); -uint8 GetReverseCargoTranslation(CargoID cargo, const GRFFile *grffile); #endif /* NEWGRF_CARGO_H */ diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index c0e4d65269..aeba91f7f7 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -657,7 +657,7 @@ bool IndustryTemporarilyRefusesCargo(Industry *ind, CargoID cargo_type) const IndustrySpec *indspec = GetIndustrySpec(ind->type); if (HasBit(indspec->callback_mask, CBM_IND_REFUSE_CARGO)) { uint16 res = GetIndustryCallback(CBID_INDUSTRY_REFUSE_CARGO, - 0, GetReverseCargoTranslation(cargo_type, indspec->grf_prop.grffile), + 0, indspec->grf_prop.grffile->cargo_map[cargo_type], ind, ind->type, ind->location.tile); if (res != CALLBACK_FAILED) return !ConvertBooleanCallback(indspec->grf_prop.grffile, CBID_INDUSTRY_REFUSE_CARGO, res); } diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index 9aee463072..57ff64bdf1 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -958,7 +958,7 @@ void TriggerStationAnimation(BaseStation *st, TileIndex tile, StationAnimationTr if (cargo_type == CT_INVALID) { cargo = CT_INVALID; } else { - cargo = GetReverseCargoTranslation(cargo_type, ss->grf_prop.grffile); + cargo = ss->grf_prop.grffile->cargo_map[cargo_type]; } StationAnimationBase::ChangeAnimationFrame(CBID_STATION_ANIM_START_STOP, ss, st, tile, (random_bits << 16) | Random(), (uint8)trigger | (cargo << 8)); }