hedgewars/uWorld.pas
changeset 3594 aeca3d8f1b29
parent 3582 4debed8656d7
child 3611 ed00aa2b339e
--- a/hedgewars/uWorld.pas	Tue Jun 29 23:30:49 2010 -0400
+++ b/hedgewars/uWorld.pas	Wed Jun 30 12:55:33 2010 +0200
@@ -194,7 +194,7 @@
    begin
    FollowGear:= nil;
    if AMxShift = AMWidth then prevPoint.X:= 0;
-   if cReducedQuality then
+   if (cReducedQuality and rqSlowMenu) <> 0 then
        AMxShift:= 0
    else
        if AMxShift > MENUSPEED then
@@ -210,7 +210,7 @@
       prevPoint:= CursorPoint;
       SDL_WarpMouse(CursorPoint.X  + cScreenWidth div 2, cScreenHeight - CursorPoint.Y)
       end;
-   if cReducedQuality then
+   if (cReducedQuality and rqSlowMenu) <> 0 then
        AMxShift:= AMWidth
    else
        if AMxShift < (AMWidth - MENUSPEED) then
@@ -563,33 +563,35 @@
 //glPushMatrix;
 //glScalef(1.0, 1.0, 1.0);
 
-if not isPaused then MoveCamera;
+    if not isPaused then
+        MoveCamera;
 
-if not cReducedQuality then
+{if not cReducedQuality then}
+    if (cReducedQuality and (rqNoBackground or rqKillFlakes or rq2DWater)) = 0 then
     begin
-    // Offsets relative to camera - spare them to wimpier cpus, no bg or flakes for them anyway
-    ScreenBottom:= (WorldDy - trunc(cScreenHeight/cScaleFactor) - (cScreenHeight div 2) + cWaterLine);
-    offsetY:= 10 * min(0, -145 - ScreenBottom);
-    SkyOffset:= offsetY div 35 + cWaveHeight;
-    HorizontOffset:= SkyOffset;
-    if ScreenBottom > SkyOffset then
-        HorizontOffset:= HorizontOffset + ((ScreenBottom-SkyOffset) div 20);
+        // Offsets relative to camera - spare them to wimpier cpus, no bg or flakes for them anyway
+        ScreenBottom:= (WorldDy - trunc(cScreenHeight/cScaleFactor) - (cScreenHeight div 2) + cWaterLine);
+        offsetY:= 10 * min(0, -145 - ScreenBottom);
+        SkyOffset:= offsetY div 35 + cWaveHeight;
+        HorizontOffset:= SkyOffset;
+        if ScreenBottom > SkyOffset then
+            HorizontOffset:= HorizontOffset + ((ScreenBottom-SkyOffset) div 20);
 
-    // background
-    DrawRepeated(sprSky, sprSkyL, sprSkyR, (WorldDx + LAND_WIDTH div 2) * 3 div 8, SkyOffset);
-    DrawRepeated(sprHorizont, sprHorizontL, sprHorizontR, (WorldDx + LAND_WIDTH div 2) * 3 div 5, HorizontOffset);
+        // background
+        DrawRepeated(sprSky, sprSkyL, sprSkyR, (WorldDx + LAND_WIDTH div 2) * 3 div 8, SkyOffset);
+        DrawRepeated(sprHorizont, sprHorizontL, sprHorizontR, (WorldDx + LAND_WIDTH div 2) * 3 div 5, HorizontOffset);
 
-    DrawVisualGears(0);
-    
-    // Waves
-    DrawWater(255, SkyOffset); 
-    DrawWaves( 1,  0 - WorldDx div 32, - cWaveHeight + offsetY div 35, 64);
-    DrawWaves( -1,  25 + WorldDx div 25, - cWaveHeight + offsetY div 38, 48);
-    DrawWaves( 1,  75 - WorldDx div 19, - cWaveHeight + offsetY div 45, 32);
-    DrawWaves(-1, 100 + WorldDx div 14, - cWaveHeight + offsetY div 70, 24);
+        DrawVisualGears(0);
+        
+        // Waves
+        DrawWater(255, SkyOffset); 
+        DrawWaves( 1,  0 - WorldDx div 32, - cWaveHeight + offsetY div 35, 64);
+        DrawWaves( -1,  25 + WorldDx div 25, - cWaveHeight + offsetY div 38, 48);
+        DrawWaves( 1,  75 - WorldDx div 19, - cWaveHeight + offsetY div 45, 32);
+        DrawWaves(-1, 100 + WorldDx div 14, - cWaveHeight + offsetY div 70, 24);
     end
-else
-    DrawWaves(-1, 100, - (cWaveHeight + (cWaveHeight shr 1)), 0);
+    else
+        DrawWaves(-1, 100, - (cWaveHeight + (cWaveHeight shr 1)), 0);
 
 DrawLand(WorldDx, WorldDy);
 
@@ -628,14 +630,14 @@
 // Waves
 DrawWaves( 1, 25 - WorldDx div 9, - cWaveHeight, 12);
 
-if not cReducedQuality then
+    if (cReducedQuality and rq2DWater) = 0 then
     begin
-    //DrawWater(cWaterOpacity, - offsetY div 40);
-    DrawWaves(-1, 50 + WorldDx div 6, - cWaveHeight - offsetY div 40, 8);
-    DrawWater(cWaterOpacity, - offsetY div 20);
-    DrawWaves( 1, 75 - WorldDx div 4, - cWaveHeight - offsetY div 20, 2);
-    DrawWater(cWaterOpacity, - offsetY div 10);
-    DrawWaves( -1, 25 + WorldDx div 3, - cWaveHeight - offsetY div 10, 0);
+        //DrawWater(cWaterOpacity, - offsetY div 40);
+        DrawWaves(-1, 50 + WorldDx div 6, - cWaveHeight - offsetY div 40, 8);
+        DrawWater(cWaterOpacity, - offsetY div 20);
+        DrawWaves( 1, 75 - WorldDx div 4, - cWaveHeight - offsetY div 20, 2);
+        DrawWater(cWaterOpacity, - offsetY div 10);
+        DrawWaves( -1, 25 + WorldDx div 3, - cWaveHeight - offsetY div 10, 0);
     end
 else
     DrawWaves(-1, 50, - (cWaveHeight shr 1), 0);