Handles user intended acceleration.
(float[] wishdir, float wishspeed,
float accel)
| 330 | * Handles user intended acceleration. |
| 331 | */ |
| 332 | public static void PM_Accelerate(float[] wishdir, float wishspeed, |
| 333 | float accel) { |
| 334 | int i; |
| 335 | float addspeed, accelspeed, currentspeed; |
| 336 | |
| 337 | currentspeed = Math3D.DotProduct(pml.velocity, wishdir); |
| 338 | addspeed = wishspeed - currentspeed; |
| 339 | if (addspeed <= 0) |
| 340 | return; |
| 341 | accelspeed = accel * pml.frametime * wishspeed; |
| 342 | if (accelspeed > addspeed) |
| 343 | accelspeed = addspeed; |
| 344 | |
| 345 | for (i = 0; i < 3; i++) |
| 346 | pml.velocity[i] += accelspeed * wishdir[i]; |
| 347 | } |
| 348 | |
| 349 | /** |
| 350 | * PM_AirAccelerate. |
no test coverage detected