added also splash and droplets to sd and refactored theme.cfg, not all themes updated
authorHenek
Thu, 30 Dec 2010 01:44:55 +0100
changeset 4782 603916ddf4b6
parent 4780 8571151411b3
child 4783 f9564c66a086
added also splash and droplets to sd and refactored theme.cfg, not all themes updated
hedgewars/uLandObjects.pas
hedgewars/uStore.pas
hedgewars/uTypes.pas
hedgewars/uVariables.pas
hedgewars/uVisualGears.pas
share/hedgewars/Data/Graphics/SuddenDeath/SDClouds.png
share/hedgewars/Data/Graphics/SuddenDeath/SDDroplet.png
share/hedgewars/Data/Graphics/SuddenDeath/SDSplash.png
share/hedgewars/Data/Graphics/SuddenDeath/SDWater.png
share/hedgewars/Data/Themes/Art/theme.cfg
share/hedgewars/Data/Themes/Hell/theme.cfg
share/hedgewars/Data/Themes/Island/theme.cfg
share/hedgewars/Data/Themes/Jungle/theme.cfg
share/hedgewars/Data/Themes/Nature/theme.cfg
share/hedgewars/Data/Themes/Olympics/theme.cfg
share/hedgewars/Data/Themes/Planes/theme.cfg
share/hedgewars/Data/Themes/Sheep/theme.cfg
share/hedgewars/Data/Themes/Snow/theme.cfg
share/hedgewars/Data/Themes/Stage/theme.cfg
share/hedgewars/Data/Themes/Underwater/theme.cfg
--- a/hedgewars/uLandObjects.pas	Wed Dec 29 16:21:30 2010 -0500
+++ b/hedgewars/uLandObjects.pas	Thu Dec 30 01:44:55 2010 +0100
@@ -30,7 +30,7 @@
 
 implementation
 uses uStore, uConsts, uConsole, uRandom, uVisualGears, uSound, GLunit,
-     uTypes, uVariables, uUtils, uDebug;
+     uTypes, uVariables, uUtils, uDebug, sysutils;
 
 const MaxRects = 512;
       MAXOBJECTRECTS = 16;
@@ -366,7 +366,7 @@
 end;
 
 procedure ReadThemeInfo(var ThemeObjects: TThemeObjects; var SprayObjects: TSprayObjects);
-var s: shortstring;
+var s, key: shortstring;
     f: textfile;
     i, ii, numFlakes: LongInt;
     c1, c2: TSDL_Color;
@@ -388,77 +388,185 @@
 filemode:= 0; // readonly
 Reset(f);
 
-// read sky and explosion border colors
-Readln(f, c1.r, c1.g, c1. b);
-Readln(f, c2.r, c2.g, c2. b);
-// read water gradient colors
-Readln(f, WaterColorArray[0].r, WaterColorArray[0].g, WaterColorArray[0].b);
-Readln(f, WaterColorArray[2].r, WaterColorArray[2].g, WaterColorArray[2].b, cWaterOpacity);
-WaterColorArray[0].a := 255;
-WaterColorArray[2].a := 255;
-WaterColorArray[1]:= WaterColorArray[0];
-WaterColorArray[3]:= WaterColorArray[2];
+ThemeObjects.Count:= 0;
+SprayObjects.Count:= 0;
 
-glClearColor(c1.r / 255, c1.g / 255, c1.b / 255, 0.99); // sky color
-cExplosionBorderColor:= c2.value or AMask;
+while not eof(f) do
+    begin
+    Readln(f, s);
+    if Length(s) = 0 then continue;
+    if s[1] = ';' then continue;
+
+    i:= Pos('=', s);
+    key:= Trim(Copy(s, 1, i - 1));
+    Delete(s, 1, i);
 
