File diff r8555:63e19bfda16e → r8556:c5860d29500d
src/roadveh_cmd.cpp
Show inline comments
 
@@ -219,6 +219,8 @@ CommandCost CmdBuildRoadVeh(TileIndex ti
 
		v->y_pos = y;
 
		v->z_pos = GetSlopeZ(x, y);
 

	
 
		v->running_ticks = 0;
 

	
 
		v->u.road.state = RVSB_IN_DEPOT;
 
		v->vehstatus = VS_HIDDEN | VS_STOPPED | VS_DEFPAL;
 

	
 
@@ -1966,7 +1968,10 @@ void RoadVehicle::Tick()
 
{
 
	AgeRoadVehCargo(this);
 

	
 
	if (IsRoadVehFront(this)) RoadVehController(this);
 
	if (IsRoadVehFront(this)) {
 
		if (!(this->vehstatus & VS_STOPPED)) this->running_ticks++;
 
		RoadVehController(this);
 
	}
 
}
 

	
 
static void CheckIfRoadVehNeedsService(Vehicle *v)
 
@@ -2008,8 +2013,6 @@ static void CheckIfRoadVehNeedsService(V
 

	
 
void RoadVehicle::OnNewDay()
 
{
 
	CommandCost cost(EXPENSES_ROADVEH_RUN);
 

	
 
	if (!IsRoadVehFront(this)) return;
 

	
 
	if ((++this->day_counter & 7) == 0) DecreaseVehicleValue(this);
 
@@ -2027,10 +2030,8 @@ void RoadVehicle::OnNewDay()
 
		ClearSlot(this);
 
	}
 

	
 
	if (this->vehstatus & VS_STOPPED) return;
 

	
 
	/* update destination */
 
	if (this->current_order.type == OT_GOTO_STATION && this->u.road.slot == NULL && !(this->vehstatus & VS_CRASHED)) {
 
	if (!(this->vehstatus & VS_STOPPED) && this->current_order.type == OT_GOTO_STATION && this->u.road.slot == NULL && !(this->vehstatus & VS_CRASHED)) {
 
		Station *st = GetStation(this->current_order.dest);
 
		RoadStop *rs = st->GetPrimaryRoadStop(this);
 
		RoadStop *best = NULL;
 
@@ -2088,9 +2089,12 @@ void RoadVehicle::OnNewDay()
 
		}
 
	}
 

	
 
	cost = CommandCost(EXPENSES_ROADVEH_RUN, RoadVehInfo(this->engine_type)->running_cost * _price.roadveh_running / 364);
 
	if (this->running_ticks == 0) return;
 

	
 
	this->profit_this_year -= cost.GetCost() >> 8;
 
	CommandCost cost(EXPENSES_ROADVEH_RUN, RoadVehInfo(this->engine_type)->running_cost * _price.roadveh_running * this->running_ticks / (364 * DAY_TICKS));
 

	
 
	this->profit_this_year -= cost.GetCost();
 
	this->running_ticks = 0;
 

	
 
	SubtractMoneyFromPlayerFract(this->owner, cost);