summaryrefslogtreecommitdiff
path: root/src/engine_type.h
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/engine_type.h
parentc6e29a5b8971e004d9b794fa2eaa928f0bcbbc38 (diff)
downloadopenttd-e157a23056b3991a30ad21f581e7e74b6bec41d7.tar.xz
(svn r22849) -Codechange: Add ShipVehicleInfo::ApplyWaterClassSpeedFrac() to apply ocean/canal speed fractions to velocities.
Diffstat (limited to 'src/engine_type.h')
-rw-r--r--src/engine_type.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/engine_type.h b/src/engine_type.h
index 2bd7fae47..115cc1f98 100644
--- a/src/engine_type.h
+++ b/src/engine_type.h
@@ -74,6 +74,13 @@ struct ShipVehicleInfo {
byte visual_effect; ///< Bitstuffed NewGRF visual effect data
byte ocean_speed_frac; ///< Fraction of maximum speed for ocean tiles.
byte canal_speed_frac; ///< Fraction of maximum speed for canal/river tiles.
+
+ /** Apply ocean/canal speed fraction to a velocity */
+ uint ApplyWaterClassSpeedFrac(uint raw_speed, bool is_ocean) const
+ {
+ /* speed_frac == 0 means no reduction while 0xFF means reduction to 1/256. */
+ return raw_speed * (256 - (is_ocean ? this->ocean_speed_frac : this->canal_speed_frac)) / 256;
+ }
};
/**