hedgewars/uGearsHandlersMess.pas
changeset 15643 969f67193d0b
parent 15618 106d7162caea
child 15645 6c689729b745
equal deleted inserted replaced
15618:106d7162caea 15643:969f67193d0b
  1867 
  1867 
  1868     if abs(LongInt(HHGear^.Angle) - BTPrevAngle) > 7  then
  1868     if abs(LongInt(HHGear^.Angle) - BTPrevAngle) > 7  then
  1869         begin
  1869         begin
  1870         Gear^.dX := SignAs(AngleSin(HHGear^.Angle) * _0_5, Gear^.dX);
  1870         Gear^.dX := SignAs(AngleSin(HHGear^.Angle) * _0_5, Gear^.dX);
  1871         Gear^.dY := AngleCos(HHGear^.Angle) * ( - _0_5);
  1871         Gear^.dY := AngleCos(HHGear^.Angle) * ( - _0_5);
       
  1872 
  1872         BTPrevAngle := HHGear^.Angle;
  1873         BTPrevAngle := HHGear^.Angle;
  1873         dig := true
  1874         dig := true
  1874         end;
  1875         end;
  1875 
  1876 
  1876     if ((HHGear^.State and gstMoving) <> 0) then
  1877     if ((HHGear^.State and gstMoving) <> 0) then
  1932             AmmoShoveCache(Gear, Gear^.Boom, 15)
  1933             AmmoShoveCache(Gear, Gear^.Boom, 15)
  1933         else
  1934         else
  1934             AmmoShoveCache(Gear, 0, 15);
  1935             AmmoShoveCache(Gear, 0, 15);
  1935         HHGear^.State := HHGear^.State and (not gstNoDamage);
  1936         HHGear^.State := HHGear^.State and (not gstNoDamage);
  1936         end;
  1937         end;
       
  1938 
       
  1939     if HHGear^.dX.isNegative <> (Gear^.Tag = -1) then
       
  1940     begin
       
  1941         inc(Gear^.WDTimer);
       
  1942         if Gear^.WDTimer > 150 then
       
  1943         begin
       
  1944             Gear^.WDTimer := 0;
       
  1945             Gear^.Tag := - Gear^.Tag;
       
  1946         end
       
  1947     end else
       
  1948         Gear^.WDTimer := 0;
  1937 
  1949 
  1938     if (TurnTimeLeft = 0) or (Gear^.Timer = 0)
  1950     if (TurnTimeLeft = 0) or (Gear^.Timer = 0)
  1939     or ((HHGear^.Message and gmAttack) <> 0) then
  1951     or ((HHGear^.Message and gmAttack) <> 0) then
  1940         begin
  1952         begin
  1941         ClearProximityCache();
  1953         ClearProximityCache();
  1963         Gear^.dX, Gear^.dY,
  1975         Gear^.dX, Gear^.dY,
  1964         cHHStepTicks, cHHRadius * 2 + 7);
  1976         cHHStepTicks, cHHRadius * 2 + 7);
  1965     HHGear^.Message := 0;
  1977     HHGear^.Message := 0;
  1966     HHGear^.State := HHGear^.State or gstNotKickable;
  1978     HHGear^.State := HHGear^.State or gstNotKickable;
  1967     RefillProximityCache(Gear, 200);
  1979     RefillProximityCache(Gear, 200);
       
  1980 
       
  1981     //Throttle counter for direction changes
       
  1982     Gear^.WDTimer := 0;
       
  1983     if HHGear^.dX.isNegative then
       
  1984         Gear^.Tag := -1
       
  1985     else
       
  1986         Gear^.Tag := 1;
       
  1987 
  1968     Gear^.SoundChannel := LoopSound(sndBlowTorch);
  1988     Gear^.SoundChannel := LoopSound(sndBlowTorch);
  1969     Gear^.doStep := @doStepBlowTorchWork
  1989     Gear^.doStep := @doStepBlowTorchWork
  1970 end;
  1990 end;
  1971 
  1991 
  1972 
  1992