Index: /branches/single_player_map/src/lib/collision_reaction/cr_object_damage.cc
===================================================================
--- /branches/single_player_map/src/lib/collision_reaction/cr_object_damage.cc	(revision 9030)
+++ /branches/single_player_map/src/lib/collision_reaction/cr_object_damage.cc	(revision 9031)
@@ -56,7 +56,7 @@
   float damage = 0.0f;
 
-  PRINTF(0)("Dealing damage - Handling collision: %s vs %s\n",
-            collision->getEntityA()->getClassName(),
-            collision->getEntityB()->getClassName());
+ // PRINTF(0)("Dealing damage - Handling collision: %s vs %s\n",
+        //    collision->getEntityA()->getClassName(),
+        //    collision->getEntityB()->getClassName());
 
   // the collision damage been dealed by the entity
@@ -65,5 +65,5 @@
     collision->getEntityA()->hit(damage, collision->getEntityB());
   }
-  PRINTF(4)("Dealing damage - %f damage to %s \n", damage, collision->getEntityA()->getClassName());
+ // PRINTF(4)("Dealing damage - %f damage to %s \n", damage, collision->getEntityA()->getClassName());
 
   if( collision->isEntityBCollide()) {
@@ -71,5 +71,5 @@
     collision->getEntityB()->hit(damage, collision->getEntityA());
   }
-  PRINTF(4)("Dealing damage - %f damage to %s \n", damage, collision->getEntityB()->getClassName());
+ // PRINTF(4)("Dealing damage - %f damage to %s \n", damage, collision->getEntityB()->getClassName());
 
   collision->flushCollisionEvents();
Index: /branches/single_player_map/src/lib/script_engine/script.cc
===================================================================
--- /branches/single_player_map/src/lib/script_engine/script.cc	(revision 9030)
+++ /branches/single_player_map/src/lib/script_engine/script.cc	(revision 9031)
@@ -26,5 +26,5 @@
 CREATE_SCRIPTABLE_CLASS(Script, CL_SCRIPT,
                     addMethod("addObject", ExecutorLua2<Script,const std::string&, const std::string& >(&Script::addObject))
-                    //->addMethod("selectFunction", ExecutorLua2ret<Script, bool, const std::string&, int >(&Script::selectFunction))
+                   // ->addMethod("selectFunction", ExecutorLua2ret<Script, bool, const std::string&, int >(&Script::selectFunction))
                     ->addMethod("executeFunction", ExecutorLua0ret<Script,bool >(&Script::executeFunction))
                      );
@@ -82,4 +82,7 @@
    filedest += "scripts/" + filename;
    
+   this->addThisScript();
+   this->registerStandartClasses();
+   
    if(currentFile.length() != 0)
    {
@@ -98,6 +101,4 @@
      {
       currentFile = filename;
-      this->addThisScript();
-      this->registerStandartClasses();
       return true;
      }
@@ -121,5 +122,5 @@
  void Script::addObject(const std::string& className, const std::string& objectName)
  {
-  // printf("Script %p: I am about to add %s of class %s\n",this,objectName.c_str(),className.c_str());
+   //printf("Script %s: I am about to add %s of class %s\n",this->getName(),objectName.c_str(),className.c_str());
 
    BaseObject* scriptClass = ClassList::getObject(className, CL_SCRIPT_CLASS);
@@ -359,6 +360,5 @@
    //success = this->registerClass(std::string("Vector"));
     success = this->registerClass("ScriptTrigger");
-    success = this->registerClass("Script");
-   
+
    return success;
  }
Index: /branches/single_player_map/src/world_entities/npcs/generic_npc.cc
===================================================================
--- /branches/single_player_map/src/world_entities/npcs/generic_npc.cc	(revision 9030)
+++ /branches/single_player_map/src/world_entities/npcs/generic_npc.cc	(revision 9031)
@@ -40,4 +40,7 @@
                         ->addMethod("turnTo", ExecutorLua1<GenericNPC,float>(&GenericNPC::turnTo))
                         ->addMethod("finalGoalReached", ExecutorLua0ret<GenericNPC,bool>(&GenericNPC::finalGoalReached))
+                        // Animation and sound
+                        ->addMethod("playAnimation", ExecutorLua2<GenericNPC,int,int>(&GenericNPC::playAnimation))
+                        //->addMethod("playSound", ExecutorLua1<GenericNPC,const std::string&>(&GenericNPC::playSound))
                         // Display
                         ->addMethod("hide", ExecutorLua0<WorldEntity>(&WorldEntity::hide))
Index: /branches/single_player_map/src/world_entities/playable.h
===================================================================
--- /branches/single_player_map/src/world_entities/playable.h	(revision 9030)
+++ /branches/single_player_map/src/world_entities/playable.h	(revision 9031)
@@ -56,4 +56,5 @@
 
   // Player Settup
+  bool hasPlayer(){return !(this->currentPlayer == NULL);}
   bool setPlayer(Player* player);
   Player* getCurrentPlayer() const { return this->currentPlayer; };
Index: /branches/single_player_map/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /branches/single_player_map/src/world_entities/space_ships/space_ship.cc	(revision 9030)
+++ /branches/single_player_map/src/world_entities/space_ships/space_ship.cc	(revision 9031)
@@ -55,5 +55,8 @@
 
 CREATE_FACTORY(SpaceShip, CL_SPACE_SHIP);
-
+#include "script_class.h"
+CREATE_SCRIPTABLE_CLASS(SpaceShip, CL_SPACE_SHIP,
+                        addMethod("hasPlayer", ExecutorLua0ret<Playable,bool>(&Playable::hasPlayer))
+                       );
 
 /**