-ReadLn(f, s);
-if MusicFN = '' then MusicFN:= s;
-
-ReadLn(f, cCloudsNumber);
-
-// TODO - adjust all the theme cloud numbers. This should not be a permanent fix
-//cCloudsNumber:= cCloudsNumber * (LAND_WIDTH div 2048);
-
-// scale number of clouds depending on screen space (two times land width)
-cCloudsNumber:= cCloudsNumber * cScreenSpace div LAND_WIDTH;
-
-Readln(f, ThemeObjects.Count);
-for i:= 0 to Pred(ThemeObjects.Count) do
-    begin
-    Readln(f, s); // filename
-    with ThemeObjects.objs[i] do
+    if key = 'sky' then
+        begin
+        i:= Pos(',', s);
+        c1.r:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        i:= Pos(',', s);
+        c1.g:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        c1.b:= StrToInt(Trim(s));
+        glClearColor(c1.r / 255, c1.g / 255, c1.b / 255, 0.99);
+        end
+    else if key = 'border' then
+        begin
+        i:= Pos(',', s);
+        c2.r:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        i:= Pos(',', s);
+        c2.g:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        c2.b:= StrToInt(Trim(s));
+        cExplosionBorderColor:= c2.value or AMask;
+        end
+    else if key = 'water-top' then
+        begin
+        i:= Pos(',', s);
+        WaterColorArray[0].r:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        i:= Pos(',', s);
+        WaterColorArray[0].g:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        WaterColorArray[0].b:= StrToInt(Trim(s));
+        WaterColorArray[0].a := 255;
+        WaterColorArray[1]:= WaterColorArray[0];
+        end
+    else if key = 'water-bottom' then
+        begin
+        i:= Pos(',', s);
+        WaterColorArray[2].r:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        i:= Pos(',', s);
+        WaterColorArray[2].g:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        WaterColorArray[2].b:= StrToInt(Trim(s));
+        WaterColorArray[2].a := 255;
+        WaterColorArray[3]:= WaterColorArray[2];
+        end
+    else if key = 'water-opacity' then cWaterOpacity:= StrToInt(Trim(s))
+    else if key = 'music' then MusicFN:= Trim(s)
+    else if key = 'clouds' then cCloudsNumber:= StrToInt(Trim(s)) * cScreenSpace div LAND_WIDTH
+    else if key = 'object' then
+        begin
+        inc(ThemeObjects.Count);
+        with ThemeObjects.objs[Pred(ThemeObjects.Count)] do
             begin
-            Surf:= LoadImage(Pathz[ptCurrTheme] + '/' + s, ifCritical or ifTransparent or ifIgnoreCaps);
+            i:= Pos(',', s);
+            Surf:= LoadImage(Pathz[ptCurrTheme] + '/' + Trim(Copy(s, 1, i - 1)), ifCritical or ifTransparent or ifIgnoreCaps);
             Width:= Surf^.w;
             Height:= Surf^.h;
-            Read(f, Maxcnt);
+            Delete(s, 1, i);
+            i:= Pos(',', s);
+            Maxcnt:= StrToInt(Trim(Copy(s, 1, i - 1)));
+            Delete(s, 1, i);
             if (Maxcnt < 1) or (Maxcnt > MAXTHEMEOBJECTS) then OutError('Object''s max count should be between 1 and '+ inttostr(MAXTHEMEOBJECTS) +' (it was '+ inttostr(Maxcnt) +').', true);
             with inland do
                 begin
-                Read(f, x, y, w, h);
+                i:= Pos(',', s);
+                x:= StrToInt(Trim(Copy(s, 1, i - 1)));
+                Delete(s, 1, i);
+                i:= Pos(',', s);
+                y:= StrToInt(Trim(Copy(s, 1, i - 1)));
+                Delete(s, 1, i);
+                i:= Pos(',', s);
+                w:= StrToInt(Trim(Copy(s, 1, i - 1)));
+                Delete(s, 1, i);
+                i:= Pos(',', s);
+                h:= StrToInt(Trim(Copy(s, 1, i - 1)));
+                Delete(s, 1, i);
                 CheckRect(Width, Height, x, y, w, h)
                 end;
-            Read(f, rectcnt);
+            i:= Pos(',', s);
+            rectcnt:= StrToInt(Trim(Copy(s, 1, i - 1)));
+            Delete(s, 1, i);
             for ii:= 1 to rectcnt do
                 with outland[ii] do
                     begin
