Index: code/trunk/data/levels/includes/CuboidSpaceStation.lua
===================================================================
--- code/trunk/data/levels/includes/CuboidSpaceStation.lua	(revision 9016)
+++ code/trunk/data/levels/includes/CuboidSpaceStation.lua	(revision 9348)
@@ -1,18 +1,18 @@
 ----------------------------------------------------------------------------------------------------
 -- This lua script creates a totally random generated space station for the orxonox computer game!--
--- (c) Wallah 2008, published under GPL licence!												  --
+-- (c) Wallah 2008, published under GPL licence!                                                  --
 ----------------------------------------------------------------------------------------------------
 
 --------------------------------------------------------------------------------------------------------------------------------------------------------------------
--- IMPORTANT: If you need more parameters, do the following: copy the actual function (just the headline and the end statement) to the end of the file,			  --
+-- IMPORTANT: If you need more parameters, do the following: copy the actual function (just the headline and the end statement) to the end of the file,           --
 -- like I did with createSpaceStation() and let that function call the new function where you can modify the parameters. For all parameters which the old function--
 -- doesn't have you just give the standard default values, which I have defined. This is to make sure, that anyone else who uses the old function can still use it--
--- the same way he/she always did. If you want a function with less parameters, just create a new one at the end of the file and call this function with some	  --
--- default values. REMEMBER: Function overloading is not possible, be sure to call your function differently from others already existing ones.					  --
+-- the same way he/she always did. If you want a function with less parameters, just create a new one at the end of the file and call this function with some     --
+-- default values. REMEMBER: Function overloading is not possible, be sure to call your function differently from others already existing ones.                   --
 --------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 -- This function creates a randomly generated space station.
 -- The first argument ranSeed, must be 0, or a positive Integer, if it is 0 your space station is always chosen randomly, if you give an integer,
---	your space station will be generated randomly, but once you have the space station it will always be the same.
+--  your space station will be generated randomly, but once you have the space station it will always be the same.
 -- The argument xLength defines how large the space station will be into the x-direction.
 -- The argument xVar defines how much the space station will vary at the ends in x-direction, this is so that the station is no cube.
@@ -37,7 +37,7 @@
 -- Create a randomseed, so that the math.random() function is actually random.
 if ranSeed == 0 then
-	math.randomseed(os.time())
+    math.randomseed(os.time())
 else
-	math.randomseed(ranSeed)
+    math.randomseed(ranSeed)
 end
 -- End create randomseed.
@@ -52,9 +52,9 @@
 sSSize=30
 if xLength>=yLength and xLength>=zLength then
-	sSSize=xLength+20
+    sSSize=xLength+20
 elseif yLength>=xLength and yLength>=zLength then
-	sSSize=yLength+20
+    sSSize=yLength+20
 elseif zLength>=xLength and zLength>=yLength then
-	sSSize=zLength+20
+    sSSize=zLength+20
 end
 -- Define how many parts the space station has, this value has to be exact, so be sure to increment it if you're adding a new part.
@@ -78,5 +78,5 @@
 pDim=6
 -- Define the griddimension, be sure this value matches the size of a single space station part plus the size of a connection part, which means your parts must be:
---	integer*(gridDim-connectionSize), then integer tells you how many griddimensions your part is.
+--  integer*(gridDim-connectionSize), then integer tells you how many griddimensions your part is.
 gridDim=2.25
 -- End define global parameters.
@@ -89,24 +89,24 @@
 -- The parameters x,y,z are the axis of the space station, which iterate to sSSize, the maximal size of the space station.
 -- The griddimension, this word I will use later, means that the distance of a point to the next point is gridDim in the game, so the absolute x-axis is x*gridDim*sSScale,
---	and so on for the other dimensions y and z.
+--  and so on for the other dimensions y and z.
 -- grid[x][y][z][0] contains 0 if there is no part at the position (x,y,z), otherwise 1.
 -- grid[x][y][z][1] contains 0 if there is no connection from (x,y,z) in x-direction, "+" if there is one in the positive x-direction,
---	"-" if there is one in the negative x-direction, "+-" if there are in both x-directions.
+--  "-" if there is one in the negative x-direction, "+-" if there are in both x-directions.
 -- grid[x][y][z][2] contains 0 if there is no connection from (x,y,z) in y-direction, "+" if there is one in the positive y-direction,
---	"-" if there is one in the negative y-direction, "+-" if there are in both y-directions.
+--  "-" if there is one in the negative y-direction, "+-" if there are in both y-directions.
 -- grid[x][y][z][3] contains 0 if there is no connection from (x,y,z) in z-direction, "+" if there is one in the positive z-direction,
---	"-" if there is one in the negative z-direction, "+-" if there are in both z-directions.
+--  "-" if there is one in the negative z-direction, "+-" if there are in both z-directions.
 grid = {}
 for x=-math.floor(sSSize/2),math.floor(sSSize/2) do
-	grid[x] = {}
-	for y=-math.floor(sSSize/2),math.floor(sSSize/2) do
-		grid[x][y]= {}
-		for z=-math.floor(sSSize/2),math.floor(sSSize/2) do
-			grid[x][y][z]={}
-			for i=0,3 do
-				grid[x][y][z][i]=0
-			end
-		end
-	end
+    grid[x] = {}
+    for y=-math.floor(sSSize/2),math.floor(sSSize/2) do
+        grid[x][y]= {}
+        for z=-math.floor(sSSize/2),math.floor(sSSize/2) do
+            grid[x][y][z]={}
+            for i=0,3 do
+                grid[x][y][z][i]=0
+            end
+        end
+    end
 end
 -- End create 4-dim grid.
@@ -119,37 +119,37 @@
 -- The first parameter i, tells us how many parts fit into the array, so it iterates from 1 to sSParts, each part has his own value i.
 -- The second, third and fourth parameters are the relative coordinates of the part, you have to start at (0,0,0) and be sure you fill the array into the right direction.
---	A short example: your part is 2 griddimensions long and you place it in the game, that the relative coordinate point is at (0,0,0) and the part lies in the positive
---	z-axis, then you have to use the coordinate point (0,0,1).
+--  A short example: your part is 2 griddimensions long and you place it in the game, that the relative coordinate point is at (0,0,0) and the part lies in the positive
+--  z-axis, then you have to use the coordinate point (0,0,1).
 -- The fifth parameter is an array with size 4, at index=0, you have to set 1 if your part covers the gridpoint at (x,y,z), otherwise 0.
---	At index=1,2,3 you define the possible connection directions (1 for x, 2 for y and 3 for z), be sure to use the notation from above (0, "+-", "+", "-").
+--  At index=1,2,3 you define the possible connection directions (1 for x, 2 for y and 3 for z), be sure to use the notation from above (0, "+-", "+", "-").
 bodyParts={}
 for i=1,sSParts do
