diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vehicle.cpp | 21 | ||||
-rw-r--r-- | src/vehicle.h | 2 | ||||
-rw-r--r-- | src/vehicle_gui.cpp | 18 |
3 files changed, 21 insertions, 20 deletions
diff --git a/src/vehicle.cpp b/src/vehicle.cpp index e3cd3b08d..099901e81 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -1624,7 +1624,7 @@ int32 CmdMassStartStopVehicle(TileIndex tile, uint32 flags, uint32 p1, uint32 p2 uint16 id = GB(p1, 0, 16); uint16 window_type = p2 & VLW_MASK; - engine_count = GenerateVehicleSortList((const Vehicle***)&vl, &engine_list_length, vehicle_type, _current_player, id, id, id, window_type); + engine_count = GenerateVehicleSortList((const Vehicle***)&vl, &engine_list_length, vehicle_type, _current_player, id, window_type); } else { /* Get the list of vehicles in the depot */ BuildDepotVehicleList(vehicle_type, tile, &vl, &engine_list_length, &engine_count, NULL, NULL, NULL); @@ -2361,12 +2361,15 @@ void BuildDepotVehicleList(byte type, TileIndex tile, Vehicle ***engine_list, ui * @param length_of_array informs the length allocated for sort_list. This is not the same as the number of vehicles in the list. Needs to be 0 when sort_list is NULL * @param type type of vehicle * @param owner PlayerID of owner to generate a list for -* @param station index of station to generate a list for. INVALID_STATION when not used -* @param order index of oder to generate a list for. INVALID_ORDER when not used +* @param index This parameter got different meanings depending on window_type + VLW_STATION_LIST: index of station to generate a list for + VLW_SHARED_ORDERS: index of order to generate a list for + VLW_STANDARD: not used + VLW_DEPOT_LIST: TileIndex of the depot/hangar to make the list for * @param window_type tells what kind of window the list is for. Use the VLW flags in vehicle_gui.h * @return the number of vehicles added to the list */ -uint GenerateVehicleSortList(const Vehicle ***sort_list, uint16 *length_of_array, byte type, PlayerID owner, StationID station, OrderID order, uint16 depot_airport_index, uint16 window_type) +uint GenerateVehicleSortList(const Vehicle ***sort_list, uint16 *length_of_array, byte type, PlayerID owner, uint16 index, uint16 window_type) { const uint subtype = (type != VEH_Aircraft) ? Train_Front : 2; uint n = 0; @@ -2381,7 +2384,7 @@ uint GenerateVehicleSortList(const Vehicle ***sort_list, uint16 *length_of_array const Order *order; FOR_VEHICLE_ORDERS(v, order) { - if (order->type == OT_GOTO_STATION && order->dest == station) { + if (order->type == OT_GOTO_STATION && order->dest == index) { if (n == *length_of_array) ExtendVehicleListSize(sort_list, length_of_array, 50); (*sort_list)[n++] = v; break; @@ -2395,10 +2398,10 @@ uint GenerateVehicleSortList(const Vehicle ***sort_list, uint16 *length_of_array case VLW_SHARED_ORDERS: { FOR_ALL_VEHICLES(v) { /* Find a vehicle with the order in question */ - if (v->orders != NULL && v->orders->index == order) break; + if (v->orders != NULL && v->orders->index == index) break; } - if (v != NULL && v->orders != NULL && v->orders->index == order) { + if (v != NULL && v->orders != NULL && v->orders->index == index) { /* Only try to make the list if we found a vehicle using the order in question */ for (v = GetFirstVehicleFromSharedList(v); v != NULL; v = v->next_shared) { if (n == *length_of_array) ExtendVehicleListSize(sort_list, length_of_array, 25); @@ -2429,7 +2432,7 @@ uint GenerateVehicleSortList(const Vehicle ***sort_list, uint16 *length_of_array const Order *order; FOR_VEHICLE_ORDERS(v, order) { - if (order->type == OT_GOTO_DEPOT && order->dest == depot_airport_index) { + if (order->type == OT_GOTO_DEPOT && order->dest == index) { if (n == *length_of_array) ExtendVehicleListSize(sort_list, length_of_array, 25); (*sort_list)[n++] = v; break; @@ -2469,7 +2472,7 @@ int32 SendAllVehiclesToDepot(byte type, uint32 flags, bool service, PlayerID own uint n, i; uint16 array_length = 0; - n = GenerateVehicleSortList(&sort_list, &array_length, type, owner, id, id, id, vlw_flag); + n = GenerateVehicleSortList(&sort_list, &array_length, type, owner, id, vlw_flag); /* Send all the vehicles to a depot */ for (i = 0; i < n; i++) { diff --git a/src/vehicle.h b/src/vehicle.h index d831058d2..7093fffdb 100644 --- a/src/vehicle.h +++ b/src/vehicle.h @@ -333,7 +333,7 @@ int CheckTrainStoppedInDepot(const Vehicle *v); bool VehicleNeedsService(const Vehicle *v); -uint GenerateVehicleSortList(const Vehicle*** sort_list, uint16 *length_of_array, byte type, PlayerID owner, StationID station, OrderID order, uint16 depot_airport_index, uint16 window_type); +uint GenerateVehicleSortList(const Vehicle*** sort_list, uint16 *length_of_array, byte type, PlayerID owner, uint16 index, uint16 window_type); void BuildDepotVehicleList(byte type, TileIndex tile, Vehicle ***engine_list, uint16 *engine_list_length, uint16 *engine_count, Vehicle ***wagon_list, uint16 *wagon_list_length, uint16 *wagon_count); int32 SendAllVehiclesToDepot(byte type, uint32 flags, bool service, PlayerID owner, uint16 vlw_flag, uint32 id); bool IsVehicleInDepot(const Vehicle *v); diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index edc430d53..a9dc9f6a0 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -138,13 +138,13 @@ void ResortVehicleLists(void) } } -static void BuildVehicleList(vehiclelist_d* vl, PlayerID owner, StationID station, OrderID order, uint16 depot_airport_index, uint16 window_type) +static void BuildVehicleList(vehiclelist_d* vl, PlayerID owner, uint16 index, uint16 window_type) { if (!(vl->l.flags & VL_REBUILD)) return; - DEBUG(misc, 3, "Building vehicle list for player %d at station %d", owner, station); + DEBUG(misc, 3, "Building vehicle list for player %d at station %d", owner, index); - vl->l.list_length = GenerateVehicleSortList(&vl->sort_list, &vl->length_of_sort_list, vl->vehicle_type, owner, station, order, depot_airport_index, window_type); + vl->l.list_length = GenerateVehicleSortList(&vl->sort_list, &vl->length_of_sort_list, vl->vehicle_type, owner, index, window_type); vl->l.flags &= ~VL_REBUILD; vl->l.flags |= VL_RESORT; @@ -1590,11 +1590,9 @@ static void DrawVehicleListWindow(Window *w) const PlayerID owner = (PlayerID)w->caption_color; const Player *p = GetPlayer(owner); const uint16 window_type = w->window_number & VLW_MASK; - const StationID station = (window_type == VLW_STATION_LIST) ? GB(w->window_number, 16, 16) : INVALID_STATION; - const OrderID order = (window_type == VLW_SHARED_ORDERS) ? GB(w->window_number, 16, 16) : INVALID_ORDER; - const uint16 depot_airport_index = (window_type == VLW_DEPOT_LIST) ? GB(w->window_number, 16, 16) : INVALID_STATION; + const uint16 index = GB(w->window_number, 16, 16); - BuildVehicleList(vl, owner, station, order, depot_airport_index, window_type); + BuildVehicleList(vl, owner, index, window_type); SortVehicleList(vl); SetVScrollCount(w, vl->l.list_length); @@ -1616,7 +1614,7 @@ static void DrawVehicleListWindow(Window *w) break; case VLW_STATION_LIST: /* Station Name */ - SetDParam(0, station); + SetDParam(0, index); SetDParam(1, w->vscroll.count); break; @@ -1629,9 +1627,9 @@ static void DrawVehicleListWindow(Window *w) default: NOT_REACHED(); break; } if (vl->vehicle_type == VEH_Aircraft) { - SetDParam(1, depot_airport_index); // Airport name + SetDParam(1, index); // Airport name } else { - SetDParam(1, GetDepot(depot_airport_index)->town_index); + SetDParam(1, GetDepot(index)->town_index); } SetDParam(2, w->vscroll.count); break; |