hedgewars/uWorld.pas
changeset 3611 ed00aa2b339e
parent 3594 aeca3d8f1b29
child 3629 86212d2b116a
equal deleted inserted replaced
3610:8590424bdfb0 3611:ed00aa2b339e
   551         if ZoomValue > zoom then
   551         if ZoomValue > zoom then
   552         begin
   552         begin
   553             zoom:= zoom + 0.002 * Lag;
   553             zoom:= zoom + 0.002 * Lag;
   554             if ZoomValue < zoom then
   554             if ZoomValue < zoom then
   555                 zoom:= ZoomValue
   555                 zoom:= ZoomValue
       
   556             end
   556         end
   557         end
   557     end
   558     else
   558 else
   559         ZoomValue:= zoom;
   559     ZoomValue:= zoom;
   560 
   560 
   561     // Sky
   561 // Sky
   562     glClear(GL_COLOR_BUFFER_BIT);
   562 glClear(GL_COLOR_BUFFER_BIT);
   563     //glPushMatrix;
   563 //glPushMatrix;
   564     //glScalef(1.0, 1.0, 1.0);
   564 //glScalef(1.0, 1.0, 1.0);
       
   565 
   565 
   566     if not isPaused then
   566     if not isPaused then
   567         MoveCamera;
   567         MoveCamera;
   568 
   568 
   569 {if not cReducedQuality then}
   569     if (cReducedQuality and rqNoBackground) = 0 then
   570     if (cReducedQuality and (rqNoBackground or rqKillFlakes or rq2DWater)) = 0 then
       
   571     begin
   570     begin
   572         // Offsets relative to camera - spare them to wimpier cpus, no bg or flakes for them anyway
   571         // Offsets relative to camera - spare them to wimpier cpus, no bg or flakes for them anyway
   573         ScreenBottom:= (WorldDy - trunc(cScreenHeight/cScaleFactor) - (cScreenHeight div 2) + cWaterLine);
   572         ScreenBottom:= (WorldDy - trunc(cScreenHeight/cScaleFactor) - (cScreenHeight div 2) + cWaterLine);
   574         offsetY:= 10 * min(0, -145 - ScreenBottom);
   573         offsetY:= 10 * min(0, -145 - ScreenBottom);
   575         SkyOffset:= offsetY div 35 + cWaveHeight;
   574         SkyOffset:= offsetY div 35 + cWaveHeight;
   578             HorizontOffset:= HorizontOffset + ((ScreenBottom-SkyOffset) div 20);
   577             HorizontOffset:= HorizontOffset + ((ScreenBottom-SkyOffset) div 20);
   579 
   578 
   580         // background
   579         // background
   581         DrawRepeated(sprSky, sprSkyL, sprSkyR, (WorldDx + LAND_WIDTH div 2) * 3 div 8, SkyOffset);
   580         DrawRepeated(sprSky, sprSkyL, sprSkyR, (WorldDx + LAND_WIDTH div 2) * 3 div 8, SkyOffset);
   582         DrawRepeated(sprHorizont, sprHorizontL, sprHorizontR, (WorldDx + LAND_WIDTH div 2) * 3 div 5, HorizontOffset);
   581         DrawRepeated(sprHorizont, sprHorizontL, sprHorizontR, (WorldDx + LAND_WIDTH div 2) * 3 div 5, HorizontOffset);
   583 
   582     end;
   584         DrawVisualGears(0);
   583 
   585         
   584     DrawVisualGears(0);
       
   585     
       
   586     if (cReducedQuality and rq2DWater) = 0 then
       
   587     begin
   586         // Waves
   588         // Waves
   587         DrawWater(255, SkyOffset); 
   589         DrawWater(255, SkyOffset); 
   588         DrawWaves( 1,  0 - WorldDx div 32, - cWaveHeight + offsetY div 35, 64);
   590         DrawWaves( 1,  0 - WorldDx div 32, - cWaveHeight + offsetY div 35, 64);
   589         DrawWaves( -1,  25 + WorldDx div 25, - cWaveHeight + offsetY div 38, 48);
   591         DrawWaves( -1,  25 + WorldDx div 25, - cWaveHeight + offsetY div 38, 48);
   590         DrawWaves( 1,  75 - WorldDx div 19, - cWaveHeight + offsetY div 45, 32);
   592         DrawWaves( 1,  75 - WorldDx div 19, - cWaveHeight + offsetY div 45, 32);
   591         DrawWaves(-1, 100 + WorldDx div 14, - cWaveHeight + offsetY div 70, 24);
   593         DrawWaves(-1, 100 + WorldDx div 14, - cWaveHeight + offsetY div 70, 24);
   592     end
   594     end
   593     else
   595     else
   594         DrawWaves(-1, 100, - (cWaveHeight + (cWaveHeight shr 1)), 0);
   596         DrawWaves(-1, 100, - (cWaveHeight + (cWaveHeight shr 1)), 0);
   595 
   597 
   596 DrawLand(WorldDx, WorldDy);
   598     DrawLand(WorldDx, WorldDy);
   597 
   599 
   598 DrawWater(255, 0);
   600     DrawWater(255, 0);
   599 
   601 
   600 // Attack bar
   602 // Attack bar
   601 if CurrentTeam <> nil then
   603     if CurrentTeam <> nil then
   602     case AttackBar of
   604         case AttackBar of
   603 (*        1: begin
   605 (*        1: begin
   604         r:= StuffPoz[sPowerBar];
   606         r:= StuffPoz[sPowerBar];
   605         {$WARNINGS OFF}
   607         {$WARNINGS OFF}
   606         r.w:= (CurrentHedgehog^.Gear^.Power * 256) div cPowerDivisor;
   608         r.w:= (CurrentHedgehog^.Gear^.Power * 256) div cPowerDivisor;
   607         {$WARNINGS ON}
   609         {$WARNINGS ON}
   617                             hwRound(Gear^.Y) + GetLaunchY(Ammo^[CurSlot, CurAmmo].AmmoType, Gear^.Angle) + round(WorldDy + tdy * (24 + i * 2)) - 16,
   619                             hwRound(Gear^.Y) + GetLaunchY(Ammo^[CurSlot, CurAmmo].AmmoType, Gear^.Angle) + round(WorldDy + tdy * (24 + i * 2)) - 16,
   618                             i)
   620                             i)
   619                 end
   621                 end
   620         end;
   622         end;
   621 
   623 
   622 DrawVisualGears(1);
   624     DrawVisualGears(1);
   623 
   625 
   624 DrawGears;
   626     DrawGears;
   625 
   627 
   626 DrawVisualGears(2);
   628     DrawVisualGears(2);
   627 
   629 
   628 DrawWater(cWaterOpacity, 0);
   630     DrawWater(cWaterOpacity, 0);
   629 
   631 
   630 // Waves
   632     // Waves
   631 DrawWaves( 1, 25 - WorldDx div 9, - cWaveHeight, 12);
   633     DrawWaves( 1, 25 - WorldDx div 9, - cWaveHeight, 12);
   632 
   634 
   633     if (cReducedQuality and rq2DWater) = 0 then
   635     if (cReducedQuality and rq2DWater) = 0 then
   634     begin
   636     begin
   635         //DrawWater(cWaterOpacity, - offsetY div 40);
   637         //DrawWater(cWaterOpacity, - offsetY div 40);
   636         DrawWaves(-1, 50 + WorldDx div 6, - cWaveHeight - offsetY div 40, 8);
   638         DrawWaves(-1, 50 + WorldDx div 6, - cWaveHeight - offsetY div 40, 8);
   637         DrawWater(cWaterOpacity, - offsetY div 20);
   639         DrawWater(cWaterOpacity, - offsetY div 20);
   638         DrawWaves( 1, 75 - WorldDx div 4, - cWaveHeight - offsetY div 20, 2);
   640         DrawWaves( 1, 75 - WorldDx div 4, - cWaveHeight - offsetY div 20, 2);
   639         DrawWater(cWaterOpacity, - offsetY div 10);
   641         DrawWater(cWaterOpacity, - offsetY div 10);
   640         DrawWaves( -1, 25 + WorldDx div 3, - cWaveHeight - offsetY div 10, 0);
   642         DrawWaves( -1, 25 + WorldDx div 3, - cWaveHeight - offsetY div 10, 0);
   641     end
   643     end
   642 else
   644     else
   643     DrawWaves(-1, 50, - (cWaveHeight shr 1), 0);
   645         DrawWaves(-1, 50, - (cWaveHeight shr 1), 0);
   644 
   646 
   645 
   647 
   646 {$WARNINGS OFF}
   648 {$WARNINGS OFF}
   647 // Target
   649 // Target
   648 if (TargetPoint.X <> NoPointX) and (CurrentTeam <> nil) and (CurrentHedgehog <> nil) then
   650 if (TargetPoint.X <> NoPointX) and (CurrentTeam <> nil) and (CurrentHedgehog <> nil) then