# HG changeset patch
# User Wuzzy <Wuzzy2@mail.ru>
# Date 1558702548 -7200
# Node ID 01bb1d7ca14f09ec8793351897066c3c466659bf
# Parent  6c5502b9a0388737946c6462f70d0bef2c821058
Add drill rocket animation

diff -r 6c5502b9a038 -r 01bb1d7ca14f ChangeLog.txt
--- a/ChangeLog.txt	Fri May 24 12:31:30 2019 +0200
+++ b/ChangeLog.txt	Fri May 24 14:55:48 2019 +0200
@@ -86,6 +86,7 @@
  * Fix broken default keyboard controls for team chat and camera movement
 
 Graphics:
+ + Animate drill rockets
  * Fix speech bubbles overlapping in the wrong order
  * Fix wrong ice beam angle if it goes diagonally up out of map through world wrap
  * Fix double water splash when flying saucer drowns
diff -r 6c5502b9a038 -r 01bb1d7ca14f hedgewars/uGearsHandlersMess.pas
--- a/hedgewars/uGearsHandlersMess.pas	Fri May 24 12:31:30 2019 +0200
+++ b/hedgewars/uGearsHandlersMess.pas	Fri May 24 14:55:48 2019 +0200
@@ -4170,6 +4170,7 @@
         Gear^.X:= Gear^.X+Gear^.dX*4;
         Gear^.Y:= Gear^.Y+Gear^.dY*4;
         Gear^.SoundChannel := LoopSound(sndDrillRocket);
+        Gear^.Pos:= 1;
         Gear^.doStep := @doStepDrillDrilling;
 
         if (Gear^.State and gsttmpFlag) <> 0 then
diff -r 6c5502b9a038 -r 01bb1d7ca14f hedgewars/uGearsList.pas
--- a/hedgewars/uGearsList.pas	Fri May 24 12:31:30 2019 +0200
+++ b/hedgewars/uGearsList.pas	Fri May 24 14:55:48 2019 +0200
@@ -628,6 +628,8 @@
                     gear^.Timer:= 5000;
                 // Tag for drill strike. if 1 then first impact occured already
                 gear^.Tag := 0;
+                // Pos for state. If 1, drill is drilling
+                gear^.Pos := 0;
                 gear^.Radius:= 4;
                 gear^.Density:= _1;
                 end;
diff -r 6c5502b9a038 -r 01bb1d7ca14f hedgewars/uGearsRender.pas
--- a/hedgewars/uGearsRender.pas	Fri May 24 12:31:30 2019 +0200
+++ b/hedgewars/uGearsRender.pas	Fri May 24 14:55:48 2019 +0200
@@ -1300,11 +1300,16 @@
                      end;
                  end;
 
-           gtDrill: if (Gear^.State and gsttmpFlag) <> 0 then
-                        DrawSpriteRotated(sprAirDrill, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX))
+           gtDrill: begin
+                    if (Gear^.Pos = 1) then
+                        i:= (RealTicks shr 5 + Gear^.uid) mod 4
                     else
-                        DrawSpriteRotated(sprDrill, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
-
+                        i:= Gear^.uid mod 4;
+                    if (Gear^.State and gsttmpFlag) <> 0 then
+                        DrawTextureRotatedF(SpritesData[sprAirDrill].texture, 0.5, 0, 0, x, y, i, 0, 64, 64, DxDy2Angle(Gear^.dY, Gear^.dX))
+                    else
+                        DrawTextureRotatedF(SpritesData[sprDrill].texture, 0.5, 0, 0, x, y, i, 0, 64, 64, DxDy2Angle(Gear^.dY, Gear^.dX));
+                    end;
         gtHedgehog: DrawHH(Gear, x, y);
 
            gtShell: DrawSpriteRotated(sprBazookaShell, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
diff -r 6c5502b9a038 -r 01bb1d7ca14f share/hedgewars/Data/Graphics/AirDrill.png
Binary file share/hedgewars/Data/Graphics/AirDrill.png has changed
diff -r 6c5502b9a038 -r 01bb1d7ca14f share/hedgewars/Data/Graphics/Drill.png
Binary file share/hedgewars/Data/Graphics/Drill.png has changed