|
|
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.