Index: /trunk/src/util/kill_target.cc
===================================================================
--- /trunk/src/util/kill_target.cc	(revision 7463)
+++ /trunk/src/util/kill_target.cc	(revision 7464)
@@ -60,5 +60,5 @@
 
 
-MissionState KillTarget::checkMissionGoal()
+MissionState KillTarget::checkMissionGoal(float dt)
 {}
 
Index: /trunk/src/util/kill_target.h
===================================================================
--- /trunk/src/util/kill_target.h	(revision 7463)
+++ /trunk/src/util/kill_target.h	(revision 7464)
@@ -30,5 +30,5 @@
 
 
-    virtual MissionState checkMissionGoal();
+    virtual MissionState checkMissionGoal(float dt);
 
 
Index: /trunk/src/util/mission_goal.cc
===================================================================
--- /trunk/src/util/mission_goal.cc	(revision 7463)
+++ /trunk/src/util/mission_goal.cc	(revision 7464)
@@ -17,5 +17,7 @@
 
 #include "mission_goal.h"
+#include "game_rules.h"
 
+#include "state.h"
 #include "util/loading/load_param.h"
 
@@ -30,4 +32,10 @@
 {
    this->setClassID(CL_MISSION_GOAL, "MissionGoal");
+
+   this->missionState = MS_PASSIVE;
+   // add the mission to the current game rule
+   GameRules* gr = State::getGameRules();
+   if( gr)
+     gr->addMissionGoal(this);
 
    if( root != NULL)
Index: /trunk/src/util/mission_goal.h
===================================================================
--- /trunk/src/util/mission_goal.h	(revision 7463)
+++ /trunk/src/util/mission_goal.h	(revision 7464)
@@ -16,6 +16,7 @@
 {
   MS_ACCOMPLISHED = 0,
-  MS_RUNNING,
+  MS_ACCEPTED,
   MS_FAILED,
+  MS_PASSIVE,
 
   MS_NUMBER
@@ -47,5 +48,5 @@
   inline MissionState getMissionState() { return this->missionState; }
 
-  virtual MissionState checkMissionGoal() = 0;
+  virtual MissionState checkMissionGoal(float dt) = 0;
 
 
Index: /trunk/src/util/singleplayer_shootemup.cc
===================================================================
--- /trunk/src/util/singleplayer_shootemup.cc	(revision 7463)
+++ /trunk/src/util/singleplayer_shootemup.cc	(revision 7464)
@@ -20,17 +20,5 @@
 #include "util/loading/factory.h"
 
-#include "render2D/billboard.h"
-#include "state.h"
-#include "class_list.h"
-
-#include "player.h"
-#include "playable.h"
-#include "space_ships/space_ship.h"
-
-
-#include "shared_network_data.h"
-#include "terrain.h"
-#include "class_list.h"
-#include "space_ships/space_ship.h"
+#include "mission_goal.h"
 
 
@@ -67,12 +55,6 @@
   GameRules::loadParams(root) ;
 
-//   LoadParam(root, "death-penalty-timeout", this, SingleplayerShootemup, setDeathPenaltyTimeout)
-//       .describe("sets the time in seconds a player has to wait for respawn");
-//
-//   LoadParam(root, "max-kills", this, SingleplayerShootemup, setMaxKills)
-//       .describe("sets the maximal kills for winning condition");
-//
-//   LoadParam(root, "death-screen-image", this, SingleplayerShootemup, setDeathScreen)
-//       .describe("sets the death screen image");
+   LoadParam(root, "death-screen-image", this, SingleplayerShootemup, setDeathScreen)
+       .describe("sets the death screen image");
 
 }
@@ -109,5 +91,5 @@
 void SingleplayerShootemup::tick(float dt)
 {
-  this->checkGameRules();
+  this->checkGameRules(dt);
 }
 
@@ -123,6 +105,15 @@
  * check the game rules for consistency
  */
-void SingleplayerShootemup::checkGameRules()
-{}
+void SingleplayerShootemup::checkGameRules(float dt)
+{
+  PRINTF(0)("===========| Printing Mission State:\n");
+  for (std::vector<MissionGoal*>::iterator it = this->missionList.begin(); it != this->missionList.end(); it++)
+  {
+    if( (*it)->checkMissionGoal(dt) != MS_ACCOMPLISHED)
+    {
+      PRINTF(0)("  Mission \"%s\" is not finished yet\n", (*it)->getMissionName().c_str());
+    }
+  }
+}
 
 
Index: /trunk/src/util/singleplayer_shootemup.h
===================================================================
--- /trunk/src/util/singleplayer_shootemup.h	(revision 7463)
+++ /trunk/src/util/singleplayer_shootemup.h	(revision 7464)
@@ -35,5 +35,5 @@
 
   protected:
-    virtual void checkGameRules();
+    virtual void checkGameRules(float dt);
 
 
