]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/serverenvironment.cpp
Merge pull request #35 from arydevy/patch-1
[dragonfireclient.git] / src / serverenvironment.cpp
index 56dbb063241d4c96082b529bbafd9c56d8ae3435..cd5ac0753f96fd5f28aba4f84b6ff598f68bcb53 100644 (file)
@@ -632,7 +632,7 @@ void ServerEnvironment::saveMeta()
        // Open file and serialize
        std::ostringstream ss(std::ios_base::binary);
 
-       Settings args;
+       Settings args("EnvArgsEnd");
        args.setU64("game_time", m_game_time);
        args.setU64("time_of_day", getTimeOfDay());
        args.setU64("last_clear_objects_time", m_last_clear_objects_time);
@@ -641,7 +641,6 @@ void ServerEnvironment::saveMeta()
                m_lbm_mgr.createIntroductionTimesString());
        args.setU64("day_count", m_day_count);
        args.writeLines(ss);
-       ss<<"EnvArgsEnd\n";
 
        if(!fs::safeWriteToFile(path, ss.str()))
        {
@@ -676,9 +675,9 @@ void ServerEnvironment::loadMeta()
                throw SerializationError("Couldn't load env meta");
        }
 
-       Settings args;
+       Settings args("EnvArgsEnd");
 
-       if (!args.parseConfigLines(is, "EnvArgsEnd")) {
+       if (!args.parseConfigLines(is)) {
                throw SerializationError("ServerEnvironment::loadMeta(): "
                        "EnvArgsEnd not found!");
        }
@@ -1171,7 +1170,7 @@ void ServerEnvironment::clearObjects(ClearObjectsMode mode)
                // Tell the object about removal
                obj->removingFromEnvironment();
                // Deregister in scripting api
-               m_script->removeObjectReference(obj);
+               m_script->removeObjectReference(dynamic_cast<ActiveObject *>(obj));
 
                // Delete active object
                if (obj->environmentDeletes())
@@ -1737,7 +1736,7 @@ u16 ServerEnvironment::addActiveObjectRaw(ServerActiveObject *object,
        }
 
        // Register reference in scripting api (must be done before post-init)
-       m_script->addObjectReference(object);
+       m_script->addObjectReference(dynamic_cast<ActiveObject *>(object));
        // Post-initialize object
        object->addedToEnvironment(dtime_s);
 
@@ -1827,7 +1826,7 @@ void ServerEnvironment::removeRemovedObjects()
                // Tell the object about removal
                obj->removingFromEnvironment();
                // Deregister in scripting api
-               m_script->removeObjectReference(obj);
+               m_script->removeObjectReference(dynamic_cast<ActiveObject *>(obj));
 
                // Delete
                if (obj->environmentDeletes())
@@ -2092,7 +2091,7 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete)
                // Tell the object about removal
                obj->removingFromEnvironment();
                // Deregister in scripting api
-               m_script->removeObjectReference(obj);
+               m_script->removeObjectReference(dynamic_cast<ActiveObject *>(obj));
 
                // Delete active object
                if (obj->environmentDeletes())