equal
deleted
inserted
replaced
318 or (gX > max(LAND_WIDTH * 3 div 2, 6144)) then |
318 or (gX > max(LAND_WIDTH * 3 div 2, 6144)) then |
319 Gear^.State := Gear^.State or gstCollision; |
319 Gear^.State := Gear^.State or gstCollision; |
320 |
320 |
321 if Gear^.dY.isNegative then |
321 if Gear^.dY.isNegative then |
322 begin |
322 begin |
323 isFalling := true; |
|
324 land:= TestCollisionYwithGear(Gear, -1); |
323 land:= TestCollisionYwithGear(Gear, -1); |
|
324 isFalling := land = 0; |
325 if land <> 0 then |
325 if land <> 0 then |
326 begin |
326 begin |
327 collV := -1; |
327 collV := -1; |
328 if land and lfIce <> 0 then |
328 if land and lfIce <> 0 then |
329 Gear^.dX := Gear^.dX * (_0_9 + Gear^.Friction * _0_1) |
329 Gear^.dX := Gear^.dX * (_0_9 + Gear^.Friction * _0_1) |
421 if isFalling then |
421 if isFalling then |
422 begin |
422 begin |
423 Gear^.dY := Gear^.dY + cGravity; |
423 Gear^.dY := Gear^.dY + cGravity; |
424 if (GameFlags and gfMoreWind) <> 0 then |
424 if (GameFlags and gfMoreWind) <> 0 then |
425 Gear^.dX := Gear^.dX + cWindSpeed / Gear^.Density |
425 Gear^.dX := Gear^.dX + cWindSpeed / Gear^.Density |
426 end; |
426 end; |
427 |
427 |
428 Gear^.X := Gear^.X + Gear^.dX; |
428 Gear^.X := Gear^.X + Gear^.dX; |
429 Gear^.Y := Gear^.Y + Gear^.dY; |
429 Gear^.Y := Gear^.Y + Gear^.dY; |
430 CheckGearDrowning(Gear); |
430 CheckGearDrowning(Gear); |
431 //if (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) < _0_0002) and |
431 //if (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) < _0_0002) and |
932 if TestCollisionY(Gear, -1) <> 0 then |
932 if TestCollisionY(Gear, -1) <> 0 then |
933 Gear^.dY := _0; |
933 Gear^.dY := _0; |
934 |
934 |
935 if not Gear^.dY.isNegative then |
935 if not Gear^.dY.isNegative then |
936 if TestCollisionY(Gear, 1) <> 0 then |
936 if TestCollisionY(Gear, 1) <> 0 then |
937 begin |
937 begin |
938 Gear^.dY := - Gear^.dY * Gear^.Elasticity; |
938 Gear^.dY := - Gear^.dY * Gear^.Elasticity; |
939 if Gear^.dY > - _1div1024 then |
939 if Gear^.dY > - _1div1024 then |
940 begin |
940 begin |
941 Gear^.Active := false; |
941 Gear^.Active := false; |
942 exit |
942 exit |
943 end |
943 end |
944 else if Gear^.dY < - _0_03 then |
944 else if Gear^.dY < - _0_03 then |
945 PlaySound(Gear^.ImpactSound) |
945 PlaySound(Gear^.ImpactSound) |
946 end; |
946 end; |
947 |
947 |
948 Gear^.Y := Gear^.Y + Gear^.dY; |
948 Gear^.Y := Gear^.Y + Gear^.dY; |
949 CheckGearDrowning(Gear); |
949 CheckGearDrowning(Gear); |
950 Gear^.dY := Gear^.dY + cGravity |
950 Gear^.dY := Gear^.dY + cGravity |
951 end; |
951 end; |
1997 begin |
1997 begin |
1998 AllInactive := false; |
1998 AllInactive := false; |
1999 |
1999 |
2000 Gear^.dY := Gear^.dY + cGravity; |
2000 Gear^.dY := Gear^.dY + cGravity; |
2001 |
2001 |
2002 if (Gear^.dY.isNegative) and (TestCollisionYwithGear(Gear, -1) <> 0) then |
2002 if ((not Gear^.dY.isNegative) and (TestCollisionYwithGear(Gear, 1) <> 0)) or |
2003 Gear^.dY := _0; |
2003 (Gear^.dY.isNegative and (TestCollisionYwithGear(Gear, -1) <> 0)) then |
2004 |
2004 Gear^.dY := _0 |
2005 Gear^.Y := Gear^.Y + Gear^.dY; |
2005 else Gear^.Y := Gear^.Y + Gear^.dY; |
2006 |
2006 |
2007 if (not Gear^.dY.isNegative) and (Gear^.dY > _0_001) then |
2007 if (not Gear^.dY.isNegative) and (Gear^.dY > _0_001) then |
2008 SetAllHHToActive(false); |
2008 SetAllHHToActive(false); |
2009 |
2009 |
2010 if (not Gear^.dY.isNegative) and (TestCollisionYwithGear(Gear, 1) <> 0) then |
2010 if (not Gear^.dY.isNegative) and (TestCollisionYwithGear(Gear, 1) <> 0) then |