//========= 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