summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--projects/openttd_vs80.vcproj4
-rw-r--r--projects/openttd_vs90.vcproj4
-rw-r--r--source.list1
-rw-r--r--src/autoreplace_gui.cpp1
-rw-r--r--src/build_vehicle_gui.cpp1
-rw-r--r--src/engine.cpp28
-rw-r--r--src/engine_func.h4
-rw-r--r--src/engine_gui.cpp30
-rw-r--r--src/engine_gui.h16
-rw-r--r--src/engine_type.h3
10 files changed, 57 insertions, 35 deletions
diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj
index 03062dc07..a57c1f4dd 100644
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -1000,6 +1000,10 @@
>
</File>
<File
+ RelativePath=".\..\src\engine_gui.h"
+ >
+ </File>
+ <File
RelativePath=".\..\src\engine_type.h"
>
</File>
diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj
index 89fbb1c9c..9b2dd1c48 100644
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -997,6 +997,10 @@
>
</File>
<File
+ RelativePath=".\..\src\engine_gui.h"
+ >
+ </File>
+ <File
RelativePath=".\..\src\engine_type.h"
>
</File>
diff --git a/source.list b/source.list
index 7e80cea7a..c9efdd2bd 100644
--- a/source.list
+++ b/source.list
@@ -175,6 +175,7 @@ elrail_func.h
core/endian_func.hpp
engine_base.h
engine_func.h
+engine_gui.h
engine_type.h
core/enum_type.hpp
fiber.hpp
diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp
index 35ca3a924..88d5a9db8 100644
--- a/src/autoreplace_gui.cpp
+++ b/src/autoreplace_gui.cpp
@@ -22,6 +22,7 @@
#include "engine_func.h"
#include "engine_base.h"
#include "window_gui.h"
+#include "engine_gui.h"
#include "table/sprites.h"
#include "table/strings.h"
diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp
index b7c030494..715938a9d 100644
--- a/src/build_vehicle_gui.cpp
+++ b/src/build_vehicle_gui.cpp
@@ -29,6 +29,7 @@
#include "widgets/dropdown_func.h"
#include "string_func.h"
#include "window_gui.h"
+#include "engine_gui.h"
#include "table/sprites.h"
#include "table/strings.h"
diff --git a/src/engine.cpp b/src/engine.cpp
index 558fcd8e0..c3d1f5185 100644
--- a/src/engine.cpp
+++ b/src/engine.cpp
@@ -115,34 +115,6 @@ Engine::~Engine()
free(this->name);
}
-/** Sort all items using qsort() and given 'CompareItems' function
- * @param el list to be sorted
- * @param compare function for evaluation of the quicksort
- */
-void EngList_Sort(EngineList *el, EngList_SortTypeFunction compare)
-{
- size_t size = el->size();
- /* out-of-bounds access at the next line for size == 0 (even with operator[] at some systems)
- * generally, do not sort if there are less than 2 items */
- if (size < 2) return;
- qsort(&((*el)[0]), size, sizeof(EngineID), compare); // MorphOS doesn't know vector::at(int) ...
-}
-
-/** Sort selected range of items (on indices @ <begin, begin+num_items-1>)
- * @param el list to be sorted
- * @param compare function for evaluation of the quicksort
- * @param begin start of sorting
- * @param num_items count of items to be sorted
- */
-void EngList_SortPartial(EngineList *el, EngList_SortTypeFunction compare, uint begin, uint num_items)
-{
- assert(begin <= (uint)el->size());
- assert(begin + num_items <= (uint)el->size());
- if (num_items < 2) return;
- qsort(&((*el)[begin]), num_items, sizeof(EngineID), compare);
-}
-
-
/** Sets cached values in Player::num_vehicles and Group::num_vehicles
*/
void SetCachedEngineCounts()
diff --git a/src/engine_func.h b/src/engine_func.h
index 2e68831ac..2e5049948 100644
--- a/src/engine_func.h
+++ b/src/engine_func.h
@@ -29,8 +29,4 @@ bool IsEngineBuildable(EngineID engine, VehicleType type, PlayerID player);
CargoID GetEngineCargoType(EngineID engine);
void SetCachedEngineCounts();
-typedef int CDECL EngList_SortTypeFunction(const void*, const void*); ///< argument type for EngList_Sort()
-void EngList_Sort(EngineList *el, EngList_SortTypeFunction compare); ///< qsort of the engine list
-void EngList_SortPartial(EngineList *el, EngList_SortTypeFunction compare, uint begin, uint num_items); ///< qsort of specified portion of the engine list
-
#endif /* ENGINE_H */
diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp
index a67d23fcb..bd48d778a 100644
--- a/src/engine_gui.cpp
+++ b/src/engine_gui.cpp
@@ -15,6 +15,7 @@
#include "variables.h"
#include "newgrf_engine.h"
#include "strings_func.h"
+#include "engine_gui.h"
#include "table/strings.h"
#include "table/sprites.h"
@@ -190,3 +191,32 @@ void DrawNewsNewVehicleAvail(Window *w, const NewsItem *ni)
GfxFillRect(25, 56, w->width - 56, 112, PALETTE_TO_STRUCT_GREY | (1 << USE_COLORTABLE));
dei->info_proc(engine, w->width >> 1, 129, w->width - 52);
}
+
+
+/** Sort all items using qsort() and given 'CompareItems' function
+ * @param el list to be sorted
+ * @param compare function for evaluation of the quicksort
+ */
+void EngList_Sort(EngineList *el, EngList_SortTypeFunction compare)
+{
+ size_t size = el->size();
+ /* out-of-bounds access at the next line for size == 0 (even with operator[] at some systems)
+ * generally, do not sort if there are less than 2 items */
+ if (size < 2) return;
+ qsort(&((*el)[0]), size, sizeof(EngineID), compare); // MorphOS doesn't know vector::at(int) ...
+}
+
+/** Sort selected range of items (on indices @ <begin, begin+num_items-1>)
+ * @param el list to be sorted
+ * @param compare function for evaluation of the quicksort
+ * @param begin start of sorting
+ * @param num_items count of items to be sorted
+ */
+void EngList_SortPartial(EngineList *el, EngList_SortTypeFunction compare, uint begin, uint num_items)
+{
+ assert(begin <= (uint)el->size());
+ assert(begin + num_items <= (uint)el->size());
+ if (num_items < 2) return;
+ qsort(&((*el)[begin]), num_items, sizeof(EngineID), compare);
+}
+
diff --git a/src/engine_gui.h b/src/engine_gui.h
new file mode 100644
index 000000000..12957da92
--- /dev/null
+++ b/src/engine_gui.h
@@ -0,0 +1,16 @@
+/* $Id$ */
+
+/** @file engine_gui.h Engine GUI functions, used by build_vehicle_gui and autoreplace_gui */
+
+#ifndef ENGINE_GUI_H
+#define ENGINE_GUI_H
+
+#include <vector>
+
+typedef std::vector<EngineID> EngineList;
+
+typedef int CDECL EngList_SortTypeFunction(const void*, const void*); ///< argument type for EngList_Sort()
+void EngList_Sort(EngineList *el, EngList_SortTypeFunction compare); ///< qsort of the engine list
+void EngList_SortPartial(EngineList *el, EngList_SortTypeFunction compare, uint begin, uint num_items); ///< qsort of specified portion of the engine list
+
+#endif /* ENGINE_GUI_H */
diff --git a/src/engine_type.h b/src/engine_type.h
index affa722ce..66a495607 100644
--- a/src/engine_type.h
+++ b/src/engine_type.h
@@ -14,11 +14,8 @@
#include "player_type.h"
#include "strings_type.h"
-#include <vector>
-
typedef uint16 EngineID;
typedef uint16 EngineRenewID;
-typedef std::vector<EngineID> EngineList; ///< engine list type
struct Engine;