|
@@ -309,14 +309,14 @@ bool RoadVehicle::IsStoppedInDepot() con
|
|
|
* @param flags operation to perform
|
|
|
* @param p1 vehicle ID to be sold
|
|
|
* @param p2 unused
|
|
|
*/
|
|
|
CommandCost CmdSellRoadVeh(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
|
|
{
|
|
|
Vehicle *v = Vehicle::GetIfValid(p1);
|
|
|
if (v == NULL || v->type != VEH_ROAD || !CheckOwnership(v->owner)) return CMD_ERROR;
|
|
|
RoadVehicle *v = RoadVehicle::GetIfValid(p1);
|
|
|
if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
|
|
|
|
|
|
if (HASBITS(v->vehstatus, VS_CRASHED)) return_cmd_error(STR_CAN_T_SELL_DESTROYED_VEHICLE);
|
|
|
|
|
|
if (!v->IsStoppedInDepot()) {
|
|
|
return_cmd_error(STR_ERROR_ROAD_MUST_BE_STOPPED_INSIDE_DEPOT);
|
|
|
}
|
|
@@ -415,14 +415,14 @@ CommandCost CmdSendRoadVehToDepot(TileIn
|
|
|
if (p2 & DEPOT_MASS_SEND) {
|
|
|
/* Mass goto depot requested */
|
|
|
if (!ValidVLWFlags(p2 & VLW_MASK)) return CMD_ERROR;
|
|
|
return SendAllVehiclesToDepot(VEH_ROAD, flags, p2 & DEPOT_SERVICE, _current_company, (p2 & VLW_MASK), p1);
|
|
|
}
|
|
|
|
|
|
Vehicle *v = Vehicle::GetIfValid(p1);
|
|
|
if (v == NULL || v->type != VEH_ROAD) return CMD_ERROR;
|
|
|
RoadVehicle *v = RoadVehicle::GetIfValid(p1);
|
|
|
if (v == NULL) return CMD_ERROR;
|
|
|
|
|
|
return v->SendToDepot(flags, (DepotCommand)(p2 & DEPOT_COMMAND_MASK));
|
|
|
}
|
|
|
|
|
|
/** Turn a roadvehicle around.
|
|
|
* @param tile unused
|
|
@@ -1988,15 +1988,15 @@ CommandCost CmdRefitRoadVeh(TileIndex ti
|
|
|
CargoID new_cid = GB(p2, 0, 8);
|
|
|
byte new_subtype = GB(p2, 8, 8);
|
|
|
bool only_this = HasBit(p2, 16);
|
|
|
uint16 capacity = CALLBACK_FAILED;
|
|
|
uint total_capacity = 0;
|
|
|
|
|
|
Vehicle *v = Vehicle::GetIfValid(p1);
|
|
|
RoadVehicle *v = RoadVehicle::GetIfValid(p1);
|
|
|
|
|
|
if (v == NULL || v->type != VEH_ROAD || !CheckOwnership(v->owner)) return CMD_ERROR;
|
|
|
if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
|
|
|
if (!v->IsStoppedInDepot()) return_cmd_error(STR_ERROR_ROAD_MUST_BE_STOPPED_INSIDE_DEPOT);
|
|
|
if (v->vehstatus & VS_CRASHED) return_cmd_error(STR_CAN_T_REFIT_DESTROYED_VEHICLE);
|
|
|
|
|
|
if (new_cid >= NUM_CARGO) return CMD_ERROR;
|
|
|
|
|
|
for (; v != NULL; v = (only_this ? NULL : v->Next())) {
|