summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2012-05-25 17:23:19 +0000
committerfrosch <frosch@openttd.org>2012-05-25 17:23:19 +0000
commit5a34b744b107adba5206a8aa0167c1096f9a901f (patch)
treec9ac12ee34674d2d379c554d2408d1e89ee842b1
parent9522dbb1a9636fca4b67b8ff7fed873baca3fee1 (diff)
downloadopenttd-5a34b744b107adba5206a8aa0167c1096f9a901f.tar.xz
(svn r24273) -Fix: [NewGRF] GetReverseCargoTranslation() was unnecessary complicated and also returned the wrong thing for cargos not present in the translation table.
-rw-r--r--src/newgrf_cargo.cpp15
-rw-r--r--src/newgrf_cargo.h1
-rw-r--r--src/newgrf_industries.cpp2
-rw-r--r--src/newgrf_station.cpp2
4 files changed, 2 insertions, 18 deletions
diff --git a/src/newgrf_cargo.cpp b/src/newgrf_cargo.cpp
index 85f203a33..f9da37e7b 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 ddebeeb30..51add1e7a 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 c0e4d6526..aeba91f7f 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 9aee46307..57ff64bdf 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));
}