hedgewars/HHHandlers.inc
changeset 610 9b5a6200f667
parent 602 f7628ebfccde
child 614 0e04504bc140
equal deleted inserted replaced
609:e8ff5fcbe841 610:9b5a6200f667
   182    PrevdX:= hwSign(Gear^.dX);
   182    PrevdX:= hwSign(Gear^.dX);
   183    if (Gear^.Message and gm_Left  )<>0 then Gear^.dX:= -cLittle else
   183    if (Gear^.Message and gm_Left  )<>0 then Gear^.dX:= -cLittle else
   184    if (Gear^.Message and gm_Right )<>0 then Gear^.dX:=  cLittle else exit;
   184    if (Gear^.Message and gm_Right )<>0 then Gear^.dX:=  cLittle else exit;
   185 
   185 
   186    StepTicks:= cHHStepTicks;
   186    StepTicks:= cHHStepTicks;
   187    if PrevdX <> hwSign(Gear^.dX) then exit;
   187    if PrevdX <> hwSign(Gear^.dX) then
   188    DeleteCI(Gear); // after exit!!    ^^^^
   188       begin
       
   189       FollowGear:= Gear;
       
   190       exit
       
   191       end;
       
   192    DeleteCI(Gear); // must be after exit!! (see previous line)
   189    
   193    
   190    PHedgehog(Gear^.Hedgehog)^.visStepPos:= (PHedgehog(Gear^.Hedgehog)^.visStepPos + 1) and 7;
   194    PHedgehog(Gear^.Hedgehog)^.visStepPos:= (PHedgehog(Gear^.Hedgehog)^.visStepPos + 1) and 7;
   191    if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then
   195    if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then
   192       begin
   196       begin
   193       if not (TestCollisionXwithXYShift(Gear, _0, -6, hwSign(Gear^.dX))
   197       if not (TestCollisionXwithXYShift(Gear, _0, -6, hwSign(Gear^.dX))