Skip to content
Permalink
Browse files
(svn r19656) -Codechange/Fix: Report back if invalid vehicle lists ar…
…e requested.
  • Loading branch information
frosch123 committed Apr 17, 2010
1 parent 2a5ddd0 commit 5ecf2f7f8cb157d959c42b3396398f03d3f3fffb
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 6 deletions.
@@ -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 */

0 comments on commit 5ecf2f7

Please sign in to comment.