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/ai/ai.hpp6
-rw-r--r--src/ai/ai_config.hpp7
-rw-r--r--src/ai/ai_scanner.hpp3
-rw-r--r--src/ai/api/ai_controller.hpp6
-rw-r--r--src/blitter/factory.hpp8
-rw-r--r--src/core/string_compare_type.hpp15
-rw-r--r--src/driver.h8
10 files changed, 34 insertions, 28 deletions
diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj
index 8306b3add..b46f50ebc 100644
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -1699,6 +1699,10 @@
RelativePath=".\..\src\core\sort_func.hpp"
>
</File>
+ <File
+ RelativePath=".\..\src\core\string_compare_type.hpp"
+ >
+ </File>
</Filter>
<Filter
Name="GUI Source Code"
diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj
index 331ef3744..a3e6257f6 100644
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -1696,6 +1696,10 @@
RelativePath=".\..\src\core\sort_func.hpp"
>
</File>
+ <File
+ RelativePath=".\..\src\core\string_compare_type.hpp"
+ >
+ </File>
</Filter>
<Filter
Name="GUI Source Code"
diff --git a/source.list b/source.list
index b7292ad8a..07ecd7607 100644
--- a/source.list
+++ b/source.list
@@ -370,6 +370,7 @@ core/random_func.hpp
core/smallmap_type.hpp
core/smallvec_type.hpp
core/sort_func.hpp
+core/string_compare_type.hpp
# GUI Source Code
aircraft_gui.cpp
diff --git a/src/ai/ai.hpp b/src/ai/ai.hpp
index 0485cabae..2653e66ae 100644
--- a/src/ai/ai.hpp
+++ b/src/ai/ai.hpp
@@ -7,11 +7,9 @@
#include "api/ai_event_types.hpp"
#include "../date_type.h"
+#include "../core/string_compare_type.hpp"
-#ifndef AI_CONFIG_HPP
-struct ltstr { bool operator()(const char *s1, const char *s2) const { return strcmp(s1, s2) < 0; } };
-#endif /* AI_CONFIG_HPP */
-typedef std::map<const char *, class AIInfo *, ltstr> AIInfoList;
+typedef std::map<const char *, class AIInfo *, StringCompare> AIInfoList;
void CcAI(bool success, TileIndex tile, uint32 p1, uint32 p2);
diff --git a/src/ai/ai_config.hpp b/src/ai/ai_config.hpp
index 39b680f1c..ca8b05a39 100644
--- a/src/ai/ai_config.hpp
+++ b/src/ai/ai_config.hpp
@@ -7,14 +7,11 @@
#include <map>
#include "ai_info.hpp"
-
-#ifndef AI_HPP
-struct ltstr { bool operator()(const char *s1, const char *s2) const { return strcmp(s1, s2) < 0; } };
-#endif /* AI_HPP */
+#include "../core/string_compare_type.hpp"
class AIConfig {
private:
- typedef std::map<const char *, int, ltstr> SettingValueList;
+ typedef std::map<const char *, int, StringCompare> SettingValueList;
public:
AIConfig() :
diff --git a/src/ai/ai_scanner.hpp b/src/ai/ai_scanner.hpp
index 3bfa27bfc..9818288bb 100644
--- a/src/ai/ai_scanner.hpp
+++ b/src/ai/ai_scanner.hpp
@@ -5,6 +5,7 @@
#ifndef AI_SCANNER_HPP
#define AI_SCANNER_HPP
+#include "../core/string_compare_type.hpp"
#include <map>
class AIScanner {
@@ -73,7 +74,7 @@ public:
bool HasAI(const struct ContentInfo *ci, bool md5sum);
#endif
private:
- typedef std::map<const char *, class AILibrary *, ltstr> AILibraryList;
+ typedef std::map<const char *, class AILibrary *, StringCompare> AILibraryList;
/**
* Scan the AI dir for scripts.
diff --git a/src/ai/api/ai_controller.hpp b/src/ai/api/ai_controller.hpp
index 1f1df743e..d4e2bd6dc 100644
--- a/src/ai/api/ai_controller.hpp
+++ b/src/ai/api/ai_controller.hpp
@@ -5,10 +5,8 @@
#ifndef AI_CONTROLLER_HPP
#define AI_CONTROLLER_HPP
+#include "../../core/string_compare_type.hpp"
#include <map>
-#ifndef AI_HPP
-struct ltstr { bool operator()(const char *s1, const char *s2) const { return strcmp(s1, s2) < 0; } };
-#endif /* AI_HPP */
/**
* The Controller, the class each AI should extend. It creates the AI, makes
@@ -85,7 +83,7 @@ public:
static void Print(bool error_msg, const char *message);
private:
- typedef std::map<const char *, const char *, ltstr> LoadedLibraryList;
+ typedef std::map<const char *, const char *, StringCompare> LoadedLibraryList;
uint ticks;
LoadedLibraryList loaded_library;
diff --git a/src/blitter/factory.hpp b/src/blitter/factory.hpp
index 4f7a4b108..a1ab6dc6e 100644
--- a/src/blitter/factory.hpp
+++ b/src/blitter/factory.hpp
@@ -8,6 +8,7 @@
#include "base.hpp"
#include "../debug.h"
#include "../string_func.h"
+#include "../core/string_compare_type.hpp"
#include <map>
#if defined(WITH_COCOA)
@@ -21,13 +22,6 @@ class BlitterFactoryBase {
private:
const char *name;
- struct StringCompare {
- bool operator () (const char *a, const char *b) const
- {
- return strcmp(a, b) < 0;
- }
- };
-
typedef std::map<const char *, BlitterFactoryBase *, StringCompare> Blitters;
static Blitters &GetBlitters()
diff --git a/src/core/string_compare_type.hpp b/src/core/string_compare_type.hpp
new file mode 100644
index 000000000..c4bb71819
--- /dev/null
+++ b/src/core/string_compare_type.hpp
@@ -0,0 +1,15 @@
+/* $Id$ */
+
+/** @file string_compare_type.hpp Comparator class for "const char *" so it can be used as a key for std::map */
+
+#ifndef STRING_COMPARE_TYPE_HPP
+#define STRING_COMPARE_TYPE_HPP
+
+struct StringCompare {
+ bool operator () (const char *a, const char *b) const
+ {
+ return strcmp(a, b) < 0;
+ }
+};
+
+#endif /* STRING_COMPARE_TYPE_HPP */
diff --git a/src/driver.h b/src/driver.h
index 61fede9c4..b2a359b97 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -6,6 +6,7 @@
#define DRIVER_H
#include "core/enum_type.hpp"
+#include "core/string_compare_type.hpp"
#include "string_func.h"
#include <map>
@@ -39,13 +40,6 @@ private:
const char *name;
int priority;
- struct StringCompare {
- bool operator () (const char *a, const char *b) const
- {
- return strcmp(a, b) < 0;
- }
- };
-
typedef std::map<const char *, DriverFactoryBase *, StringCompare> Drivers;
static Drivers &GetDrivers()