Changeset - r15029:7607b8c4cbd9
[Not reviewed]
master
0 3 0
frosch - 14 years ago 2010-04-17 14:47:56
frosch@openttd.org
(svn r19656) -Codechange/Fix: Report back if invalid vehicle lists are requested.
3 files changed with 11 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/vehicle_cmd.cpp
Show inline comments
 
@@ -144,7 +144,7 @@ CommandCost CmdMassStartStopVehicle(Tile
 
		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(Vehic
 
{
 
	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;
src/vehiclelist.cpp
Show inline comments
 
@@ -76,8 +76,9 @@ void BuildDepotVehicleList(VehicleType t
 
 *      <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
 

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

	
 
		default: NOT_REACHED();
 
		default: return false;
 
	}
 

	
 
	list->Compact();
 
	return true;
 
}
src/vehiclelist.h
Show inline comments
 
@@ -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 (0 inline, 0 general)