summaryrefslogtreecommitdiff
path: root/src/content_cao.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2014-01-06 13:24:06 +0200
committerPerttu Ahola <celeron55@gmail.com>2014-01-06 13:24:31 +0200
commitd76957ee22c27adab89cee551e3ab1c85d8717cc (patch)
tree4facd7100f9c527203681000a1ffb14351eecc81 /src/content_cao.cpp
parent86c616a545efcc8ed8487440d686a17358170756 (diff)
downloadminetest-d76957ee22c27adab89cee551e3ab1c85d8717cc.tar.gz
minetest-d76957ee22c27adab89cee551e3ab1c85d8717cc.tar.bz2
minetest-d76957ee22c27adab89cee551e3ab1c85d8717cc.zip
Create new instance of mesh every time it's required (Solves #703)
Diffstat (limited to 'src/content_cao.cpp')
-rw-r--r--src/content_cao.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/content_cao.cpp b/src/content_cao.cpp
index 640ab6c73..840103cc7 100644
--- a/src/content_cao.cpp
+++ b/src/content_cao.cpp
@@ -957,10 +957,11 @@ public:
}
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,