mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r19656) -Codechange/Fix: Report back if invalid vehicle lists are requested.
This commit is contained in:
parent
2a5ddd0dae
commit
5ecf2f7f8c
|
@ -144,7 +144,7 @@ CommandCost CmdMassStartStopVehicle(TileIndex tile, DoCommandFlag flags, uint32
|
|||
uint32 id = p1;
|
||||
uint16 window_type = p2 & VLW_MASK;
|
||||
|
||||
GenerateVehicleSortList(&list, vehicle_type, _current_company, id, window_type);
|
||||
if (!GenerateVehicleSortList(&list, vehicle_type, _current_company, id, window_type)) return CMD_ERROR;
|
||||
} else {
|
||||
/* Get the list of vehicles in the depot */
|
||||
BuildDepotVehicleList(vehicle_type, tile, &list, NULL);
|
||||
|
@ -596,7 +596,7 @@ CommandCost SendAllVehiclesToDepot(VehicleType type, DoCommandFlag flags, bool s
|
|||
{
|
||||
VehicleList list;
|
||||
|
||||
GenerateVehicleSortList(&list, type, owner, id, vlw_flag);
|
||||
if (!GenerateVehicleSortList(&list, type, owner, id, vlw_flag)) return CMD_ERROR;
|
||||
|
||||
/* Send all the vehicles to a depot */
|
||||
bool had_success = false;
|
||||
|
|
|
@ -76,8 +76,9 @@ void BuildDepotVehicleList(VehicleType type, TileIndex tile, VehicleList *engine
|
|||
* <li>VLW_WAYPOINT_LIST: index of waypoint to generate a list for</li>
|
||||
* </ul>
|
||||
* @param window_type The type of window the list is for, using the VLW_ flags in vehicle_gui.h
|
||||
* @return false if invalid list is requested
|
||||
*/
|
||||
void GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, uint32 index, uint16 window_type)
|
||||
bool GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, uint32 index, uint16 window_type)
|
||||
{
|
||||
list->Clear();
|
||||
|
||||
|
@ -101,7 +102,10 @@ void GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, u
|
|||
|
||||
case VLW_SHARED_ORDERS:
|
||||
/* Add all vehicles from this vehicle's shared order list */
|
||||
for (v = Vehicle::Get(index); v != NULL; v = v->NextShared()) {
|
||||
v = Vehicle::GetIfValid(index);
|
||||
if (v == NULL || v->type != type || !v->IsPrimaryVehicle()) return false;
|
||||
|
||||
for (; v != NULL; v = v->NextShared()) {
|
||||
*list->Append() = v;
|
||||
}
|
||||
break;
|
||||
|
@ -153,8 +157,9 @@ void GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, u
|
|||
}
|
||||
break;
|
||||
|
||||
default: NOT_REACHED();
|
||||
default: return false;
|
||||
}
|
||||
|
||||
list->Compact();
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
typedef SmallVector<const Vehicle *, 32> VehicleList;
|
||||
|
||||
void GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, uint32 index, uint16 window_type);
|
||||
bool GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, uint32 index, uint16 window_type);
|
||||
void BuildDepotVehicleList(VehicleType type, TileIndex tile, VehicleList *engine_list, VehicleList *wagon_list, bool individual_wagons = false);
|
||||
|
||||
#endif /* VEHICLELIST_H */
|
||||
|
|
Loading…
Reference in New Issue