mirror of https://github.com/OpenTTD/OpenTTD
(svn r7268) -Codechange: change rail vehicle cached weight from 16 to 32 bit values to avoid possible overflows.
parent
2f0bdeefb9
commit
45e7e61aa9
|
@ -48,11 +48,11 @@ static const byte _state_dir_table[4] = { 0x20, 8, 0x10, 4 };
|
||||||
static void TrainCargoChanged(Vehicle* v)
|
static void TrainCargoChanged(Vehicle* v)
|
||||||
{
|
{
|
||||||
Vehicle *u;
|
Vehicle *u;
|
||||||
uint16 weight = 0;
|
uint32 weight = 0;
|
||||||
|
|
||||||
for (u = v; u != NULL; u = u->next) {
|
for (u = v; u != NULL; u = u->next) {
|
||||||
const RailVehicleInfo *rvi = RailVehInfo(u->engine_type);
|
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.
|
// Vehicle weight is not added for articulated parts.
|
||||||
if (!IsArticulatedPart(u)) {
|
if (!IsArticulatedPart(u)) {
|
||||||
|
|
|
@ -54,8 +54,8 @@ typedef struct VehicleRail {
|
||||||
uint16 cached_total_length; ///< Length of the whole train, valid only for first engine.
|
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)
|
// cached values, recalculated when the cargo on a train changes (in addition to the conditions above)
|
||||||
uint16 cached_weight; // total weight of the consist.
|
uint32 cached_weight; // total weight of the consist.
|
||||||
uint16 cached_veh_weight; // weight of the vehicle.
|
uint32 cached_veh_weight; // weight of the vehicle.
|
||||||
/**
|
/**
|
||||||
* Position/type of visual effect.
|
* Position/type of visual effect.
|
||||||
* bit 0 - 3 = position of effect relative to vehicle. (0 = front, 8 = centre, 15 = rear)
|
* bit 0 - 3 = position of effect relative to vehicle. (0 = front, 8 = centre, 15 = rear)
|
||||||
|
|
Loading…
Reference in New Issue