hedgewars/uGears.pas
changeset 1573 cf88e0ace609
parent 1560 e140bc57ff68
child 1586 2c6f1d1f43c1
--- a/hedgewars/uGears.pas	Fri Jan 02 21:26:31 2009 +0000
+++ b/hedgewars/uGears.pas	Fri Jan 02 21:39:51 2009 +0000
@@ -144,7 +144,8 @@
 			@doStepCluster,
 			@doStepBomb,
 			@doStepSmokeTrace,
-			@doStepWaterUp
+			@doStepWaterUp,
+			@doStepDrill
 			);
 
 procedure InsertGearToList(Gear: PGear);
@@ -342,6 +343,10 @@
                 Result^.Elasticity:= _0_5;
                 Result^.Friction:= _0_96;
                 end;
+       gtDrill: begin
+                Result^.Timer:= 5000;
+                Result^.Radius:= 4;
+                end;
      end;
 InsertGearToList(Result);
 AddGear:= Result
@@ -783,6 +788,7 @@
 		case amt of
 			amBazooka,
 			amMortar: DrawRotated(sprHandBazooka, hx, hy, hwSign(Gear^.dX), aangle);
+                        amDrill: DrawRotated(sprHandDrill, hx, hy, hwSign(Gear^.dX), aangle);
 			amRope: DrawRotated(sprHandRope, hx, hy, hwSign(Gear^.dX), aangle);
 			amShotgun: DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
 			amDEagle: DrawRotated(sprHandDEagle, hx, hy, hwSign(Gear^.dX), aangle);
@@ -1033,6 +1039,7 @@
       begin
       case Gear^.Kind of
        gtAmmo_Bomb: DrawRotated(sprBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
+       gtDrill: DrawRotated(sprDrill, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
         gtHedgehog: DrawHH(Gear);
     gtAmmo_Grenade: DrawRotated(sprGrenade, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
        gtHealthTag: if Gear^.Tex <> nil then DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex);
@@ -1245,6 +1252,7 @@
 			gtMine,
 			gtTarget,
 			gtCase: begin
+					if (Ammo^.Kind = gtDrill) then begin Ammo^.Timer:= 0; exit; end;
 					inc(t^.ar[i]^.Damage, Damage);
 
 					if (t^.ar[i]^.Kind = gtHedgehog) and (Damage > 0) then