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:
parent
569156b013
commit
de166e75a1
2 changed files with 12 additions and 9 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue