|
@@ -1537,48 +1537,52 @@ uint8 CalcPercentVehicleFilled(const Veh
|
|
|
}
|
|
|
|
|
|
if (color != NULL) {
|
|
|
if (unloading == 0 && loading) {
|
|
|
*color = STR_PERCENT_UP;
|
|
|
} else if (cars == unloading || !loading) {
|
|
|
*color = STR_PERCENT_DOWN;
|
|
|
} else {
|
|
|
*color = STR_PERCENT_UP_DOWN;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/* Train without capacity */
|
|
|
if (max == 0) return 100;
|
|
|
|
|
|
/* Return the percentage */
|
|
|
return (count * 100) / max;
|
|
|
}
|
|
|
|
|
|
void VehicleEnterDepot(Vehicle *v)
|
|
|
{
|
|
|
switch (v->type) {
|
|
|
case VEH_TRAIN:
|
|
|
InvalidateWindowClasses(WC_TRAINS_LIST);
|
|
|
/* Clear path reservation */
|
|
|
SetDepotWaypointReservation(v->tile, false);
|
|
|
if (_settings_client.gui.show_track_reservation) MarkTileDirtyByTile(v->tile);
|
|
|
|
|
|
if (!IsFrontEngine(v)) v = v->First();
|
|
|
UpdateSignalsOnSegment(v->tile, INVALID_DIAGDIR, v->owner);
|
|
|
v->load_unload_time_rem = 0;
|
|
|
ClrBit(v->u.rail.flags, VRF_TOGGLE_REVERSE);
|
|
|
TrainConsistChanged(v, true);
|
|
|
break;
|
|
|
|
|
|
case VEH_ROAD:
|
|
|
InvalidateWindowClasses(WC_ROADVEH_LIST);
|
|
|
if (!IsRoadVehFront(v)) v = v->First();
|
|
|
break;
|
|
|
|
|
|
case VEH_SHIP:
|
|
|
InvalidateWindowClasses(WC_SHIPS_LIST);
|
|
|
v->u.ship.state = TRACK_BIT_DEPOT;
|
|
|
RecalcShipStuff(v);
|
|
|
break;
|
|
|
|
|
|
case VEH_AIRCRAFT:
|
|
|
InvalidateWindowClasses(WC_AIRCRAFT_LIST);
|
|
|
HandleAircraftEnterHangar(v);
|
|
|
break;
|
|
|
default: NOT_REACHED();
|
|
|
}
|