2022-04-30 18:59:55 +02:00
|
|
|
#ifndef ANIMATION_H
|
|
|
|
#define ANIMATION_H
|
2023-01-18 01:34:40 +01:00
|
|
|
#include "mathlib/vector.h"
|
2023-01-22 16:48:16 +01:00
|
|
|
#include "public/studio.h"
|
2023-01-23 23:21:29 +01:00
|
|
|
#include "public/ihandleentity.h"
|
2023-01-18 01:34:40 +01:00
|
|
|
|
|
|
|
class CAnimationLayer
|
|
|
|
{
|
|
|
|
bool m_bSequenceFinished;
|
|
|
|
char gap_1[3];
|
|
|
|
int m_fFlags;
|
|
|
|
int m_layerIndex;
|
|
|
|
int m_modelIndex;
|
|
|
|
float m_flKillRate;
|
|
|
|
float m_flKillDelay;
|
|
|
|
char m_nActivity[4];
|
|
|
|
int m_nPriority;
|
|
|
|
float m_flLastEventCheck;
|
|
|
|
char gap_24[4];
|
2023-01-23 23:21:29 +01:00
|
|
|
IHandleEntity* m_animationLayerOwner; // !TODO: CBaseEntity/C_BaseEntity?
|
2023-01-18 01:34:40 +01:00
|
|
|
};
|
|
|
|
|
2023-04-02 17:19:13 +02:00
|
|
|
struct PredictedAnimEventData
|
2023-01-18 12:39:18 +01:00
|
|
|
{
|
|
|
|
char gap_0[8];
|
|
|
|
float m_predictedAnimEventTimes[8];
|
|
|
|
int m_predictedAnimEventIndices[8];
|
|
|
|
int m_predictedAnimEventCount;
|
|
|
|
int m_predictedAnimEventTarget;
|
|
|
|
int m_predictedAnimEventSequence;
|
|
|
|
int m_predictedAnimEventModel;
|
|
|
|
float m_predictedAnimEventsReadyToFireTime;
|
2023-04-02 17:19:13 +02:00
|
|
|
char gap_5C[4]; // <-- 64-BIT ALIGNMENT
|
2023-01-18 12:39:18 +01:00
|
|
|
};
|
|
|
|
|
2023-04-02 17:19:13 +02:00
|
|
|
struct AnimRelativeData
|
2023-01-18 01:34:40 +01:00
|
|
|
{
|
|
|
|
char gap_0[8];
|
|
|
|
Vector3D m_animInitialPos;
|
|
|
|
Vector3D m_animInitialVel;
|
|
|
|
Quaternion m_animInitialRot;
|
|
|
|
Vector3D m_animInitialCorrectPos;
|
|
|
|
Quaternion m_animInitialCorrectRot;
|
|
|
|
Vector3D m_animEntityToRefOffset;
|
|
|
|
Quaternion m_animEntityToRefRotation;
|
|
|
|
float m_animBlendBeginTime;
|
|
|
|
float m_animBlendEndTime;
|
|
|
|
int m_animScriptSequence;
|
|
|
|
int m_animScriptModel;
|
|
|
|
bool m_animIgnoreParentRot;
|
|
|
|
char gap_79[3];
|
|
|
|
int m_animMotionMode;
|
|
|
|
bool m_safePushMode;
|
2023-04-02 17:19:13 +02:00
|
|
|
char gap_81[7]; // <-- 64-BIT ALIGNMENT
|
2023-01-18 01:34:40 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
struct Player_AnimViewEntityData
|
|
|
|
{
|
|
|
|
char gap_0[8];
|
|
|
|
int animViewEntityHandle;
|
|
|
|
float animViewEntityAngleLerpInDuration;
|
|
|
|
float animViewEntityOriginLerpInDuration;
|
|
|
|
float animViewEntityLerpOutDuration;
|
|
|
|
bool animViewEntityStabilizePlayerEyeAngles;
|
|
|
|
char gap_19[3];
|
|
|
|
int animViewEntityThirdPersonCameraParity;
|
|
|
|
int animViewEntityThirdPersonCameraAttachment[6];
|
|
|
|
int animViewEntityNumThirdPersonCameraAttachments;
|
|
|
|
bool animViewEntityThirdPersonCameraVisibilityChecks;
|
|
|
|
bool animViewEntityDrawPlayer;
|
|
|
|
char gap_3e[2];
|
|
|
|
float fovTarget;
|
|
|
|
float fovSmoothTime;
|
|
|
|
int animViewEntityParity;
|
|
|
|
int lastAnimViewEntityParity;
|
|
|
|
int lastAnimViewEntityParityTick;
|
|
|
|
Vector3D animViewEntityCameraPosition;
|
|
|
|
Vector3D animViewEntityCameraAngles;
|
|
|
|
float animViewEntityBlendStartTime;
|
|
|
|
Vector3D animViewEntityBlendStartEyePosition;
|
|
|
|
Vector3D animViewEntityBlendStartEyeAngles;
|
|
|
|
};
|
|
|
|
|
2024-01-02 15:21:36 +01:00
|
|
|
inline int(*CStudioHdr__LookupSequence)(CStudioHdr* pStudio, const char* pszName);
|
2022-04-30 18:59:55 +02:00
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
2022-05-13 14:53:25 +02:00
|
|
|
class VAnimation : public IDetour
|
2022-04-30 18:59:55 +02:00
|
|
|
{
|
|
|
|
virtual void GetAdr(void) const
|
|
|
|
{
|
2024-01-02 15:21:36 +01:00
|
|
|
LogFunAdr("CStudioHdr::LookupSequence", CStudioHdr__LookupSequence);
|
2022-04-30 18:59:55 +02:00
|
|
|
}
|
|
|
|
virtual void GetFun(void) const
|
|
|
|
{
|
2024-01-02 15:21:36 +01:00
|
|
|
g_GameDll.FindPatternSIMD("40 53 48 83 EC 20 48 8B D9 4C 8B C2 48 8B 89 ?? ?? ?? ??").GetPtr(CStudioHdr__LookupSequence);
|
2022-04-30 18:59:55 +02:00
|
|
|
}
|
|
|
|
virtual void GetVar(void) const { }
|
|
|
|
virtual void GetCon(void) const { }
|
2023-11-26 13:21:20 +01:00
|
|
|
virtual void Detour(const bool bAttach) const;
|
2022-04-30 18:59:55 +02:00
|
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#endif // ANIMATION_H
|