]> git.xonotic.org Git - xonotic/darkplaces.git/blob - pmove.h
NudgeOutOfSolid: fix moving entities out of the world in complex cases
[xonotic/darkplaces.git] / pmove.h
1 #ifndef PMOVE_H
2 #define PMOVE_H
3
4 #include "qtypes.h"
5 #include "protocol.h"
6
7 typedef enum waterlevel_e
8 {
9         WATERLEVEL_NONE,
10         WATERLEVEL_WETFEET,
11         WATERLEVEL_SWIMMING,
12         WATERLEVEL_SUBMERGED
13 }
14 waterlevel_t;
15
16 typedef struct playermove_s
17 {
18         // entity to be ignored for movement
19         struct prvm_edict_s *self;
20         // position
21         vec3_t origin;
22         vec3_t velocity;
23         vec3_t angles;
24         vec3_t movedir;
25         // current bounding box (different if crouched vs standing)
26         vec3_t mins;
27         vec3_t maxs;
28         // currently on the ground
29         qbool onground;
30         // currently crouching
31         qbool crouched;
32         // what kind of water (SUPERCONTENTS_LAVA for instance)
33         int watertype;
34         // how deep
35         waterlevel_t waterlevel;
36         // weird hacks when jumping out of water
37         // (this is in seconds and counts down to 0)
38         float waterjumptime;
39
40         int movetype;
41
42         // user command
43         usercmd_t cmd;
44 }
45 playermove_t;
46
47 typedef struct movevars_s
48 {
49         unsigned int moveflags;
50         float wallfriction;
51         float waterfriction;
52         float friction;
53         float timescale;
54         float gravity;
55         float stopspeed;
56         float maxspeed;
57         float spectatormaxspeed;
58         float accelerate;
59         float airaccelerate;
60         float wateraccelerate;
61         float entgravity;
62         float jumpvelocity;
63         float edgefriction;
64         float maxairspeed;
65         float stepheight;
66         float airaccel_qw;
67         float airaccel_qw_stretchfactor;
68         float airaccel_sideways_friction;
69         float airstopaccelerate;
70         float airstrafeaccelerate;
71         float maxairstrafespeed;
72         float airstrafeaccel_qw;
73         float aircontrol;
74         float aircontrol_power;
75         float aircontrol_penalty;
76         float warsowbunny_airforwardaccel;
77         float warsowbunny_accel;
78         float warsowbunny_topspeed;
79         float warsowbunny_turnaccel;
80         float warsowbunny_backtosideratio;
81         float ticrate;
82         float airspeedlimit_nonqw;
83 } movevars_t;
84
85 #endif