hedgewars/uGearsHandlersMess.pas
changeset 14336 9e8e64b2bb9e
parent 14286 7a7c090f96f6
child 14337 94e50f346c57
equal deleted inserted replaced
14335:97be4f6bf264 14336:9e8e64b2bb9e
  1850     HHGear: PGear;
  1850     HHGear: PGear;
  1851     b: boolean;
  1851     b: boolean;
  1852     prevX: LongInt;
  1852     prevX: LongInt;
  1853 begin
  1853 begin
  1854     AllInactive := false;
  1854     AllInactive := false;
  1855     WorldWrap(Gear);
       
  1856     dec(Gear^.Timer);
  1855     dec(Gear^.Timer);
       
  1856 
       
  1857     if WorldWrap(Gear) or (((Gear^.Timer) mod 500) = 0) then
       
  1858     begin
       
  1859         ClearHitOrder();
       
  1860         RefillProximityCache(Gear, 100);
       
  1861     end;
  1857 
  1862 
  1858     if Gear^.Hedgehog^.Gear = nil then
  1863     if Gear^.Hedgehog^.Gear = nil then
  1859         begin
  1864         begin
  1860         StopSoundChan(Gear^.SoundChannel);
  1865         StopSoundChan(Gear^.SoundChannel);
  1861         DeleteGear(Gear);
  1866         DeleteGear(Gear);
  1916                 begin
  1921                 begin
  1917                 Gear^.X := HHGear^.X + Gear^.dX * (cHHRadius + cBlowTorchC);
  1922                 Gear^.X := HHGear^.X + Gear^.dX * (cHHRadius + cBlowTorchC);
  1918                 Gear^.Y := HHGear^.Y + Gear^.dY * (cHHRadius + cBlowTorchC);
  1923                 Gear^.Y := HHGear^.Y + Gear^.dY * (cHHRadius + cBlowTorchC);
  1919                 end;
  1924                 end;
  1920             HHGear^.State := HHGear^.State or gstNoDamage;
  1925             HHGear^.State := HHGear^.State or gstNoDamage;
  1921             AmmoShove(Gear, Gear^.Boom, 15);
  1926             AmmoShoveCache(Gear, Gear^.Boom, 15);
  1922             HHGear^.State := HHGear^.State and (not gstNoDamage)
  1927             HHGear^.State := HHGear^.State and (not gstNoDamage)
  1923             end;
  1928             end;
  1924         end;
  1929         end;
  1925 
  1930 
  1926     if b then
  1931     if b then
  1933         end;
  1938         end;
  1934 
  1939 
  1935     if (TurnTimeLeft = 0) or (Gear^.Timer = 0)
  1940     if (TurnTimeLeft = 0) or (Gear^.Timer = 0)
  1936     or ((HHGear^.Message and gmAttack) <> 0) then
  1941     or ((HHGear^.Message and gmAttack) <> 0) then
  1937         begin
  1942         begin
       
  1943         ClearHitOrder();
       
  1944         ClearProximityCache();
  1938         StopSoundChan(Gear^.SoundChannel);
  1945         StopSoundChan(Gear^.SoundChannel);
  1939         HHGear^.Message := 0;
  1946         HHGear^.Message := 0;
  1940         HHGear^.State := HHGear^.State and (not gstNotKickable);
  1947         HHGear^.State := HHGear^.State and (not gstNotKickable);
  1941         DeleteGear(Gear);
  1948         DeleteGear(Gear);
  1942         AfterAttack
  1949         AfterAttack
  1959         Gear^.dX, Gear^.dY,
  1966         Gear^.dX, Gear^.dY,
  1960         cHHStepTicks, cHHRadius * 2 + 7);
  1967         cHHStepTicks, cHHRadius * 2 + 7);
  1961     HHGear^.Message := 0;
  1968     HHGear^.Message := 0;
  1962     HHGear^.State := HHGear^.State or gstNotKickable;
  1969     HHGear^.State := HHGear^.State or gstNotKickable;
  1963     Gear^.SoundChannel := LoopSound(sndBlowTorch);
  1970     Gear^.SoundChannel := LoopSound(sndBlowTorch);
  1964     Gear^.doStep := @doStepBlowTorchWork
  1971     Gear^.doStep := @doStepBlowTorchWork;
       
  1972 
       
  1973     ClearHitOrder();
       
  1974     RefillProximityCache(Gear, 100);
  1965 end;
  1975 end;
  1966 
  1976 
  1967 
  1977 
  1968 ////////////////////////////////////////////////////////////////////////////////
  1978 ////////////////////////////////////////////////////////////////////////////////
  1969 procedure doStepMine(Gear: PGear);
  1979 procedure doStepMine(Gear: PGear);