]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/content_cao.cpp
Remove blank default values for emergequeue_limit_* settings
[dragonfireclient.git] / src / content_cao.cpp
index e97e3a1beae912712c507fde32cda4bc38089fb9..840103cc74644f7406ae98e569258b4c7bdad3e7 100644 (file)
@@ -957,10 +957,11 @@ class GenericCAO : public ClientActiveObject
                }
                else if(m_prop.visual == "mesh"){
                        infostream<<"GenericCAO::addToScene(): mesh"<<std::endl;
-                       scene::IAnimatedMesh *mesh = smgr->getMesh(m_prop.mesh.c_str());
+                       scene::IAnimatedMesh *mesh = m_gamedef->getMesh(m_prop.mesh);
                        if(mesh)
                        {
                                m_animated_meshnode = smgr->addAnimatedMeshSceneNode(mesh, NULL);
+                               mesh->drop(); // The scene node took hold of it
                                m_animated_meshnode->animateJoints(); // Needed for some animations
                                m_animated_meshnode->setScale(v3f(m_prop.visual_size.X,
                                                m_prop.visual_size.Y,
@@ -1649,6 +1650,8 @@ class GenericCAO : public ClientActiveObject
                        m_acceleration = readV3F1000(is);
                        if(fabs(m_prop.automatic_rotate) < 0.001)
                                m_yaw = readF1000(is);
+                       else
+                               readF1000(is);
                        bool do_interpolate = readU8(is);
                        bool is_end_position = readU8(is);
                        float update_interval = readF1000(is);
@@ -1693,12 +1696,18 @@ class GenericCAO : public ClientActiveObject
                        float override_speed = readF1000(is);
                        float override_jump = readF1000(is);
                        float override_gravity = readF1000(is);
+                       // these are sent inverted so we get true when the server sends nothing
+                       bool sneak = !readU8(is);
+                       bool sneak_glitch = !readU8(is);
+                       
                        if(m_is_local_player)
                        {
                                LocalPlayer *player = m_env->getLocalPlayer();
                                player->physics_override_speed = override_speed;
                                player->physics_override_jump = override_jump;
                                player->physics_override_gravity = override_gravity;
+                               player->physics_override_sneak = sneak;
+                               player->physics_override_sneak_glitch = sneak_glitch;
                        }
                }
                else if(cmd == GENERIC_CMD_SET_ANIMATION)