summaryrefslogtreecommitdiff
path: root/game/shared/animation.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/shared/animation.h')
-rw-r--r--game/shared/animation.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/game/shared/animation.h b/game/shared/animation.h
new file mode 100644
index 0000000..eb6ae87
--- /dev/null
+++ b/game/shared/animation.h
@@ -0,0 +1,65 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//
+//=============================================================================//
+#ifndef ANIMATION_H
+#define ANIMATION_H
+
+#define ACTIVITY_NOT_AVAILABLE -1
+
+struct animevent_t;
+struct studiohdr_t;
+class CStudioHdr;
+struct mstudioseqdesc_t;
+
+int ExtractBbox( CStudioHdr *pstudiohdr, int sequence, Vector& mins, Vector& maxs );
+
+void IndexModelSequences( CStudioHdr *pstudiohdr );
+void ResetActivityIndexes( CStudioHdr *pstudiohdr );
+void VerifySequenceIndex( CStudioHdr *pstudiohdr );
+int SelectWeightedSequence( CStudioHdr *pstudiohdr, int activity, int curSequence = -1 );
+int SelectHeaviestSequence( CStudioHdr *pstudiohdr, int activity );
+void SetEventIndexForSequence( mstudioseqdesc_t &seqdesc );
+void BuildAllAnimationEventIndexes( CStudioHdr *pstudiohdr );
+void ResetEventIndexes( CStudioHdr *pstudiohdr );
+
+void GetEyePosition( CStudioHdr *pstudiohdr, Vector &vecEyePosition );
+
+int LookupActivity( CStudioHdr *pstudiohdr, const char *label );
+int LookupSequence( CStudioHdr *pstudiohdr, const char *label );
+
+#define NOMOTION 99999
+void GetSequenceLinearMotion( CStudioHdr *pstudiohdr, int iSequence, const float poseParameter[], Vector *pVec );
+
+const char *GetSequenceName( CStudioHdr *pstudiohdr, int sequence );
+const char *GetSequenceActivityName( CStudioHdr *pstudiohdr, int iSequence );
+
+int GetSequenceFlags( CStudioHdr *pstudiohdr, int sequence );
+int GetAnimationEvent( CStudioHdr *pstudiohdr, int sequence, animevent_t *pNPCEvent, float flStart, float flEnd, int index );
+bool HasAnimationEventOfType( CStudioHdr *pstudiohdr, int sequence, int type );
+
+int FindTransitionSequence( CStudioHdr *pstudiohdr, int iCurrentSequence, int iGoalSequence, int *piDir );
+bool GotoSequence( CStudioHdr *pstudiohdr, int iCurrentSequence, float flCurrentCycle, float flCurrentRate, int iGoalSequence, int &nNextSequence, float &flNextCycle, int &iNextDir );
+
+void SetBodygroup( CStudioHdr *pstudiohdr, int& body, int iGroup, int iValue );
+int GetBodygroup( CStudioHdr *pstudiohdr, int body, int iGroup );
+
+const char *GetBodygroupName( CStudioHdr *pstudiohdr, int iGroup );
+int FindBodygroupByName( CStudioHdr *pstudiohdr, const char *name );
+int GetBodygroupCount( CStudioHdr *pstudiohdr, int iGroup );
+int GetNumBodyGroups( CStudioHdr *pstudiohdr );
+
+int GetSequenceActivity( CStudioHdr *pstudiohdr, int sequence, int *pweight = NULL );
+
+void GetAttachmentLocalSpace( CStudioHdr *pstudiohdr, int attachIndex, matrix3x4_t &pLocalToWorld );
+
+float SetBlending( CStudioHdr *pstudiohdr, int sequence, int *pblendings, int iBlender, float flValue );
+
+int FindHitboxSetByName( CStudioHdr *pstudiohdr, const char *name );
+const char *GetHitboxSetName( CStudioHdr *pstudiohdr, int setnumber );
+int GetHitboxSetCount( CStudioHdr *pstudiohdr );
+
+#endif //ANIMATION_H