diff options
author | Johannes E. Krause <j.k@eclipso.de> | 2018-09-29 13:26:44 +0200 |
---|---|---|
committer | Michael Lutz <michi@icosahedron.de> | 2018-09-30 20:45:41 +0200 |
commit | 662dcc3c31bbdbf26b09c74fb29c4286c80de9c4 (patch) | |
tree | 2cdd11a00f2e04325f6c38fe9ce59966a38c2d08 | |
parent | 060248a422a02e4ba7e50b0e4cd7dc30eea414fd (diff) | |
download | openttd-662dcc3c31bbdbf26b09c74fb29c4286c80de9c4.tar.xz |
Fix #6920: Make 9.8m/s^2 a common constant for TE-calculation
-rw-r--r-- | bin/ai/regression/tst_regression/result.txt | 6 | ||||
-rw-r--r-- | src/engine.cpp | 4 | ||||
-rw-r--r-- | src/ground_vehicle.cpp | 2 | ||||
-rw-r--r-- | src/vehicle_type.h | 2 |
4 files changed, 8 insertions, 6 deletions
diff --git a/bin/ai/regression/tst_regression/result.txt b/bin/ai/regression/tst_regression/result.txt index 4aa95d075..210cf2696 100644 --- a/bin/ai/regression/tst_regression/result.txt +++ b/bin/ai/regression/tst_regression/result.txt @@ -1292,7 +1292,7 @@ ERROR: IsEnd() is invalid as Begin() is never called GetRunningCost(): 820 GetPower(): 300 GetWeight(): 47 - GetMaxTractiveEffort(): 139 + GetMaxTractiveEffort(): 136 GetVehicleType(): 0 GetRailType(): 0 GetRoadType(): -1 @@ -1436,7 +1436,7 @@ ERROR: IsEnd() is invalid as Begin() is never called GetRunningCost(): 1968 GetPower(): 1000 GetWeight(): 131 - GetMaxTractiveEffort(): 388 + GetMaxTractiveEffort(): 381 GetVehicleType(): 0 GetRailType(): 0 GetRoadType(): -1 @@ -1454,7 +1454,7 @@ ERROR: IsEnd() is invalid as Begin() is never called GetRunningCost(): 2296 GetPower(): 1200 GetWeight(): 162 - GetMaxTractiveEffort(): 480 + GetMaxTractiveEffort(): 471 GetVehicleType(): 0 GetRailType(): 0 GetRoadType(): -1 diff --git a/src/engine.cpp b/src/engine.cpp index ac2e8df0e..cd96a149f 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -431,9 +431,9 @@ uint Engine::GetDisplayMaxTractiveEffort() const /* Only trains and road vehicles have 'tractive effort'. */ switch (this->type) { case VEH_TRAIN: - return (10 * this->GetDisplayWeight() * GetEngineProperty(this->index, PROP_TRAIN_TRACTIVE_EFFORT, this->u.rail.tractive_effort)) / 256; + return (GROUND_ACCELERATION * this->GetDisplayWeight() * GetEngineProperty(this->index, PROP_TRAIN_TRACTIVE_EFFORT, this->u.rail.tractive_effort)) / 256 / 1000; case VEH_ROAD: - return (10 * this->GetDisplayWeight() * GetEngineProperty(this->index, PROP_ROADVEH_TRACTIVE_EFFORT, this->u.road.tractive_effort)) / 256; + return (GROUND_ACCELERATION * this->GetDisplayWeight() * GetEngineProperty(this->index, PROP_ROADVEH_TRACTIVE_EFFORT, this->u.road.tractive_effort)) / 256 / 1000; default: NOT_REACHED(); } diff --git a/src/ground_vehicle.cpp b/src/ground_vehicle.cpp index f8efd8e1a..6fd8d7710 100644 --- a/src/ground_vehicle.cpp +++ b/src/ground_vehicle.cpp @@ -58,7 +58,7 @@ void GroundVehicle<T, Type>::PowerChanged() this->gcache.cached_air_drag = air_drag + 3 * air_drag * number_of_parts / 20; - max_te *= 9800; // Tractive effort in (tonnes * 1000 * 9.8 =) N. + max_te *= GROUND_ACCELERATION; // Tractive effort in (tonnes * 1000 * 9.8 =) N. max_te /= 256; // Tractive effort is a [0-255] coefficient. if (this->gcache.cached_power != total_power || this->gcache.cached_max_te != max_te) { /* Stop the vehicle if it has no power. */ diff --git a/src/vehicle_type.h b/src/vehicle_type.h index 0921b39e3..f3e7d535f 100644 --- a/src/vehicle_type.h +++ b/src/vehicle_type.h @@ -17,6 +17,8 @@ /** The type all our vehicle IDs have. */ typedef uint32 VehicleID; +static const int GROUND_ACCELERATION = 9800; ///< Acceleration due to gravity, 9.8 m/s^2 + /** Available vehicle types. */ enum VehicleType { VEH_BEGIN, |