(svn r19656) -Codechange/Fix: Report back if invalid vehicle lists are requested.

This commit is contained in:
frosch
2010-04-17 14:47:56 +00:00
parent 001a96526c
commit 91a27a9738
3 changed files with 11 additions and 6 deletions

View File

@@ -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;
}