-	bodyParts[i]={}
-	for x=-math.floor(pDim/2),math.floor(pDim/2) do
-		bodyParts[i][x]={}
-		for y=-math.floor(pDim/2),math.floor(pDim/2) do
-			bodyParts[i][x][y]={}
-			for z=-math.floor(pDim/2),math.floor(pDim/2) do
-				bodyParts[i][x][y][z]={}
-				for k=0,3 do
-					bodyParts[i][x][y][z][k]=0
-				end
-			end
-		end
-	end
-	-- This contains the name of the mesh file.
-	bodyParts[i][0][0][0][4]=""
-	-- This contains the first possible rotation of your part, pitch=... yaw=... roll=... .
-	bodyParts[i][0][0][0][5]=""
-	-- This contains the second possible rotation of your part, pitch=... yaw=... roll=... .
-	bodyParts[i][0][0][0][6]=""
-	-- This contains the third possible rotation of your part, pitch=... yaw=... roll=... .
-	bodyParts[i][0][0][0][7]=""
-	-- Contains the movement rotation, rotationaxis=... rotationrate=... .
-	bodyParts[i][0][0][0][8]=""
-	-- Contains the attachment, if your part has an attachment, e.g. <ParticleEmitter .../>.
-	bodyParts[i][0][0][0][9]=""
-	-- Contains how many of this part you want to attach to your space station.
-	bodyParts[i][0][0][0][10]=1
+    bodyParts[i]={}
+    for x=-math.floor(pDim/2),math.floor(pDim/2) do
+        bodyParts[i][x]={}
+        for y=-math.floor(pDim/2),math.floor(pDim/2) do
+            bodyParts[i][x][y]={}
+            for z=-math.floor(pDim/2),math.floor(pDim/2) do
+                bodyParts[i][x][y][z]={}
+                for k=0,3 do
+                    bodyParts[i][x][y][z][k]=0
+                end
+            end
+        end
+    end
+    -- This contains the name of the mesh file.
+    bodyParts[i][0][0][0][4]=""
+    -- This contains the first possible rotation of your part, pitch=... yaw=... roll=... .
+    bodyParts[i][0][0][0][5]=""
+    -- This contains the second possible rotation of your part, pitch=... yaw=... roll=... .
+    bodyParts[i][0][0][0][6]=""
+    -- This contains the third possible rotation of your part, pitch=... yaw=... roll=... .
+    bodyParts[i][0][0][0][7]=""
+    -- Contains the movement rotation, rotationaxis=... rotationrate=... .
+    bodyParts[i][0][0][0][8]=""
+    -- Contains the attachment, if your part has an attachment, e.g. <ParticleEmitter .../>.
+    bodyParts[i][0][0][0][9]=""
+    -- Contains how many of this part you want to attach to your space station.
+    bodyParts[i][0][0][0][10]=1
 end
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -193,5 +193,5 @@
 
 -- Insert the CuboidConnectionBody, it is three griddimensions long and one wide and high and can have only connections at griddimension 1
---	(except the side in direction of griddimension 2) and griddimension 3 (except the side in direction of griddimension 2).
+--  (except the side in direction of griddimension 2) and griddimension 3 (except the side in direction of griddimension 2).
 bodyParts[3][0][0][0][4]="CuboidConnBody.mesh"
 bodyParts[3][0][0][0][5]="pitch=-90"
@@ -373,15 +373,15 @@
 --This function actualizes the grid, which I have to call always after I have added a new part to the space station.
 function actualizeGrid(Index,x,y,z)
-	for i=math.floor(-pDim/2)+1,math.floor(pDim/2) do
-		for j=math.floor(-pDim/2)+1,math.floor(pDim/2) do
-			for k=math.floor(-pDim/2)+1,math.floor(pDim/2) do
-				if bodyParts[Index][i][j][k][0] == 1 then
-					for l=0,3 do
-						grid[x+i][y+j][z+k][l] = bodyParts[Index][i][j][k][l]
-					end
-				end
-			end
-		end
-	end
+    for i=math.floor(-pDim/2)+1,math.floor(pDim/2) do
+        for j=math.floor(-pDim/2)+1,math.floor(pDim/2) do
+            for k=math.floor(-pDim/2)+1,math.floor(pDim/2) do
+                if bodyParts[Index][i][j][k][0] == 1 then
+                    for l=0,3 do
+                        grid[x+i][y+j][z+k][l] = bodyParts[Index][i][j][k][l]
+                    end
+                end
+            end
+        end
+    end
 end
 -- End actualizeGrid.
@@ -390,17 +390,17 @@
 -- If the part fits there it returns 1, otherwise 0.
 function checkPart(Index,x,y,z)
-	check=1
-	for i=math.floor(-pDim/2)+1,math.floor(pDim/2) do
-		for j=math.floor(-pDim/2)+1,math.floor(pDim/2) do
-			for k=math.floor(-pDim/2)+1,math.floor(pDim/2) do
-				-- If the part occupies the position (i,j,k), the grid must be empty there ((x+i, y+j, z+k)==0), if not, check is zero,
-				--	which means that the part doesn't fit there.
-				if bodyParts[Index][i][j][k][0] == 1 and grid[x+i][y+j][z+k][0] == 1 then
-					check=0
-				end
-			end
-		end
-	end
-	return check
+    check=1
+    for i=math.floor(-pDim/2)+1,math.floor(pDim/2) do
+        for j=math.floor(-pDim/2)+1,math.floor(pDim/2) do
+            for k=math.floor(-pDim/2)+1,math.floor(pDim/2) do
+                -- If the part occupies the position (i,j,k), the grid must be empty there ((x+i, y+j, z+k)==0), if not, check is zero,
+                --  which means that the part doesn't fit there.
+                if bodyParts[Index][i][j][k][0] == 1 and grid[x+i][y+j][z+k][0] == 1 then
+                    check=0
+                end
+            end
+        end
+    end
+    return check
 end
 -- End checkPart function.
@@ -408,36 +408,36 @@
 -- This function prints the model with tempPartIndex in the bodyParts array at position lx,ly,lz.
 -- If you need to rotate the model around his own axis, then you have to set movEntity true and define the details of the rotation in
---	bodyParts[tempPartIndex][0][0][0][8].
+--  bodyParts[tempPartIndex][0][0][0][8].
 -- If your model needs to be rotated like bodyParts[tempPartIndex][0][0][0][5], then side must be 1, for bodyParts[tempPartIndex][0][0][0][6] side must be 2,
