mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Use comparator struct to sort cargo ID by predefined sort order.
This allows reuse of the comparator where a typename is used instead.pull/11385/head
parent
bc8e26f4e7
commit
e4f94747f3
|
@ -204,4 +204,9 @@ static inline bool IsCargoInClass(CargoID c, CargoClass cc)
|
||||||
|
|
||||||
using SetCargoBitIterator = SetBitIterator<CargoID, CargoTypes>;
|
using SetCargoBitIterator = SetBitIterator<CargoID, CargoTypes>;
|
||||||
|
|
||||||
|
/** Comparator to sort CargoID by according to desired order. */
|
||||||
|
struct CargoIDComparator {
|
||||||
|
bool operator() (const CargoID &lhs, const CargoID &rhs) const { return _sorted_cargo_types[lhs] < _sorted_cargo_types[rhs]; }
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* CARGOTYPE_H */
|
#endif /* CARGOTYPE_H */
|
||||||
|
|
|
@ -1920,11 +1920,6 @@ enum CargoesFieldType {
|
||||||
|
|
||||||
static const uint MAX_CARGOES = 16; ///< Maximum number of cargoes carried in a #CFT_CARGO field in #CargoesField.
|
static const uint MAX_CARGOES = 16; ///< Maximum number of cargoes carried in a #CFT_CARGO field in #CargoesField.
|
||||||
|
|
||||||
static bool CargoIDSorter(const CargoID &a, const CargoID &b)
|
|
||||||
{
|
|
||||||
return _sorted_cargo_types[a] < _sorted_cargo_types[b];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Data about a single field in the #IndustryCargoesWindow panel. */
|
/** Data about a single field in the #IndustryCargoesWindow panel. */
|
||||||
struct CargoesField {
|
struct CargoesField {
|
||||||
static int vert_inter_industry_space;
|
static int vert_inter_industry_space;
|
||||||
|
@ -2054,7 +2049,8 @@ struct CargoesField {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->u.cargo.num_cargoes = (count < 0) ? static_cast<uint8_t>(insert - std::begin(this->u.cargo.vertical_cargoes)) : count;
|
this->u.cargo.num_cargoes = (count < 0) ? static_cast<uint8_t>(insert - std::begin(this->u.cargo.vertical_cargoes)) : count;
|
||||||
std::sort(std::begin(this->u.cargo.vertical_cargoes), insert, &CargoIDSorter);
|
CargoIDComparator comparator;
|
||||||
|
std::sort(std::begin(this->u.cargo.vertical_cargoes), insert, comparator);
|
||||||
std::fill(insert, std::end(this->u.cargo.vertical_cargoes), CT_INVALID);
|
std::fill(insert, std::end(this->u.cargo.vertical_cargoes), CT_INVALID);
|
||||||
this->u.cargo.top_end = top_end;
|
this->u.cargo.top_end = top_end;
|
||||||
this->u.cargo.bottom_end = bottom_end;
|
this->u.cargo.bottom_end = bottom_end;
|
||||||
|
|
Loading…
Reference in New Issue