vehicle.c
changeset 2386 c5cc666c869d
parent 2319 9902d3ffa309
child 2425 99e1e8430a28
--- a/vehicle.c	Sat Sep 03 17:30:16 2005 +0000
+++ b/vehicle.c	Sat Sep 03 19:22:56 2005 +0000
@@ -1370,6 +1370,7 @@
 	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 @@
 	}
 	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);
-
-		v->reliability = e->reliability;
-		v->reliability_spd_dec = e->reliability_spd_dec;
-		v->age = 0;
+	/* We do not really buy a new vehicle, we upgrade the old one */
+	e = GetEngine(new_engine_type);
 
-		v->date_of_last_service = _date;
-		v->build_year = _cur_year;
-
-		v->value = build_cost;
+	v->reliability = e->reliability;
+	v->reliability_spd_dec = e->reliability_spd_dec;
+	v->age = 0;
 
-		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;
+	v->date_of_last_service = _date;
+	v->build_year = _cur_year;
 
-			/* Update limits of the vehicle (for when upgraded) */
-			switch (v->type) {
+	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;
+
+		/* 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 @@
 				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);