---	for bodyParts[tempPartIndex][0][0][0][7] side must be 3.
+--  for bodyParts[tempPartIndex][0][0][0][7] side must be 3.
 function printModel(lx,ly,lz,tempPartIndex,movEntity,side)
-	if movEntity == true then
-		print("<MovableEntity scale=1 position=\"") print(lx*gridDim*sSScale) print(",") print(ly*gridDim*sSScale) print(",") print(lz*gridDim*sSScale) print("\" ")
-		print(bodyParts[tempPartIndex][0][0][0][8]) print(">")
-		print("<attached>")
-		lx=0 ly=0 lz=0
-	end
-
-	print("<Model position=\"") print(lx*gridDim*sSScale) print(",") print(ly*gridDim*sSScale) print(",") print(lz*gridDim*sSScale)
-	print("\" scale=") print(sSScale) print(" mesh= \"") print(bodyParts[tempPartIndex][0][0][0][4]) print("\"")
-
-		if side == 1 then
-			print(bodyParts[tempPartIndex][0][0][0][5]) print(">")
-		elseif side == 2 then
-			print(bodyParts[tempPartIndex][0][0][0][6]) print(">")
-		elseif side == 3 then
-			print(bodyParts[tempPartIndex][0][0][0][7]) print(">")
-		end
-
-		print("<attached>")
-			print(bodyParts[tempPartIndex][0][0][0][9])
-		print("</attached>")
-
-	print("</Model>")
-
-	if movEntity == true then
-		print("</attached>")
-		print("</MovableEntity>")
-	end
+    if movEntity == true then
+        print("<MovableEntity scale=1 position=\"") print(lx*gridDim*sSScale) print(",") print(ly*gridDim*sSScale) print(",") print(lz*gridDim*sSScale) print("\" ")
+        print(bodyParts[tempPartIndex][0][0][0][8]) print(">")
+        print("<attached>")
+        lx=0 ly=0 lz=0
+    end
+
+    print("<Model position=\"") print(lx*gridDim*sSScale) print(",") print(ly*gridDim*sSScale) print(",") print(lz*gridDim*sSScale)
+    print("\" scale=") print(sSScale) print(" mesh= \"") print(bodyParts[tempPartIndex][0][0][0][4]) print("\"")
+
+        if side == 1 then
+            print(bodyParts[tempPartIndex][0][0][0][5]) print(">")
+        elseif side == 2 then
+            print(bodyParts[tempPartIndex][0][0][0][6]) print(">")
+        elseif side == 3 then
+            print(bodyParts[tempPartIndex][0][0][0][7]) print(">")
+        end
+
+        print("<attached>")
+            print(bodyParts[tempPartIndex][0][0][0][9])
+        print("</attached>")
+
+    print("</Model>")
+
+    if movEntity == true then
+        print("</attached>")
+        print("</MovableEntity>")
+    end
 end
 -- End function printModel().
@@ -446,40 +446,40 @@
 -- The arguments lx,ly,lz are the coordinates of the grid, where you want to set the part.
 -- The arguments xAxis,yAxis,zAxis can be 0 or 1, but only one argument out of the three can be 1. This means two of them must always be zero. You have to set xAxis to one,
---	if your part is attached to a side, which faces into the x-direction (negative or positive, this is later specified with Dir), that means the x-Axis is a normal vector
---	of the side to which you want to attach the part. The same for yAxis and zAxis.
+--  if your part is attached to a side, which faces into the x-direction (negative or positive, this is later specified with Dir), that means the x-Axis is a normal vector
+--  of the side to which you want to attach the part. The same for yAxis and zAxis.
 -- The argument Dir must be 1 if your side, where you want to attach the part, faces into the positive direction, -1 if the side faces into the negative direction. The side
---	faces into the positive direction means, that the side of the side where the part will be attached is directed into the direction of the positive direction of the
---	corresponding axis.
+--  faces into the positive direction means, that the side of the side where the part will be attached is directed into the direction of the positive direction of the
+--  corresponding axis.
 -- The argument index is the index of the part for the bodyParts array.
 -- The argument printMovEnt must be false if your part doesn't need to be attached to an extra MovableEntity. If your part must be attached to an extra MovableEntity
---	this argument must be true. The extra MovableEntity is used to rotate the part around his own axis, or something like that.
+--  this argument must be true. The extra MovableEntity is used to rotate the part around his own axis, or something like that.
 -- The argument printSide is like the argument side of the printModel() function. It defines how your part will be rotated. Read the commentary there.
 -- The function returns 0 if the part couldn't be set, because it did not fit there or there was no side to attach the part. It returns 1 if the part is successfully set.
 function setPart(lx,ly,lz,xAxis,yAxis,zAxis,Dir,index,printMovEnt,printSide)
 
-	partSet=0
-	-- For the bodyParts array I use 1 as x-, 2 as y- and 3 as z-Axis for the definition in which directions a part can have connections.
-	coord=1*xAxis+2*yAxis+3*zAxis
-	-- If I try to attach the part from the positive direction to the side of the space station, the part of the station (where I want to attach the new part) must have
-	--	a connection into the positive direction. Otherwise I look from the negative side and so the part of the station must have a connection into the negative direction.
-	if Dir==1 then
-		conn="+"
-	elseif Dir==-1 then
-		conn="-"
-	end
-	-- I look from the direction defined through Dir, and here I check, whether I have reached a side of the space station, which means at position lx,ly,lz is nothing and
-	--	at the next position is a part which can have a connection into the direction from where I look.
-	if grid[lx][ly][lz][0] == 0 and grid[lx+(-1*xAxis*Dir)][ly+(-1*yAxis*Dir)][lz+(-1*zAxis*Dir)][0] == 1 and (grid[lx+(-1*xAxis*Dir)][ly+(-1*yAxis*Dir)][lz+(-1*zAxis*Dir)][coord]=="+-" or grid[lx+(-1*xAxis*Dir)][ly+(-1*yAxis*Dir)][lz+(-1*zAxis*Dir)][coord]==conn) then
-		-- This checks whether the part fits at that position or not.
-		check=checkPart(index,lx,ly,lz)
-		if check == 1 then
-			-- This prints the part.
-			printModel(lx,ly,lz,index,printMovEnt,printSide)
-			partSet=1
-			-- This actualizes the grid array with the values of the array bodyParts at the position index.
-			actualizeGrid(index,lx,ly,lz)
-		end
-	end
-	return partSet
+    partSet=0
+    -- For the bodyParts array I use 1 as x-, 2 as y- and 3 as z-Axis for the definition in which directions a part can have connections.
+    coord=1*xAxis+2*yAxis+3*zAxis
+    -- If I try to attach the part from the positive direction to the side of the space station, the part of the station (where I want to attach the new part) must have
+    --  a connection into the positive direction. Otherwise I look from the negative side and so the part of the station must have a connection into the negative direction.
+    if Dir==1 then
+        conn="+"
+    elseif Dir==-1 then
+        conn="-"
+    end
+    -- I look from the direction defined through Dir, and here I check, whether I have reached a side of the space station, which means at position lx,ly,lz is nothing and
+    --  at the next position is a part which can have a connection into the direction from where I look.
+    if grid[lx][ly][lz][0] == 0 and grid[lx+(-1*xAxis*Dir)][ly+(-1*yAxis*Dir)][lz+(-1*zAxis*Dir)][0] == 1 and (grid[lx+(-1*xAxis*Dir)][ly+(-1*yAxis*Dir)][lz+(-1*zAxis*Dir)][coord]=="+-" or grid[lx+(-1*xAxis*Dir)][ly+(-1*yAxis*Dir)][lz+(-1*zAxis*Dir)][coord]==conn) then
+        -- This checks whether the part fits at that position or not.
+        check=checkPart(index,lx,ly,lz)
+        if check == 1 then
+            -- This prints the part.
+            printModel(lx,ly,lz,index,printMovEnt,printSide)
+            partSet=1
+            -- This actualizes the grid array with the values of the array bodyParts at the position index.
+            actualizeGrid(index,lx,ly,lz)
+        end
+    end
+    return partSet
 end
 -- End function setPart().