-                    Read(f, x, y, w, h);
+                    i:= Pos(',', s);
+                    x:= StrToInt(Trim(Copy(s, 1, i - 1)));
+                    Delete(s, 1, i);
+                    i:= Pos(',', s);
+                    y:= StrToInt(Trim(Copy(s, 1, i - 1)));
+                    Delete(s, 1, i);
+                    i:= Pos(',', s);
+                    w:= StrToInt(Trim(Copy(s, 1, i - 1)));
+                    Delete(s, 1, i);
+                    if ii = rectcnt then h:= StrToInt(Trim(s))
+                    else
+                        begin
+                        i:= Pos(',', s);
+                        h:= StrToInt(Trim(Copy(s, 1, i - 1)));
+                        Delete(s, 1, i)
+                        end;
                     CheckRect(Width, Height, x, y, w, h)
                     end;
-            ReadLn(f)
+            end;
+        end
+    else if key = 'spray' then
+        begin
+        inc(SprayObjects.Count);
+        with SprayObjects.objs[Pred(SprayObjects.Count)] do
+            begin
+            i:= Pos(',', s);
+            Surf:= LoadImage(Pathz[ptCurrTheme] + '/' + Trim(Copy(s, 1, i - 1)), ifCritical or ifTransparent or ifIgnoreCaps);
+            Width:= Surf^.w;
+            Height:= Surf^.h;
+            Delete(s, 1, i);
+            Maxcnt:= StrToInt(Trim(s));
             end;
+        end
+    else if key = 'flakes' then
+        begin
+        i:= Pos(',', s);
+        vobCount:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        if vobCount > 0 then
+            begin
+            i:= Pos(',', s);
+            vobFramesCount:= StrToInt(Trim(Copy(s, 1, i - 1)));
+            Delete(s, 1, i);
+            i:= Pos(',', s);
+            vobFrameTicks:= StrToInt(Trim(Copy(s, 1, i - 1)));
+            Delete(s, 1, i);
+            i:= Pos(',', s);
+            vobVelocity:= StrToInt(Trim(Copy(s, 1, i - 1)));
+            Delete(s, 1, i);
+            vobFallSpeed:= StrToInt(Trim(s));
+            end;
+        end
+    else if key = 'sd-water-top' then
+        begin
+        i:= Pos(',', s);
+        SDWaterColorArray[0].r:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        i:= Pos(',', s);
+        SDWaterColorArray[0].g:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        SDWaterColorArray[0].b:= StrToInt(Trim(s));
+        SDWaterColorArray[0].a := 255;
+        SDWaterColorArray[1]:= SDWaterColorArray[0];
+        end
+    else if key = 'sd-water-bottom' then
+        begin
+        i:= Pos(',', s);
+        SDWaterColorArray[2].r:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        i:= Pos(',', s);
+        SDWaterColorArray[2].g:= StrToInt(Trim(Copy(s, 1, i - 1)));
+        Delete(s, 1, i);
+        SDWaterColorArray[2].b:= StrToInt(Trim(s));
+        SDWaterColorArray[2].a := 255;
+        SDWaterColorArray[3]:= SDWaterColorArray[2];
+        end
+    else if key = 'sd-water-opacity' then continue //cSDWaterOpacity:= StrToInt(Trim(s))
+    else if key = 'sd-clouds' then continue //cSDCloudsNumber:= StrToInt(Trim(s)) * cScreenSpace div LAND_WIDTH
+    else if key = 'sd-flakes' then continue //TODO: make :P
     end;
 
-// sprays
-Readln(f, SprayObjects.Count);
-for i:= 0 to Pred(SprayObjects.Count) do
-    begin
-    Readln(f, s); // filename
-    with SprayObjects.objs[i] do
-         begin
-         Surf:= LoadImage(Pathz[ptCurrTheme] + '/' + s, ifCritical or ifTransparent or ifIgnoreCaps);
-         Width:= Surf^.w;
-         Height:= Surf^.h;
-         ReadLn(f, Maxcnt)
-         end;
-    end;
-
-// snowflakes
-Readln(f, vobCount);
-if vobCount > 0 then
-    Readln(f, vobFramesCount, vobFrameTicks, vobVelocity, vobFallSpeed);
-
 // adjust amount of flakes scaled by screen space
 vobCount:= longint(vobCount);
 numFlakes:= vobCount * cScreenSpace div LAND_WIDTH;
