# HG changeset patch # User sheepluva # Date 1455593100 -3600 # Node ID aefc770feb6564564a4151f862b06b72bc23b39b # Parent 881231c1ba46f1d02092a59026df895f707542e4 apply to deagle and sniper only diff -r 881231c1ba46 -r aefc770feb65 hedgewars/uGearsHandlersMess.pas --- 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} diff -r 881231c1ba46 -r aefc770feb65 hedgewars/uGearsUtils.pas --- 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