@@ -490,45 +490,45 @@
 -- The argument parts is the number of different parts which you want to attach to a side.
 function spiralSet(xAxis,yAxis,zAxis,Dir,index,parts,printMovEnt,printSide)
-	if index[0] ~= false then
-		-- The array vector contains the actual position where you try to set the part. vector[0],vector[1] and vector[3] contains the x,y,z-coordinate.
-		vector={}
-		-- This must be done, because there are different sides from where I try to attach a part.
-		coord1=1*yAxis+2*zAxis
-		coord2=math.mod(coord1+1,3)
-		coord3=math.mod(coord2+1,3)
-
-		for pc=1,parts do
-			tempIndex = index[pc]
-			for eachPart=1,bodyParts[tempIndex][0][0][0][10] do
-				partSet=0
-				vector[coord1]=math.floor(Dir*sSSize/2)-2*Dir
-				while vector[coord1]~=math.floor(-1*Dir*sSSize/2)+2*Dir and partSet==0 do
-					round=0
-					while round<=math.floor(sSSize/2)-2 and partSet==0 do
-						vector[coord2]=round
-						vector[coord3]=-round
-						while vector[coord3]<=round and partSet==0 do
-							partSet=setPart(vector[0],vector[1],vector[2],xAxis,yAxis,zAxis,Dir,tempIndex,printMovEnt,printSide)
-							vector[coord3]=vector[coord3]+1
-						end
-						while vector[coord2]>=-round and partSet==0 do
-							partSet=setPart(vector[0],vector[1],vector[2],xAxis,yAxis,zAxis,Dir,tempIndex,printMovEnt,printSide)
-							vector[coord2]=vector[coord2]-1
-						end
-						while vector[coord3]>-round and partSet==0 do
-							partSet=setPart(vector[0],vector[1],vector[2],xAxis,yAxis,zAxis,Dir,tempIndex,printMovEnt,printSide)
-							vector[coord3]=vector[coord3]-1
-						end
-						while vector[coord2]<=round and partSet==0 do
-							partSet=setPart(vector[0],vector[1],vector[2],xAxis,yAxis,zAxis,Dir,tempIndex,printMovEnt,printSide)
-							vector[coord2]=vector[coord2]+1
-						end
-						round=round+1
-					end
-					vector[coord1]=vector[coord1]-Dir
-				end
-			end
-		end
-	end
+    if index[0] ~= false then
+        -- The array vector contains the actual position where you try to set the part. vector[0],vector[1] and vector[3] contains the x,y,z-coordinate.
+        vector={}
+        -- This must be done, because there are different sides from where I try to attach a part.
+        coord1=1*yAxis+2*zAxis
+        coord2=math.mod(coord1+1,3)
+        coord3=math.mod(coord2+1,3)
+
+        for pc=1,parts do
+            tempIndex = index[pc]
+            for eachPart=1,bodyParts[tempIndex][0][0][0][10] do
+                partSet=0
+                vector[coord1]=math.floor(Dir*sSSize/2)-2*Dir
+                while vector[coord1]~=math.floor(-1*Dir*sSSize/2)+2*Dir and partSet==0 do
+                    round=0
+                    while round<=math.floor(sSSize/2)-2 and partSet==0 do
+                        vector[coord2]=round
+                        vector[coord3]=-round
+                        while vector[coord3]<=round and partSet==0 do
+                            partSet=setPart(vector[0],vector[1],vector[2],xAxis,yAxis,zAxis,Dir,tempIndex,printMovEnt,printSide)
+                            vector[coord3]=vector[coord3]+1
+                        end
+                        while vector[coord2]>=-round and partSet==0 do
+                            partSet=setPart(vector[0],vector[1],vector[2],xAxis,yAxis,zAxis,Dir,tempIndex,printMovEnt,printSide)
+                            vector[coord2]=vector[coord2]-1
+                        end
+                        while vector[coord3]>-round and partSet==0 do
+                            partSet=setPart(vector[0],vector[1],vector[2],xAxis,yAxis,zAxis,Dir,tempIndex,printMovEnt,printSide)
+                            vector[coord3]=vector[coord3]-1
+                        end
+                        while vector[coord2]<=round and partSet==0 do
+                            partSet=setPart(vector[0],vector[1],vector[2],xAxis,yAxis,zAxis,Dir,tempIndex,printMovEnt,printSide)
+                            vector[coord2]=vector[coord2]+1
+                        end
+                        round=round+1
+                    end
+                    vector[coord1]=vector[coord1]-Dir
+                end
+            end
+        end
+    end
 end
 -- End function spiralSet().
@@ -554,35 +554,35 @@
 xMax=math.random(math.floor(xLength/2),math.floor(xLength/2)+xVar)
 while x<xMax do
