From 686f51d810f9fa8303639c979f0ba76f1993ce9b Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 12 Dec 2011 19:31:47 +0000 Subject: [PATCH] (svn r23503) -Fix (r23143): Desync debug wants to resolve vehicle variables of vehicles without NewGRF. So, let it. --- src/newgrf_engine.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index 35f6b44c4c..5e5ba91a9d 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -540,10 +540,12 @@ static uint32 VehicleGetVariable(Vehicle *v, const ResolverObject *object, byte /* The cargo translation is specific to the accessing GRF, and thus cannot be cached. */ CargoID common_cargo_type = (v->grf_cache.consist_cargo_information >> 8) & 0xFF; - /* Unlike everywhere else the cargo translation table is only used since grf version 8, not 7. */ + /* Unlike everywhere else the cargo translation table is only used since grf version 8, not 7. + * Note: The grffile == NULL case only happens if this function is called for default vehicles. + * And this is only done by CheckCaches(). */ const GRFFile *grffile = object->grffile; 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]; + (grffile == NULL || grffile->grf_version < 8) ? CargoSpec::Get(common_cargo_type)->bitnum : grffile->cargo_map[common_cargo_type]; return (v->grf_cache.consist_cargo_information & 0xFFFF00FF) | common_bitnum << 8; }