Nuclide
Software Development Kit for id Tech
pmove.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016-2022 Vera Visions LLC.
3 *
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
13 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
14 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*/
16
18.float watertype;
19.float maxspeed;
20.vector view_ofs;
24
25typedef enum
26{
32
33
35class
37{
38public:
39 void NSPMoveVars(void);
40
41 NETWORKED_FLOAT(g_gravity)
42 NETWORKED_FLOAT(pm_accelerate)
43 NETWORKED_FLOAT(pm_airaccelerate)
44 NETWORKED_FLOAT(pm_airstepsize)
45 NETWORKED_FLOAT(pm_boxcenter)
46 NETWORKED_FLOAT(pm_boxwidth)
47 NETWORKED_FLOAT(pm_crouchheight)
48 NETWORKED_FLOAT(pm_crouchspeed)
49 NETWORKED_FLOAT(pm_crouchviewheight)
50 NETWORKED_FLOAT(pm_edgefriction)
51 NETWORKED_FLOAT(pm_friction)
52 NETWORKED_FLOAT(pm_gravity)
53 NETWORKED_FLOAT(pm_jumpheight)
54 NETWORKED_FLOAT(pm_maxviewpitch)
55 NETWORKED_FLOAT(pm_minviewpitch)
56 NETWORKED_FLOAT(pm_noclipaccelerate)
57 NETWORKED_FLOAT(pm_noclipspeed)
58 NETWORKED_FLOAT(pm_normalheight)
59 NETWORKED_FLOAT(pm_normalviewheight)
60 NETWORKED_FLOAT(pm_nospeedcap)
61 NETWORKED_FLOAT(pm_proneheight)
62 NETWORKED_FLOAT(pm_pronespeed)
63 NETWORKED_FLOAT(pm_proneviewheight)
64 NETWORKED_FLOAT(pm_runspeed)
65 NETWORKED_FLOAT(pm_stamina)
66 NETWORKED_FLOAT(pm_staminarate)
67 NETWORKED_FLOAT(pm_staminathreshold)
68 NETWORKED_FLOAT(pm_stepsize)
69 NETWORKED_FLOAT(pm_stopspeed)
70 NETWORKED_FLOAT(pm_walkspeed)
71 NETWORKED_FLOAT(pm_wateraccelerate)
72 NETWORKED_FLOAT(pm_waterjumpheight)
73
74
75 nonvirtual vector GetStandingMins(void);
77 nonvirtual vector GetStandingMaxs(void);
79 nonvirtual vector GetStandingViewOffset(void);
81 nonvirtual vector GetCrouchMins(void);
83 nonvirtual vector GetCrouchMaxs(void);
85 nonvirtual vector GetCrouchViewOffset(void);
87 nonvirtual vector GetProneMins(void);
89 nonvirtual vector GetProneMaxs(void);
91 nonvirtual vector GetProneViewOffset(void);
92
93#ifdef SERVER
94 virtual void Respawn(void);
95 virtual void EvaluateEntity(void);
96 virtual bool SendEntity(entity, float);
97#endif
98
99#ifdef CLIENT
100 virtual void ReceiveEntity(float, float);
101#endif
102
103private:
104 nonvirtual void UpdateBoundingBoxes(void);
105
106 vector m_vecStandingMins;
107 vector m_vecStandingMaxs;
108 vector m_vecCrouchMins;
109 vector m_vecCrouchMaxs;
110 vector m_vecProneMins;
111 vector m_vecProneMaxs;
112 vector m_vecNormalViewOffset;
113 vector m_vecCrouchViewOffset;
114 vector m_vecProneViewOffset;
115};
116
119
121void PMove_Init(void);
122
NSEntity is the lowest of the user-accessible entity class.
Definition: NSEntity.h:52
This class networks pmove related variables to each client.
Definition: pmove.h:37
vector(vector) normalize
entity() spawn
waterlevel_t
Definition: pmove.h:26
@ WATERLEVEL_KNEE
Definition: pmove.h:28
@ WATERLEVEL_SUBMERGED
Definition: pmove.h:30
@ WATERLEVEL_CHEST
Definition: pmove.h:29
@ WATERLEVEL_OUTSIDE
Definition: pmove.h:27
void PMoveCustom_RunCrouchPhysics(entity)
Definition: pmove_custom.qc:721
vector view_ofs
Definition: pmove.h:20
float maxspeed
Definition: pmove.h:19
float watertype
Definition: pmove.h:18
void PMove_Init(void)
Called by Nuclide.
Definition: pmove.qc:449
float waterlevel
Definition: pmove.h:17
entity groundentity
Definition: pmove.h:23
NSPMoveVars g_pmoveVars
The global, shared object containing all currently valid pmove parameters.
Definition: pmove.h:118
int trace_endcontentsi
Definition: pmove.h:21
vector basevelocity
Definition: pmove.h:22
void PMoveCustom_RunPlayerPhysics(entity)
Definition: pmove_custom.qc:669
#define NETWORKED_FLOAT(x)
Definition: defs.h:19