Slide off of the impacting object returns the blocked flags (1 = floor, 2 = step / wall)
(float[] in, float[] normal, float[] out, float overbounce)
| 93 | * Slide off of the impacting object returns the blocked flags (1 = floor, 2 = step / wall) |
| 94 | */ |
| 95 | public static void PM_ClipVelocity(float[] in, float[] normal, float[] out, float overbounce) { |
| 96 | float backoff; |
| 97 | float change; |
| 98 | int i; |
| 99 | |
| 100 | backoff = Math3D.DotProduct(in, normal) * overbounce; |
| 101 | |
| 102 | for (i = 0; i < 3; i++) { |
| 103 | change = normal[i] * backoff; |
| 104 | out[i] = in[i] - change; |
| 105 | if (out[i] > -Defines.MOVE_STOP_EPSILON |
| 106 | && out[i] < Defines.MOVE_STOP_EPSILON) |
| 107 | out[i] = 0; |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | /** |
| 112 | * SV_FlyMove |
no test coverage detected