From 449d6792304b1e6aa0ce6581d2f50f223545eff7 Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 8 Nov 2011 17:25:32 +0000 Subject: [PATCH] (svn r23143) -Change: [NewGRF v8] Return the translated cargobit in vehicle var 42. --- src/newgrf_engine.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index 48830240ff..40d931d70d 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -531,7 +531,10 @@ static uint32 VehicleGetVariable(Vehicle *v, const ResolverObject *object, byte } } - uint8 common_bitnum = (common_cargo_type == CT_INVALID ? 0xFF : CargoSpec::Get(common_cargo_type)->bitnum); + /* Unlike everywhere else the cargo translation table is only used since grf version 8, not 7. */ + const GRFFile *grffile = v->GetGRF(); + uint8 common_bitnum = (common_cargo_type == CT_INVALID) ? 0xFF : + (grffile->grf_version < 8) ? CargoSpec::Get(common_cargo_type)->bitnum : grffile->cargo_map[common_cargo_type]; v->grf_cache.consist_cargo_information = cargo_classes | (common_bitnum << 8) | (common_subtype << 16) | (user_def_data << 24); SetBit(v->grf_cache.cache_valid, NCVV_CONSIST_CARGO_INFORMATION); }