# HG changeset patch # User peter1138 # Date 1199206866 0 # Node ID 4e1dc52549caddd288208a3dc818e5471244b65a # Parent 2fe829d9da152fca077d6c5f1b15f733d8e185c8 (svn r11737) -Fix: Reinstate NewGRF-specified engine list order in autoreplace window. diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp --- a/src/autoreplace_gui.cpp +++ b/src/autoreplace_gui.cpp @@ -31,6 +31,15 @@ INVALID_STRING_ID }; +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 r; +} + /* General Vehicle GUI based procedures that are independent of vehicle types */ void InitializeVehiclesGuiList() { @@ -172,6 +181,7 @@ if (e == WP(w, replaceveh_d).sel_engine[i]) selected_engine = e; // The selected engine is still in the list } WP(w, replaceveh_d).sel_engine[i] = selected_engine; // update which engine we selected (the same or none, if it's not in the list anymore) + if (type == VEH_TRAIN) EngList_Sort(list, &TrainEngineNumberSorter); } /** Generate the lists