hedgewars/HHHandlers.inc
changeset 528 54fd6924de4e
parent 525 ae21b8e86dd9
child 534 92fb2b0d5117
equal deleted inserted replaced
527:e23490ce1f06 528:54fd6924de4e
   269    if Gear^.Damage > 0 then
   269    if Gear^.Damage > 0 then
   270       Gear^.State:= Gear^.State and not (gstHHJumping or gstHHHJump);
   270       Gear^.State:= Gear^.State and not (gstHHJumping or gstHHHJump);
   271    exit
   271    exit
   272    end;
   272    end;
   273    
   273    
   274 if ((Gear^.State and gstFalling) <> 0) or (StepTicks = cHHStepTicks)
   274 if ((Gear^.State and (gstFalling or gstMoving)) <> 0)
       
   275    or (StepTicks = cHHStepTicks)
   275    or (CurAmmoGear <> nil) then // we're moving
   276    or (CurAmmoGear <> nil) then // we're moving
   276    begin
   277    begin
   277    // check for case with ammo
   278    // check for case with ammo
   278    t:= CheckGearNear(Gear, gtCase, 36, 36);
   279    t:= CheckGearNear(Gear, gtCase, 36, 36);
   279    if t <> nil then
   280    if t <> nil then
   287    end;
   288    end;
   288 
   289 
   289 if ((Gear^.Message and gm_Attack) <> 0) or
   290 if ((Gear^.Message and gm_Attack) <> 0) or
   290    ((Gear^.State and gstAttacking) <> 0)then Attack(Gear);
   291    ((Gear^.State and gstAttacking) <> 0)then Attack(Gear);
   291 
   292 
   292 if (Gear^.State and gstFalling) <> 0 then
   293 if (Gear^.State and (gstFalling or gstMoving)) <> 0 then
   293    begin
   294    begin
   294    if ((Gear^.Message and gm_HJump) <> 0) and
   295    if ((Gear^.Message and gm_HJump) <> 0) and
   295       ((Gear^.State and gstHHJumping) <> 0) and
   296       ((Gear^.State and gstHHJumping) <> 0) and
   296       ((Gear^.State and gstHHHJump) = 0) then
   297       ((Gear^.State and gstHHHJump) = 0) then
   297       if (not (hwAbs(Gear^.dX) > cLittle)) and (Gear^.dY < -_0_02) then
   298       if (not (hwAbs(Gear^.dX) > cLittle)) and (Gear^.dY < -_0_02) then