Index: GTP/trunk/App/Games/Jungle_Rumble/doc/readme.txt
===================================================================
--- GTP/trunk/App/Games/Jungle_Rumble/doc/readme.txt	(revision 1378)
+++ GTP/trunk/App/Games/Jungle_Rumble/doc/readme.txt	(revision 1382)
@@ -17,5 +17,5 @@
 5		Icethrower - Slow down your opponent to toast it with the firethrower
 
-F1		Display help
+F1		Display Help
 F2		FPS on/off
 F3		Enable PhysX Debugger (Note: you only can switch it on/off wenn you turn it on in the config.xml file)
@@ -24,2 +24,3 @@
 F10		Raytracer on/off
 F11		Enable/Disable fire of the opponents (Not for cheating! ;-)
+Pause		Pause Game
Index: GTP/trunk/App/Games/Jungle_Rumble/src/GameManager.cpp
===================================================================
--- GTP/trunk/App/Games/Jungle_Rumble/src/GameManager.cpp	(revision 1378)
+++ GTP/trunk/App/Games/Jungle_Rumble/src/GameManager.cpp	(revision 1382)
@@ -67,49 +67,62 @@
 	if( bKeyDown )
     {
-		switch( nChar )
-        {
-            case VK_ESCAPE:
-				break;
-			case VK_F1:
-				if(activeScene == &this->gs) {
-					this->gs.getHUD()->message("HELP:\n drive: w-a-s-d\n shoot: left mouse\n F2: show FPS\n F3: PhysX Debugger\n F4: Music On/Off\n F9: Depth Imposters On/Off\n F10: Raytracer On/Off\n F11 Opponent Fire On/Off\n 1 Standard weapon\n 2 Bombs - explode late, but do cause lots of damage!\n 3 Alien weapon - just shoot!\n 4 Firethrower - Toast your opponent\n 5 Icethrower - Slow down your opponent", 2, 0.01f, true);
-				}
-				//this->gs.hasWon();
-				break;
-			case VK_F2:
-				this->gs.showFPS = !this->gs.showFPS;
-				break;
-			case VK_F3:
-				if(!this->activeScene->usePhysXDebugger)
-					this->activeScene->usePhysXDebugger = true;
-				else
-					this->activeScene->usePhysXDebugger = false;
-				break;
-			case VK_F4:
-				this->gs.setBackgroundSoundMute(!this->gs.getBackgroundSoundMute());
-				this->ms.setBackgroundSoundMute(!this->ms.getBackgroundSoundMute());
-				break;
-			case VK_F5:
-				//this->gs.getHUD()->displayToasted(3, 0.01f);
-				break;
-			case VK_F6:
-				//this->gs.getHUD()->message("hallo martin", 3, 0.01f);
-				break;
-			case VK_F7:
-				//this->gs.getHUD()->displayLose(3, 0.01f);
-				break;
-			case VK_F8:
-				this->gs.drawBBoxes = !this->gs.drawBBoxes;
-				break;
-			case VK_F9:
-				this->gs.useDepthImposter = !this->gs.useDepthImposter;
-				break;
-			case VK_F10:
-				this->gs.useRaytracer = !this->gs.useRaytracer;
-				break;
-			case VK_F11:
-				this->gs.aiPlayerFireEnable = !this->gs.aiPlayerFireEnable;
-				break;
-		}
+		//if(nChar == VK_PAUSE || nChar == VK_F9 || nChar == VK_F10 || !this->gs.preparepaused) {
+			switch( nChar )
+			{
+				case VK_ESCAPE:
+					break;
+				case VK_F1:
+					if(activeScene == &this->gs) {
+						this->gs.getHUD()->message("HELP:\n drive: w-a-s-d\n shoot: left mouse\n F2: show FPS\n F3: PhysX Debugger\n F4: Music On/Off\n F9: Depth Imposters On/Off\n F10: Raytracer On/Off\n F11 Opponent Fire On/Off\n Pause: Pause Game\n 1 Standard weapon\n 2 Bombs - explode late, but do cause lots of damage!\n 3 Alien weapon - just shoot!\n 4 Firethrower - Toast your opponent\n 5 Icethrower - Slow down your opponent", 2, 0.01f, true);
+					}
+					//this->gs.hasWon();
+					break;
+				case VK_F2:
+					this->gs.showFPS = !this->gs.showFPS;
+					break;
+				case VK_F3:
+					if(!this->activeScene->usePhysXDebugger)
+						this->activeScene->usePhysXDebugger = true;
+					else
+						this->activeScene->usePhysXDebugger = false;
+					break;
+				case VK_F4:
+					this->gs.setBackgroundSoundMute(!this->gs.getBackgroundSoundMute());
+					this->ms.setBackgroundSoundMute(!this->ms.getBackgroundSoundMute());
+					break;
+				case VK_F5:
+					//this->gs.getHUD()->displayToasted(3, 0.01f);
+					break;
+				case VK_F6:
+					//this->gs.getHUD()->message("hallo martin", 3, 0.01f);
+					break;
+				case VK_F7:
+					//this->gs.getHUD()->displayLose(3, 0.01f);
+					break;
+				case VK_F8:
+					this->gs.drawBBoxes = !this->gs.drawBBoxes;
+					break;
+				case VK_F9:
+					this->gs.useDepthImposter = !this->gs.useDepthImposter;
+					break;
+				case VK_F10:
+					this->gs.useRaytracer = !this->gs.useRaytracer;
+					break;
+				case VK_F11:
+					this->gs.aiPlayerFireEnable = !this->gs.aiPlayerFireEnable;
+					break;
+				case VK_PAUSE:
+					if(activeScene == &this->gs) {
+						if(!this->gs.preparepaused) {
+							this->gs.getHUD()->message("Game paused. Press Pause to Continue...", 1, 0.01f);
+						} else {
+							this->gs.currentlypaused = false;
+							this->gs.getHUD()->message("", 1, 0.01f);
+						}
+						this->gs.preparepaused= !this->gs.preparepaused;
+					}
+					break;
+			}
+		//}
 
 	}
