MCPcopy Create free account
hub / github.com/MergHQ/CRYENGINE / StartAnimationById

Method StartAnimationById

Code/CryEngine/CryAnimation/SkeletonAnim_Queue.cpp:39–243  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37//--------------------------------------------------------------------------
38
39bool CSkeletonAnim::StartAnimationById(int32 id, const struct CryCharAnimationParams& Params)
40{
41 ANIMATION_LIGHT_PROFILER();
42 DEFINE_PROFILER_FUNCTION();
43
44 if (m_pInstance->m_bEnableStartAnimation == 0)
45 return 0;
46
47 if (g_pCharacterManager->m_AllowStartOfAnimation == 0)
48 return 0;
49
50 if (Params.m_nLayerID >= numVIRTUALLAYERS || Params.m_nLayerID < 0)
51 return 0;
52
53 CDefaultSkeleton* pDefaultSkeleton = m_pInstance->m_pDefaultSkeleton;
54 const char* RootName = pDefaultSkeleton->m_arrModelJoints[0].m_strJointName.c_str();
55 if (RootName == 0)
56 return 0;
57
58 CryCharAnimationParams AnimPrams = Params;
59 if (AnimPrams.m_nLayerID > 0)
60 {
61 // AnimPrams.m_nFlags|=CA_PARTIAL_BODY_UPDATE;
62 uint32 loop = AnimPrams.m_nFlags & CA_LOOP_ANIMATION;
63 uint32 repeat = AnimPrams.m_nFlags & CA_REPEAT_LAST_KEY;
64 if (loop == 0 && repeat == 0)
65 {
66 AnimPrams.m_nFlags |= CA_REPEAT_LAST_KEY;
67 AnimPrams.m_nFlags |= CA_FADEOUT;
68 }
69 }
70
71 //----------------------------------------------------------------------------
72
73 uint32 nDisableMultilayer = AnimPrams.m_nFlags & CA_DISABLE_MULTILAYER;
74 if (nDisableMultilayer)
75 {
76 AnimPrams.m_fAllowMultilayerAnim = 0.0f;
77 }
78
79 //----------------------------------------------------------------------------
80
81 uint32 TrackViewExclusive = Params.m_nFlags & CA_TRACK_VIEW_EXCLUSIVE;
82 if (m_TrackViewExclusive && !TrackViewExclusive)
83 return 0;
84
85 const ModelAnimationHeader* pAnim = NULL;
86 int32 nAnimID = id;
87
88 const ModelAnimationHeader* pAnimAim0 = NULL;
89 int32 nAnimAimID0 = -1;
90 const ModelAnimationHeader* pAnimAim1 = NULL;
91 int32 nAnimAimID1 = -1;
92
93 CAnimationSet* pAnimationSet = m_pInstance->m_pDefaultSkeleton->m_pAnimationSet;
94
95 assert(Params.m_fTransTime < 60.0f); //transition times longer than 1 minute are useless
96

Callers 2

OnLineStartedMethod · 0.45
StartAnimationMethod · 0.45

Calls 15

fabsfFunction · 0.85
GetAnimNameMethod · 0.80
IsAssetCreatedMethod · 0.80
IsAssetLoadedMethod · 0.80
IsAssetRequestedMethod · 0.80
StartStreamingCAFMethod · 0.80
IsAimposeUnloadedMethod · 0.80
IsAssetLMGMethod · 0.80
IsAssetInternalTypeMethod · 0.80
IsAssetLMGValidMethod · 0.80
GetAnimIDByCRCMethod · 0.80

Tested by

no test coverage detected