summaryrefslogtreecommitdiff
path: root/src/ship_cmd.cpp
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2011-08-27 10:33:45 +0000
committerfrosch <frosch@openttd.org>2011-08-27 10:33:45 +0000
commite157a23056b3991a30ad21f581e7e74b6bec41d7 (patch)
treeed731d797d66ec5978c92fb9b3a7445c0b9a441e /src/ship_cmd.cpp
parentc6e29a5b8971e004d9b794fa2eaa928f0bcbbc38 (diff)
downloadopenttd-e157a23056b3991a30ad21f581e7e74b6bec41d7.tar.xz
(svn r22849) -Codechange: Add ShipVehicleInfo::ApplyWaterClassSpeedFrac() to apply ocean/canal speed fractions to velocities.
Diffstat (limited to 'src/ship_cmd.cpp')
-rw-r--r--src/ship_cmd.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp
index f38a83c25..3ea37f968 100644
--- a/src/ship_cmd.cpp
+++ b/src/ship_cmd.cpp
@@ -178,9 +178,9 @@ void Ship::UpdateCache()
const ShipVehicleInfo *svi = ShipVehInfo(this->engine_type);
/* Get speed fraction for the current water type. Aqueducts are always canals. */
- byte speed_frac = (GetEffectiveWaterClass(this->tile) == WATER_CLASS_SEA) ? svi->ocean_speed_frac : svi->canal_speed_frac;
- /* speed_frac == 0 means no reduction while 0xFF means reduction to 1/256. */
- this->vcache.cached_max_speed = GetVehicleProperty(this, PROP_SHIP_SPEED, svi->max_speed) * (256 - speed_frac) / 256;
+ bool is_ocean = GetEffectiveWaterClass(this->tile) == WATER_CLASS_SEA;
+ uint raw_speed = GetVehicleProperty(this, PROP_SHIP_SPEED, svi->max_speed);
+ this->vcache.cached_max_speed = svi->ApplyWaterClassSpeedFrac(raw_speed, is_ocean);
/* Update cargo aging period. */
this->vcache.cached_cargo_age_period = GetVehicleProperty(this, PROP_SHIP_CARGO_AGE_PERIOD, EngInfo(this->engine_type)->cargo_age_period);