hedgewars/uGearsHandlersMess.pas
changeset 10586 dbb77726f0c6
parent 10582 672e7028b1b6
child 10589 98ea597e5cd9
equal deleted inserted replaced
10585:eaccc445c473 10586:dbb77726f0c6
  2129     vgt: PVisualGear;
  2129     vgt: PVisualGear;
  2130     tdX,tdY: HWFloat;
  2130     tdX,tdY: HWFloat;
  2131     landPixel: Word;
  2131     landPixel: Word;
  2132 begin
  2132 begin
  2133     WorldWrap(Gear);
  2133     WorldWrap(Gear);
       
  2134     if Gear^.FlightTime > 0 then dec(Gear^.FlightTime);
  2134     sticky:= (Gear^.State and gsttmpFlag) <> 0;
  2135     sticky:= (Gear^.State and gsttmpFlag) <> 0;
  2135     if not sticky then AllInactive := false;
  2136     if not sticky then AllInactive := false;
  2136 
  2137 
  2137     landPixel:= TestCollisionYwithGear(Gear, 1);
  2138     landPixel:= TestCollisionYwithGear(Gear, 1);
  2138     if landPixel = 0 then
  2139     if landPixel = 0 then
  2139         begin
  2140         begin
  2140         AllInactive := false;
  2141         AllInactive := false;
  2141 
  2142 
  2142         if GameTicks and $F = 0 then
  2143         if (GameTicks and $F = 0) and (Gear^.FlightTime = 0) then
  2143             begin
  2144             begin
  2144             Gear^.Radius := 7;
  2145             Gear^.Radius := 7;
  2145             tdX:= Gear^.dX;
  2146             tdX:= Gear^.dX;
  2146             tdY:= Gear^.dY;
  2147             tdY:= Gear^.dY;
  2147             Gear^.dX.QWordValue:= 120000000;
  2148             Gear^.dX.QWordValue:= 120000000;
  4767 
  4768 
  4768             flame:= AddGear(gx, gy, gtFlame, gstTmpFlag,
  4769             flame:= AddGear(gx, gy, gtFlame, gstTmpFlag,
  4769                     SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
  4770                     SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
  4770                     AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
  4771                     AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
  4771             flame^.CollisionMask:= lfNotCurrentMask;
  4772             flame^.CollisionMask:= lfNotCurrentMask;
       
  4773             flame^.FlightTime:= 500;
  4772 
  4774 
  4773             if (Gear^.Health mod 30) = 0 then
  4775             if (Gear^.Health mod 30) = 0 then
  4774                 begin
  4776                 begin
  4775                 flame:= AddGear(gx, gy, gtFlame, 0,
  4777                 flame:= AddGear(gx, gy, gtFlame, 0,
  4776                         SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
  4778                         SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
  4777                         AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
  4779                         AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
  4778                 flame^.CollisionMask:= lfNotCurrentMask;
  4780                 flame^.CollisionMask:= lfNotCurrentMask;
       
  4781 		flame^.FlightTime:= 500;
  4779                 end
  4782                 end
  4780             end;
  4783             end;
  4781         Gear^.Timer:= Gear^.Tag
  4784         Gear^.Timer:= Gear^.Tag
  4782         end;
  4785         end;
  4783 
  4786