|
@@ -318,12 +318,14 @@ CommandCost CmdBuildAircraft(TileIndex t
|
|
|
v->x_pos = u->x_pos = x;
|
|
|
v->y_pos = u->y_pos = y;
|
|
|
|
|
|
u->z_pos = GetSlopeZ(x, y);
|
|
|
v->z_pos = u->z_pos + 1;
|
|
|
|
|
|
v->running_ticks = 0;
|
|
|
|
|
|
// u->delta_x = u->delta_y = 0;
|
|
|
|
|
|
v->vehstatus = VS_HIDDEN | VS_STOPPED | VS_DEFPAL;
|
|
|
u->vehstatus = VS_HIDDEN | VS_UNCLICKABLE | VS_SHADOW;
|
|
|
|
|
|
v->spritenum = avi->image_index;
|
|
@@ -732,17 +734,18 @@ void Aircraft::OnNewDay()
|
|
|
CheckOrders(this);
|
|
|
|
|
|
CheckVehicleBreakdown(this);
|
|
|
AgeVehicle(this);
|
|
|
CheckIfAircraftNeedsService(this);
|
|
|
|
|
|
if (this->vehstatus & VS_STOPPED) return;
|
|
|
if (this->running_ticks == 0) return;
|
|
|
|
|
|
CommandCost cost = CommandCost(EXPENSES_AIRCRAFT_RUN, GetVehicleProperty(this, 0x0E, AircraftVehInfo(this->engine_type)->running_cost) * _price.aircraft_running / 364);
|
|
|
CommandCost cost(EXPENSES_AIRCRAFT_RUN, GetVehicleProperty(this, 0x0E, AircraftVehInfo(this->engine_type)->running_cost) * _price.aircraft_running * this->running_ticks / (364 * DAY_TICKS));
|
|
|
|
|
|
this->profit_this_year -= cost.GetCost() >> 8;
|
|
|
this->profit_this_year -= cost.GetCost();
|
|
|
this->running_ticks = 0;
|
|
|
|
|
|
SubtractMoneyFromPlayerFract(this->owner, cost);
|
|
|
|
|
|
InvalidateWindow(WC_VEHICLE_DETAILS, this->index);
|
|
|
InvalidateWindowClasses(WC_AIRCRAFT_LIST);
|
|
|
}
|
|
@@ -2143,12 +2146,14 @@ static void AircraftEventHandler(Vehicle
|
|
|
}
|
|
|
|
|
|
void Aircraft::Tick()
|
|
|
{
|
|
|
if (!IsNormalAircraft(this)) return;
|
|
|
|
|
|
if (!(this->vehstatus & VS_STOPPED)) this->running_ticks++;
|
|
|
|
|
|
if (this->subtype == AIR_HELICOPTER) HelicopterTickHandler(this);
|
|
|
|
|
|
AgeAircraftCargo(this);
|
|
|
|
|
|
for (uint i = 0; i != 2; i++) {
|
|
|
AircraftEventHandler(this, i);
|