--- a/hedgewars/uStore.pas	Wed Dec 29 16:21:30 2010 -0500
+++ b/hedgewars/uStore.pas	Thu Dec 30 01:44:55 2010 +0100
@@ -274,7 +274,7 @@
 for ii:= Low(TSprite) to High(TSprite) do
     with SpritesData[ii] do
         // FIXME - add a sprite attribute
-        if ((cReducedQuality and rqNoBackground) = 0) or (not (ii in [sprSky, sprSkyL, sprSkyR, sprHorizont, sprHorizontL, sprHorizontR, sprFlake, sprSplash, sprDroplet]) or (((Theme = 'Snow') or (Theme = 'Christmas')) and (ii = sprFlake))) then // FIXME: hack
+        if ((cReducedQuality and rqNoBackground) = 0) or (not (ii in [sprSky, sprSkyL, sprSkyR, sprHorizont, sprHorizontL, sprHorizontR, sprFlake, sprSplash, sprDroplet, sprSDSplash, sprSDDroplet]) or (((Theme = 'Snow') or (Theme = 'Christmas')) and ((ii = sprFlake) or (ii = sprSDFlake)))) then // FIXME: hack
         begin
             if AltPath = ptNone then
                 if ii in [sprHorizontL, sprHorizontR, sprSkyL, sprSkyR] then // FIXME: hack
--- a/hedgewars/uTypes.pas	Wed Dec 29 16:21:30 2010 -0500
+++ b/hedgewars/uTypes.pas	Thu Dec 30 01:44:55 2010 +0100
@@ -52,7 +52,8 @@
             sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote,
             sprSMineOff, sprSMineOn, sprHandSMine, sprHammer,
             sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb,
-            sprBulletHit, sprSnowball, sprHandSnowball, sprSnow, sprSDFlake, sprSDWater, sprSDCloud
+            sprBulletHit, sprSnowball, sprHandSnowball, sprSnow,
+            sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet
             );
 
     // Gears that interact with other Gears and/or Land
--- a/hedgewars/uVariables.pas	Wed Dec 29 16:21:30 2010 -0500
+++ b/hedgewars/uVariables.pas	Thu Dec 30 01:44:55 2010 +0100
@@ -567,7 +567,11 @@
             (FileName:    'SDWater'; Path: ptCurrTheme; AltPath: ptSuddenDeath; Texture: nil; Surface: nil;
             Width:   0; Height:  0; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: true; getImageDimensions: true),// sprSDWater
             (FileName:   'SDClouds'; Path: ptCurrTheme; AltPath: ptSuddenDeath; Texture: nil; Surface: nil;
-            Width: 256; Height:128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true) // sprSDCloud
+            Width: 256; Height:128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprSDCloud
+            (FileName:   'SDSplash'; Path: ptCurrTheme; AltPath: ptSuddenDeath; Texture: nil; Surface: nil;
+            Width:  80; Height: 50; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSDSplash
+            (FileName:  'SDDroplet'; Path: ptCurrTheme; AltPath: ptSuddenDeath; Texture: nil; Surface: nil;
+            Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true)// sprSDDroplet
             );
 
 
@@ -2179,13 +2183,13 @@
         LAND_HEIGHT_MASK:= $FFFFF800
         end;
 
-    SDWaterColorArray[0].r := 184;
-    SDWaterColorArray[0].g := 152;
-    SDWaterColorArray[0].b := 195;
+    SDWaterColorArray[0].r := 182;
+    SDWaterColorArray[0].g := 144;
+    SDWaterColorArray[0].b := 201;
     SDWaterColorArray[0].a := 255;
-    SDWaterColorArray[2].r := 152;
-    SDWaterColorArray[2].g := 120;
-    SDWaterColorArray[2].b := 163;
+    SDWaterColorArray[2].r := 150;
+    SDWaterColorArray[2].g := 112;
+    SDWaterColorArray[2].b := 169;
     SDWaterColorArray[2].a := 255;
     SDWaterColorArray[1]:= SDWaterColorArray[0];
     SDWaterColorArray[3]:= SDWaterColorArray[2];
