aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/serverobject.cpp12
-rw-r--r--src/serverobject.h9
2 files changed, 12 insertions, 9 deletions
diff --git a/src/serverobject.cpp b/src/serverobject.cpp
index ca3d2c3b9..b5fd6fc3a 100644
--- a/src/serverobject.cpp
+++ b/src/serverobject.cpp
@@ -43,8 +43,8 @@ ServerActiveObject* ServerActiveObject::create(u8 type,
const std::string &data)
{
// Find factory function
- core::map<u16, Factory>::Node *n;
- n = m_types.find(type);
+ core::map<u8, Factory>::Node *n;
+ n = ServerActiveObject::getTypes().find(type);
if(n == NULL)
{
// If factory is not found, just return.
@@ -58,13 +58,13 @@ ServerActiveObject* ServerActiveObject::create(u8 type,
return object;
}
-void ServerActiveObject::registerType(u16 type, Factory f)
+void ServerActiveObject::registerType(u8 type, Factory f)
{
- core::map<u16, Factory>::Node *n;
- n = m_types.find(type);
+ core::map<u8, Factory>::Node *n;
+ n = ServerActiveObject::getTypes().find(type);
if(n)
return;
- m_types.insert(type, f);
+ ServerActiveObject::getTypes().insert(type, f);
}
void ServerActiveObject::getWieldDiggingProperties(ToolDiggingProperties *dst)
diff --git a/src/serverobject.h b/src/serverobject.h
index fd8a51a9e..d2627c87e 100644
--- a/src/serverobject.h
+++ b/src/serverobject.h
@@ -200,14 +200,17 @@ protected:
typedef ServerActiveObject* (*Factory)
(ServerEnvironment *env, v3f pos,
const std::string &data);
- static void registerType(u16 type, Factory f);
+ static void registerType(u8 type, Factory f);
ServerEnvironment *m_env;
v3f m_base_position;
private:
- // Used for creating objects based on type
- static core::map<u16, Factory> m_types;
+ static core::map<u8, Factory>& getTypes()
+ {
+ static core::map<u8, Factory> types;
+ return types;
+ }
};
#endif