hedgewars/uGearsHandlersMess.pas
changeset 15652 3d8c2ab2b98b
parent 15648 47a6929b819e
child 15656 c34cad72cd85
equal deleted inserted replaced
15651:f75f8729cc5a 15652:3d8c2ab2b98b
  3186             // smoke
  3186             // smoke
  3187             AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace);
  3187             AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace);
  3188 
  3188 
  3189     // Get rid of gear and cleanup
  3189     // Get rid of gear and cleanup
  3190     if ((WorldEdge = weWrap) and (Gear^.FlightTime >= 4000)) or
  3190     if ((WorldEdge = weWrap) and (Gear^.FlightTime >= 4000)) or
  3191         ((WorldEdge <> weWrap) and (((hwRound(Gear^.X) - Gear^.Radius > (max(LAND_WIDTH,4096)+2048)) or (hwRound(Gear^.X) + Gear^.Radius < -2048) or ((Gear^.Message and gmDestroy) > 0)))) then
  3191         ((WorldEdge <> weWrap) and (((hwRound(Gear^.X) - Gear^.Radius > (LAND_WIDTH+2048)) or (hwRound(Gear^.X) + Gear^.Radius < -2048) or ((Gear^.Message and gmDestroy) > 0)))) then
  3192         begin
  3192         begin
  3193         // fail-safe: instanly stop sound if it wasn't disabled before
  3193         // fail-safe: instanly stop sound if it wasn't disabled before
  3194         if (Gear^.SoundChannel <> -1) then
  3194         if (Gear^.SoundChannel <> -1) then
  3195             begin
  3195             begin
  3196             StopSoundChan(Gear^.SoundChannel);
  3196             StopSoundChan(Gear^.SoundChannel);
  3254         begin
  3254         begin
  3255         Gear^.Tag := -1;
  3255         Gear^.Tag := -1;
  3256         if (WorldEdge = weWrap) then
  3256         if (WorldEdge = weWrap) then
  3257             Gear^.X := int2hwFloat(CalcWorldWrap(Gear^.Target.X - max(384, LAND_WIDTH shr 2), 0))
  3257             Gear^.X := int2hwFloat(CalcWorldWrap(Gear^.Target.X - max(384, LAND_WIDTH shr 2), 0))
  3258         else
  3258         else
  3259             Gear^.X := int2hwFloat(max(LAND_WIDTH,4096) + 2048);
  3259             Gear^.X := int2hwFloat(LAND_WIDTH + 2048);
  3260         end;
  3260         end;
  3261 
  3261 
  3262     Gear^.Y := int2hwFloat(topY - 300);
  3262     Gear^.Y := int2hwFloat(topY - 300);
  3263 
  3263 
  3264     // Appear out of nowhere in wrap
  3264     // Appear out of nowhere in wrap