Deletion was a bad idea.
authornemo
Wed, 27 Jul 2011 08:51:16 -0400
changeset 5461 3c2d4e46440f
parent 5459 f4f5b710a1ba
child 5470 b07eb408c5e4
Deletion was a bad idea.
hedgewars/GSHandlers.inc
hedgewars/uGearsRender.pas
--- a/hedgewars/GSHandlers.inc	Tue Jul 26 23:46:41 2011 -0400
+++ b/hedgewars/GSHandlers.inc	Wed Jul 27 08:51:16 2011 -0400
@@ -156,11 +156,6 @@
                             AddCaption(Format(GetEventString(eidDrowned), Gear^.Hedgehog^.Name), cWhiteColor, capgrpMessage);
                             end
                         end
-                    else if Gear^.Kind = gtFlake then
-                        begin
-                        DeleteGear(Gear);
-                        exit
-                        end
                     else Gear^.doStep := @doStepDrowningGear
                 end;
             if ((not isSubmersible) and (Y < cWaterLine + 64 + Gear^.Radius)) or
@@ -361,12 +356,12 @@
     else
         Gear^.State := Gear^.State or      gstMoving;
 
-    if (Gear^.nImpactSounds > 0) then
-        if ((Gear^.Damage <> 0) or ((Gear^.State and (gstCollision or gstMoving)) = (gstCollision or
-           gstMoving))) and
-           ((Gear^.dX.QWordValue > _0_1.QWordValue) or (Gear^.dY.QWordValue > _0_1.QWordValue)) then
-            PlaySound(TSound(ord(Gear^.ImpactSound) + LongInt(GetRandom(Gear^.nImpactSounds))), true
-            );
+    if (Gear^.nImpactSounds > 0) and (Gear^.ImpactSound <> sndNone) and
+       ((Gear^.Damage <> 0) or 
+          ((Gear^.State and (gstCollision or gstMoving)) = (gstCollision or gstMoving))) and
+       ((Gear^.dX.QWordValue > _0_1.QWordValue) or 
+          (Gear^.dY.QWordValue > _0_1.QWordValue)) then
+        PlaySound(TSound(ord(Gear^.ImpactSound) + LongInt(GetRandom(Gear^.nImpactSounds))), true);
 end;
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -595,6 +590,7 @@
 draw:= false;
 if gun then
     begin
+    Gear^.State:= Gear^.State and not gstInvisible;
     doStepFallingGear(Gear);
     CheckCollision(Gear);
     if ((Gear^.State and gstCollision) <> 0) or ((Gear^.State and gstMoving) = 0) then draw:= true;
@@ -4494,7 +4490,7 @@
     if Gear^.Timer = 0 then
         begin
         dec(Gear^.Health);
-        if (Gear^.Health mod 5) = 0 then
+        if (Gear^.Health mod 3) = 0 then
             begin
             rx := rndSign(getRandom * _0_1);
             ry := rndSign(getRandom * _0_1);
--- a/hedgewars/uGearsRender.pas	Tue Jul 26 23:46:41 2011 -0400
+++ b/hedgewars/uGearsRender.pas	Wed Jul 27 08:51:16 2011 -0400
@@ -1050,14 +1050,14 @@
                     end;
       gtNapalmBomb: DrawRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
            gtFlake: if (Gear^.State and gstTmpFlag) <> 0 then
-                        //DrawRotatedTextureF(SpritesData[sprSnowBall].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle)
                         begin
                         Tint((cExplosionBorderColor shr RShift) and $FF, 
                              (cExplosionBorderColor shr GShift) and $FF, 
                              (cExplosionBorderColor shr BShift) and $FF, 
-                             (cExplosionBorderColor shr AShift) and $FF);
-                        //DrawRotated(sprSnow, x, y, 0, Gear^.DirAngle);
+                             $FF);
                         // Needs a nicer white texture to tint
+                        //DrawRotatedTextureF(SpritesData[sprSnowDust].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle);
+                        //DrawRotated(sprSnowDust, x, y, 0, Gear^.DirAngle);
                         DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
                         Tint($FF, $FF, $FF, $FF);
                         end