-	-- The same for the y- and z-direction.
-	y=math.random(-math.floor(yLength/2),-math.floor(yLength/2)+yVar)
-	yMax=math.random(math.floor(yLength/2),math.floor(yLength/2)+yVar)
-	while y<yMax do
-		yMax=math.random(math.floor(yLength/2),math.floor(yLength/2)+yVar)
-		z=math.random(-math.floor(zLength/2),-math.floor(zLength/2)+zVar)
-		zMax=math.random(math.floor(zLength/2),math.floor(zLength/2)+zVar)
-		while z<zMax do
-			-- This loop choses a bodypart, which fits at position (x,y,z).
-			-- If after the fifth time the part does still not fit we terminate the loop and set no part at postition (x,y,z).
-			partSet=0
-			counter=0
-			while counter<5 and partSet==0 do
-				-- This choses randomly a bodyPartIndex, which is the index used for the parts in the array bodyParts.
-				tempBodyPartIndex=math.random(1,sSBodyParts)
-				check=checkPart(tempBodyPartIndex,x,y,z)
-				-- If check == 1, this means that the part fits there, so we put it there and break the while true loop, to go on.
-				if check == 1 then
-					-- This prints the chosen part at position (x*gridDim*sSScale,y*gridDim*sSScale,z*gridDim*sSScale).
-					printModel(x,y,z,tempBodyPartIndex,false,1)
-					-- This actualizes the grid array with the values of the array bodyParts at the position tempBodyPartIndex, which is our randomly chosen part.
-					actualizeGrid(tempBodyPartIndex,x,y,z)
-					partSet=1
-				end
-				counter=counter+1
-			end
-			z=z+1
-		end
-		y=y+1
-	end
-	x=x+1
+    -- The same for the y- and z-direction.
+    y=math.random(-math.floor(yLength/2),-math.floor(yLength/2)+yVar)
+    yMax=math.random(math.floor(yLength/2),math.floor(yLength/2)+yVar)
+    while y<yMax do
+        yMax=math.random(math.floor(yLength/2),math.floor(yLength/2)+yVar)
+        z=math.random(-math.floor(zLength/2),-math.floor(zLength/2)+zVar)
+        zMax=math.random(math.floor(zLength/2),math.floor(zLength/2)+zVar)
+        while z<zMax do
+            -- This loop choses a bodypart, which fits at position (x,y,z).
+            -- If after the fifth time the part does still not fit we terminate the loop and set no part at postition (x,y,z).
+            partSet=0
+            counter=0
+            while counter<5 and partSet==0 do
+                -- This choses randomly a bodyPartIndex, which is the index used for the parts in the array bodyParts.
+                tempBodyPartIndex=math.random(1,sSBodyParts)
+                check=checkPart(tempBodyPartIndex,x,y,z)
+                -- If check == 1, this means that the part fits there, so we put it there and break the while true loop, to go on.
+                if check == 1 then
+                    -- This prints the chosen part at position (x*gridDim*sSScale,y*gridDim*sSScale,z*gridDim*sSScale).
+                    printModel(x,y,z,tempBodyPartIndex,false,1)
+                    -- This actualizes the grid array with the values of the array bodyParts at the position tempBodyPartIndex, which is our randomly chosen part.
+                    actualizeGrid(tempBodyPartIndex,x,y,z)
+                    partSet=1
+                end
+                counter=counter+1
+            end
+            z=z+1
+        end
+        y=y+1
+    end
+    x=x+1
 end
 -- End attach all bodyparts.
@@ -593,5 +593,5 @@
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 -- Attach backParts, if there are some.
-	spiralSet(0,0,1,1,backPartsIndex,backParts,false,1)
+    spiralSet(0,0,1,1,backPartsIndex,backParts,false,1)
 -- End attach backParts.
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -599,5 +599,5 @@
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 -- Attach frontParts, if there are.
-	spiralSet(0,0,1,-1,frontPartsIndex,frontParts,false,1)
+    spiralSet(0,0,1,-1,frontPartsIndex,frontParts,false,1)
 -- End attach frontParts.
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -605,5 +605,5 @@
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 -- Attach parts on the left side of the space station.
-	spiralSet(1,0,0,-1,leftSidePartsIndex,leftSideParts,true,1)
+    spiralSet(1,0,0,-1,leftSidePartsIndex,leftSideParts,true,1)
 -- End attach left side parts.
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -611,5 +611,5 @@
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 -- Attach parts on the right side of the space station.
-	spiralSet(1,0,0,1,rightSidePartsIndex,rightSideParts,true,2)
+    spiralSet(1,0,0,1,rightSidePartsIndex,rightSideParts,true,2)
 -- End attach right side parts.
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -617,5 +617,5 @@
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 -- Attach parts on top of the space station.
-	spiralSet(0,1,0,1,topPartsIndex,topParts,true,1)
+    spiralSet(0,1,0,1,topPartsIndex,topParts,true,1)
 -- End attach top parts.
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -627,26 +627,26 @@
 -- This iterates through the whole grid array.
 if connPartsIndex[0] ~= false then
-	for x=math.floor(-sSSize/2)+2,math.floor(sSSize/2)-2 do
-		for y=math.floor(-sSSize/2)+2,math.floor(sSSize/2)-2 do
-			for z=math.floor(-sSSize/2)+2,math.floor(sSSize/2)-2 do
-				tempConnPartIndex=connPartsIndex[math.random(1,connParts)]
-				-- This checks whether there has to be a connection part between (x,y,z) and (x+1,y,z) or not. First it checks if there is a part at (x,y,z) and
-				--	then it checks if that part can have a connection into the positive x-direction, if it can, it checks if there is a part at (x+1,y,z) and
-				--	if that part can have a connection into the negative x-direction, if both can, it prints the xml code to set a connection part.
-				if grid[x][y][z][0]==1 and (grid[x][y][z][1]=="+" or grid[x][y][z][1]=="+-") and grid[x+1][y][z][0]==1 and (grid[x+1][y][z][1]=="-" or grid[x+1][y][z][1]=="+-") then
-					-- This prints the connection part, the +1/2 is because the connection is set exactly in the middle of two gridpoints.
-					printModel(x+1/2,y,z,tempConnPartIndex,false,1)
-				end
-				-- The same as in the x-direction, but for the y-direction.
-				if grid[x][y][z][0]==1 and ( grid[x][y][z][2]=="+" or grid[x][y][z][2]=="+-" ) and grid[x][y+1][z][0]==1 and ( grid[x][y+1][z][2]=="-" or grid[x][y+1][z][2]=="+-" ) then
-					printModel(x,y+1/2,z,tempConnPartIndex,false,2)
-				end
-				-- The same as in the x-direction, but for the z-direction.
-				if grid[x][y][z][0]==1 and ( grid[x][y][z][3]=="+" or grid[x][y][z][3]=="+-" ) and grid[x][y][z+1][0]==1 and ( grid[x][y][z+1][3]=="-" or grid[x][y][z+1][3]=="+-" ) then
-					printModel(x,y,z+1/2,tempConnPartIndex,false,3)
-				end
-			end
-		end
-	end
+    for x=math.floor(-sSSize/2)+2,math.floor(sSSize/2)-2 do
+        for y=math.floor(-sSSize/2)+2,math.floor(sSSize/2)-2 do
+            for z=math.floor(-sSSize/2)+2,math.floor(sSSize/2)-2 do
+                tempConnPartIndex=connPartsIndex[math.random(1,connParts)]
+                -- This checks whether there has to be a connection part between (x,y,z) and (x+1,y,z) or not. First it checks if there is a part at (x,y,z) and
+                --  then it checks if that part can have a connection into the positive x-direction, if it can, it checks if there is a part at (x+1,y,z) and
+                --  if that part can have a connection into the negative x-direction, if both can, it prints the xml code to set a connection part.
+                if grid[x][y][z][0]==1 and (grid[x][y][z][1]=="+" or grid[x][y][z][1]=="+-") and grid[x+1][y][z][0]==1 and (grid[x+1][y][z][1]=="-" or grid[x+1][y][z][1]=="+-") then
+                    -- This prints the connection part, the +1/2 is because the connection is set exactly in the middle of two gridpoints.
+                    printModel(x+1/2,y,z,tempConnPartIndex,false,1)
+                end
+                -- The same as in the x-direction, but for the y-direction.
+                if grid[x][y][z][0]==1 and ( grid[x][y][z][2]=="+" or grid[x][y][z][2]=="+-" ) and grid[x][y+1][z][0]==1 and ( grid[x][y+1][z][2]=="-" or grid[x][y+1][z][2]=="+-" ) then
+                    printModel(x,y+1/2,z,tempConnPartIndex,false,2)
+                end
+                -- The same as in the x-direction, but for the z-direction.
+                if grid[x][y][z][0]==1 and ( grid[x][y][z][3]=="+" or grid[x][y][z][3]=="+-" ) and grid[x][y][z+1][0]==1 and ( grid[x][y][z+1][3]=="-" or grid[x][y][z+1][3]=="+-" ) then
+                    printModel(x,y,z+1/2,tempConnPartIndex,false,3)
+                end
+            end
+        end
+    end
 end
 -- End attach all connectionparts.
