1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-07 16:48:40 +00:00

sao prototype global variables no longer depend on link order to be correctly added to factory

This commit is contained in:
sapier 2012-01-15 19:43:31 +01:00
parent 569156b013
commit de166e75a1
2 changed files with 12 additions and 9 deletions

View file

@ -43,8 +43,8 @@ ServerActiveObject* ServerActiveObject::create(u8 type,
const std::string &data) const std::string &data)
{ {
// Find factory function // Find factory function
core::map<u16, Factory>::Node *n; core::map<u8, Factory>::Node *n;
n = m_types.find(type); n = ServerActiveObject::getTypes().find(type);
if(n == NULL) if(n == NULL)
{ {
// If factory is not found, just return. // If factory is not found, just return.
@ -58,13 +58,13 @@ ServerActiveObject* ServerActiveObject::create(u8 type,
return object; return object;
} }
void ServerActiveObject::registerType(u16 type, Factory f) void ServerActiveObject::registerType(u8 type, Factory f)
{ {
core::map<u16, Factory>::Node *n; core::map<u8, Factory>::Node *n;
n = m_types.find(type); n = ServerActiveObject::getTypes().find(type);
if(n) if(n)
return; return;
m_types.insert(type, f); ServerActiveObject::getTypes().insert(type, f);
} }
void ServerActiveObject::getWieldDiggingProperties(ToolDiggingProperties *dst) void ServerActiveObject::getWieldDiggingProperties(ToolDiggingProperties *dst)

View file

@ -200,14 +200,17 @@ protected:
typedef ServerActiveObject* (*Factory) typedef ServerActiveObject* (*Factory)
(ServerEnvironment *env, v3f pos, (ServerEnvironment *env, v3f pos,
const std::string &data); const std::string &data);
static void registerType(u16 type, Factory f); static void registerType(u8 type, Factory f);
ServerEnvironment *m_env; ServerEnvironment *m_env;
v3f m_base_position; v3f m_base_position;
private: private:
// Used for creating objects based on type static core::map<u8, Factory>& getTypes()
static core::map<u16, Factory> m_types; {
static core::map<u8, Factory> types;
return types;
}
}; };
#endif #endif