summaryrefslogtreecommitdiff
path: root/src/game-server/monstermanager.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/monstermanager.hpp')
-rw-r--r--src/game-server/monstermanager.hpp57
1 files changed, 34 insertions, 23 deletions
diff --git a/src/game-server/monstermanager.hpp b/src/game-server/monstermanager.hpp
index 18377bc5..6337b816 100644
--- a/src/game-server/monstermanager.hpp
+++ b/src/game-server/monstermanager.hpp
@@ -22,30 +22,41 @@
#define MONSTERMANAGER_HPP
#include <string>
-
+#include <map>
class MonsterClass;
-
-namespace MonsterManager
+class MonsterManager
{
- /**
- * Loads monster reference file.
- */
- void initialize(const std::string &);
-
- /**
- * Reloads monster reference file.
- */
- void reload();
-
- /**
- * Destroy monster classes.
- */
- void deinitialize();
-
- /**
- * Gets the MonsterClass having the given ID.
- */
- MonsterClass *getMonster(int id);
-}
+ public:
+
+ MonsterManager(const std::string &file) : mMonsterReferenceFile(file) {}
+ /**
+ * Loads monster reference file.
+ */
+ void initialize();
+
+ /**
+ * Reloads monster reference file.
+ */
+ void reload();
+
+ /**
+ * Destroy monster classes.
+ */
+ void deinitialize();
+
+ /**
+ * Gets the MonsterClass having the given ID.
+ */
+ MonsterClass *getMonster(int id);
+
+ private:
+
+ typedef std::map< int, MonsterClass * > MonsterClasses;
+ MonsterClasses mMonsterClasses; /**< Monster reference */
+
+ std::string mMonsterReferenceFile;
+};
+
+extern MonsterManager *monsterManager;
#endif // MONSTERMANAGER_HPP