# HG changeset patch # User nemo # Date 1311771076 14400 # Node ID 3c2d4e46440ff95298133719d33b6934f749d623 # Parent f4f5b710a1bac8aef76851ee0efd731c26b94569 Deletion was a bad idea. diff -r f4f5b710a1ba -r 3c2d4e46440f hedgewars/GSHandlers.inc --- 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); diff -r f4f5b710a1ba -r 3c2d4e46440f hedgewars/uGearsRender.pas --- 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