|
|
1.1 ! root 1: /* ! 2: Copyright (C) 1996-1997 Id Software, Inc. ! 3: ! 4: This program is free software; you can redistribute it and/or ! 5: modify it under the terms of the GNU General Public License ! 6: as published by the Free Software Foundation; either version 2 ! 7: of the License, or (at your option) any later version. ! 8: ! 9: This program is distributed in the hope that it will be useful, ! 10: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ! 12: ! 13: See the GNU General Public License for more details. ! 14: ! 15: You should have received a copy of the GNU General Public License ! 16: along with this program; if not, write to the Free Software ! 17: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! 18: ! 19: */ ! 20: ! 21: typedef struct ! 22: { ! 23: vec3_t normal; ! 24: float dist; ! 25: } pmplane_t; ! 26: ! 27: typedef struct ! 28: { ! 29: qboolean allsolid; // if true, plane is not valid ! 30: qboolean startsolid; // if true, the initial point was in a solid area ! 31: qboolean inopen, inwater; ! 32: float fraction; // time completed, 1.0 = didn't hit anything ! 33: vec3_t endpos; // final position ! 34: pmplane_t plane; // surface normal at impact ! 35: int ent; // entity the surface is on ! 36: } pmtrace_t; ! 37: ! 38: ! 39: #define MAX_PHYSENTS 32 ! 40: typedef struct ! 41: { ! 42: vec3_t origin; ! 43: model_t *model; // only for bsp models ! 44: vec3_t mins, maxs; // only for non-bsp models ! 45: int info; // for client or server to identify ! 46: } physent_t; ! 47: ! 48: ! 49: typedef struct ! 50: { ! 51: int sequence; // just for debugging prints ! 52: ! 53: // player state ! 54: vec3_t origin; ! 55: vec3_t angles; ! 56: vec3_t velocity; ! 57: int oldbuttons; ! 58: float waterjumptime; ! 59: qboolean dead; ! 60: int spectator; ! 61: ! 62: // world state ! 63: int numphysent; ! 64: physent_t physents[MAX_PHYSENTS]; // 0 should be the world ! 65: ! 66: // input ! 67: usercmd_t cmd; ! 68: ! 69: // results ! 70: int numtouch; ! 71: int touchindex[MAX_PHYSENTS]; ! 72: } playermove_t; ! 73: ! 74: typedef struct { ! 75: float gravity; ! 76: float stopspeed; ! 77: float maxspeed; ! 78: float spectatormaxspeed; ! 79: float accelerate; ! 80: float airaccelerate; ! 81: float wateraccelerate; ! 82: float friction; ! 83: float waterfriction; ! 84: float entgravity; ! 85: } movevars_t; ! 86: ! 87: ! 88: extern movevars_t movevars; ! 89: extern playermove_t pmove; ! 90: extern int onground; ! 91: extern int waterlevel; ! 92: extern int watertype; ! 93: ! 94: void PlayerMove (void); ! 95: void Pmove_Init (void); ! 96: ! 97: int PM_HullPointContents (hull_t *hull, int num, vec3_t p); ! 98: ! 99: int PM_PointContents (vec3_t point); ! 100: qboolean PM_TestPlayerPosition (vec3_t point); ! 101: pmtrace_t PM_PlayerMove (vec3_t start, vec3_t stop);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.