PM_ClampAngles.
()
| 981 | * PM_ClampAngles. |
| 982 | */ |
| 983 | public static void PM_ClampAngles() { |
| 984 | short temp; |
| 985 | int i; |
| 986 | |
| 987 | if ((pm.s.pm_flags & Defines.PMF_TIME_TELEPORT) != 0) { |
| 988 | pm.viewangles[Defines.YAW] = Math3D |
| 989 | .SHORT2ANGLE(pm.cmd.angles[Defines.YAW] |
| 990 | + pm.s.delta_angles[Defines.YAW]); |
| 991 | pm.viewangles[Defines.PITCH] = 0; |
| 992 | pm.viewangles[Defines.ROLL] = 0; |
| 993 | } else { |
| 994 | // circularly clamp the angles with deltas |
| 995 | for (i = 0; i < 3; i++) { |
| 996 | temp = (short) (pm.cmd.angles[i] + pm.s.delta_angles[i]); |
| 997 | pm.viewangles[i] = Math3D.SHORT2ANGLE(temp); |
| 998 | } |
| 999 | |
| 1000 | // don't let the player look up or down more than 90 degrees |
| 1001 | if (pm.viewangles[Defines.PITCH] > 89 && pm.viewangles[Defines.PITCH] < 180) |
| 1002 | pm.viewangles[Defines.PITCH] = 89; |
| 1003 | else if (pm.viewangles[Defines.PITCH] < 271 && pm.viewangles[Defines.PITCH] >= 180) |
| 1004 | pm.viewangles[Defines.PITCH] = 271; |
| 1005 | } |
| 1006 | Math3D.AngleVectors(pm.viewangles, pml.forward, pml.right, pml.up); |
| 1007 | } |
| 1008 | |
| 1009 | /** |
| 1010 | * Can be called by either the server or the client. |
no test coverage detected