Changeset - r16379:9aa7b776015c
[Not reviewed]
master
0 2 0
planetmaker - 14 years ago 2010-11-06 20:20:03
planetmaker@openttd.org
(svn r21105) -Feature-ish: Allow to sort purchase lists for trains and road vehicles by tractive effort
2 files changed with 33 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/build_vehicle_gui.cpp
Show inline comments
 
@@ -232,6 +232,23 @@ static int CDECL EnginePowerSorter(const
 
}
 

	
 
/**
 
 * Determines order of engines by tractive effort
 
 * @param *a first engine to compare
 
 * @param *b second engine to compare
 
 * @return for descending order: returns < 0 if a < b and > 0 for a > b. Vice versa for ascending order and 0 for equal
 
 */
 
static int CDECL EngineTractiveEffortSorter(const EngineID *a, const EngineID *b)
 
{
 
	int va = Engine::Get(*a)->GetDisplayMaxTractiveEffort();
 
	int vb = Engine::Get(*b)->GetDisplayMaxTractiveEffort();
 
	int r = va - vb;
 

	
 
	/* Use EngineID to sort instead since we want consistent sorting */
 
	if (r == 0) return EngineNumberSorter(a, b);
 
	return _internal_sort_order ? -r : r;
 
}
 

	
 
/**
 
 * Determines order of engines by running costs
 
 * @param *a first engine to compare
 
 * @param *b second engine to compare
 
@@ -384,12 +401,13 @@ static int CDECL AircraftEngineCargoSort
 
	return _internal_sort_order ? -r : r;
 
}
 

	
 
static EngList_SortTypeFunction * const _sorter[][10] = {{
 
static EngList_SortTypeFunction * const _sorter[][11] = {{
 
	/* Trains */
 
	&EngineNumberSorter,
 
	&EngineCostSorter,
 
	&EngineSpeedSorter,
 
	&EnginePowerSorter,
 
	&EngineTractiveEffortSorter,
 
	&EngineIntroDateSorter,
 
	&EngineNameSorter,
 
	&EngineRunningCostSorter,
 
@@ -402,6 +420,7 @@ static EngList_SortTypeFunction * const 
 
	&EngineCostSorter,
 
	&EngineSpeedSorter,
 
	&EnginePowerSorter,
 
	&EngineTractiveEffortSorter,
 
	&EngineIntroDateSorter,
 
	&EngineNameSorter,
 
	&EngineRunningCostSorter,
 
@@ -430,12 +449,13 @@ static EngList_SortTypeFunction * const 
 
	&AircraftEngineCargoSorter,
 
}};
 

	
 
static const StringID _sort_listing[][11] = {{
 
static const StringID _sort_listing[][12] = {{
 
	/* Trains */
 
	STR_SORT_BY_ENGINE_ID,
 
	STR_SORT_BY_COST,
 
	STR_SORT_BY_MAX_SPEED,
 
	STR_SORT_BY_POWER,
 
	STR_SORT_BY_TRACTIVE_EFFORT,
 
	STR_SORT_BY_INTRO_DATE,
 
	STR_SORT_BY_NAME,
 
	STR_SORT_BY_RUNNING_COST,
 
@@ -449,6 +469,7 @@ static const StringID _sort_listing[][11
 
	STR_SORT_BY_COST,
 
	STR_SORT_BY_MAX_SPEED,
 
	STR_SORT_BY_POWER,
 
	STR_SORT_BY_TRACTIVE_EFFORT,
 
	STR_SORT_BY_INTRO_DATE,
 
	STR_SORT_BY_NAME,
 
	STR_SORT_BY_RUNNING_COST,
 
@@ -1155,11 +1176,17 @@ struct BuildVehicleWindow : Window {
 

	
 
			case BUILD_VEHICLE_WIDGET_SORT_DROPDOWN: { // Select sorting criteria dropdown menu
 
				uint32 hidden_mask = 0;
 
				/* Disable sorting by power when the original acceleration model for road vehicles is being used. */
 
				/* Disable sorting by power or tractive effort when the original acceleration model for road vehicles is being used. */
 
				if (this->vehicle_type == VEH_ROAD &&
 
						_settings_game.vehicle.roadveh_acceleration_model == AM_ORIGINAL) {
 
					SetBit(hidden_mask, 3);
 
					SetBit(hidden_mask, 7);
 
					SetBit(hidden_mask, 3); // power
 
					SetBit(hidden_mask, 4); // tractive effort
 
					SetBit(hidden_mask, 8); // power by running costs
 
				}
 
				/* Disable sorting by tractive effort when the original acceleration model for trains is being used. */
 
				if (this->vehicle_type == VEH_TRAIN &&
 
						_settings_game.vehicle.train_acceleration_model == AM_ORIGINAL) {
 
					SetBit(hidden_mask, 4); // tractive effort
 
				}
 
				ShowDropDownMenu(this, _sort_listing[this->vehicle_type], this->sort_criteria, BUILD_VEHICLE_WIDGET_SORT_DROPDOWN, 0, hidden_mask);
 
				break;
src/lang/english.txt
Show inline comments
 
@@ -285,6 +285,7 @@ STR_SORT_BY_RATING_MIN                  
 
STR_SORT_BY_ENGINE_ID                                           :EngineID (classic sort)
 
STR_SORT_BY_COST                                                :Cost
 
STR_SORT_BY_POWER                                               :Power
 
STR_SORT_BY_TRACTIVE_EFFORT                                     :Tractive effort
 
STR_SORT_BY_INTRO_DATE                                          :Introduction Date
 
STR_SORT_BY_RUNNING_COST                                        :Running Cost
 
STR_SORT_BY_POWER_VS_RUNNING_COST                               :Power/Running Cost
0 comments (0 inline, 0 general)