Index: /code/branches/minigame4DHS14/data/levels/4Dtest.oxw
===================================================================
--- /code/branches/minigame4DHS14/data/levels/4Dtest.oxw	(revision 10155)
+++ /code/branches/minigame4DHS14/data/levels/4Dtest.oxw	(revision 10156)
@@ -13,40 +13,5 @@
 
 <!-- Templates here -->
-<Template name=mini4Dgameboard>
-  <Mini4DgameBoard>
-    <attached>
-      <?lua
-        	for i = -90, 90, 60
-        	do
-        	?>
-        		<?lua
-        		for j = -90, 90, 60
-        		do
-        		?>
-        			<?lua
-        			for k = -90, 90, 60
-        			do
-        			?>
-        				<Model
-        				position="<?lua print(i) ?>,<?lua print(j) ?>,<?lua print(k) ?>"
-        				mesh="checkPoint.mesh"
-        				scale="5" />
-        			<?lua
-    		  		end
-    				?>
-    			<?lua
-    		  	end
-    			?>
-        	<?lua
-    		end
-    		?>
-    </attached>
-  </Mini4DgameBoard>
-</Template>
 
-<!--
-	<BlinkingBillboard position="0,0,0" frequency=0.6 amplitude=0.4 material="Flares/lensflare" colour="0,1,0">
-	</BlinkingBillboard>
- -->
 
 <Level
@@ -75,8 +40,41 @@
     <SpawnPoint position="-330,330,165" lookat="0,0,0" />
 
-	<Mini4DgameCenterpoint name=mini4Dgamecenter boardtemplate=mini4Dgameboard width=16 height=16 length=16 position="0,0,0">
+	<Mini4DgameBoard>
+    	<attached>
+      	<?lua
+        	for i = -90, 90, 60
+        	do
+        	?>
+        		<?lua
+        		for j = -90, 90, 60
+        		do
+        		?>
+        			<?lua
+        			for k = -90, 90, 60
+        			do
+        			?>
+        				<Model
+        				position="<?lua print(i) ?>,<?lua print(j) ?>,<?lua print(k) ?>"
+        				mesh="checkPoint.mesh"
+        				scale="5" />
+        			<?lua
+    		  		end
+    				?>
+    			<?lua
+    		  	end
+    			?>
+        	<?lua
+    		end
+    		?>
+    	</attached>
+    	
+  	</Mini4DgameBoard>
 
-    </Mini4DgameCenterpoint>
-
+<!--
+<attached>
+    <BlinkingBillboard position="0,0,0" frequency=0.6 amplitude=0.4 material="Flares/lensflare" colour="0,1,0" visabilaty=gone>
+	</BlinkingBillboard>
+</attached>
+-->
 
   </Scene>
Index: /code/branches/minigame4DHS14/src/modules/mini4Dgame/CMakeLists.txt
===================================================================
--- /code/branches/minigame4DHS14/src/modules/mini4Dgame/CMakeLists.txt	(revision 10155)
+++ /code/branches/minigame4DHS14/src/modules/mini4Dgame/CMakeLists.txt	(revision 10156)
@@ -3,5 +3,4 @@
   #Mini4DgameAI.cc
   Mini4DgameBoard.cc
-  Mini4DgameCenterpoint.cc
 )
 
Index: /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4Dgame.cc
===================================================================
--- /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4Dgame.cc	(revision 10155)
+++ /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4Dgame.cc	(revision 10156)
@@ -50,6 +50,4 @@
 #include "chat/ChatManager.h"
 
-#include "Mini4DgameCenterpoint.h"
-
 namespace orxonox
 {
@@ -67,6 +65,6 @@
         RegisterObject(Mini4Dgame);
 
-        this->center_ = 0;
         this->board_ = 0;
+        //ConsoleCommand("Mini4Dgame", "setStone", &Mini4Dgame::setStone).addShortcut().setAsInputCommand();
 
         // Set the type of Bots for this particular Gametype.
@@ -99,15 +97,17 @@
     void Mini4Dgame::start()
     {
-        if (this->center_ != NULL) // There needs to be a Mini4DgameCenterpoint, i.e. the area the game takes place.
+        if (this->board_ != NULL) // There needs to be a Mini4DgameCenterpoint, i.e. the area the game takes place.
         {
+        	/*
         	if (this->board_ == NULL)
         	{
-        		this->board_ = new Mini4DgameBoard(this->center_->getContext());
+        		this->board_ = new Mini4DgameBoard(this->board_->getContext());
         		// Apply the template for the ball specified by the centerpoint.
         		this->board_->addTemplate(this->center_->getBoardtemplate());
         	}
+        	*/
 
         	// Attach the board to the centerpoint and set the parameters as specified in the centerpoint, the ball is attached to.
-        	this->center_->attach(this->board_);
+
         	this->board_->setPosition(0, 0, 0);
 
@@ -177,7 +177,10 @@
     }
 
-    static void Mini4Dgame::setStone(Vector4 move, const int playerColor, Mini4DgameBoard* board)
+    //void Mini4Dgame::setStone(Vector4 move, const int playerColor, Mini4DgameBoard* board)
+    void Mini4Dgame::setStone(int x,int y,int z,int w)//Vector4 move, const int playerColor)
     {
-    	board->makeMove(move,playerColor);
+    	Vector4 move = Vector4(x,y,z,w);
+        ObjectList<Mini4DgameBoard>::iterator it = ObjectList<Mini4DgameBoard>::begin();
+    	it->makeMove(move,1);//playerColor);
     }
 
Index: /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4Dgame.h
===================================================================
--- /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4Dgame.h	(revision 10155)
+++ /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4Dgame.h	(revision 10156)
@@ -37,5 +37,4 @@
 #include "gametypes/Deathmatch.h"
 #include "mini4Dgame/Mini4DgamePrereqs.h"
-#include "Mini4DgameCenterpoint.h"
 #include "Mini4DgameBoard.h"
 
@@ -71,8 +70,12 @@
             virtual void spawnPlayer(PlayerInfo* player); //!< Spawns the input player.
 
-            void setCenterpoint(Mini4DgameCenterpoint* center)
-            	{ this->center_ = center; }
+            void setGameboard(Mini4DgameBoard* board)
+            	{ this->board_ = board; }
 
-            static void setStone(Vector4 move, const int playerColor, Mini4DgameBoard* board);
+            Mini4DgameBoard* getBoard(void)
+            	{ return this->board_; }
+
+            //static void setStone(Vector4 move, const int playerColor, Mini4DgameBoard* board);
+            static void setStone(int x,int y, int z, int w);//Vector4 move, const int playerColor);
 
             void win(Mini4DgameWinner winner);
@@ -86,7 +89,5 @@
 
             //Player players[2];
-
-            WeakPtr<Mini4DgameCenterpoint> center_; //!< The centerpoint to which the objects are attached
-            WeakPtr<Mini4DgameBoard> board_;
+            Mini4DgameBoard* board_;
     };
 }