--- a/hedgewars/uVisualGears.pas	Wed Dec 29 16:21:30 2010 -0500
+++ b/hedgewars/uVisualGears.pas	Thu Dec 30 01:44:55 2010 +0100
@@ -486,8 +486,14 @@
                                 end;
                             DrawRotatedF(sprEgg, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
                             end;
-                vgtSplash: DrawSprite(sprSplash, round(Gear^.X) + WorldDx - 40, round(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37));
-                vgtDroplet: DrawSprite(sprDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);
+                 vgtSplash: if SuddenDeathDmg then
+                                DrawSprite(sprSDSplash, round(Gear^.X) + WorldDx - 40, round(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37))
+                            else
+                                DrawSprite(sprSplash, round(Gear^.X) + WorldDx - 40, round(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37));
+                vgtDroplet: if SuddenDeathDmg then
+                                DrawSprite(sprSDDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame)
+                            else
+                                DrawSprite(sprDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);
                vgtBeeTrace: begin
                             if Gear^.FrameTicks < $FF then
                                 Tint($FF, $FF, $FF, Gear^.FrameTicks div 2)
Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDClouds.png has changed
Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDDroplet.png has changed
Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDSplash.png has changed
Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDWater.png has changed
--- a/share/hedgewars/Data/Themes/Art/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Art/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,18 +1,11 @@
-7 13 40
-13 17 22
-$01 $3b $66
-$01 $3b $66 $80
-Art.ogg
-0
-4
-Soup
-3 3 220 130 18 1 0 0 142 150
-Mona
-2 0 190 191 8 1 0 0 191  150
-Schrei
-1 0 345 130 1 1 0 0 160 175
-Zeit
-2 0 153 45 5 1 90 20 106 105
-0
-0
-30 0 0 0
+sky = 7, 13, 40
+border = 13, 17, 22
+water-top = $01, $3b, $66
+water-bottom = $01, $3b, $66
+water-opacity = $80
+music = Art.ogg
+clouds = 0
+object = Soup, 3, 3, 220, 130, 18, 1, 0, 0, 142, 150
+object = Mona, 2, 0, 190, 191, 8, 1, 0, 0, 191, 150
+object = Schrei, 1, 0, 345, 130, 1, 1, 0, 0, 160, 175
+object = Zeit, 2, 0, 153, 45, 5, 1, 90, 20, 106, 105
--- a/share/hedgewars/Data/Themes/Hell/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Hell/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,18 +1,12 @@
-10 10 10
-245 118 0
-$A7 $0B $0C
-$A1 $0A $0A $80
-hell.ogg
-9
-4
-plant1
-3 83 215 92 35 1 0 0 250 190
-plant2
-3 118 115 41 20 1 0 0 159 110
-plant3
-3 0 115 70 40 1 8 0 60 100
-plant4
-3 20 200 25 5 1 0 0 70 150
-0
-20
-30 0 0 250
+sky = 10, 10, 10
+border = 245, 118, 0
+water-top = $A7, $0B, $0C
+water-bottom = $A1, $0A, $0A
+water-opacity = $80
+music = hell.ogg
+clouds = 9
+object = plant1, 3, 83, 215, 92, 35, 1, 0, 0, 250, 190
+object = plant2, 3, 118, 115, 41, 20, 1, 0, 0, 159, 110
+object = plant3, 3, 0, 115, 70, 40, 1, 8, 0, 60, 100
+object = plant4, 3, 20, 200, 25, 5, 1, 0, 0, 70, 150
+flakes = 20, 30, 0, 0, 250
--- a/share/hedgewars/Data/Themes/Island/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Island/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,20 +1,13 @@
-21 20 38
-242 230 124
-$54 $5C $9D
-$34 $3C $7D $80
-pirate.ogg
-9
-5
-anchor
-3 65 258 80 2 1 0 0 240 215
-plant1
-3 10 192 60 2 1 33 0 149 152
-plant2
-3 55 218 30 2 1 0 0 240 175
-plant3
-3 20 0 60 1 1 0 15 100 44
-plant4
-3 78 5 2 60 1 0 0 65 110
-0
-100
-2 500 100 300
+sky = 21, 20, 38
+border = 242, 230, 124
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = pirate.ogg
+clouds = 9
+object = anchor, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = plant1, 3, 10, 192, 60, 2, 1, 33, 0, 149, 152
+object = plant2, 3, 55, 218, 30, 2, 1, 0, 0, 240, 175
+object = plant3, 3, 20, 0, 60, 1, 1, 0, 15, 100, 44
+object = plant4, 3, 78, 5, 2, 60, 1, 0, 0, 65, 110
+flakes = 100, 2, 500, 100, 300
--- a/share/hedgewars/Data/Themes/Jungle/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Jungle/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,30 +1,18 @@
-141 149 164
-75 103 25
-$A7 $6A $32
-$B3 $78 $1B $80
-oriental.ogg
-20
-7
-PalmTree
-1 141 225 25 5 1 0 0 230 190
-Flowers
-1 5 65 180 5 1 0 0 150 50
-Liana
-2 0 0 25 10 1 0 40 25 160
-Monkey
-1 20 145 60 5 1 0 0 130 130
-Snake
-1 30 95 40 5 1 0 0 110 75
-FernRight
-2 0 0 20 70 1 40 0 165 70
-FernLeft
-2 185 0 20 70 1 0 0 165 70
-3
-FlowerRed
-2
-FlowerBlue
-2
-Spider
-2
-100
-1 1000 50 50
+sky = 141, 149, 164
+border = 75, 103, 25
+water-top = $A7, $6A, $32
+water-bottom = $B3, $78, $1B
+water-opacity = $80
+music = oriental.ogg
+clouds = 20
+object = PalmTree, 1, 141, 225, 25, 5, 1, 0, 0, 230, 190
+object = Flowers, 1, 5, 65, 180, 5, 1, 0, 0, 150, 50
+object = Liana, 2, 0, 0, 25, 10, 1, 0, 40, 25, 160
+object = Monkey, 1, 20, 145, 60, 5, 1, 0, 0, 130, 130
+object = Snake, 1, 30, 95, 40, 5, 1, 0, 0, 110, 75
+object = FernRight, 2, 0, 0, 20, 70, 1, 40, 0, 165, 70
+object = FernLeft, 2, 185, 0, 20, 70, 1, 0, 0, 165, 70
+spray = FlowerRed, 2
+spray = FlowerBlue, 2
+spray = Spider, 2
+flakes = 100, 1, 1000, 50, 50
--- a/share/hedgewars/Data/Themes/Nature/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Nature/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,33 +1,19 @@
-19 18 82
-176 51 0
-$54 $5C $9D
-$34 $3C $7D
-$80
-Nature.ogg
-9
-11
-plant1
-3 65 258 80 2 1 0 0 240 215
-plant2
-3 21 163 33 15 1 60 62 87 95
-plant3
-3 40 0 25 1 1 0 35 100 65
-plant4
-3 98 10 2 25 1 0 0 70 110
-mole
-1 0 129 161 71 1 13 0 142 99
-mole2
-1 0 129 161 71 1 13 0 142 99
-mole3
-1 0 129 161 71 1 13 0 142 99
-butterfly
-1 43 176 56 6 1 21 14 91 46
-snail
-3 51 94 52 3 1 0 0 135 87
-mushroom
-3 14 77 24 2 1 0 0 76 73
-mushroom2
-3 24 78 48 7 2 0 0 80 36 15 38 57 30
-0
-55
-40 99999999 30 200
+sky = 19, 18, 82
+border = 176, 51, 0
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = Nature.ogg
+clouds = 9
+object = plant1, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = plant2, 3, 21, 163, 33, 15, 1, 60, 62, 87, 95
+object = plant3, 3, 40, 0, 25, 1, 1, 0, 35, 100, 65
+object = plant4, 3, 98, 10, 2, 25, 1, 0, 0, 70, 110
+object = mole, 1, 0, 129, 161, 71, 1, 13, 0, 142, 99
+object = mole2, 1, 0, 129, 161, 71, 1, 13, 0, 142, 99
+object = mole3, 1, 0, 129, 161, 71, 1, 13, 0, 142, 99
+object = butterfly, 1, 43, 176, 56, 6, 1, 21, 14, 91, 46
+object = snail, 3, 51, 94, 52, 3, 1, 0, 0, 135, 87
+object = mushroom, 3, 14, 77, 24, 2, 1, 0, 0, 76, 73
+object = mushroom2, 3, 24, 78, 48, 7, 2, 0, 0, 80, 36, 15, 38, 57, 30
+flakes = 55, 40, 99999999, 30, 200
--- a/share/hedgewars/Data/Themes/Olympics/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Olympics/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,19 +1,12 @@
-177 190 216
-204 200 168
-$54 $5C $9D
-$34 $3C $7D
-$80
-Olympics.ogg
-9
-4
-Statue
-3 42 258 115 2 1 0 0 165 240
-Column01
-3 21 258 80 2 1 0 0 110 240
-Column02
-3 12 258 76 2 1 0 0 110 240
-Column03
-3 3 173 84 2 1 0 0 90 155
-0
-50
-1 1000 0 10
+sky = 177, 190, 216
+border = 204, 200, 168
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = Olympics.ogg
+clouds = 9
+object = Statue, 3, 42, 258, 115, 2, 1, 0, 0, 165, 240
+object = Column01, 3, 21, 258, 80, 2, 1, 0, 0, 110, 240
+object = Column02, 3, 12, 258, 76, 2, 1, 0, 0, 110, 240
+object = Column03, 3, 3, 173, 84, 2, 1, 0, 0, 90, 155
+flakes = 50, 1, 1000, 0, 10
--- a/share/hedgewars/Data/Themes/Planes/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Planes/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,9 +1,7 @@
-21 20 38
-177 175 49
-$54 $5C $9D
-$34 $3C $7D $80
-City.ogg
-9
-0
-0
-0
+sky = 21, 20, 38
+border = 177, 175, 49
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = City.ogg
+clouds = 9
--- a/share/hedgewars/Data/Themes/Sheep/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Sheep/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,40 +1,23 @@
-66 71 141
-0 88 0
-$54 $5C $9D
-$34 $3C $7D $80
-Sheep.ogg
-4
-7
-fleur
-3 45 127 50 3 1 0 0 120 105
-mouton1
-3 88 222 122 4 1 0 0 275 200
-mouton2
-3 84 245 125 20 1 0 0 275 200
-mouton3
-3 152 255 176 15 1 0 0 440 230
-mouton4
-3 148 245 162 20 1 0 0 440 205
-barriere
-3 34 190 300 10 1 0 0 381 140
-rocher
-3 16 90 69 3 1 0 0 110 65
-8
-grass
-7
-grass2
-7
-grassp
-7
-grassp2
-7
-fleurland
-7
-fleurland2
-7
-fleurland3
-7
-fleurland4
-7
-20
-1000 1000 25 1
+sky = 66, 71, 141
+border = 0, 88, 0
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = Sheep.ogg
+clouds = 4
+object = fleur, 3, 45, 127, 50, 3, 1, 0, 0, 120, 105
+object = mouton1, 3, 88, 222, 122, 4, 1, 0, 0, 275, 200
+object = mouton2, 3, 84, 245, 125, 20, 1, 0, 0, 275, 200
+object = mouton3, 3, 152, 255, 176, 15, 1, 0, 0, 440, 230
+object = mouton4, 3, 148, 245, 162, 20, 1, 0, 0, 440, 205
+object = barriere, 3, 34, 190, 300, 10, 1, 0, 0, 381, 140
+object = rocher, 3, 16, 90, 69, 3, 1, 0, 0, 110, 65
+spray = grass, 7
+spray = grass2, 7
+spray = grassp, 7
+spray = grassp2, 7
+spray = fleurland, 7
+spray = fleurland2, 7
+spray = fleurland3, 7
+spray = fleurland4, 7
+flakes = 20, 1000, 1000, 25, 1
--- a/share/hedgewars/Data/Themes/Snow/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Snow/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,18 +1,12 @@
-21 20 38
-141 151 213
-$54 $5C $9D
-$34 $3C $7D $80
-snow.ogg
-9
-4
-plant1
-3 65 258 80 2 1 0 0 240 215
-plant2
-3 0 85 25 25 2 0 0 170 70 50 70 120 40
-plant3
-3 26 0 48 1 1 25 15 50 60
-plant4
-3 45 4 1 45 1 20 45 20 60
-0
-100
-3 99999999 100 300
+sky = 21, 20, 38
+border = 141, 151, 213
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = snow.ogg
+clouds = 9
+object = plant1, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = plant2, 3, 0, 85, 25, 25, 2, 0, 0, 170, 70, 50, 70, 120, 40
+object = plant3, 3, 26, 0, 48, 1, 1, 25, 15, 50, 60
+object = plant4, 3, 45, 4, 1, 45, 1, 20, 45, 20, 60
+flakes = 100, 3, 99999999, 100, 300
--- a/share/hedgewars/Data/Themes/Stage/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Stage/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,30 +1,18 @@
-0 0 0
-106 106 106
-72 105 127
-37 76 91 128
-Rock.ogg
-0
-6
-MicR
-1 0 28 7 24 1 25 0 125 52
-MicL
-1 145 27 5 25 1 0 0 110 52
-Bass
-1 243 373 20 5 1 0 0 330 310
-Light
-1 10 0 65 10 1 0 42 140 122
-Box
-1 0 170 150 8 1 0 0 150 145
-drum
-1 0 202 239 4 1 39 0 200 150
-4
-poster1
-2
-poster2
-2
-poster3
-2
-poster4
-2
-100
-3 99999999 10 20
+sky = 0, 0, 0
+border = 106, 106, 106
+water-top = 72, 105, 127
+water-bottom = 37, 76, 91
+water-opacity = 128
+music = Rock.ogg
+clouds = 0
+object = MicR, 1, 0, 28, 7, 24, 1, 25, 0, 125, 52
+object = MicL, 1, 145, 27, 5, 25, 1, 0, 0, 110, 52
+object = Bass, 1, 243, 373, 20, 5, 1, 0, 0, 330, 310
+object = Light, 1, 10, 0, 65, 10, 1, 0, 42, 140, 122
+object = Box, 1, 0, 170, 150, 8, 1, 0, 0, 150, 145
+object = drum, 1, 0, 202, 239, 4, 1, 39, 0, 200, 150
+spray = poster1, 2
+spray = poster2, 2
+spray = poster3, 2
+spray = poster4, 2
+flakes = 100, 3, 99999999, 10, 20
--- a/share/hedgewars/Data/Themes/Underwater/theme.cfg	Wed Dec 29 16:21:30 2010 -0500
+++ b/share/hedgewars/Data/Themes/Underwater/theme.cfg	Thu Dec 30 01:44:55 2010 +0100
@@ -1,20 +1,13 @@
-255 255 255
-123 148 220
-0 0 0
-0 0 0 $FF
-underwater.ogg
-9
-5
-anchor
-3 65 258 80 2 1 0 0 240 215
-clam
-3 60 131 16 2 1 0 0 150 117
-crab
-3 78 256 96 2 1 3 60 237 155
-coral
-3 10 193 38 32 2 128 66 66 94 39 0 88 167
-coral2
-3 119 146 23 22 1 5 0 123 130
-0
-20
-20 150 0 5
+sky = 255, 255, 255
+border = 123, 148, 220
+water-top = 0, 0, 0
+water-bottom = 0, 0, 0
+water-opacity = $FF
+music = underwater.ogg
+clouds = 9
+object = anchor, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = clam, 3, 60, 131, 16, 2, 1, 0, 0, 150, 117
+object = crab, 3, 78, 256, 96, 2, 1, 3, 60, 237, 155
+object = coral, 3, 10, 193, 38, 32, 2, 128, 66, 66, 94, 39, 0, 88, 167
+object = coral2, 3, 119, 146, 23, 22, 1, 5, 0, 123, 130
+flakes = 20, 20, 150, 0, 5