fix flake angles
authorsheepluva
Sat, 02 Aug 2014 02:42:12 +0200
changeset 10373 5e83d029e918
parent 10372 e49b76a12800
child 10374 c7ef47665410
fix flake angles
hedgewars/uVisualGears.pas
--- a/hedgewars/uVisualGears.pas	Sat Aug 02 02:20:48 2014 +0200
+++ b/hedgewars/uVisualGears.pas	Sat Aug 02 02:42:12 2014 +0200
@@ -132,12 +132,17 @@
 
 procedure DrawVisualGears(Layer: LongWord);
 var Gear: PVisualGear;
-    tinted: boolean;
+    tinted, speedlessFlakes: boolean;
     tmp: real;
     i: LongInt;
     sprite: TSprite;
     spriteData: PSpriteData;
 begin
+if SuddenDeathDmg then
+    speedlessFlakes:= (vobSDVelocity = 0)
+else
+    speedlessFlakes:= (vobVelocity = 0);
+
 case Layer of
     // this layer is very distant in the background when stereo
     0: begin
@@ -154,14 +159,14 @@
                          sprite:= GetSprite(sprFlake, sprSDFlake);
                          if cFlattenFlakes then
                              begin
-                             if vobSDVelocity = 0 then
+                             if speedlessFlakes then
                                  DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
                              else
                                  DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
                              end
                          else
                              begin
-                             if vobSDVelocity = 0 then
+                             if speedlessFlakes then
                                  DrawTextureF(SpritesData[sprite].Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height)
                              else
                                  DrawTextureRotatedF(SpritesData[sprite].Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, SpritesData[sprFlake].Width, SpritesData[sprFlake].Height, Gear^.Angle);
@@ -184,7 +189,7 @@
           case Gear^.Kind of
               vgtFlake: begin
                          sprite:= GetSprite(sprFlake, sprSDFlake);
-                         if vobSDVelocity = 0 then
+                         if speedlessFlakes then
                              DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
                          else
                              DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
@@ -246,7 +251,7 @@
 (*
               vgtFlake: begin
                         sprite:= GetSprite(sprFlake, sprSDFlake);
-                        if vobSDVelocity = 0 then
+                        if speedlessFlakes then
                             DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
                         else
                             DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle)
@@ -356,7 +361,7 @@
            case Gear^.Kind of
                vgtFlake: begin
                          spriteData:= GetSpriteData(sprFlake, sprSDFlake);
-                         if vobSDVelocity = 0 then
+                         if speedlessFlakes then
                              DrawTextureF(spriteData^.Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height)
                          else
                              DrawTextureRotatedF(spriteData^.Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height, Gear^.Angle);
@@ -388,7 +393,7 @@
                          end;
               vgtFlake: begin
                         spriteData:= GetSpriteData(sprFlake, sprSDFlake);
-                        if vobSDVelocity = 0 then
+                        if speedlessFlakes then
                             DrawTextureF(spriteData^.Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height)
                         else
                             DrawTextureRotatedF(spriteData^.Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height, Gear^.Angle);
@@ -413,7 +418,7 @@
                           end;
               vgtFlake: begin
                         sprite:= GetSprite(sprFlake, sprSDFlake);
-                        if vobSDVelocity = 0 then
+                        if speedlessFlakes then
                             DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
                         else
                             DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
@@ -434,7 +439,7 @@
             case Gear^.Kind of
                 vgtFlake: begin
                           sprite:= GetSprite(sprFlake, sprSDFlake);
-                          if vobSDVelocity = 0 then
+                          if speedlessFlakes then
                               DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
                           else
                               DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle)