Merge branch 'tracerestrict-sx' into jgrpp
# Conflicts: # src/command.cpp # src/group_gui.cpp # src/lang/english.txt # src/saveload/extended_ver_sl.cpp # src/settings_gui.cpp # src/tracerestrict.cpp # src/tracerestrict.h # src/tracerestrict_gui.cpp # src/vehicle_gui.cpp # src/vehicle_gui_base.h # src/vehiclelist.cpp # src/window_type.h
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#include "train.h"
|
||||
#include "vehiclelist.h"
|
||||
#include "group.h"
|
||||
#include "tracerestrict.h"
|
||||
|
||||
#include "safeguards.h"
|
||||
|
||||
@@ -119,6 +120,14 @@ bool GenerateVehicleSortList(VehicleList *list, const VehicleListIdentifier &vli
|
||||
|
||||
const Vehicle *v;
|
||||
|
||||
auto fill_all_vehicles = [&]() {
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
if (!HasBit(v->subtype, GVSF_VIRTUAL) && v->type == vli.vtype && v->owner == vli.company && v->IsPrimaryVehicle()) {
|
||||
*list->Append() = v;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
switch (vli.type) {
|
||||
case VL_STATION_LIST:
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
@@ -156,14 +165,11 @@ bool GenerateVehicleSortList(VehicleList *list, const VehicleListIdentifier &vli
|
||||
}
|
||||
break;
|
||||
}
|
||||
/* FALL THROUGH */
|
||||
fill_all_vehicles();
|
||||
break;
|
||||
|
||||
case VL_STANDARD:
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
if (!HasBit(v->subtype, GVSF_VIRTUAL) && v->type == vli.vtype && v->owner == vli.company && v->IsPrimaryVehicle()) {
|
||||
*list->Append() = v;
|
||||
}
|
||||
}
|
||||
fill_all_vehicles();
|
||||
break;
|
||||
|
||||
case VL_DEPOT_LIST:
|
||||
@@ -181,6 +187,19 @@ bool GenerateVehicleSortList(VehicleList *list, const VehicleListIdentifier &vli
|
||||
}
|
||||
break;
|
||||
|
||||
case VL_SLOT_LIST: {
|
||||
if (vli.index == ALL_TRAINS_TRACE_RESTRICT_SLOT_ID) {
|
||||
fill_all_vehicles();
|
||||
} else {
|
||||
const TraceRestrictSlot *slot = TraceRestrictSlot::GetIfValid(vli.index);
|
||||
if (slot == NULL) return false;
|
||||
for (VehicleID id : slot->occupants) {
|
||||
*list->Append() = Vehicle::Get(id);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default: return false;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user