diff options
Diffstat (limited to 'aircraft_cmd.c')
-rw-r--r-- | aircraft_cmd.c | 57 |
1 files changed, 7 insertions, 50 deletions
diff --git a/aircraft_cmd.c b/aircraft_cmd.c index 440347bdc..a64227a97 100644 --- a/aircraft_cmd.c +++ b/aircraft_cmd.c @@ -833,14 +833,17 @@ static void SetAircraftPosition(Vehicle *v, int x, int y, int z) } } -static void ServiceAircraft(Vehicle *v) +/** Handle Aircraft specific tasks when a an Aircraft enters a hangar + * Made inline because it's only called from one location (VehicleEnterDepot) + * Can't be moved to vehicle.c because it calls static Aircraft specific functions + * @param *v Vehicle that enters the hangar + */ +inline void HandleAircraftEnterHangar(Vehicle *v) { Vehicle *u; - v->cur_speed = 0; v->subspeed = 0; v->progress = 0; - v->vehstatus |= VS_HIDDEN; u = v->next; u->vehstatus |= VS_HIDDEN; @@ -851,10 +854,6 @@ static void ServiceAircraft(Vehicle *v) } SetAircraftPosition(v, v->x_pos, v->y_pos, v->z_pos); - InvalidateWindow(WC_VEHICLE_DEPOT, v->tile); - - VehicleServiceInDepot(v); - InvalidateWindow(WC_VEHICLE_DETAILS, v->index); } static void PlayAircraftSound(const Vehicle* v) @@ -1385,48 +1384,6 @@ static void AircraftEntersTerminal(Vehicle *v) InvalidateWindowClasses(WC_AIRCRAFT_LIST); } - -static void AircraftEnterHangar(Vehicle *v) -{ - Order old_order; - - ServiceAircraft(v); - InvalidateWindowClasses(WC_AIRCRAFT_LIST); - - TriggerVehicle(v, VEHICLE_TRIGGER_DEPOT); - - if (v->current_order.type == OT_GOTO_DEPOT) { - int32 cost; - - InvalidateWindow(WC_VEHICLE_VIEW, v->index); - - old_order = v->current_order; - v->current_order.type = OT_NOTHING; - v->current_order.flags = 0; - - _current_player = v->owner; - cost = DoCommand(v->tile, v->index, old_order.refit_cargo | old_order.refit_subtype << 8, DC_EXEC, CMD_REFIT_AIRCRAFT); - if (!CmdFailed(cost) && v->owner == _local_player && cost != 0) ShowCostOrIncomeAnimation(v->x_pos, v->y_pos, v->z_pos, cost); - - if (HASBIT(old_order.flags, OFB_PART_OF_ORDERS)) { - v->cur_order_index++; - } else if (HASBIT(old_order.flags, OFB_HALT_IN_DEPOT)) { // force depot visit - v->vehstatus |= VS_STOPPED; - InvalidateWindowClasses(WC_AIRCRAFT_LIST); - - if (v->owner == _local_player) { - SetDParam(0, v->unitnumber); - AddNewsItem( - STR_A014_AIRCRAFT_IS_WAITING_IN, - NEWS_FLAGS(NM_SMALL, NF_VIEWPORT|NF_VEHICLE, NT_ADVICE, 0), - v->index, - 0 - ); - } - } - } -} - static void AircraftLand(Vehicle *v) { v->sprite_width = v->sprite_height = 2; @@ -1493,7 +1450,7 @@ static void AircraftEventHandler_EnterTerminal(Vehicle *v, const AirportFTAClass static void AircraftEventHandler_EnterHangar(Vehicle *v, const AirportFTAClass *Airport) { - AircraftEnterHangar(v); + VehicleEnterDepot(v); v->u.air.state = Airport->layout[v->u.air.pos].heading; } |