This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

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