SAO: re-add old ActiveObjectTypes for a future migration layer

This commit is contained in:
Loic Blot 2015-02-17 11:37:55 +01:00
parent f8d5af7536
commit c58d49977d
6 changed files with 14 additions and 11 deletions

@ -27,6 +27,11 @@ enum ActiveObjectType {
ACTIVEOBJECT_TYPE_INVALID = 0, ACTIVEOBJECT_TYPE_INVALID = 0,
ACTIVEOBJECT_TYPE_TEST = 1, ACTIVEOBJECT_TYPE_TEST = 1,
ACTIVEOBJECT_TYPE_ITEM = 2, ACTIVEOBJECT_TYPE_ITEM = 2,
// Compat layer, migrating objects from 0.3 to 0.4+
ACTIVEOBJECT_TYPE_RAT = 3,
ACTIVEOBJECT_TYPE_OERKKI1 = 4,
ACTIVEOBJECT_TYPE_FIREFLY = 5,
ACTIVEOBJECT_TYPE_MOBV2 = 6,
ACTIVEOBJECT_TYPE_LUAENTITY = 7, ACTIVEOBJECT_TYPE_LUAENTITY = 7,
// Special type, not stored as a static object // Special type, not stored as a static object
ACTIVEOBJECT_TYPE_PLAYER = 100, ACTIVEOBJECT_TYPE_PLAYER = 100,

@ -39,14 +39,13 @@ ClientActiveObject::~ClientActiveObject()
removeFromScene(true); removeFromScene(true);
} }
ClientActiveObject* ClientActiveObject::create(u8 type, IGameDef *gamedef, ClientActiveObject* ClientActiveObject::create(ActiveObjectType type,
ClientEnvironment *env) IGameDef *gamedef, ClientEnvironment *env)
{ {
// Find factory function // Find factory function
std::map<u16, Factory>::iterator n; std::map<u16, Factory>::iterator n;
n = m_types.find(type); n = m_types.find(type);
if(n == m_types.end()) if(n == m_types.end()) {
{
// If factory is not found, just return. // If factory is not found, just return.
dstream<<"WARNING: ClientActiveObject: No factory for type=" dstream<<"WARNING: ClientActiveObject: No factory for type="
<<(int)type<<std::endl; <<(int)type<<std::endl;

@ -86,7 +86,7 @@ public:
virtual void initialize(const std::string &data){} virtual void initialize(const std::string &data){}
// Create a certain type of ClientActiveObject // Create a certain type of ClientActiveObject
static ClientActiveObject* create(u8 type, IGameDef *gamedef, static ClientActiveObject* create(ActiveObjectType type, IGameDef *gamedef,
ClientEnvironment *env); ClientEnvironment *env);
// If returns true, punch will not be sent to the server // If returns true, punch will not be sent to the server

@ -1700,7 +1700,7 @@ void ServerEnvironment::activateObjects(MapBlock *block, u32 dtime_s)
StaticObject &s_obj = *i; StaticObject &s_obj = *i;
// Create an active object from the data // Create an active object from the data
ServerActiveObject *obj = ServerActiveObject::create ServerActiveObject *obj = ServerActiveObject::create
(s_obj.type, this, 0, s_obj.pos, s_obj.data); ((ActiveObjectType) s_obj.type, this, 0, s_obj.pos, s_obj.data);
// If couldn't create object, store static data back. // If couldn't create object, store static data back.
if(obj==NULL) if(obj==NULL)
{ {
@ -2488,7 +2488,7 @@ void ClientEnvironment::addActiveObject(u16 id, u8 type,
const std::string &init_data) const std::string &init_data)
{ {
ClientActiveObject* obj = ClientActiveObject* obj =
ClientActiveObject::create(type, m_gamedef, this); ClientActiveObject::create((ActiveObjectType) type, m_gamedef, this);
if(obj == NULL) if(obj == NULL)
{ {
infostream<<"ClientEnvironment::addActiveObject(): " infostream<<"ClientEnvironment::addActiveObject(): "

@ -38,15 +38,14 @@ ServerActiveObject::~ServerActiveObject()
{ {
} }
ServerActiveObject* ServerActiveObject::create(u8 type, ServerActiveObject* ServerActiveObject::create(ActiveObjectType type,
ServerEnvironment *env, u16 id, v3f pos, ServerEnvironment *env, u16 id, v3f pos,
const std::string &data) const std::string &data)
{ {
// Find factory function // Find factory function
std::map<u16, Factory>::iterator n; std::map<u16, Factory>::iterator n;
n = m_types.find(type); n = m_types.find(type);
if(n == m_types.end()) if(n == m_types.end()) {
{
// If factory is not found, just return. // If factory is not found, just return.
dstream<<"WARNING: ServerActiveObject: No factory for type=" dstream<<"WARNING: ServerActiveObject: No factory for type="
<<type<<std::endl; <<type<<std::endl;

@ -71,7 +71,7 @@ public:
{ return true; } { return true; }
// Create a certain type of ServerActiveObject // Create a certain type of ServerActiveObject
static ServerActiveObject* create(u8 type, static ServerActiveObject* create(ActiveObjectType type,
ServerEnvironment *env, u16 id, v3f pos, ServerEnvironment *env, u16 id, v3f pos,
const std::string &data); const std::string &data);