diff options
Diffstat (limited to 'src/engine_type.h')
-rw-r--r-- | src/engine_type.h | 7 |
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; + } }; /** |