aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/SysClassRegistry.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/wintermute/SysClassRegistry.h')
-rw-r--r--engines/wintermute/SysClassRegistry.h34
1 files changed, 25 insertions, 9 deletions
diff --git a/engines/wintermute/SysClassRegistry.h b/engines/wintermute/SysClassRegistry.h
index 1a73f28010..6d3367fc30 100644
--- a/engines/wintermute/SysClassRegistry.h
+++ b/engines/wintermute/SysClassRegistry.h
@@ -32,14 +32,30 @@
#include "wintypes.h"
#include "dctypes.h"
#include "persistent.h"
-#include <set>
-#include <map>
+//#include <set>
+//#include <map>
+#include "common/hashmap.h"
+#include "common/hash-str.h"
+#include "common/func.h"
+
+#define FORBIDDEN_SYMBOL_EXCEPTION_FILE
+
+namespace WinterMute {
+class CSysClass;
+}
+
+namespace Common {
+template<typename T> struct Hash;
+template<> struct Hash<WinterMute::CSysClass*> : public UnaryFunction<WinterMute::CSysClass*, uint> {
+ uint operator()(WinterMute::CSysClass* val) const { return (uint)((size_t)val); }
+};
+
+}
namespace WinterMute {
class CBGame;
class CBPersistMgr;
-class CSysClass;
class CSysInstance;
class CSysClassRegistry {
@@ -57,7 +73,7 @@ public:
bool UnregisterClass(CSysClass *classObj);
bool RegisterInstance(const char *className, void *instance);
bool UnregisterInstance(const char *className, void *instance);
- void DumpClasses(FILE *stream);
+ void DumpClasses(void *stream);
int GetNextID();
void AddInstanceToTable(CSysInstance *instance, void *pointer);
@@ -67,19 +83,19 @@ public:
bool m_Disabled;
int m_Count;
- typedef std::set<CSysClass *> Classes;
+ typedef Common::HashMap<CSysClass *, CSysClass *> Classes;
Classes m_Classes;
- typedef std::map<AnsiString, CSysClass *> NameMap;
+ typedef Common::HashMap<AnsiString, CSysClass *> NameMap;
NameMap m_NameMap;
- typedef std::map<int, CSysClass *> IdMap;
+ typedef Common::HashMap<int, CSysClass *> IdMap;
IdMap m_IdMap;
- typedef std::map<void *, CSysInstance *> InstanceMap;
+ typedef Common::HashMap<void *, CSysInstance *> InstanceMap;
InstanceMap m_InstanceMap;
- typedef std::map<int, CSysInstance *> SavedInstanceMap;
+ typedef Common::HashMap<int, CSysInstance *> SavedInstanceMap;
SavedInstanceMap m_SavedInstanceMap;
};