hedgewars/uGearsHandlersMess.pas
changeset 9872 e0dd66b2e73b
parent 9853 8786d4ac9e0b
child 9873 8db0c56f7e2f
equal deleted inserted replaced
9871:a220ae2097d8 9872:e0dd66b2e73b
  3190 end;
  3190 end;
  3191 
  3191 
  3192 procedure doStepDrill(Gear: PGear);
  3192 procedure doStepDrill(Gear: PGear);
  3193 var
  3193 var
  3194     t: PGearArray;
  3194     t: PGearArray;
  3195     oldDx, oldDy: hwFloat;
  3195     oldX, oldY, oldDx, oldDy: hwFloat;
  3196     t2: hwFloat;
  3196     t2: hwFloat;
  3197 begin
  3197 begin
  3198     AllInactive := false;
  3198     AllInactive := false;
  3199 
  3199 
  3200     if (Gear^.State and gsttmpFlag) = 0 then
  3200     if (Gear^.State and gsttmpFlag) = 0 then
  3201         Gear^.dX := Gear^.dX + cWindSpeed;
  3201         Gear^.dX := Gear^.dX + cWindSpeed;
  3202 
  3202 
  3203     oldDx := Gear^.dX;
  3203     oldDx := Gear^.dX;
  3204     oldDy := Gear^.dY;
  3204     oldDy := Gear^.dY;
       
  3205     oldX := Gear^.X;
       
  3206     oldY := Gear^.Y;
  3205 
  3207 
  3206     doStepFallingGear(Gear);
  3208     doStepFallingGear(Gear);
  3207 
  3209 
  3208     if (GameTicks and $3F) = 0 then
  3210     if (GameTicks and $3F) = 0 then
  3209         begin
  3211         begin
  3215     if ((Gear^.State and gstCollision) <> 0) then
  3217     if ((Gear^.State and gstCollision) <> 0) then
  3216         begin
  3218         begin
  3217         //hit
  3219         //hit
  3218         Gear^.dX := oldDx;
  3220         Gear^.dX := oldDx;
  3219         Gear^.dY := oldDy;
  3221         Gear^.dY := oldDy;
       
  3222         Gear^.X := oldX;
       
  3223         Gear^.Y := oldY;
  3220 
  3224 
  3221         if GameTicks > Gear^.FlightTime then
  3225         if GameTicks > Gear^.FlightTime then
  3222             t := CheckGearsCollision(Gear)
  3226             t := CheckGearsCollision(Gear)
  3223         else
  3227         else
  3224             t := nil;
  3228             t := nil;