summaryrefslogtreecommitdiff
path: root/aircraft_cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'aircraft_cmd.c')
-rw-r--r--aircraft_cmd.c57
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;
}