Deletion was a bad idea.
--- 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