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