hedgewars/GSHandlers.inc
changeset 7659 a5cf49dc993e
parent 7658 70a874a26414
child 7661 3046ad5b361e
equal deleted inserted replaced
7658:70a874a26414 7659:a5cf49dc993e
  2265 ////////////////////////////////////////////////////////////////////////////////
  2265 ////////////////////////////////////////////////////////////////////////////////
  2266 procedure doStepTeleportAfter(Gear: PGear);
  2266 procedure doStepTeleportAfter(Gear: PGear);
  2267 var 
  2267 var 
  2268     HHGear: PGear;
  2268     HHGear: PGear;
  2269 begin
  2269 begin
  2270     Gear^.Hedgehog^.Unplaced := false;
       
  2271     HHGear := Gear^.Hedgehog^.Gear;
  2270     HHGear := Gear^.Hedgehog^.Gear;
  2272     HHGear^.Y := HHGear^.Y + HHGear^.dY;
  2271     doStepHedgehogMoving(HHGear);
  2273     HHGear^.X := HHGear^.X + HHGear^.dX;
  2272     // if not infattack mode wait for hedgehog finish falling to collect cases
  2274     // hedgehog falling to collect cases
  2273     if ((GameFlags and gfInfAttack) <> 0)
  2275     HHGear^.dY := HHGear^.dY + cGravity;
  2274     or ((HHGear^.State and gstMoving) = 0)
  2276     if (TestCollisionYwithGear(HHGear, 1) <> 0)
  2275     or (Gear^.Hedgehog^.Gear^.Damage > 0)
  2277     or CheckGearDrowning(HHGear) then
  2276     or ((HHGear^.State and gstDrowning) = 1) then
  2278         begin
  2277         begin
  2279         DeleteGear(Gear);
  2278         DeleteGear(Gear);
  2280         AfterAttack
  2279         AfterAttack
  2281         end
  2280         end
  2282 end;
  2281 end;
  2283 
  2282 
  2284 procedure doStepTeleportAnim(Gear: PGear);
  2283 procedure doStepTeleportAnim(Gear: PGear);
  2285 begin
  2284 begin
       
  2285     if (Gear^.Hedgehog^.Gear^.Damage > 0) then
       
  2286         begin
       
  2287         DeleteGear(Gear);
       
  2288         AfterAttack;
       
  2289         end;
  2286     inc(Gear^.Timer);
  2290     inc(Gear^.Timer);
  2287     if Gear^.Timer = 65 then
  2291     if Gear^.Timer = 65 then
  2288         begin
  2292         begin
  2289         Gear^.Timer := 0;
  2293         Gear^.Timer := 0;
  2290         inc(Gear^.Pos);
  2294         inc(Gear^.Pos);
  2324         Gear^.X := HHGear^.X;
  2328         Gear^.X := HHGear^.X;
  2325         Gear^.Y := HHGear^.Y;
  2329         Gear^.Y := HHGear^.Y;
  2326         HHGear^.X := int2hwFloat(Gear^.Target.X);
  2330         HHGear^.X := int2hwFloat(Gear^.Target.X);
  2327         HHGear^.Y := int2hwFloat(Gear^.Target.Y);
  2331         HHGear^.Y := int2hwFloat(Gear^.Target.Y);
  2328         HHGear^.State := HHGear^.State or gstMoving;
  2332         HHGear^.State := HHGear^.State or gstMoving;
       
  2333         Gear^.Hedgehog^.Unplaced := false;
       
  2334         isCursorVisible := false;
  2329         playSound(sndWarp)
  2335         playSound(sndWarp)
  2330         end;
  2336         end;
  2331     Gear^.Target.X:= NoPointX
  2337     Gear^.Target.X:= NoPointX
  2332 end;
  2338 end;
  2333 
  2339