Index: branches/bsp_model/src/lib/graphics/importer/md3/md3_model.cc
===================================================================
--- branches/bsp_model/src/lib/graphics/importer/md3/md3_model.cc	(revision 8574)
+++ branches/bsp_model/src/lib/graphics/importer/md3/md3_model.cc	(revision 8576)
@@ -90,7 +90,11 @@
       {
         //interpolate bone frame
-        this->interpolateBoneFrame(data->boneFrames[data->animationState.currentFrame],
-                                   data->boneFrames[data->animationState.nextFrame],
-                                   data->animationState.interpolationFraction);
+        this->tmpBoneFrame = this->interpolateBoneFrame(data->boneFrames[data->animationState.currentFrame],
+                                                        data->boneFrames[data->animationState.nextFrame],
+                                                        data->animationState.interpolationFraction);
+      }
+      else
+      {
+        this->tmpBoneFrame = data->boneFrames[data->animationState.currentFrame];
       }
     }
@@ -100,35 +104,35 @@
     {
       MD3Mesh* mesh = data->meshes[i];
-
 
       // get mesh frame, do interpolation if necessary
       sVec3D* frame;
       if( data->animationState.interpolationFraction != 0.0 &&
-          data->animationState.currentFrame != data->animationState.nextFrame) {
+          data->animationState.currentFrame != data->animationState.nextFrame)
+      {
         //interpolate mesh frame between the 2 current mesh frames
         frame = this->interpolateMeshFrame( data->meshes[data->animationState.currentFrame]->meshFrames,
                                             data->meshes[data->animationState.nextFrame]->meshFrames,
                                             data->animationState.interpolationFraction, mesh, i);
-          }
-          else {
-            //no interpolation needed, just draw current frame
-            frame = &mesh->meshFrames[data->animationState.currentFrame];
-          }
-
-          this->drawMesh(mesh, frame);
-
-          // draw vertex normals if needed
-          if( this->bDrawNormals)
-          {
-            // get vertex normals, interpolate if necessary
-            if( data->animationState.interpolationFraction != 0.0 &&
-                data->animationState.currentFrame != data->animationState.nextFrame)
-            {
-              //interpolate vertex normals
-              this->interpolateVertexNormals(&mesh->normals[data->animationState.currentFrame],
-                                              &mesh->normals[data->animationState.nextFrame],
-                                              data->animationState.interpolationFraction, mesh, i);
-             }
-          }
+      }
+      else
+      {
+        //no interpolation needed, just draw current frame
+        frame = &mesh->meshFrames[data->animationState.currentFrame];
+      }
+      this->tmpMesh = &frame;
+
+      // draw vertex normals if needed
+      if( this->bDrawNormals)
+      {
+        // get vertex normals, interpolate if necessary
+        if( data->animationState.interpolationFraction != 0.0 &&
+            data->animationState.currentFrame != data->animationState.nextFrame)
+        {
+          //interpolate vertex normals
+          this->interpolateVertexNormals(&mesh->normals[data->animationState.currentFrame],
+                                         &mesh->normals[data->animationState.nextFrame],
+                                         data->animationState.interpolationFraction, mesh, i);
+        }
+      }
     }
 
@@ -333,19 +337,19 @@
       //no normalization necessary, GL_NORMALIZE is enabled!
 
-      PRINTF(0)("drawing vertex: %f, %f, %f, normal: %f, %f\n",
-      frame[mesh->triangles[t].vertexOffset[0]][0],
-      frame[mesh->triangles[t].vertexOffset[0]][1],
-      frame[mesh->triangles[t].vertexOffset[0]][2],
-               normal.x, normal.y, normal.z);
-      PRINTF(0)("drawing vertex: %f, %f, %f, normal: %f, %f\n",
-      frame[mesh->triangles[t].vertexOffset[1]][0],
-      frame[mesh->triangles[t].vertexOffset[1]][1],
-      frame[mesh->triangles[t].vertexOffset[1]][2],
-      normal.x, normal.y, normal.z);
-      PRINTF(0)("drawing vertex: %f, %f, %f, normal: %f, %f\n",
-      frame[mesh->triangles[t].vertexOffset[2]][0],
-      frame[mesh->triangles[t].vertexOffset[2]][1],
-      frame[mesh->triangles[t].vertexOffset[2]][2],
-      normal.x, normal.y, normal.z);
+//       PRINTF(0)("drawing vertex: %f, %f, %f, normal: %f, %f\n",
+//       frame[mesh->triangles[t].vertexOffset[0]][0],
+//       frame[mesh->triangles[t].vertexOffset[0]][1],
+//       frame[mesh->triangles[t].vertexOffset[0]][2],
+//                normal.x, normal.y, normal.z);
+//       PRINTF(0)("drawing vertex: %f, %f, %f, normal: %f, %f\n",
+//       frame[mesh->triangles[t].vertexOffset[1]][0],
+//       frame[mesh->triangles[t].vertexOffset[1]][1],
+//       frame[mesh->triangles[t].vertexOffset[1]][2],
+//       normal.x, normal.y, normal.z);
+//       PRINTF(0)("drawing vertex: %f, %f, %f, normal: %f, %f\n",
+//       frame[mesh->triangles[t].vertexOffset[2]][0],
+//       frame[mesh->triangles[t].vertexOffset[2]][1],
+//       frame[mesh->triangles[t].vertexOffset[2]][2],
+//       normal.x, normal.y, normal.z);
 
 
@@ -465,4 +469,7 @@
     for( int t = 0; t < vertexNum * 3.0f; t++)
     {
+
+//       PRINTF(0)("tmp mesh: %f, %f, %f\n", this->tmpMesh[i][t][0], this->tmpMesh[i][t][1], this->tmpMesh[i][t][2]);
+
       this->tmpMesh[i][t][0]  = (1.0f - frac)   * currMeshFrame[t][0]  + frac * nextMeshFrame[t][0];
       this->tmpMesh[i][t][1]  = (1.0f - frac)   * currMeshFrame[t][1]  + frac * nextMeshFrame[t][1];
