hedgewars/uGearsHandlersMess.pas
changeset 9479 167dea42d7d7
parent 9477 0463f747e839
child 9485 3dee8a3b0406
equal deleted inserted replaced
9477:0463f747e839 9479:167dea42d7d7
   382             Gear^.dX := Gear^.dX + cWindSpeed / Gear^.Density
   382             Gear^.dX := Gear^.dX + cWindSpeed / Gear^.Density
   383             end;
   383             end;
   384 
   384 
   385     Gear^.X := Gear^.X + Gear^.dX;
   385     Gear^.X := Gear^.X + Gear^.dX;
   386     Gear^.Y := Gear^.Y + Gear^.dY;
   386     Gear^.Y := Gear^.Y + Gear^.dY;
   387     if Gear^.Kind <> gtBee then
   387     CheckGearDrowning(Gear);
   388         CheckGearDrowning(Gear);
       
   389     //if (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) < _0_0002) and
   388     //if (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) < _0_0002) and
   390     if (not isFalling) and ((Gear^.dX.QWordValue + Gear^.dY.QWordValue) < _0_02.QWordValue) then
   389     if (not isFalling) and ((Gear^.dX.QWordValue + Gear^.dY.QWordValue) < _0_02.QWordValue) then
   391         Gear^.State := Gear^.State and (not gstMoving)
   390         Gear^.State := Gear^.State and (not gstMoving)
   392     else
   391     else
   393         Gear^.State := Gear^.State or gstMoving;
   392         Gear^.State := Gear^.State or gstMoving;
   967 
   966 
   968     if (Gear^.Timer > 0) then
   967     if (Gear^.Timer > 0) then
   969         dec(Gear^.Timer)
   968         dec(Gear^.Timer)
   970     else
   969     else
   971         begin
   970         begin
       
   971         Gear^.State:= Gear^.State and not gstSubmersible;
   972         if nuw then
   972         if nuw then
   973            begin
   973            begin
   974             StopSoundChan(Gear^.SoundChannel);
   974             StopSoundChan(Gear^.SoundChannel);
   975             CheckGearDrowning(Gear);
   975             CheckGearDrowning(Gear);
   976             end
   976             end
  3199     dX, dY, X, Y : hwFloat;
  3199     dX, dY, X, Y : hwFloat;
  3200     fChanged: boolean;
  3200     fChanged: boolean;
  3201     trueAngle: Longword;
  3201     trueAngle: Longword;
  3202     t: PGear;
  3202     t: PGear;
  3203 begin
  3203 begin
  3204     if WorldWrap(Gear) then
  3204     if WorldWrap(Gear) and (WorldEdge <> weWrap) then
  3205         begin
  3205         begin
  3206         // recycling as temp vars
       
  3207         Y.isNegative:= false;
  3206         Y.isNegative:= false;
  3208         Y.QWordValue:= 4294967296 * 112;
  3207         Y.QWordValue:= 4294967296 * 112;
  3209         X.isNegative:= false;
  3208         X.isNegative:= false;
  3210         X.QWordValue:= 4294967296 * 35;
  3209         X.QWordValue:= 4294967296 * 35;
  3211         dX.isNegative:= false;
  3210         dX.isNegative:= false;