Mercurial > hg > openttd
changeset 13177:5d3ff7c33daf draft
(svn r17684) -Fix: tcache.first_engine and rcache.first_engine need to be set before first callback/sprite-resolving. For RV fronts it was missing at all, causing livery selection to fail.
author | frosch <frosch@openttd.org> |
---|---|
date | Sat, 03 Oct 2009 14:46:48 +0000 |
parents | 6d44d50cdee6 |
children | ec4dc42ad747 |
files | src/articulated_vehicles.cpp src/roadveh.h src/roadveh_cmd.cpp src/train.h src/train_cmd.cpp |
diffstat | 5 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/articulated_vehicles.cpp +++ b/src/articulated_vehicles.cpp @@ -318,7 +318,7 @@ t->subtype = 0; t->track = front->track; t->railtype = front->railtype; - t->tcache.first_engine = front->engine_type; + t->tcache.first_engine = front->engine_type; // needs to be set before first callback t->spritenum = e_artic->u.rail.image_index; if (e_artic->CanCarryCargo()) { @@ -339,7 +339,7 @@ v = rv; rv->subtype = 0; - rv->rcache.first_engine = front->engine_type; + rv->rcache.first_engine = front->engine_type; // needs to be set before first callback rv->rcache.cached_veh_length = 8; // Callback is called when the consist is finished rv->state = RVSB_IN_DEPOT;
--- a/src/roadveh.h +++ b/src/roadveh.h @@ -89,7 +89,7 @@ /** Cached oftenly queried (NewGRF) values */ struct RoadVehicleCache { byte cached_veh_length; - EngineID first_engine; + EngineID first_engine; ///< cached EngineID of the front vehicle. INVALID_VEHICLE for the front vehicle itself. }; /**
--- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -255,6 +255,7 @@ v->last_station_visited = INVALID_STATION; v->max_speed = rvi->max_speed; v->engine_type = (EngineID)p1; + v->rcache.first_engine = INVALID_ENGINE; // needs to be set before first callback v->reliability = e->reliability; v->reliability_spd_dec = e->reliability_spd_dec;
--- a/src/train.h +++ b/src/train.h @@ -96,9 +96,7 @@ byte cached_vis_effect; byte user_def_data; - /* NOSAVE: for wagon override - id of the first engine in train - * 0xffff == not in train */ - EngineID first_engine; + EngineID first_engine; ///< cached EngineID of the front vehicle. INVALID_VEHICLE for the front vehicle itself. }; /**
--- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -720,6 +720,7 @@ v->spritenum = rvi->image_index; v->engine_type = engine; + v->tcache.first_engine = INVALID_ENGINE; // needs to be set before first callback DiagDirection dir = GetRailDepotDirection(tile); @@ -900,6 +901,7 @@ // v->dest_tile = 0; v->engine_type = p1; + v->tcache.first_engine = INVALID_ENGINE; // needs to be set before first callback v->reliability = e->reliability; v->reliability_spd_dec = e->reliability_spd_dec;