changeset 18307:84f6ecf51830 draft

(svn r23143) -Change: [NewGRF v8] Return the translated cargobit in vehicle var 42.
author frosch <frosch@openttd.org>
date Tue, 08 Nov 2011 17:25:32 +0000
parents 21d2cc91c3ce
children 0e8f567d1cb0
files src/newgrf_engine.cpp
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/newgrf_engine.cpp
+++ b/src/newgrf_engine.cpp
@@ -531,7 +531,10 @@
 					}
 				}
 
-				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);
 			}