hedgewars/uGearsHandlersMess.pas
changeset 11480 1d478892cf1c
parent 11474 26068971a4de
child 11524 aab4767d9a50
equal deleted inserted replaced
11479:67ae276ba229 11480:1d478892cf1c
  1026         if (Gear^.State and gstDrowning) <> 0 then
  1026         if (Gear^.State and gstDrowning) <> 0 then
  1027             StopSoundChan(Gear^.SoundChannel);
  1027             StopSoundChan(Gear^.SoundChannel);
  1028         end
  1028         end
  1029     else
  1029     else
  1030         begin
  1030         begin
  1031         if (GameTicks and $F) = 0 then
  1031         if (Gear^.Timer and $F) = 0 then
  1032             begin
  1032             begin
  1033             if (GameTicks and $30) = 0 then
  1033             if (Gear^.Timer and $3F) = 0 then
  1034                 AddVisualGear(gX, gY, vgtBeeTrace);
  1034                 AddVisualGear(gX, gY, vgtBeeTrace);
  1035 
  1035 
  1036             Gear^.dX := Gear^.Elasticity * (Gear^.dX + _0_000064 * (Gear^.Target.X - gX));
  1036             Gear^.dX := Gear^.dX + _0_000064 * (Gear^.Target.X - gX);
  1037             Gear^.dY := Gear^.Elasticity * (Gear^.dY + _0_000064 * (Gear^.Target.Y - gY));
  1037             Gear^.dY := Gear^.dY + _0_000064 * (Gear^.Target.Y - gY);
  1038             // make sure new speed isn't higher than original one (which we stored in Friction variable)
  1038             // make sure new speed isn't higher than original one (which we stored in Friction variable)
  1039             t := Gear^.Friction / Distance(Gear^.dX, Gear^.dY);
  1039             t := Gear^.Friction / Distance(Gear^.dX, Gear^.dY);
  1040             Gear^.dX := Gear^.dX * t;
  1040             Gear^.dX := Gear^.dX * t;
  1041             Gear^.dY := Gear^.dY * t;
  1041             Gear^.dY := Gear^.dY * t;
  1042             end;
  1042             end;