hedgewars/GSHandlers.inc
changeset 7777 e0be9fbc21b4
parent 7767 d1ea9b3f543e
child 7784 cf6261f7fdb5
equal deleted inserted replaced
7775:835ad028fb66 7777:e0be9fbc21b4
   280     if (not isFalling) and ((Gear^.dX.QWordValue + Gear^.dY.QWordValue) < _0_02.QWordValue) then
   280     if (not isFalling) and ((Gear^.dX.QWordValue + Gear^.dY.QWordValue) < _0_02.QWordValue) then
   281         Gear^.State := Gear^.State and (not gstMoving)
   281         Gear^.State := Gear^.State and (not gstMoving)
   282     else
   282     else
   283         Gear^.State := Gear^.State or gstMoving;
   283         Gear^.State := Gear^.State or gstMoving;
   284 
   284 
   285     if (Gear^.nImpactSounds > 0) and (((Gear^.Kind <> gtMine) and (Gear^.Damage <> 0))
   285     if (Gear^.nImpactSounds > 0) and 
   286     or ((Gear^.State and (gstCollision or gstMoving)) = (gstCollision or gstMoving))) and(((Gear^.Radius < 3) and (Gear^.dY < -_0_1))
   286         (Gear^.State and gstCollision <> 0) and
   287     or ((Gear^.Radius >= 3) and ((Gear^.dX.QWordValue > _0_1.QWordValue)
   287         (((Gear^.Kind <> gtMine) and (Gear^.Damage <> 0)) or (Gear^.State and gstMoving <> 0)) and
   288     or (Gear^.dY.QWordValue > _0_1.QWordValue)))) then
   288         (((Gear^.Radius < 3) and (Gear^.dY < -_0_1)) or
       
   289             ((Gear^.Radius >= 3) and 
       
   290                 ((Gear^.dX.QWordValue > _0_1.QWordValue) or (Gear^.dY.QWordValue > _0_1.QWordValue)))) then
   289         PlaySound(TSound(ord(Gear^.ImpactSound) + LongInt(GetRandom(Gear^.nImpactSounds))), true);
   291         PlaySound(TSound(ord(Gear^.ImpactSound) + LongInt(GetRandom(Gear^.nImpactSounds))), true);
   290 end;
   292 end;
   291 
   293 
   292 ////////////////////////////////////////////////////////////////////////////////
   294 ////////////////////////////////////////////////////////////////////////////////
   293 procedure doStepBomb(Gear: PGear);
   295 procedure doStepBomb(Gear: PGear);