File diff r4724:bb69fd326337 → r4725:3a289e38fda7
aircraft_cmd.c
Show inline comments
 
@@ -833,14 +833,17 @@ static void SetAircraftPosition(Vehicle 
 
	}
 
}
 

	
 
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(Vehic
 
	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_EnterTe
 

	
 
static void AircraftEventHandler_EnterHangar(Vehicle *v, const AirportFTAClass *Airport)
 
{
 
	AircraftEnterHangar(v);
 
	VehicleEnterDepot(v);
 
	v->u.air.state = Airport->layout[v->u.air.pos].heading;
 
}