@@ -671,5 +671,5 @@
 -- This function is for the lazy guys, which do not care how the space station looks like, so I use some good standard values.
 function createSpaceStation()
-	createSpaceStationPar(0,4,1,2,1,6,1,100)
+    createSpaceStationPar(0,4,1,2,1,6,1,100)
 end
 -- End createSpaceStaion() function.
Index: code/trunk/data/levels/includes/asteroidField.lua
===================================================================
--- code/trunk/data/levels/includes/asteroidField.lua	(revision 9016)
+++ code/trunk/data/levels/includes/asteroidField.lua	(revision 9348)
@@ -1,66 +1,65 @@
 --[[ fog generator
 generates fog
-	posX, posY, posZ - position in space
-	size - size of billboard
-	brightness - [0,1] fog brightness
+    posX, posY, posZ - position in space
+    size - size of billboard
+    brightness - [0,1] fog brightness
 --]]
 function generateFog(posX, posY, posZ, size, brightness)
-		print("<Billboard ")
-			print("position = \"") 
-				print(posX) print(",") 
-				print(posY) print(",") 
-				print(posZ) print("\" ") 
-			print("colour=\"")
-				print(brightness) print(",") 
-				print(brightness) print(",") 
-				print(brightness) print("\" ") 
-			print("material=\"Smoke/Smoke\" scale=")
-			print(size)
-			print(" />")
+    print("<Billboard ")
+        print("position = \"")
+            print(posX) print(",")
+            print(posY) print(",")
+            print(posZ) print("\" ")
+        print("colour=\"")
+            print(brightness) print(",")
+            print(brightness) print(",")
+            print(brightness) print("\" ")
+        print("material=\"Smoke/Smoke\" scale=")
+        print(size)
+    print(" />")
 end
 
 --[[ asteroid field generator
 generates asteroid field
-	posX, posY, posZ - position in space
-	minSize, maxSize - size boundaries of each asteroid
-	radius - size of the cube around position in space
-	count - number of asteroids
-	fog - enable fog 0/1
+    posX, posY, posZ - position in space
+    minSize, maxSize - size boundaries of each asteroid
+    radius - size of the cube around position in space
+    count - number of asteroids
+    fog - enable fog 0/1
 --]]
 function asteroidField(posX, posY, posZ, minSize, maxSize, radius, count, fog)
-	for i = 1, count, 1
-	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(pX) print(",") 
-		print(pY) print(",") 
-		print(pZ) print("\" ")
-		
-		print("scale = \"") print(size) print("\" ")
-		
-		print("collisionType = static linearDamping = 0.8 angularDamping = 1 ") 
-		print("collisiondamage = 1000 enablecollisiondamage = true>")
-		
-		print("<attached>")
-			print("<Model mass=\"") print(size * 10) print("\" ")
-			print("mesh=\"ast") print(math.mod(i,6) + 1) print(".mesh\" />")
-		print("</attached>")
-		
-		print("<collisionShapes> ")
-			print("<SphereCollisionShape radius=\"") 
-			print(size * 2.5) print("\" />")
-		print("</collisionShapes>")
-		
-		print("</StaticEntity>")
-		
-		if fog == 1 and i % 5 == 0 then
-			generateFog(pX, pY, pZ, radius*0.04, 0.2)
-		end
-	end
+    for i = 1, count, 1 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(pX) print(",")
+        print(pY) print(",")
+        print(pZ) print("\" ")
+
+        print("scale = \"") print(size) print("\" ")
+
+        print("collisionType = static linearDamping = 0.8 angularDamping = 1 ")
+        print("collisiondamage = 1000 enablecollisiondamage = true>")
+
+        print("<attached>")
+            print("<Model mass=\"") print(size * 10) print("\" ")
+            print("mesh=\"ast") print(math.mod(i,6) + 1) print(".mesh\" />")
+        print("</attached>")
+
+        print("<collisionShapes> ")
+            print("<SphereCollisionShape radius=\"")
+            print(size * 2.5) print("\" />")
+        print("</collisionShapes>")
+
+        print("</StaticEntity>")
+
+        if fog == 1 and i % 5 == 0 then
+            generateFog(pX, pY, pZ, radius*0.04, 0.2)
+        end
+    end
 end
 
@@ -68,36 +67,35 @@
 --[[ 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
-	fog - enable fog 0/1
+    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
+    fog - enable fog 0/1
 --]]
 function asteroidBelt(centerX, centerY, centerZ, yaw, pitch, segments, minSize, maxSize, radius0, radius1, count, fog)
-	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, fog)
-	end
-	
-	print("</attached>")
-	print("</StaticEntity>")
+    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, fog)
+    end
+
+    print("</attached>")
+    print("</StaticEntity>")
 end
