Index: code/branches/environment3/data/levels/asteroidField.oxw
===================================================================
--- code/branches/environment3/data/levels/asteroidField.oxw	(revision 8919)
+++ code/branches/environment3/data/levels/asteroidField.oxw	(revision 8946)
@@ -37,5 +37,6 @@
     <?lua
     	dofile("includes/asteroidField.lua")
-    	asteroidField(0, 0, 0, 150, 50, 12000, 250)
+    	asteroidField(0, 0, 5000, 100, 150, 2000, 50);
+    	asteroidBelt(0, 0, 0, -48, -34, 30, 100, 200, 17000, 21000, 900)
     ?>
     
Index: code/branches/environment3/data/levels/includes/asteroidField.lua
===================================================================
--- code/branches/environment3/data/levels/includes/asteroidField.lua	(revision 8919)
+++ code/branches/environment3/data/levels/includes/asteroidField.lua	(revision 8946)
@@ -10,19 +10,58 @@
 	do
 		size = (math.random() * (maxSize - minSize)) + minSize
+		pX = (2 * math.random() * radius) - radius + posX
+		pY = (2 * math.random() * radius) - radius + posY
+		pZ = (2 * math.random() * radius) - radius + posZ
 		print("<StaticEntity ")
 		
 		print("position = \"") 
-		print((2 * math.random() * radius) - radius + posX) print(",") 
-		print((2 * math.random() * radius) - radius + posY) print(",") 
-		print((2 * math.random() * radius) - radius + posZ) print("\"")
+		print(pX) print(",") 
+		print(pY) print(",") 
+		print(pZ) print("\"")
 		
 		print("scale = \"") print(size) print("\"")
 		
-		print("collisionType = static linearDamping = 0.8 angularDamping = 0 collisiondamage = 1 enablecollisiondamage = true>")
+		print("collisionType = static linearDamping = 0.8 angularDamping = 1 collisiondamage = 1000 enablecollisiondamage = true>")
 		print("<attached> <Model mass=\"") print(size * 10) print("\" mesh=\"ast") print(math.mod(i,6) + 1) print(".mesh\" /> </attached>")
-		print("<attached> <ForceField position=\"0,0,0\" mode=\"newtonianGravity\" diameter=\"") print(size + (size * 0.2)) print("\" massDiameter=\"") print(size) print("\" mass=\"") print(size * 1000) print("\" /> </attached>")
-		print("<collisionShapes> <SphereCollisionShape radius=\"") print(size) print("\" /> </collisionShapes>")
+		print("<attached> <ForceField position=\"0,0,0\" mode=\"newtonianGravity\" diameter=\"") print(size * 2.7) print("\" massDiameter=\"") print(size * 2) print("\" mass=\"") print(size * 1000) print("\" /> </attached>")
+		print("<collisionShapes> <SphereCollisionShape radius=\"") print(size*2.5) print("\" /> </collisionShapes>")
 		print("</StaticEntity>")
 	end
+end
+
+
+--[[ asteroid belt generator
+generates asteroid belt
+	posX, posY, posZ - position in space
+	yaw, pitch - rotation
+	minSize, maxSize - size boundaries of each asteroid
+	radius0, radius1 - inner/outer radius
+	count - number of asteroids
+--]]
+function asteroidBelt(centerX, centerY, centerZ, yaw, pitch, segments, minSize, maxSize, radius0, radius1, count)
+	dPhi = (2 * math.pi) / segments
+	width = math.abs(radius1 - radius0)
+	radius = (radius1 + radius0) / 2
+	segmentCount = count / segments
 	
+	print("<StaticEntity collisionType=static yaw=")
+	print(yaw)
+	print(" pitch=")
+	print(pitch)
+	print(" position = \"") 
+		print(centerX) print(",") 
+		print(centerY) print(",") 
+		print(centerZ) print("\"") 
+	print(">")
+	print("<attached>")
+	
+	for i = 0, segments - 1, 1
+	do
+		asteroidField((radius * math.cos(i * dPhi)),
+					(radius * math.sin(i * dPhi)),
+					0, minSize, maxSize, width,segmentCount)
+	end
+	
+	print("</attached>")
+	print("</StaticEntity>")
 end
Index: code/branches/environment3/src/libraries/util/SignalHandler.cc
===================================================================
--- code/branches/environment3/src/libraries/util/SignalHandler.cc	(revision 8919)
+++ code/branches/environment3/src/libraries/util/SignalHandler.cc	(revision 8946)
@@ -70,5 +70,5 @@
 
       catchSignal( SIGSEGV );
-//      catchSignal( SIGABRT );
+//      catchSignal( SIGABRT );  // CEGUI nasty bugfix
       catchSignal( SIGILL );
     }
@@ -127,5 +127,5 @@
       if( SignalHandler::singletonPtr_s == 0 )
       {
-        orxout(user_error) << "Received signal(sigHandler already destroyed) " << sigName.c_str() << endl << "Can't write backtrace because SignalHandler is already destroyed" << endl;
+        orxout(user_error) << "Received signal " << sigName.c_str() << endl << "Can't write backtrace because SignalHandler is already destroyed" << endl;
         exit(EXIT_FAILURE);
       }
@@ -137,5 +137,5 @@
 
 
-      orxout(user_error) << "Received signal(second error) " << sigName.c_str() << endl << "Try to write backtrace to file orxonox_crash.log" << endl;
+      orxout(user_error) << "Received signal " << sigName.c_str() << endl << "Try to write backtrace to file orxonox_crash.log" << endl;
 
       
@@ -675,5 +675,5 @@
 
     /// Returns a description of the given exception.
-    // Based on code from Dr. Mingw by José Fonseca
+    // Based on code from Dr. Mingw by Jos\E9 Fonseca
     /* static */ std::string SignalHandler::getExceptionType(PEXCEPTION_POINTERS pExceptionInfo)
     {
@@ -745,5 +745,5 @@
 
     /// Retrieves the base address of the module that contains the specified address.
-    // Code from Dr. Mingw by José Fonseca
+    // Code from Dr. Mingw by Jos\E9 Fonseca
     /* static */ DWORD SignalHandler::getModuleBase(DWORD dwAddress)
     {
