Index: /orxonox/trunk/src/util/animation/animation.h
===================================================================
--- /orxonox/trunk/src/util/animation/animation.h	(revision 5061)
+++ /orxonox/trunk/src/util/animation/animation.h	(revision 5062)
@@ -33,13 +33,13 @@
 typedef enum ANIM_FUNCTION
 {
-  ANIM_CONSTANT,
-  ANIM_LINEAR,
-  ANIM_SINE,
-  ANIM_COSINE,
-  ANIM_EXP,
-  ANIM_NEG_EXP,
-  ANIM_QUADRATIC,
-  ANIM_RANDOM,
-  ANIM_NULL
+  ANIM_NULL         = 0,
+  ANIM_CONSTANT     = 1,
+  ANIM_LINEAR       = 2,
+  ANIM_SINE         = 3,
+  ANIM_COSINE       = 4,
+  ANIM_EXP          = 5,
+  ANIM_NEG_EXP      = 6,
+  ANIM_QUADRATIC    = 7,
+  ANIM_RANDOM       = 8,
 };
 
Index: /orxonox/trunk/src/util/animation/animation3d.cc
===================================================================
--- /orxonox/trunk/src/util/animation/animation3d.cc	(revision 5061)
+++ /orxonox/trunk/src/util/animation/animation3d.cc	(revision 5062)
@@ -44,6 +44,6 @@
   this->nextKeyFrame = tmpKeyFrame;
 
-  this->animFuncMov = &Animation3D::mLinear;
-  this->animFuncRot = &Animation3D::rLinear;
+  this->animFuncMov = NULL;//&Animation3D::mLinear;
+  this->animFuncRot = NULL;//&Animation3D::rLinear;
 
 }
@@ -95,8 +95,8 @@
     duration = 1.0;
   // if the Rotation-Animation-function is set ANIM_NULL, animFuncRot will match animFuncRot
-  if (animFuncMov == ANIM_NULL)
-    animFuncMov = ANIM_DEFAULT_FUNCTION;
-  if (animFuncRot == ANIM_NULL)
-    animFuncRot = animFuncMov;
+//  if (animFuncMov == ANIM_NULL)
+//    animFuncMov = ANIM_DEFAULT_FUNCTION;
+//  if (animFuncRot == ANIM_NULL)
+//    animFuncRot = animFuncMov;
 
   KeyFrame3D* tmpKeyFrame;
@@ -126,6 +126,4 @@
   this->keyFrameCount++;
 }
-
-
 
 /**
@@ -158,6 +156,8 @@
         }
       /* now animate it */
-      (this->*animFuncMov)(this->localTime);
-      (this->*animFuncRot)(this->localTime);
+      if (likely(this->animFuncMov != NULL))
+        (this->*animFuncMov)(this->localTime);
+      if (likely(this->animFuncRot != NULL))
+        (this->*animFuncRot)(this->localTime);
     }
 }
@@ -211,4 +211,5 @@
       break;
     default:
+      this->animFuncMov = NULL;
       break;
     }
@@ -353,5 +354,4 @@
   switch (animFuncRot)
     {
-    default:
     case ANIM_CONSTANT:
       this->animFuncRot = &Animation3D::rConstant;
@@ -380,4 +380,6 @@
       break;
 
+    default:
+      this->animFuncRot = NULL;
     }
 }
@@ -448,5 +450,5 @@
 void Animation3D::rExp(float timePassed) const
 {
-  PRINTF(0)("exp rotation function not implemented\n");
+  PRINTF(2)("exp rotation function not implemented\n");
 }
 
Index: /orxonox/trunk/src/world_entities/weapons/test_gun.cc
===================================================================
--- /orxonox/trunk/src/world_entities/weapons/test_gun.cc	(revision 5061)
+++ /orxonox/trunk/src/world_entities/weapons/test_gun.cc	(revision 5062)
@@ -71,13 +71,13 @@
     this->setEmissionPoint(1.0, 0.0, -0.35);
 
-    animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.1, ANIM_LINEAR, ANIM_CONSTANT);
-    animation1->addKeyFrame(Vector(-0.4, 0, 0), Quaternion(), 0.1, ANIM_LINEAR, ANIM_CONSTANT);
-    animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.0, ANIM_LINEAR, ANIM_CONSTANT);
-
-    animation2->addKeyFrame(Vector(0.0, 0.0, -1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-    animation2->addKeyFrame(Vector(0.0, 0.0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-
-    animation3->addKeyFrame(Vector(0.0, 0.0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-    animation3->addKeyFrame(Vector(0.0, 0.0, -1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
+    animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
+    animation1->addKeyFrame(Vector(-0.4, 0, 0), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
+    animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.0, ANIM_LINEAR, ANIM_NULL);
+
+    animation2->addKeyFrame(Vector(0.0, 0.0, -1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
+    animation2->addKeyFrame(Vector(0.0, 0.0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
+
+    animation3->addKeyFrame(Vector(0.0, 0.0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
+    animation3->addKeyFrame(Vector(0.0, 0.0, -1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
   }
   else if( this->leftRight == W_RIGHT)
@@ -86,13 +86,13 @@
 
     this->objectComponent1->setRelCoor(Vector(0,0,0.35));
-    animation1->addKeyFrame(Vector(0, 0, .5), Quaternion(), 0.1, ANIM_LINEAR, ANIM_CONSTANT);
-    animation1->addKeyFrame(Vector(-0.4, 0, .5), Quaternion(), 0.1, ANIM_LINEAR, ANIM_CONSTANT);
-    animation1->addKeyFrame(Vector(0, 0, .5), Quaternion(), 0.0, ANIM_LINEAR, ANIM_CONSTANT);
-
-    animation2->addKeyFrame(Vector(.0, .0, 1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-    animation2->addKeyFrame(Vector(.0, .0, .0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-
-    animation3->addKeyFrame(Vector(.0, .0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-    animation3->addKeyFrame(Vector(.0, .0, 1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
+    animation1->addKeyFrame(Vector(0, 0, .5), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
+    animation1->addKeyFrame(Vector(-0.4, 0, .5), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
+    animation1->addKeyFrame(Vector(0, 0, .5), Quaternion(), 0.0, ANIM_LINEAR, ANIM_NULL);
+
+    animation2->addKeyFrame(Vector(.0, .0, 1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
+    animation2->addKeyFrame(Vector(.0, .0, .0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
+
+    animation3->addKeyFrame(Vector(.0, .0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
+    animation3->addKeyFrame(Vector(.0, .0, 1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
   }
 }
