code cleanup: function naming, use BKE_*type* prefix.
[blender.git] / source / gameengine / Converter / BL_ShapeDeformer.cpp
index fb0a86d60846b40779f04987a7c5df0cd3c36b38..b93d731c5e6bfcdac49011a5a9ffa80b62886df6 100644 (file)
@@ -50,6 +50,8 @@
 #include "DNA_meshdata_types.h"
 #include "BKE_armature.h"
 #include "BKE_action.h"
+#include "BKE_global.h"
+#include "BKE_main.h"
 #include "BKE_key.h"
 #include "BKE_ipo.h"
 #include "MT_Point3.h"
@@ -75,7 +77,7 @@ BL_ShapeDeformer::BL_ShapeDeformer(BL_DeformableGameObject *gameobj,
       m_lastShapeUpdate(-1)
 {
        m_key = m_bmesh->key;
-       m_bmesh->key = copy_key(m_key);
+       m_bmesh->key = BKE_key_copy(m_key);
 };
 
 /* this second constructor is needed for making a mesh deformable on the fly. */
@@ -92,15 +94,18 @@ BL_ShapeDeformer::BL_ShapeDeformer(BL_DeformableGameObject *gameobj,
                                        m_lastShapeUpdate(-1)
 {
        m_key = m_bmesh->key;
-       m_bmesh->key = copy_key(m_key);
+       m_bmesh->key = BKE_key_copy(m_key);
 };
 
 BL_ShapeDeformer::~BL_ShapeDeformer()
 {
-       if (m_key && m_bmesh->key)
+       if (m_key && m_bmesh->key && m_key != m_bmesh->key)
        {
-               free_key(m_bmesh->key);
+               BKE_key_free(m_bmesh->key);
+               BLI_remlink_safe(&G.main->key, m_bmesh->key);
+               MEM_freeN(m_bmesh->key);
                m_bmesh->key = m_key;
+               m_key = NULL;
        }
 };