2997 exit |
2997 exit |
2998 end; |
2998 end; |
2999 |
2999 |
3000 deltaX:= _0; |
3000 deltaX:= _0; |
3001 deltaX:= deltaX + cWindSpeed * 200; |
3001 deltaX:= deltaX + cWindSpeed * 200; |
|
3002 deltaY:= _0; |
3002 |
3003 |
3003 if (Gear^.Message and gmLeft) <> 0 then |
3004 if (Gear^.Message and gmLeft) <> 0 then |
3004 deltaX := deltaX - cMaxWindSpeed * 80 |
3005 deltaX := deltaX - cMaxWindSpeed * 80 |
3005 |
3006 |
3006 else if (Gear^.Message and gmRight) <> 0 then |
3007 else if (Gear^.Message and gmRight) <> 0 then |
3007 deltaX := deltaX + cMaxWindSpeed * 80; |
3008 deltaX := deltaX + cMaxWindSpeed * 80; |
3008 |
3009 |
3009 if (Gear^.Message and gmUp) <> 0 then |
3010 if (Gear^.Message and gmUp) <> 0 then |
3010 HHGear^.Y := HHGear^.Y - cGravity * 40 |
3011 deltaY := deltaY - cGravity * 40 |
3011 |
3012 |
3012 else if (Gear^.Message and gmDown) <> 0 then |
3013 else if (Gear^.Message and gmDown) <> 0 then |
3013 HHGear^.Y := HHGear^.Y + cGravity * 40; |
3014 deltaY := deltaY + cGravity * 40; |
3014 |
3015 |
3015 HHGear^.X := HHGear^.X + deltaX; |
3016 HHGear^.X := HHGear^.X + deltaX; |
3016 // don't drift into obstacles |
3017 // don't drift into obstacles |
3017 if TestCollisionXwithGear(HHGear, hwSign(deltaX)) <> 0 then |
3018 if TestCollisionXwithGear(HHGear, hwSign(deltaX)) <> 0 then |
|
3019 begin |
3018 HHGear^.X := HHGear^.X - int2hwFloat(hwSign(deltaX)); |
3020 HHGear^.X := HHGear^.X - int2hwFloat(hwSign(deltaX)); |
3019 HHGear^.Y := HHGear^.Y + cGravity * 100; |
3021 deltaX:= _0; |
|
3022 end; |
|
3023 deltaY := deltaY + cGravity * 100; |
|
3024 HHGear^.Y := HHGear^.Y + deltaY; |
|
3025 |
|
3026 HHGear^.dX := deltaX; |
|
3027 HHGear^.dY := deltaY; |
|
3028 |
3020 Gear^.X := HHGear^.X; |
3029 Gear^.X := HHGear^.X; |
3021 Gear^.Y := HHGear^.Y |
3030 Gear^.Y := HHGear^.Y |
3022 end; |
3031 end; |
3023 |
3032 |
3024 procedure doStepParachute(Gear: PGear); |
3033 procedure doStepParachute(Gear: PGear); |