@ -1290,6 +1290,9 @@ void AgeVehicle(Vehicle *v)
* @ param front The front vehicle of the consist to check .
* @ param colour The string to show depending on if we are unloading or loading
* @ return A percentage of how full the Vehicle is .
* Percentages are rounded towards 50 % , so that 0 % and 100 % are only returned
* if the vehicle is completely empty or full .
* This is useful for both display and conditional orders .
*/
uint8 CalcPercentVehicleFilled ( const Vehicle * front , StringID * colour )
{
@ -1337,7 +1340,13 @@ uint8 CalcPercentVehicleFilled(const Vehicle *front, StringID *colour)
if ( max = = 0 ) return 100 ;
/* Return the percentage */
return ( count * 100 ) / max ;
if ( count * 2 < max ) {
/* Less than 50%; round up, so that 0% means really empty. */
return CeilDiv ( count * 100 , max ) ;
} else {
/* More than 50%; round down, so that 100% means really full. */
return ( count * 100 ) / max ;
}
}
/**