Index: code/trunk/data/levels/includes/pickups.oxi
===================================================================
--- code/trunk/data/levels/includes/pickups.oxi	(revision 9016)
+++ code/trunk/data/levels/includes/pickups.oxi	(revision 9348)
@@ -3,244 +3,206 @@
 
 <PickupRepresentation
+    name = "smallshieldpickup"
     pickupName = "Small Shield Pickup"
     pickupDescription = "Gives you a small-sized shield for 30 seconds."
     inventoryRepresentation = "SmallShield"
     spawnerTemplate = "smallshieldpickupRepresentation"
->
-    <pickup>
-        <ShieldPickup template=smallshieldpickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "mediumshieldpickup"
     pickupName = "Medium Shield Pickup"
     pickupDescription = "Gives you a medium-sized shield for 30 seconds."
     inventoryRepresentation = "MediumShield"
     spawnerTemplate = "mediumshieldpickupRepresentation"
->
-    <pickup>
-        <ShieldPickup template=mediumshieldpickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "hugeshieldpickup"
     pickupName = "Huge Shield Pickup"
     pickupDescription = "Gives you a big shield for 60 seconds."
     inventoryRepresentation = "HugeShield"
     spawnerTemplate = "hugeshieldpickupRepresentation"
->
-    <pickup>
-        <ShieldPickup template=hugeshieldpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Health pickups -->
 
 <PickupRepresentation
+    name = "smallhealthpickup"
     pickupName = "Small Health Boost"
     pickupDescription = "Adds a small amout of health to the ship."
     inventoryRepresentation = "SmallHealth"
     spawnerTemplate = "smallhealthpickupRepresentation"
->
-    <pickup>
-        <HealthPickup template=smallhealthpickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "mediumhealthpickup"
     pickupName = "Medium Health Boost"
     pickupDescription = "Adds a medium amout of health to the ship."
     spawnerTemplate = "mediumhealthpickupRepresentation"
     inventoryRepresentation = "MediumHealth"
->
-    <pickup>
-        <HealthPickup template=mediumhealthpickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "hugehealthpickup"
     pickupName = "Huge Health Boost"
     pickupDescription = "Adds a huge amout of health to the ship."
     spawnerTemplate = "hugehealthpickupRepresentation"
     inventoryRepresentation = "HugeHealth"
->
-    <pickup>
-        <HealthPickup template=hugehealthpickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "crazyhealthpickup"
     pickupName = "Crazy Madness Health Boost"
     pickupDescription = "Adds a crazy amout of health to the ship."
     spawnerTemplate = "crazyhealthpickupRepresentation"
     inventoryRepresentation = "CrazyMadnessHealth"
->
-    <pickup>
-        <HealthPickup template=crazyhealthpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Meta pickups -->
 
 <PickupRepresentation
+    name = "use"
     pickupName = "Use Pickup"
     pickupDescription = "Uses all pickups you have."
     spawnerTemplate = "usepickupRepresentation"
     inventoryRepresentation = "usePickup"
->
-    <pickup>
-        <MetaPickup metaType="use" />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "drop"
     pickupName = "Drop Pickup"
     pickupDescription = "Drops all pickups you have."
     spawnerTemplate = "droppickupRepresentation"
     inventoryRepresentation = "dropPickup"
->
-    <pickup>
-        <MetaPickup metaType="drop" />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Speed pickups -->
 
 <PickupRepresentation
+    name = "smallspeedpickup"
     pickupName = "Small Speed Boost"
     pickupDescription = "Multiplies Speed of the Ship by a small amount."
     spawnerTemplate = "smallspeedpickupRepresentation"
     inventoryRepresentation = "SmallSpeed"
->
-    <pickup>
-        <SpeedPickup template=smallspeedpickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "mediumspeedpickup"
     pickupName = "Medium Speed Boost"
     pickupDescription = "Multiplies Speed of the Ship by a bigger amount."
     spawnerTemplate = "mediumspeedpickupRepresentation"
     inventoryRepresentation = "MediumSpeed"
->
-    <pickup>
-        <SpeedPickup template=mediumspeedpickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "hugespeedpickup"
     pickupName = "Huge Speed Boost"
     pickupDescription = "Multiplies Speed of the Ship by a huge amount."
     spawnerTemplate = "hugespeedpickupRepresentation"
     inventoryRepresentation = "HugeSpeed"
->
-    <pickup>
-        <SpeedPickup template=hugespeedpickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "smalljumppickup"
     pickupName = "Small Jump Boost"
     pickupDescription = "Boosts the Ship with a massive amount for a very short time."
     spawnerTemplate = "smalljumppickupRepresentation"
     inventoryRepresentation = "SmallSpeed"
->
-    <pickup>
-        <SpeedPickup template=smalljumppickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Invisible pickups -->
 
 <PickupRepresentation
+    name = "smallinvisiblepickup"
     pickupName = "Small Invisibility"
     pickupDescription = "Makes you invisible for 5 seconds."
     spawnerTemplate = "smallinvisiblepickupRepresentation"
     inventoryRepresentation = "SmallInvisible"
->
-    <pickup>
-        <InvisiblePickup template=smallinvisiblepickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "mediuminvisiblepickup"
     pickupName = "Medium Invisibility"
     pickupDescription = "Makes you invisible for 10 seconds."
     spawnerTemplate = "mediuminvisiblepickupRepresentation"
     inventoryRepresentation = "MediumInvisible"
->
-    <pickup>
-        <InvisiblePickup template=mediuminvisiblepickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "hugeinvisiblepickup"
     pickupName = "Huge Invisibility"
     pickupDescription = "Makes you invisible for 20 seconds."
     spawnerTemplate = "hugeinvisiblepickupRepresentation"
     inventoryRepresentation = "HugeInvisible"
->
-    <pickup>
-        <InvisiblePickup template=hugeinvisiblepickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Pickup Collection pickups -->
 
 <PickupRepresentation
+    name = "triplehealthspeedinvisibilitypickup"
     pickupName = "Tri Pickup"
     pickupDescription = "Adds health, speed and invisibility."
     spawnerTemplate = "triplehealthspeedinvisibilitypickupRepresentation"
->
-    <pickup>
-        <PickupCollection template=triplehealthspeedinvisibilitypickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Drone Pickup -->
 
 <PickupRepresentation
+    name = "dronepickup"
     pickupName = "Drone Pickup"
     pickupDescription = "Adds a Drone to the Player's Spaceship"
     spawnerTemplate = "dronepickupRepresentation"