Index: /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4DgameBoard.cc
===================================================================
--- /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4DgameBoard.cc	(revision 10155)
+++ /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4DgameBoard.cc	(revision 10156)
@@ -38,4 +38,5 @@
 
 #include "gametypes/Gametype.h"
+#include "graphics/BlinkingBillboard.h"
 
 #include "core/XMLPort.h"
@@ -57,5 +58,5 @@
         //this->registerVariables();
 
-        //initialize sound
+        //initialize board
         for(int i=0;i<4;i++){
         	for(int j=0;j<4;j++){
@@ -67,4 +68,6 @@
         	}
         }
+
+        this->checkGametype();
     }
 
@@ -123,9 +126,21 @@
     	{
     		this->board[(int)move.x][(int)move.y][(int)move.z][(int)move.w] = (mini4DgamePlayerColor::color) playerColor;
-    		//BlinkingBillboard* bb = new BlinkingBillboard(this->getContext());
-    		//bb->setPosition(0,0,0);
+			BlinkingBillboard* bb = new BlinkingBillboard(this->getContext());
+			orxout(user_status) << "Mini4Dgame: move.x " << move.x << endl;
+
+			bb->setPosition(60*(int)move.x-90,60*(int)move.y-90,60*(int)move.z-90);
+			bb->setFrequency(0.6);
+			bb->setAmplitude(0.1);
+			//bb->setMaterial("Flares/lensflare");
+			bb->setMaterial("Numbers/One");
+			bb->setColour(ColourValue(0,1,0));
+
+			this->attach(bb);
+
+
     		Mini4DgameWinner winner = this->getWinner();
     		if(winner.color_ != mini4DgamePlayerColor::none)
     		{
+    			orxout(user_status) << "Mini4Dgame: win!!!!!!!" << endl;
     			//win(winner);
     		}
@@ -837,3 +852,28 @@
     	return winner;
     }
+
+    /**
+    @brief
+        Is called when the gametype has changed.
+    */
+    void Mini4DgameBoard::changedGametype()
+    {
+        SUPER(Mini4DgameBoard, changedGametype);
+
+        // Check, whether it's still Mini4Dgame.
+        this->checkGametype();
+    }
+
+    /**
+    @brief
+        Checks whether the gametype is Mini4Dgame and if it is, sets its centerpoint.
+    */
+    void Mini4DgameBoard::checkGametype()
+    {
+        if (this->getGametype() != NULL && this->getGametype()->isA(Class(Mini4Dgame)))
+        {
+            Mini4Dgame* Mini4DgameGametype = orxonox_cast<Mini4Dgame*>(this->getGametype().get());
+            Mini4DgameGametype->setGameboard(this);
+        }
+    }
 }
Index: /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4DgameBoard.h
===================================================================
--- /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4DgameBoard.h	(revision 10155)
+++ /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4DgameBoard.h	(revision 10156)
@@ -40,6 +40,4 @@
 #include "worldentities/StaticEntity.h"
 
-#include "Mini4DgameCenterpoint.h"
-
 namespace orxonox
 {
@@ -73,4 +71,7 @@
             Mini4DgameWinner getWinner();
 
+            void changedGametype();
+            void checkGametype();
+
         private:
             //void registerVariables();
Index: /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4DgamePrereqs.h
===================================================================
--- /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4DgamePrereqs.h	(revision 10155)
+++ /code/branches/minigame4DHS14/src/modules/mini4Dgame/Mini4DgamePrereqs.h	(revision 10156)
@@ -70,5 +70,4 @@
     class Mini4Dgame;
     class Mini4DgameBoard;
-    class Mini4DgameCenterpoint;
 }
 
