hedgewars/GSHandlers.inc
changeset 9045 6561c42399d3
parent 9043 f9d53af63f04
child 9059 426aae3ffccd
equal deleted inserted replaced
9044:8a829987d514 9045:6561c42399d3
  1584     dxdy: hwFloat;
  1584     dxdy: hwFloat;
  1585 begin
  1585 begin
  1586     if (Gear^.dY.QWordValue = 0) and (Gear^.dY.QWordValue = 0) and (TestCollisionYwithGear(Gear, 1) = 0) then
  1586     if (Gear^.dY.QWordValue = 0) and (Gear^.dY.QWordValue = 0) and (TestCollisionYwithGear(Gear, 1) = 0) then
  1587         SetLittle(Gear^.dY);
  1587         SetLittle(Gear^.dY);
  1588     Gear^.State := Gear^.State or gstAnimation;
  1588     Gear^.State := Gear^.State or gstAnimation;
       
  1589     if Gear^.Health < cBarrelHealth then Gear^.State:= Gear^.State and not gstFrozen;
  1589 
  1590 
  1590     if ((Gear^.dX.QWordValue <> 0)
  1591     if ((Gear^.dX.QWordValue <> 0)
  1591     or (Gear^.dY.QWordValue <> 0))  then
  1592     or (Gear^.dY.QWordValue <> 0))  then
  1592         begin
  1593         begin
  1593         DeleteCI(Gear);
  1594         DeleteCI(Gear);
  1669         with CurrentHedgehog^ do
  1670         with CurrentHedgehog^ do
  1670             if Gear <> nil then
  1671             if Gear <> nil then
  1671                 Gear^.Message := Gear^.Message and (not (gmLJump or gmHJump));
  1672                 Gear^.Message := Gear^.Message and (not (gmLJump or gmHJump));
  1672         exit
  1673         exit
  1673         end;
  1674         end;
       
  1675     if (k = gtExplosives) and (Gear^.Health < cBarrelHealth) then Gear^.State:= Gear^.State and not gstFrozen;
  1674 
  1676 
  1675     if ((k <> gtExplosives) and (Gear^.Damage > 0)) or ((k = gtExplosives) and (Gear^.Health<=0)) then
  1677     if ((k <> gtExplosives) and (Gear^.Damage > 0)) or ((k = gtExplosives) and (Gear^.Health<=0)) then
  1676         begin
  1678         begin
  1677         x := hwRound(Gear^.X);
  1679         x := hwRound(Gear^.X);
  1678         y := hwRound(Gear^.Y);
  1680         y := hwRound(Gear^.Y);
  5228                             else if iter^.Kind = gtCase then
  5230                             else if iter^.Kind = gtCase then
  5229                                 begin
  5231                                 begin
  5230                                 DeleteCI(iter);
  5232                                 DeleteCI(iter);
  5231                                 AddGearCI(iter)
  5233                                 AddGearCI(iter)
  5232                                 end
  5234                                 end
       
  5235                             else // gtExplosives
       
  5236                                 iter^.Health:= iter^.Health + cBarrelHealth
  5233                             end;
  5237                             end;
  5234                         iter:= iter^.NextGear
  5238                         iter:= iter^.NextGear
  5235                         end;
  5239                         end;
  5236 
  5240 
  5237                     // FillRoundInLandWithIce(Target.X, Target.Y, iceRadius);
  5241                     // FillRoundInLandWithIce(Target.X, Target.Y, iceRadius);