hedgewars/GSHandlers.inc
changeset 4867 e604ee83e34f
parent 4837 2ea0a152c319
child 4874 f508adb769b8
equal deleted inserted replaced
4865:3a48fbc4a281 4867:e604ee83e34f
  2297             1: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine,    0, cBombsSpeed *
  2297             1: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine,    0, cBombsSpeed *
  2298                              Gear^.Tag, _0, 0);
  2298                              Gear^.Tag, _0, 0);
  2299             2: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtNapalmBomb, 0, cBombsSpeed *
  2299             2: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtNapalmBomb, 0, cBombsSpeed *
  2300                              Gear^.Tag, _0, 0);
  2300                              Gear^.Tag, _0, 0);
  2301             3: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtDrill, gsttmpFlag, cBombsSpeed *
  2301             3: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtDrill, gsttmpFlag, cBombsSpeed *
  2302                              Gear^.Tag, _0, 0);
  2302                              Gear^.Tag, _0, Gear^.Timer + 1);
  2303             //4: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtWaterMelon, 0, cBombsSpeed *
  2303             //4: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtWaterMelon, 0, cBombsSpeed *
  2304             //                 Gear^.Tag, _0, 5000);
  2304             //                 Gear^.Tag, _0, 5000);
  2305         end;
  2305         end;
  2306         Gear^.dX := Gear^.dX + int2hwFloat(30 * Gear^.Tag)
  2306         Gear^.dX := Gear^.dX + int2hwFloat(30 * Gear^.Tag)
  2307     end;
  2307     end;
  2979         exit
  2979         exit
  2980         end
  2980         end
  2981     else if not TestCollisionYWithGear(Gear, hwSign(Gear^.dY)) and not TestCollisionXWithGear(Gear, hwSign(Gear^.dX)) then
  2981     else if not TestCollisionYWithGear(Gear, hwSign(Gear^.dY)) and not TestCollisionXWithGear(Gear, hwSign(Gear^.dX)) then
  2982         begin
  2982         begin
  2983         StopSound(Gear^.SoundChannel);
  2983         StopSound(Gear^.SoundChannel);
       
  2984         Gear^.Tag := 1;
  2984         Gear^.doStep := @doStepDrill
  2985         Gear^.doStep := @doStepDrill
  2985         end;
  2986         end;
  2986 
  2987 
  2987     dec(Gear^.Timer);
  2988     dec(Gear^.Timer);
  2988 end;
  2989 end;
  3031             exit;
  3032             exit;
  3032         end;
  3033         end;
  3033 
  3034 
  3034         Gear^.SoundChannel := LoopSound(sndDrillRocket);
  3035         Gear^.SoundChannel := LoopSound(sndDrillRocket);
  3035         Gear^.doStep := @doStepDrillDrilling;
  3036         Gear^.doStep := @doStepDrillDrilling;
       
  3037         if (Gear^.State and gsttmpFlag) <> 0 then
       
  3038             gear^.RenderTimer:= true;
  3036         dec(Gear^.Timer)
  3039         dec(Gear^.Timer)
  3037     end
  3040     end
       
  3041     else if ((Gear^.State and gsttmpFlag) <> 0) and (Gear^.Tag <> 0) then
       
  3042          begin
       
  3043             if Gear^.Timer = 0 then
       
  3044             begin
       
  3045                 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, Gear^.Hedgehog, EXPLAutoSound);
       
  3046                 DeleteGear(Gear);
       
  3047             end
       
  3048             else
       
  3049                 dec(Gear^.Timer);
       
  3050          end;
  3038 end;
  3051 end;
  3039 
  3052 
  3040 ////////////////////////////////////////////////////////////////////////////////
  3053 ////////////////////////////////////////////////////////////////////////////////
  3041 procedure doStepBallgunWork(Gear: PGear);
  3054 procedure doStepBallgunWork(Gear: PGear);
  3042 var 
  3055 var