Changeset - r24023:438cb463ab99
[Not reviewed]
master
0 1 0
stormcone - 5 years ago 2019-11-23 20:52:33
48624099+stormcone@users.noreply.github.com
Change: Move the filtered cargo to the first place in the industry directory window's cargo lists
1 file changed with 12 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/industry_gui.cpp
Show inline comments
 
@@ -1472,12 +1472,24 @@ protected:
 
		/* Sort by descending production, then descending transported */
 
		std::sort(cargos.begin(), cargos.end(), [](const CargoInfo a, const CargoInfo b) {
 
			if (std::get<1>(a) != std::get<1>(b)) return std::get<1>(a) > std::get<1>(b);
 
			return std::get<3>(a) > std::get<3>(b);
 
		});
 

	
 
		/* If the produced cargo filter is active then move the filtered cargo to the beginning of the list,
 
		 * because this is the one the player interested in, and that way it is not hidden in the 'n' more cargos */
 
		const CargoID cid = this->cargo_filter[this->produced_cargo_filter_criteria];
 
		if (cid != CF_ANY && cid != CF_NONE) {
 
			auto filtered_ci = std::find_if(cargos.begin(), cargos.end(), [cid](const CargoInfo& ci) -> bool {
 
				return std::get<0>(ci) == cid;
 
			});
 
			if (filtered_ci != cargos.end()) {
 
				std::rotate(cargos.begin(), filtered_ci, filtered_ci + 1);
 
			}
 
		}
 

	
 
		/* Display first 3 cargos */
 
		for (size_t j = 0; j < min<size_t>(3, cargos.size()); j++) {
 
			CargoInfo ci = cargos[j];
 
			SetDParam(p++, STR_INDUSTRY_DIRECTORY_ITEM_INFO);
 
			SetDParam(p++, std::get<0>(ci));
 
			SetDParam(p++, std::get<1>(ci));
0 comments (0 inline, 0 general)