77 lines
3.0 KiB
C++
77 lines
3.0 KiB
C++
//========= 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
|