Changeset - r28019:61388fa618c1
[Not reviewed]
master
0 2 0
Peter Nelson - 8 months ago 2023-10-14 20:20:23
peter1138@openttd.org
Codechange: Use comparator struct to sort cargo ID by predefined sort order.

This allows reuse of the comparator where a typename is used instead.
2 files changed with 7 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/cargotype.h
Show inline comments
 
@@ -204,4 +204,9 @@ static inline bool IsCargoInClass(CargoI
 

	
 
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 */
src/industry_gui.cpp
Show inline comments
 
@@ -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 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. */
 
struct CargoesField {
 
	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;
 
		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);
 
		this->u.cargo.top_end = top_end;
 
		this->u.cargo.bottom_end = bottom_end;
0 comments (0 inline, 0 general)