Fix filtering by cargo type = none in vehicle list
This commit is contained in:
@@ -110,7 +110,16 @@ static const CargoID CF_NONE = CT_INVALID; ///< Show only vehicles which do not
|
|||||||
/** Cargo filter functions */
|
/** Cargo filter functions */
|
||||||
static bool CDECL CargoFilter(const Vehicle * const *vid, const CargoID cid)
|
static bool CDECL CargoFilter(const Vehicle * const *vid, const CargoID cid)
|
||||||
{
|
{
|
||||||
if (cid == CF_ANY) return true;
|
if (cid == CF_ANY) {
|
||||||
|
return true;
|
||||||
|
} else if (cid == CF_NONE) {
|
||||||
|
for (const Vehicle *w = (*vid); w != NULL; w = w->Next()) {
|
||||||
|
if (w->cargo_cap > 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
for (const Vehicle *w = (*vid); w != NULL; w = w->Next()) {
|
for (const Vehicle *w = (*vid); w != NULL; w = w->Next()) {
|
||||||
if (w->cargo_cap > 0 && w->cargo_type == cid) {
|
if (w->cargo_cap > 0 && w->cargo_type == cid) {
|
||||||
return true;
|
return true;
|
||||||
@@ -118,6 +127,7 @@ static bool CDECL CargoFilter(const Vehicle *const*vid, const CargoID cid)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static GUIVehicleList::FilterFunction * const _filter_funcs[] = {
|
static GUIVehicleList::FilterFunction * const _filter_funcs[] = {
|
||||||
&CargoFilter,
|
&CargoFilter,
|
||||||
|
Reference in New Issue
Block a user