(svn r27426) -Change: Round loading percentage in loading indicators and conditional orders towards 50%, so that 0% and 100% mean completely empty or full.

pull/155/head
frosch 9 years ago
parent c74ffeecd1
commit 0f8f738942

@ -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;
}
}
/**

Loading…
Cancel
Save