|
@@ -437,16 +437,15 @@ CommandCost CmdBuildAircraft(TileIndex t
|
|
|
* @param p1 vehicle ID to be sold
|
|
|
* @param p2 unused
|
|
|
* @return result of operation. Error or sold value
|
|
|
*/
|
|
|
CommandCost CmdSellAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
|
|
{
|
|
|
Vehicle *v = Vehicle::GetIfValid(p1);
|
|
|
if (v == NULL) return CMD_ERROR;
|
|
|
Aircraft *v = Aircraft::GetIfValid(p1);
|
|
|
|
|
|
if (v->type != VEH_AIRCRAFT || !CheckOwnership(v->owner)) return CMD_ERROR;
|
|
|
if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
|
|
|
if (!v->IsStoppedInDepot()) return_cmd_error(STR_ERROR_AIRCRAFT_MUST_BE_STOPPED);
|
|
|
|
|
|
if (HASBITS(v->vehstatus, VS_CRASHED)) return_cmd_error(STR_CAN_T_SELL_DESTROYED_VEHICLE);
|
|
|
|
|
|
CommandCost ret(EXPENSES_NEW_VEHICLES, -v->value);
|
|
|
|
|
@@ -490,17 +489,15 @@ CommandCost CmdSendAircraftToHangar(Tile
|
|
|
if (p2 & DEPOT_MASS_SEND) {
|
|
|
/* Mass goto depot requested */
|
|
|
if (!ValidVLWFlags(p2 & VLW_MASK)) return CMD_ERROR;
|
|
|
return SendAllVehiclesToDepot(VEH_AIRCRAFT, flags, p2 & DEPOT_SERVICE, _current_company, (p2 & VLW_MASK), p1);
|
|
|
}
|
|
|
|
|
|
Vehicle *v = Vehicle::GetIfValid(p1);
|
|
|
Aircraft *v = Aircraft::GetIfValid(p1);
|
|
|
if (v == NULL) return CMD_ERROR;
|
|
|
|
|
|
if (v->type != VEH_AIRCRAFT) return CMD_ERROR;
|
|
|
|
|
|
return v->SendToDepot(flags, (DepotCommand)(p2 & DEPOT_COMMAND_MASK));
|
|
|
}
|
|
|
|
|
|
|
|
|
/** Refits an aircraft to the specified cargo type.
|
|
|
* @param tile unused
|
|
@@ -513,16 +510,14 @@ CommandCost CmdSendAircraftToHangar(Tile
|
|
|
* @return cost of refit or error
|
|
|
*/
|
|
|
CommandCost CmdRefitAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
|
|
{
|
|
|
byte new_subtype = GB(p2, 8, 8);
|
|
|
|
|
|
Vehicle *v = Vehicle::GetIfValid(p1);
|
|
|
if (v == NULL) return CMD_ERROR;
|
|
|
|
|
|
if (v->type != VEH_AIRCRAFT || !CheckOwnership(v->owner)) return CMD_ERROR;
|
|
|
Aircraft *v = Aircraft::GetIfValid(p1);
|
|
|
if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
|
|
|
if (!v->IsStoppedInDepot()) return_cmd_error(STR_ERROR_AIRCRAFT_MUST_BE_STOPPED);
|
|
|
if (v->vehstatus & VS_CRASHED) return_cmd_error(STR_CAN_T_REFIT_DESTROYED_VEHICLE);
|
|
|
|
|
|
/* Check cargo */
|
|
|
CargoID new_cid = GB(p2, 0, 8);
|
|
|
if (new_cid >= NUM_CARGO || !CanRefitTo(v->engine_type, new_cid)) return CMD_ERROR;
|