->
-    <pickup>
-        <DronePickup template=dronepickup />
-    </pickup>
-</PickupRepresentation>
+/>
+
+<!-- DamageBoost Pickup -->
+
+<PickupRepresentation
+    name = "smalldamageboostpickup"
+    pickupName = "Small DamageBoost Pickup"
+    pickupDescription = "Multiplies the ship damage with 2."
+    spawnerTemplate = "smalldamageboostpickupRepresentation"
+    inventoryRepresentation = "SmallDamageBoost"
+/>
+
+<PickupRepresentation
+    name = "mediumdamageboostpickup"
+    pickupName = "Medium DamageBoost Pickup"
+    pickupDescription = "Multiplies the ship damage with 5."
+    spawnerTemplate = "mediumdamageboostpickupRepresentation"
+    inventoryRepresentation = "MediumDamageBoost"
+/>
+
+<PickupRepresentation
+    name = "largedamageboostpickup"
+    pickupName = "Large DamageBoost Pickup"
+    pickupDescription = "Multiplies the ship damage with 7."
+    spawnerTemplate = "largedamageboostpickupRepresentation"
+    inventoryRepresentation = "LargeDamageBoost"
+/>
 
 <!-- Shrink Pickup -->
 
 <PickupRepresentation
+    name = "smallshrinkpickup"
     pickupName = "Small Shrink"
     pickupDescription = "Shrinks the Ship by a bit"
     spawnerTemplate = "smallshrinkpickupRepresentation"
     inventoryRepresentation = "SmallShrink"
->
-    <pickup>
-        <ShrinkPickup template=smallshrinkpickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "mediumshrinkpickup"
     pickupName = "Medium Shrink"
     pickupDescription = "Shrinks the Ship"
     spawnerTemplate = "mediumshrinkpickupRepresentation"
     inventoryRepresentation = "MediumShrink"
->
-    <pickup>
-        <ShrinkPickup template=mediumshrinkpickup />
-    </pickup>
-</PickupRepresentation>
-
-<PickupRepresentation
+/>
+
+<PickupRepresentation
+    name = "hugeshrinkpickup"
     pickupName = "Huge Shrink"
     pickupDescription = "Shrinks the Ship considerably"
     spawnerTemplate = "hugeshrinkpickupRepresentation"
     inventoryRepresentation = "HugeShrink"
->
-    <pickup>
-        <ShrinkPickup template=hugeshrinkpickup />
-    </pickup>
-</PickupRepresentation>
-
+/>
Index: code/trunk/data/levels/includes/towerWeaponSettings.oxi
===================================================================
--- code/trunk/data/levels/includes/towerWeaponSettings.oxi	(revision 9348)
+++ code/trunk/data/levels/includes/towerWeaponSettings.oxi	(revision 9348)
@@ -0,0 +1,55 @@
+     <weaponslots>
+      <WeaponSlot position="-15.0,-1.5,0" />
+      <WeaponSlot position=" 15.0,-1.5,0" />
+      <WeaponSlot position="    0,   0,0" />
+    </weaponslots>
+    <weaponsets>
+      <WeaponSet firemode=0 />
+      <WeaponSet firemode=1 />
+      <WeaponSet firemode=2 />
+      <WeaponSet firemode=3 />
+    </weaponsets>
+    <weapons>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
+          <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
+          <DefaultWeaponmodeLink firemode=2 weaponmode=2 />
+          <DefaultWeaponmodeLink firemode=3 weaponmode=3 />
+        </links>
+        <Weapon>
+          <attached>
+            <Model mesh="LightningGun.mesh" pitch="100" roll="90" yaw="90" position="0,-1.3,200" scale=1/>
+            <Model mesh="LightningGun-s.mesh" pitch="78" roll="90" yaw="90" position="0.2,-1.3,200" scale=1 />
+            <Model mesh="hs-w01_reduced.mesh" roll="45" pitch="-76" yaw="-45" position="-1.5,1,200" scale=10 />
+          </attached>
+          <HsW01 mode=0 munitionpershot=0 delay=0.005 damage=31.4159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=0 delay=0     damage=314.159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />
+          <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 />
+        </Weapon>
+        
+        <Weapon>
+          <attached>
+            <Model mesh="LightningGun.mesh" pitch="103" roll="90" yaw="90" position="0,-1.35,0" />
+            <Model mesh="LightningGun-s.mesh" pitch="103" roll="90" yaw="90" position="0.2,-1.35,0" />
+            <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-104" yaw="-90" position="0,1.3,0.3" scale=0.6 />
+          </attached>
+          <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
+          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />
+          <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 />
+        </Weapon>
+        <Weapon>
+          <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 />
+          <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />
+        </Weapon>
+        
+      </WeaponPack>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=1 weaponmode=0 />
+        </links>
+        <!--Weapon>
+          <EnergyDrink mode=0 munitionpershot=0 delay=0  material="Flares/point_lensflare"muzzleoffset="2,-0.2,-1" />
+        </Weapon-->
+      </WeaponPack>
+    </weapons>
Index: code/trunk/data/levels/includes/weaponSettingsFPS.oxi
===================================================================
--- code/trunk/data/levels/includes/weaponSettingsFPS.oxi	(revision 9016)
+++ code/trunk/data/levels/includes/weaponSettingsFPS.oxi	(revision 9348)
@@ -1,7 +1,9 @@
     <weaponslots>
       <WeaponSlot position="0,0,0" yaw=0 pitch=0 roll=0 />
- <!--      <WeaponSlot position="-0.5,0.8,2.5" yaw=0 pitch=0 roll=0 />
+<!--
+      <WeaponSlot position="-0.5,0.8,2.5" yaw=0 pitch=0 roll=0 />
       <WeaponSlot position="15,-1.5,-25" yaw=0 pitch=0 roll=0 />
-      <WeaponSlot position="0,0,-45" yaw=0 pitch=0 roll=0 /> -->
+      <WeaponSlot position="0,0,-45" yaw=0 pitch=0 roll=0 />
+-->
     </weaponslots>
     <weaponsets>
@@ -11,12 +13,12 @@
     <weapons>
       <WeaponPack firemode=0>
-	<links>
+        <links>
           <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
           <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
           <DefaultWeaponmodeLink firemode=2 weaponmode=2 />
         </links>
-	<Weapon>
-	   <HsW01 mode=0 munitionpershot=0 delay=0.0 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.7, -0.3, -3" />
-           <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20/>
+        <Weapon>
+          <HsW01 mode=0 munitionpershot=0 delay=0.0 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.7, -0.3, -3" />
+          <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20/>
         </Weapon>
         <LaserGun
@@ -28,5 +30,5 @@
             unlimitedMunition=true
         />
-  <!--       <LaserGun
+        <!--LaserGun
             position="0,0,0"
             munitionType="LaserGunMunition"
@@ -45,5 +47,5 @@
             speed="600"
             unlimitedMunition=true
-        /> -->
+        /-->
       </WeaponPack>
     </weapons>
