Changeset - r7532:8a3e147f8752
[Not reviewed]
master
0 1 0
glx - 17 years ago 2007-09-07 17:01:35
glx@openttd.org
(svn r11052) -Fix (r11017)[FS#1210]: vehicles always skip service order
1 file changed with 5 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/vehicle.cpp
Show inline comments
 
@@ -83,27 +83,29 @@ DEFINE_OLD_POOL_GENERIC(Vehicle, Vehicle
 

	
 
void VehicleServiceInDepot(Vehicle *v)
 
{
 
	v->date_of_last_service = _date;
 
	v->breakdowns_since_last_service = 0;
 
	v->reliability = GetEngine(v->engine_type)->reliability;
 
	InvalidateWindow(WC_VEHICLE_DETAILS, v->index); // ensure that last service date and reliability are updated
 
}
 

	
 
bool VehicleNeedsService(const Vehicle *v)
 
{
 
	if (v->vehstatus & (VS_STOPPED | VS_CRASHED))       return false;
 
	if (_patches.gotodepot && VehicleHasDepotOrders(v)) return false;
 
	if (v->current_order.type == OT_LOADING)            return false;
 
	if (v->current_order.type == OT_GOTO_DEPOT && v->current_order.flags & OF_HALT_IN_DEPOT) return false;
 
	if (v->current_order.type != OT_GOTO_DEPOT || !(v->current_order.flags & OF_PART_OF_ORDERS)) { // Don't interfere with a depot visit by the order list
 
		if (_patches.gotodepot && VehicleHasDepotOrders(v)) return false;
 
		if (v->current_order.type == OT_LOADING)            return false;
 
		if (v->current_order.type == OT_GOTO_DEPOT && v->current_order.flags & OF_HALT_IN_DEPOT) return false;
 
	}
 

	
 
	if (_patches.no_servicing_if_no_breakdowns && _opt.diff.vehicle_breakdowns == 0) {
 
		return EngineHasReplacementForPlayer(GetPlayer(v->owner), v->engine_type, v->group_id);  /* Vehicles set for autoreplacing needs to go to a depot even if breakdowns are turned off */
 
	}
 

	
 
	return _patches.servint_ispercent ?
 
		(v->reliability < GetEngine(v->engine_type)->reliability * (100 - v->service_interval) / 100) :
 
		(v->date_of_last_service + v->service_interval < _date);
 
}
 

	
 
StringID VehicleInTheWayErrMsg(const Vehicle* v)
 
{
0 comments (0 inline, 0 general)