Nuclide
Software Development Kit for id Technology (BETA)
Loading...
Searching...
No Matches
pmove.h
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
17.float waterlevel;
18.float watertype;
19.float maxspeed;
20.vector view_ofs;
21int trace_endcontentsi;
22.vector m_pmoveBaseVelocity;
23.entity groundentity;
24
25
32
40
41
43class
45{
46public:
47 void ncPMoveVars(void);
48
49 NETWORKED_FLOAT(g_gravity)
50 NETWORKED_FLOAT(pm_accelerate)
51 NETWORKED_FLOAT(pm_airaccelerate)
52 NETWORKED_FLOAT(pm_airstepsize)
53 NETWORKED_FLOAT(pm_boxcenter)
54 NETWORKED_FLOAT(pm_boxwidth)
55 NETWORKED_FLOAT(pm_crouchheight)
56 NETWORKED_FLOAT(pm_crouchspeed)
57 NETWORKED_FLOAT(pm_crouchviewheight)
58 NETWORKED_FLOAT(pm_edgefriction)
59 NETWORKED_FLOAT(pm_friction)
60 NETWORKED_FLOAT(pm_gravity)
61 NETWORKED_FLOAT(pm_jumpheight)
62 NETWORKED_FLOAT(pm_maxviewpitch)
63 NETWORKED_FLOAT(pm_minviewpitch)
64 NETWORKED_FLOAT(pm_noclipaccelerate)
65 NETWORKED_FLOAT(pm_noclipspeed)
66 NETWORKED_FLOAT(pm_normalheight)
67 NETWORKED_FLOAT(pm_normalviewheight)
68 NETWORKED_FLOAT(pm_nospeedcap)
69 NETWORKED_FLOAT(pm_proneheight)
70 NETWORKED_FLOAT(pm_pronespeed)
71 NETWORKED_FLOAT(pm_proneviewheight)
72 NETWORKED_FLOAT(pm_runspeed)
73 NETWORKED_FLOAT(pm_runfiring)
74 NETWORKED_FLOAT(pm_stamina)
75 NETWORKED_FLOAT(pm_staminarate)
76 NETWORKED_FLOAT(pm_staminathreshold)
77 NETWORKED_FLOAT(pm_stepsize)
78 NETWORKED_FLOAT(pm_stopspeed)
79 NETWORKED_FLOAT(pm_walkspeed)
80 NETWORKED_FLOAT(pm_wateraccelerate)
81 NETWORKED_FLOAT(pm_waterjumpheight)
82
83
84 nonvirtual vector GetStandingMins(void);
86 nonvirtual vector GetStandingMaxs(void);
88 nonvirtual vector GetStandingViewOffset(void);
90 nonvirtual vector GetCrouchMins(void);
92 nonvirtual vector GetCrouchMaxs(void);
94 nonvirtual vector GetCrouchViewOffset(void);
96 nonvirtual vector GetProneMins(void);
98 nonvirtual vector GetProneMaxs(void);
100 nonvirtual vector GetProneViewOffset(void);
101
102#ifdef SERVER
103 virtual void Save(float);
104 virtual void Restore(string,string);
105 virtual void RestoreComplete(void);
106 virtual void EvaluateEntity(void);
107 virtual bool SendEntity(entity, float);
108#endif
109
110#ifdef CLIENT
111 virtual void ReceiveEntity(float, float);
112#endif
113
114private:
115 nonvirtual void Refresh(void);
116 nonvirtual void UpdateBoundingBoxes(void);
117 nonvirtual void LinkToEntity(string declClass);
118
119 vector m_vecStandingMins;
120 vector m_vecStandingMaxs;
121 vector m_vecCrouchMins;
122 vector m_vecCrouchMaxs;
123 vector m_vecProneMins;
124 vector m_vecProneMaxs;
125 vector m_vecNormalViewOffset;
126 vector m_vecCrouchViewOffset;
127 vector m_vecProneViewOffset;
128 string m_defLink;
129};
130
140
142void PMove_Init(void);
143
146 // end of pmove
This class is responsible for handling groups of key/value pairs.
Definition Dict.h:35
void ncEntity(void)
The constructor.
Definition Entity.qc:29
This class networks pmove related variables to each client.
Definition pmove.h:45
nonvirtual vector GetCrouchMins(void)
Returns the crouching/ducked player collision box mins.
Definition pmove.qc:613
virtual void EvaluateEntity(void)
Run each tic after physics are run to determine if we need to send updates over the network.
Definition pmove.qc:424
virtual void Save(float)
Handles saving a copy of this entity to a given filehandle.
Definition pmove.qc:656
virtual bool SendEntity(entity, float)
Called by the engine whenever we need to send a client an update about this entity.
Definition pmove.qc:502
nonvirtual vector GetStandingViewOffset(void)
Returns the standing player view offset.
Definition pmove.qc:637
void ncPMoveVars(void)
Definition pmove.qc:195
nonvirtual vector GetProneMins(void)
Returns the prone player collision box maxs.
Definition pmove.qc:625
nonvirtual vector GetStandingMins(void)
Returns the standing player collision box mins.
Definition pmove.qc:601
nonvirtual vector GetCrouchViewOffset(void)
Returns the crouching/ducked player view offset.
Definition pmove.qc:643
virtual void ReceiveEntity(float, float)
Client: Handles network updates from the server for the associated entity.
Definition pmove.qc:551
nonvirtual vector GetProneMaxs(void)
Returns the prone player collision box maxs.
Definition pmove.qc:631
nonvirtual vector GetStandingMaxs(void)
Returns the standing player collision box maxs.
Definition pmove.qc:607
virtual void RestoreComplete(void)
Called when the entity has been successfully restored from a savegame file.
Definition pmove.qc:805
virtual void Restore(string, string)
Similar to ncIO::SpawnKey() but for save-game fields.
Definition pmove.qc:696
nonvirtual vector GetProneViewOffset(void)
Returns the prone player view offset.
Definition pmove.qc:649
nonvirtual vector GetCrouchMaxs(void)
Returns the crouching/ducked player collision box maxs.
Definition pmove.qc:619
ncDict g_fallDamageDecl
Definition pmove.h:136
waterlevel_t
Definition pmove.h:34
ncDict g_slimeDamageDecl
Definition pmove.h:138
ncDict g_waterDamageDecl
Definition pmove.h:137
ncDict g_lavaDecl
Definition pmove.h:135
void PMoveCustom_RunCrouchPhysics(entity)
Definition pmove_custom.qc:714
void PMove_Init(void)
Called by Nuclide.
Definition pmove.qc:817
ncDict g_slimeDecl
Definition pmove.h:134
ncDict g_lavaDamageDecl
Definition pmove.h:139
ncPMoveVars g_pmoveVars
The global, shared object containing all currently valid pmove parameters.
Definition pmove.h:132
ncDict g_waterDecl
Definition pmove.h:133
void PMoveCustom_RunPlayerPhysics(entity)
Definition pmove_custom.qc:672
@ WATERLEVEL_KNEE
Definition pmove.h:36
@ WATERLEVEL_SUBMERGED
Definition pmove.h:38
@ WATERLEVEL_CHEST
Definition pmove.h:37
@ WATERLEVEL_OUTSIDE
Definition pmove.h:35
float maxspeed
Definition soundDef.h:113