Nuclide
Software Development Kit for id Technology (BETA)
AnimationManager.h
1/*
2 * Copyright (c) 2026 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
17class
19{
20 void ncAnimationManager(void);
21
22 nonvirtual ncAnimationManager ManagerForEntity(entity playerEntity);
23
24 nonvirtual void UpdatePlayerAnimation_Skeletal(float timelength);
25 nonvirtual void UpdatePlayerAnimation_Valve(float timelength);
26 nonvirtual void UpdatePlayerAnimation_Goose(float timelength);
27 nonvirtual void SetAnimationPrefix(string animPrefix);
28 nonvirtual void AdvanceAnimation(float timelength);
29 nonvirtual void TransferAnimationData(entity targetE);
30 nonvirtual void PlayGesture(float gestureAnim, float overrideTime);
31 virtual void PredictPreFrame(void);
32 virtual void PredictPostFrame(void);
33
34#ifdef SERVER
35 virtual void EvaluateEntity(void);
36 virtual float SendEntity(entity ePEnt, float flChanged);
37#endif
38
39#ifdef CLIENT
40 virtual void ReceiveEntity(float flNew, float flChanged);
41#endif
42
43private:
44
45 nonvirtual float __ActForPrefix(string actName, string animPrefix, string emotionString);
46
47 /* animation */
48 NETWORKED_FLOAT(anim_top)
49 NETWORKED_FLOAT(anim_top_time)
50 NETWORKED_FLOAT(anim_top_delay)
51 NETWORKED_FLOAT(anim_bottom)
52 NETWORKED_FLOAT(anim_bottom_time)
53
54 NETWORKED_ENTITY(m_targetEntity)
55 NETWORKED_FLOAT(m_animBackend)
56 NETWORKED_FLOAT(m_actIdle)
57 NETWORKED_FLOAT(m_actIdleCrouch)
58 NETWORKED_FLOAT(m_actIdleProne)
59 NETWORKED_FLOAT(m_actWalk)
60 NETWORKED_FLOAT(m_actWalkCrouch)
61 NETWORKED_FLOAT(m_actWalkProne)
62 NETWORKED_FLOAT(m_actRun)
63 NETWORKED_FLOAT(m_actJump)
64 NETWORKED_FLOAT(m_actAim)
65 NETWORKED_FLOAT(m_actDraw)
66 NETWORKED_FLOAT(m_actAttack)
67 NETWORKED_FLOAT(m_actReloadStart)
68 NETWORKED_FLOAT(m_actReload)
69 NETWORKED_FLOAT(m_actReloadEnd)
70 NETWORKED_FLOAT(m_actHolster)
71 NETWORKED_FLOAT(m_boneSpine)
72 NETWORKED_FLOAT(m_torsoFirst)
73 NETWORKED_FLOAT(m_torsoLast)
74 NETWORKED_FLOAT(m_torsoTwistYaw)
75
76#ifdef CLIENT
77 float m_targetEntityEntityNum;
78#endif
79};
80
81void
82ncAnimationManager::ncAnimationManager(void)
83{
84 m_targetEntity = __NULL__;
85}
86
87typedef enumflags
88{
89 ANTMENT_CHANGED_NOTHING,
90 ANIMENT_CHANGED_ACTS_TOP,
91 ANIMENT_CHANGED_ACTS_BOTTOM,
92 ANIMENT_CHANGED_BONESETUP,
93 ANIMENT_CHANGED_ANIMATION,
94 ANIMENT_CHANGED_SET,
95 ANIMENT_CHANGED_TIMERS,
96};
97
98
99enum
100{
101 ANIMATIONMODEL_SKELETAL,
102 ANIMATIONMODEL_HLMDL_VALVE,
103 ANIMATIONMODEL_HLMDL_GOOSE,
104};
Definition: AnimationManager.h:19
ncEntity is the lowest of the user-accessible entity class.
Definition: Entity.h:75
typedef enumflags
Defines the valid alignment flags for text fields.
Definition: font.h:37