--- a/hedgewars/uGearsHandlersMess.pas Tue Feb 16 03:19:23 2016 +0100
+++ b/hedgewars/uGearsHandlersMess.pas Tue Feb 16 04:25:00 2016 +0100
@@ -4366,7 +4366,7 @@
continue;
end;
- if isbullet then
+ if (iterator^.Kind = gtDEagleShot) or (iterator^.Kind = gtSniperRifleShot) then
begin
// draw bullet trail
spawnBulletTrail(iterator);
@@ -5019,15 +5019,18 @@
begin
PlaySound(sndSineGun);
- // push the shooting Hedgehog back
- HHGear := CurrentHedgehog^.Gear;
- Gear^.dX.isNegative := not Gear^.dX.isNegative;
- Gear^.dY.isNegative := not Gear^.dY.isNegative;
- HHGear^.dX := Gear^.dX;
- HHGear^.dY := Gear^.dY;
- AmmoShove(Gear, 0, 80);
- Gear^.dX.isNegative := not Gear^.dX.isNegative;
- Gear^.dY.isNegative := not Gear^.dY.isNegative;
+ if (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) then
+ begin
+ HHGear := Gear^.Hedgehog^.Gear;
+ // push the shooting Hedgehog back
+ Gear^.dX.isNegative := not Gear^.dX.isNegative;
+ Gear^.dY.isNegative := not Gear^.dY.isNegative;
+ HHGear^.dX := Gear^.dX;
+ HHGear^.dY := Gear^.dY;
+ AmmoShove(Gear, 0, 80);
+ Gear^.dX.isNegative := not Gear^.dX.isNegative;
+ Gear^.dY.isNegative := not Gear^.dY.isNegative;
+ end;
Gear^.doStep := @doStepSineGunShotWork;
{$IFNDEF PAS2C}
--- a/hedgewars/uGearsUtils.pas Tue Feb 16 03:19:23 2016 +0100
+++ b/hedgewars/uGearsUtils.pas Tue Feb 16 04:25:00 2016 +0100
@@ -1170,7 +1170,7 @@
begin
dec(i);
Gear:= t^.ar[i];
- if (Ammo^.Data <> nil) and (Ammo^.Kind in [gtShotgunShot, gtDEagleShot, gtSniperRifleShot, gtSineGunShot]) and (PGear(Ammo^.Data) = Gear) then
+ if (Ammo^.Data <> nil) and (Ammo^.Kind in [gtDEagleShot, gtSniperRifleShot]) and (PGear(Ammo^.Data) = Gear) then
continue;
if ((Ammo^.Kind = gtFlame) or (Ammo^.Kind = gtBlowTorch)) and
(Gear^.Kind = gtHedgehog) and (Gear^.Hedgehog^.Effects[heFrozen] > 255) then
@@ -1513,7 +1513,7 @@
(hwRound(Gear^.X) > LongInt(rightX)) then
begin
// bullets can now hurt the hog that fired them
- if (WorldEdge <> weSea) and (Gear^.Kind in [gtShotgunShot, gtDEagleShot, gtSniperRifleShot, gtSineGunShot]) then
+ if (WorldEdge <> weSea) and (Gear^.Kind in [gtDEagleShot, gtSniperRifleShot]) then
Gear^.Data:= nil;
if WorldEdge = weWrap then
begin