Mercurial > hg > openttd
changeset 19372:de7c7a37c465 draft
(svn r24273) -Fix: [NewGRF] GetReverseCargoTranslation() was unnecessary complicated and also returned the wrong thing for cargos not present in the translation table.
author | frosch <frosch@openttd.org> |
---|---|
date | Fri, 25 May 2012 17:23:19 +0000 |
parents | 7228b4f998ab |
children | 1898872dde54 |
files | src/newgrf_cargo.cpp src/newgrf_cargo.h src/newgrf_industries.cpp src/newgrf_station.cpp |
diffstat | 4 files changed, 2 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/newgrf_cargo.cpp +++ b/src/newgrf_cargo.cpp @@ -126,18 +126,3 @@ } 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; -}
--- a/src/newgrf_cargo.h +++ b/src/newgrf_cargo.h @@ -27,6 +27,5 @@ 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 */
--- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -657,7 +657,7 @@ 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); }
--- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -958,7 +958,7 @@ 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)); }