changeset 6023:5c1152d41f0f draft

(svn r8746) -Regression r8331: build train window could sort incorrectly by EngineID with certain newGRF sets
author bjarni <bjarni@openttd.org>
date Thu, 15 Feb 2007 17:51:39 +0000
parents 77a5708ac3f8
children 7558c046b94d
files src/build_vehicle_gui.cpp
diffstat 1 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/build_vehicle_gui.cpp
+++ b/src/build_vehicle_gui.cpp
@@ -224,6 +224,15 @@
 	return _internal_sort_order ? -r : r;
 }
 
+static int CDECL TrainEngineNumberSorter(const void *a, const void *b)
+{
+	const EngineID va = *(const EngineID*)a;
+	const EngineID vb = *(const EngineID*)b;
+	int r = ListPositionOfEngine(va) - ListPositionOfEngine(vb);
+
+	return _internal_sort_order ? -r : r;
+}
+
 static int CDECL TrainEnginesThenWagonsSorter(const void *a, const void *b)
 {
 	EngineID va = *(const EngineID*)a;
@@ -290,7 +299,7 @@
 
 static EngList_SortTypeFunction * const _sorter[][9] = {{
 	/* Trains */
-	&EngineNumberSorter,
+	&TrainEngineNumberSorter,
 	&TrainEngineCostSorter,
 	&TrainEngineSpeedSorter,
 	&TrainEnginePowerSorter,