@@ -325,4 +338,6 @@
 	//show mouse cursor:
 	ShowCursor(true);
+	this->gs.currentlypaused = false;
+	this->gs.preparepaused = false;
 }
 
@@ -340,4 +355,7 @@
 		//hide mouse cursor:
 		ShowCursor(false);
+
+		this->gs.currentlypaused = false;
+		this->gs.preparepaused = false;
 	}
 }
Index: GTP/trunk/App/Games/Jungle_Rumble/src/GameScene.h
===================================================================
--- GTP/trunk/App/Games/Jungle_Rumble/src/GameScene.h	(revision 1378)
+++ GTP/trunk/App/Games/Jungle_Rumble/src/GameScene.h	(revision 1382)
@@ -108,4 +108,7 @@
 	void reduceHealthOnPlayers(Bullet* bullet);
 
+	bool preparepaused;
+	bool currentlypaused;
+
 	void hasWon();
 protected:
Index: GTP/trunk/App/Games/Jungle_Rumble/src/GameScene.cpp
===================================================================
--- GTP/trunk/App/Games/Jungle_Rumble/src/GameScene.cpp	(revision 1378)
+++ GTP/trunk/App/Games/Jungle_Rumble/src/GameScene.cpp	(revision 1382)
@@ -44,4 +44,7 @@
 
 	this->recalcTransformations = true;
+
+	this->currentlypaused = false;
+	this->preparepaused = false;
 }
 
@@ -110,4 +113,6 @@
 	this->sadSound = NULL;
 	this->happySound = NULL;
+	this->currentlypaused = false;
+	this->preparepaused = false;
 
 	Scene::clearScene();
@@ -124,4 +129,6 @@
 	this->setNotifyReport(&this->userNotify);
 	this->descSet = false;
+	this->currentlypaused = false;
+	this->preparepaused = false;
 	Scene::initScene(_manager);
 	
@@ -194,4 +201,8 @@
 		}
 
+		if(this->preparepaused) {
+			this->currentlypaused = true;
+		}
+
 		//this->device->SetRenderTarget(0, this->finalImageSurface);
 		//this->manager->printToConsole("renderScene");
@@ -205,5 +216,8 @@
 		}
 
-		this->takeTime();
+		if(!this->currentlypaused) {
+			this->takeTime();
+		}
+		
 		//ClearScreen
 		//this->clearRenderTargetAndZBuffer();
@@ -211,21 +225,24 @@
 		this->clearSharedResources();
 		//Fetch Physic Results
-		if(this->recalcTransformations) {
+        if(this->recalcTransformations && !this->currentlypaused) {
 			this->fetchPhysicResults();
 		}
 		//Fading Stuff
-		this->doFade();
-		//FIRST GAME UPDATE
-		this->updateGameFirst();
-		//Trigger updates
-		this->updateTrigger();
-		//Update Nodes
-		this->updateNodes();
-		//Calculate Transformations
-		if(this->recalcTransformations) {
-			this->calculateTransformations();
-		}
-		//SECOND GAME UPDATE
-		this->updateGameSecond();
+        if(!this->currentlypaused) {
+			this->doFade();
+			//FIRST GAME UPDATE
+			this->updateGameFirst();
+			//Trigger updates
+			this->updateTrigger();
+			//Update Nodes
+			this->updateNodes();
+			//Calculate Transformations
+			if(this->recalcTransformations) {
+				this->calculateTransformations();
+			}
+			//SECOND GAME UPDATE
+			this->updateGameSecond();
+		}
+
 		//startRenderPasses
 		this->startRenderPasses();
@@ -233,7 +250,10 @@
 		//Cleanup Memory
 		this->cleanUpScene();
-		//Start Physic
-		if(this->recalcTransformations) {
-			this->startPhysic();
+
+		if(!this->currentlypaused) {
+			//Start Physic
+			if(this->recalcTransformations) {
+				this->startPhysic();
+			}
 		}
 		this->cnt = 0;
