changeset 5162:a891bf5de037 draft

(svn r7268) -Codechange: change rail vehicle cached weight from 16 to 32 bit values to avoid possible overflows.
author peter1138 <peter1138@openttd.org>
date Mon, 27 Nov 2006 21:14:19 +0000
parents d7cdd8c839bf
children 969d29b77fee
files train_cmd.c vehicle.h
diffstat 2 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/train_cmd.c
+++ b/train_cmd.c
@@ -48,11 +48,11 @@
 static void TrainCargoChanged(Vehicle* v)
 {
 	Vehicle *u;
-	uint16 weight = 0;
+	uint32 weight = 0;
 
 	for (u = v; u != NULL; u = u->next) {
 		const RailVehicleInfo *rvi = RailVehInfo(u->engine_type);
-		uint16 vweight = (_cargoc.weights[u->cargo_type] * u->cargo_count) / 16;
+		uint32 vweight = (_cargoc.weights[u->cargo_type] * u->cargo_count) / 16;
 
 		// Vehicle weight is not added for articulated parts.
 		if (!IsArticulatedPart(u)) {
--- a/vehicle.h
+++ b/vehicle.h
@@ -54,8 +54,8 @@
 	uint16 cached_total_length; ///< Length of the whole train, valid only for first engine.
 
 	// cached values, recalculated when the cargo on a train changes (in addition to the conditions above)
-	uint16 cached_weight;     // total weight of the consist.
-	uint16 cached_veh_weight; // weight of the vehicle.
+	uint32 cached_weight;     // total weight of the consist.
+	uint32 cached_veh_weight; // weight of the vehicle.
 	/**
 	 * Position/type of visual effect.
 	 * bit 0 - 3 = position of effect relative to vehicle. (0 = front, 8 = centre, 15 = rear)