summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbjarni <bjarni@openttd.org>2005-09-03 19:22:56 +0000
committerbjarni <bjarni@openttd.org>2005-09-03 19:22:56 +0000
commit864cb3fa11f47b211bd8a80c2e26b0130fe05d29 (patch)
treed70fc8b4149fbadd8bf811e13423461b4dc558dc
parent3ace3769c9316c7ab00aa31d42ac6d7c2db5e330 (diff)
downloadopenttd-864cb3fa11f47b211bd8a80c2e26b0130fe05d29.tar.xz
(svn r2912) -Fix: [autorenew]: fixed issue where autorenewed vehicles didn't get all stats updated (peter1138)
-rw-r--r--vehicle.c50
1 files changed, 23 insertions, 27 deletions
diff --git a/vehicle.c b/vehicle.c
index 26be2b995..ee2069688 100644
--- a/vehicle.c
+++ b/vehicle.c
@@ -1370,6 +1370,7 @@ int32 ReplaceVehicle(Vehicle *v)
EngineID old_engine_type = v->engine_type;
EngineID new_engine_type = p->engine_replacement[old_engine_type];
Vehicle *u, *first;
+ Engine *e;
int cost, build_cost, rear_engine_cost = 0;
// If replacing due to age only, use the same type :-)
@@ -1460,27 +1461,26 @@ int32 ReplaceVehicle(Vehicle *v)
}
cost = build_cost - v->value + rear_engine_cost;
- if (old_engine_type != new_engine_type) {
- /* We do not really buy a new vehicle, we upgrade the old one */
- const Engine* e = GetEngine(new_engine_type);
+ /* We do not really buy a new vehicle, we upgrade the old one */
+ e = GetEngine(new_engine_type);
- v->reliability = e->reliability;
- v->reliability_spd_dec = e->reliability_spd_dec;
- v->age = 0;
+ v->reliability = e->reliability;
+ v->reliability_spd_dec = e->reliability_spd_dec;
+ v->age = 0;
- v->date_of_last_service = _date;
- v->build_year = _cur_year;
+ v->date_of_last_service = _date;
+ v->build_year = _cur_year;
- v->value = build_cost;
+ v->value = build_cost;
- if (v->engine_type != new_engine_type) {
- byte sprite = v->spritenum;
- byte cargo_type = v->cargo_type;
- v->engine_type = new_engine_type;
- v->max_age = e->lifelength * 366;
+ if (v->engine_type != new_engine_type) {
+ byte sprite = v->spritenum;
+ byte cargo_type = v->cargo_type;
+ v->engine_type = new_engine_type;
+ v->max_age = e->lifelength * 366;
- /* Update limits of the vehicle (for when upgraded) */
- switch (v->type) {
+ /* Update limits of the vehicle (for when upgraded) */
+ switch (v->type) {
case VEH_Train:
{
const RailVehicleInfo *rvi = RailVehInfo(new_engine_type);
@@ -1596,20 +1596,16 @@ int32 ReplaceVehicle(Vehicle *v)
break;
}
default: return CMD_ERROR;
- }
- // makes sure that the cargo is still valid compared to new capacity
- if (v->cargo_count != 0) {
- if ( v->cargo_type != cargo_type )
- v->cargo_count = 0;
- else if ( v->cargo_count > v->cargo_cap )
- v->cargo_count = v->cargo_cap;
- }
+ }
+ // makes sure that the cargo is still valid compared to new capacity
+ if (v->cargo_count != 0) {
+ if ( v->cargo_type != cargo_type )
+ v->cargo_count = 0;
+ else if ( v->cargo_count > v->cargo_cap )
+ v->cargo_count = v->cargo_cap;
}
}
- // A replaced vehicle should be classed as new
- v->age = 0;
-
InvalidateWindow(WC_REPLACE_VEHICLE, v->type);
ResortVehicleLists();
InvalidateWindow(WC_VEHICLE_DETAILS, v->index);