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));
 			}