2887 var |
2887 var |
2888 t: PGearArray; |
2888 t: PGearArray; |
2889 tempColl: Word; |
2889 tempColl: Word; |
2890 begin |
2890 begin |
2891 AllInactive := false; |
2891 AllInactive := false; |
2892 |
2892 if (Gear^.Timer > 0) and (Gear^.Timer mod 10 <> 0) then |
2893 |
2893 begin |
2894 if (Gear^.Timer > 0) and ((Gear^.Timer mod 10) = 0) then |
2894 dec(Gear^.Timer); |
2895 begin |
2895 exit; |
2896 DrawTunnel(Gear^.X, Gear^.Y, Gear^.dX, Gear^.dY, 2, 6); |
2896 end; |
2897 Gear^.X := Gear^.X + Gear^.dX; |
2897 |
2898 Gear^.Y := Gear^.Y + Gear^.dY; |
2898 DrawTunnel(Gear^.X, Gear^.Y, Gear^.dX, Gear^.dY, 2, 6); |
2899 if (Gear^.Timer mod 30) = 0 then |
2899 Gear^.X := Gear^.X + Gear^.dX; |
2900 AddVisualGear(hwRound(Gear^.X + _20 * Gear^.dX), hwRound(Gear^.Y + _20 * Gear^.dY), vgtDust); |
2900 Gear^.Y := Gear^.Y + Gear^.dY; |
2901 if (CheckGearDrowning(Gear)) then |
2901 if (Gear^.Timer mod 30) = 0 then |
2902 begin |
2902 AddVisualGear(hwRound(Gear^.X + _20 * Gear^.dX), hwRound(Gear^.Y + _20 * Gear^.dY), vgtDust); |
2903 StopSoundChan(Gear^.SoundChannel); |
2903 if (CheckGearDrowning(Gear)) then |
2904 exit |
2904 begin |
2905 end |
2905 StopSoundChan(Gear^.SoundChannel); |
|
2906 exit |
2906 end; |
2907 end; |
|
2908 |
2907 tempColl:= Gear^.CollisionMask; |
2909 tempColl:= Gear^.CollisionMask; |
2908 Gear^.CollisionMask:= $007F; |
2910 Gear^.CollisionMask:= $007F; |
2909 if (TestCollisionYWithGear(Gear, hwSign(Gear^.dY)) <> 0) or TestCollisionXWithGear(Gear, hwSign(Gear^.dX)) or (GameTicks > Gear^.FlightTime) then |
2911 if (TestCollisionYWithGear(Gear, hwSign(Gear^.dY)) <> 0) or TestCollisionXWithGear(Gear, hwSign(Gear^.dX)) or (GameTicks > Gear^.FlightTime) then |
2910 t := CheckGearsCollision(Gear) |
2912 t := CheckGearsCollision(Gear) |
2911 else t := nil; |
2913 else t := nil; |