28.02.2025

This commit is contained in:
Konstantin 'cpz' L. 2025-02-28 18:13:22 +03:00
parent 192be5f23a
commit ad75880902
4482 changed files with 52214 additions and 30011 deletions

40
sdk/.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,40 @@
{
"files.associations": {
"compare": "cpp",
"concepts": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"cwchar": "cpp",
"exception": "cpp",
"initializer_list": "cpp",
"iosfwd": "cpp",
"limits": "cpp",
"new": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"xmemory": "cpp",
"xstring": "cpp",
"xtr1common": "cpp",
"xutility": "cpp",
"array": "cpp",
"atomic": "cpp",
"bit": "cpp",
"ctime": "cpp",
"format": "cpp",
"map": "cpp",
"memory": "cpp",
"mutex": "cpp",
"ratio": "cpp",
"stdexcept": "cpp",
"stop_token": "cpp",
"system_error": "cpp",
"thread": "cpp",
"typeinfo": "cpp",
"vector": "cpp",
"xtree": "cpp"
}
}

View File

@ -17,7 +17,7 @@ namespace source2sdk::animationsystem
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x130 // Size: 0x148
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -46,7 +46,10 @@ namespace source2sdk::animationsystem
// m_szScripts has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_szScripts has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CBufferString> m_szScripts; // CUtlVector<CBufferString> m_szScripts;
char m_szScripts[0x18]; // 0x110 char m_szScripts[0x18]; // 0x110
[[maybe_unused]] std::uint8_t pad_0x128[0x8]; // m_AdditionalExtRefs has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CStrongHandleVoid> m_AdditionalExtRefs;
char m_AdditionalExtRefs[0x18]; // 0x128
[[maybe_unused]] std::uint8_t pad_0x140[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)
@ -57,6 +60,7 @@ namespace source2sdk::animationsystem
static_assert(offsetof(CAnimationGroup, m_directHSeqGroup_Handle) == 0x90); static_assert(offsetof(CAnimationGroup, m_directHSeqGroup_Handle) == 0x90);
static_assert(offsetof(CAnimationGroup, m_decodeKey) == 0x98); static_assert(offsetof(CAnimationGroup, m_decodeKey) == 0x98);
static_assert(offsetof(CAnimationGroup, m_szScripts) == 0x110); static_assert(offsetof(CAnimationGroup, m_szScripts) == 0x110);
static_assert(offsetof(CAnimationGroup, m_AdditionalExtRefs) == 0x128);
static_assert(sizeof(CAnimationGroup) == 0x130); static_assert(sizeof(CAnimationGroup) == 0x148);
}; };

View File

@ -0,0 +1,35 @@
#pragma once
#include "source2sdk/modellib/AttachmentHandle_t.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animationsystem
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animationsystem
{
// Registered alignment: 0x4
// Alignment: 0x4
// Standard-layout class: true
// Size: 0x8
// Has Trivial Destructor
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class FollowAttachmentData
{
public:
int32_t m_boneIndex; // 0x0
modellib::AttachmentHandle_t m_attachmentHandle; // 0x4
[[maybe_unused]] std::uint8_t pad_0x05[0x3];
};
#pragma pack(pop)
static_assert(offsetof(FollowAttachmentData, m_boneIndex) == 0x0);
static_assert(offsetof(FollowAttachmentData, m_attachmentHandle) == 0x4);
static_assert(sizeof(FollowAttachmentData) == 0x8);
};

View File

@ -22,9 +22,6 @@ namespace source2sdk::animationsystem
{ {
public: public:
int32_t m_Value; // 0x0 int32_t m_Value; // 0x0
// Static fields:
static bool &Get_IS_TYPESAFE_INTEGER() {return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("HSequence")->GetStaticFields()[0]->m_pInstance);};
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -8,12 +8,11 @@
namespace source2sdk::animationsystem namespace source2sdk::animationsystem
{ {
// Enumerator count: 2 // Enumerator count: 1
// Alignment: 4 // Alignment: 4
// Size: 0x4 // Size: 0x4
enum class RagdollPoseControl : std::uint32_t enum class RagdollPoseControl : std::uint32_t
{ {
Absolute = 0x0, Absolute = 0x0,
Relative = 0x1,
}; };
}; };

View File

@ -18,7 +18,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x10 // Registered alignment: 0x10
// Alignment: 0x10 // Alignment: 0x10
// Standard-layout class: true // Standard-layout class: true
// Size: 0xe0 // Size: 0xf0
// Has Trivial Destructor // Has Trivial Destructor
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -28,34 +28,35 @@ namespace source2sdk::animgraphlib
public: public:
modellib::CAnimAttachment m_attachment; // 0x0 modellib::CAnimAttachment m_attachment; // 0x0
animgraphlib::CAnimInputDamping m_damping; // 0x80 animgraphlib::CAnimInputDamping m_damping; // 0x80
animgraphlib::CPoseHandle m_poseCacheHandles[10]; // 0x90 animgraphlib::CPoseHandle m_poseCacheHandles[10]; // 0x98
animgraphlib::AimMatrixBlendMode m_eBlendMode; // 0xb8 animgraphlib::AimMatrixBlendMode m_eBlendMode; // 0xc0
float m_flMaxYawAngle; // 0xbc float m_flMaxYawAngle; // 0xc4
float m_flMaxPitchAngle; // 0xc0 float m_flMaxPitchAngle; // 0xc8
int32_t m_nSequenceMaxFrame; // 0xc4 int32_t m_nSequenceMaxFrame; // 0xcc
int32_t m_nBoneMaskIndex; // 0xc8 int32_t m_nBoneMaskIndex; // 0xd0
bool m_bTargetIsPosition; // 0xcc bool m_bTargetIsPosition; // 0xd4
bool m_bUseBiasAndClamp; // 0xcd bool m_bUseBiasAndClamp; // 0xd5
[[maybe_unused]] std::uint8_t pad_0xce[0x2]; // 0xce [[maybe_unused]] std::uint8_t pad_0xd6[0x2]; // 0xd6
float m_flBiasAndClampYawOffset; // 0xd0 float m_flBiasAndClampYawOffset; // 0xd8
float m_flBiasAndClampPitchOffset; // 0xd4 float m_flBiasAndClampPitchOffset; // 0xdc
animgraphlib::CBlendCurve m_biasAndClampBlendCurve; // 0xd8 animgraphlib::CBlendCurve m_biasAndClampBlendCurve; // 0xe0
[[maybe_unused]] std::uint8_t pad_0xe8[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_attachment) == 0x0); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_attachment) == 0x0);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_damping) == 0x80); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_damping) == 0x80);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_poseCacheHandles) == 0x90); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_poseCacheHandles) == 0x98);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_eBlendMode) == 0xb8); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_eBlendMode) == 0xc0);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_flMaxYawAngle) == 0xbc); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_flMaxYawAngle) == 0xc4);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_flMaxPitchAngle) == 0xc0); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_flMaxPitchAngle) == 0xc8);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_nSequenceMaxFrame) == 0xc4); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_nSequenceMaxFrame) == 0xcc);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_nBoneMaskIndex) == 0xc8); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_nBoneMaskIndex) == 0xd0);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_bTargetIsPosition) == 0xcc); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_bTargetIsPosition) == 0xd4);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_bUseBiasAndClamp) == 0xcd); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_bUseBiasAndClamp) == 0xd5);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_flBiasAndClampYawOffset) == 0xd0); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_flBiasAndClampYawOffset) == 0xd8);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_flBiasAndClampPitchOffset) == 0xd4); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_flBiasAndClampPitchOffset) == 0xdc);
static_assert(offsetof(AimMatrixOpFixedSettings_t, m_biasAndClampBlendCurve) == 0xd8); static_assert(offsetof(AimMatrixOpFixedSettings_t, m_biasAndClampBlendCurve) == 0xe0);
static_assert(sizeof(AimMatrixOpFixedSettings_t) == 0xe0); static_assert(sizeof(AimMatrixOpFixedSettings_t) == 0xf0);
}; };

View File

@ -8,7 +8,7 @@
namespace source2sdk::animgraphlib namespace source2sdk::animgraphlib
{ {
// Enumerator count: 36 // Enumerator count: 37
// Alignment: 4 // Alignment: 4
// Size: 0x4 // Size: 0x4
enum class AnimValueSource : std::uint32_t enum class AnimValueSource : std::uint32_t
@ -25,65 +25,67 @@ namespace source2sdk::animgraphlib
FacingHeading = 0x4, FacingHeading = 0x4,
// MPropertyFriendlyName "Look Heading" // MPropertyFriendlyName "Look Heading"
LookHeading = 0x5, LookHeading = 0x5,
// MPropertyFriendlyName "Look Heading Normalized"
LookHeadingNormalized = 0x6,
// MPropertyFriendlyName "Look Pitch" // MPropertyFriendlyName "Look Pitch"
LookPitch = 0x6, LookPitch = 0x7,
// MPropertyFriendlyName "Look Distance" // MPropertyFriendlyName "Look Distance"
LookDistance = 0x7, LookDistance = 0x8,
// MPropertyFriendlyName "Parameter" // MPropertyFriendlyName "Parameter"
Parameter = 0x8, Parameter = 0x9,
// MPropertyFriendlyName "Waypoint Heading" // MPropertyFriendlyName "Waypoint Heading"
WayPointHeading = 0x9, WayPointHeading = 0xa,
// MPropertyFriendlyName "Waypoint Distance" // MPropertyFriendlyName "Waypoint Distance"
WayPointDistance = 0xa, WayPointDistance = 0xb,
// MPropertyFriendlyName "Boundary Radius" // MPropertyFriendlyName "Boundary Radius"
BoundaryRadius = 0xb, BoundaryRadius = 0xc,
// MPropertyFriendlyName "Target Move Heading" // MPropertyFriendlyName "Target Move Heading"
TargetMoveHeading = 0xc, TargetMoveHeading = 0xd,
// MPropertyFriendlyName "Target Move Speed" // MPropertyFriendlyName "Target Move Speed"
TargetMoveSpeed = 0xd, TargetMoveSpeed = 0xe,
// MPropertyFriendlyName "Acceleration Heading" // MPropertyFriendlyName "Acceleration Heading"
AccelerationHeading = 0xe, AccelerationHeading = 0xf,
// MPropertyFriendlyName "Acceleration Speed" // MPropertyFriendlyName "Acceleration Speed"
AccelerationSpeed = 0xf, AccelerationSpeed = 0x10,
// MPropertyFriendlyName "Slope Heading" // MPropertyFriendlyName "Slope Heading"
SlopeHeading = 0x10, SlopeHeading = 0x11,
// MPropertyFriendlyName "Slope Angle" // MPropertyFriendlyName "Slope Angle"
SlopeAngle = 0x11, SlopeAngle = 0x12,
// MPropertyFriendlyName "Slope Pitch" // MPropertyFriendlyName "Slope Pitch"
SlopePitch = 0x12, SlopePitch = 0x13,
// MPropertyFriendlyName "Slope Yaw" // MPropertyFriendlyName "Slope Yaw"
SlopeYaw = 0x13, SlopeYaw = 0x14,
// MPropertyFriendlyName "Goal Distance" // MPropertyFriendlyName "Goal Distance"
GoalDistance = 0x14, GoalDistance = 0x15,
// MPropertyFriendlyName "Acceleration Left-Right" // MPropertyFriendlyName "Acceleration Left-Right"
AccelerationLeftRight = 0x15, AccelerationLeftRight = 0x16,
// MPropertyFriendlyName "Acceleration Forward-Back" // MPropertyFriendlyName "Acceleration Forward-Back"
AccelerationFrontBack = 0x16, AccelerationFrontBack = 0x17,
// MPropertyFriendlyName "Root Motion Speed" // MPropertyFriendlyName "Root Motion Speed"
RootMotionSpeed = 0x17, RootMotionSpeed = 0x18,
// MPropertyFriendlyName "Root Motion Turn Speed" // MPropertyFriendlyName "Root Motion Turn Speed"
RootMotionTurnSpeed = 0x18, RootMotionTurnSpeed = 0x19,
// MPropertyFriendlyName "Move Heading Relative to Look Heading" // MPropertyFriendlyName "Move Heading Relative to Look Heading"
MoveHeadingRelativeToLookHeading = 0x19, MoveHeadingRelativeToLookHeading = 0x1a,
// MPropertyFriendlyName "Max Move Speed" // MPropertyFriendlyName "Max Move Speed"
MaxMoveSpeed = 0x1a, MaxMoveSpeed = 0x1b,
// MPropertyFriendlyName "Finger Curl - Thumb" // MPropertyFriendlyName "Finger Curl - Thumb"
FingerCurl_Thumb = 0x1b, FingerCurl_Thumb = 0x1c,
// MPropertyFriendlyName "Finger Curl - Index" // MPropertyFriendlyName "Finger Curl - Index"
FingerCurl_Index = 0x1c, FingerCurl_Index = 0x1d,
// MPropertyFriendlyName "Finger Curl - Middle" // MPropertyFriendlyName "Finger Curl - Middle"
FingerCurl_Middle = 0x1d, FingerCurl_Middle = 0x1e,
// MPropertyFriendlyName "Finger Curl - Ring" // MPropertyFriendlyName "Finger Curl - Ring"
FingerCurl_Ring = 0x1e, FingerCurl_Ring = 0x1f,
// MPropertyFriendlyName "Finger Curl - Pinky" // MPropertyFriendlyName "Finger Curl - Pinky"
FingerCurl_Pinky = 0x1f, FingerCurl_Pinky = 0x20,
// MPropertyFriendlyName "Finger Splay - Thumb:Index" // MPropertyFriendlyName "Finger Splay - Thumb:Index"
FingerSplay_Thumb_Index = 0x20, FingerSplay_Thumb_Index = 0x21,
// MPropertyFriendlyName "Finger Splay - Index:Middle" // MPropertyFriendlyName "Finger Splay - Index:Middle"
FingerSplay_Index_Middle = 0x21, FingerSplay_Index_Middle = 0x22,
// MPropertyFriendlyName "Finger Splay - Middle:Ring" // MPropertyFriendlyName "Finger Splay - Middle:Ring"
FingerSplay_Middle_Ring = 0x22, FingerSplay_Middle_Ring = 0x23,
// MPropertyFriendlyName "Finger Splay - Ring:Pinky" // MPropertyFriendlyName "Finger Splay - Ring:Pinky"
FingerSplay_Ring_Pinky = 0x23, FingerSplay_Ring_Pinky = 0x24,
}; };
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x98 // Size: 0xa0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,16 +23,16 @@ namespace source2sdk::animgraphlib
class CAddUpdateNode : public animgraphlib::CBinaryUpdateNode class CAddUpdateNode : public animgraphlib::CBinaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x88[0x4]; // 0x88 [[maybe_unused]] std::uint8_t pad_0x90[0x4]; // 0x90
animgraphlib::BinaryNodeChildOption m_footMotionTiming; // 0x8c animgraphlib::BinaryNodeChildOption m_footMotionTiming; // 0x94
bool m_bApplyToFootMotion; // 0x90 bool m_bApplyToFootMotion; // 0x98
bool m_bApplyChannelsSeparately; // 0x91 bool m_bApplyChannelsSeparately; // 0x99
bool m_bUseModelSpace; // 0x92 bool m_bUseModelSpace; // 0x9a
bool m_bApplyScale; // 0x93 bool m_bApplyScale; // 0x9b
[[maybe_unused]] std::uint8_t pad_0x94[0x4]; [[maybe_unused]] std::uint8_t pad_0x9c[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CAddUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CAddUpdateNode because it is not a standard-layout class
static_assert(sizeof(CAddUpdateNode) == 0x98); static_assert(sizeof(CAddUpdateNode) == 0xa0);
}; };

View File

@ -16,7 +16,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xb8 // Size: 0xc0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -24,21 +24,21 @@ namespace source2sdk::animgraphlib
class CAimCameraUpdateNode : public animgraphlib::CUnaryUpdateNode class CAimCameraUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
animgraphlib::CAnimParamHandle m_hParameterPosition; // 0x68 animgraphlib::CAnimParamHandle m_hParameterPosition; // 0x70
animgraphlib::CAnimParamHandle m_hParameterOrientation; // 0x6a animgraphlib::CAnimParamHandle m_hParameterOrientation; // 0x72
animgraphlib::CAnimParamHandle m_hParameterSpineRotationWeight; // 0x6c animgraphlib::CAnimParamHandle m_hParameterSpineRotationWeight; // 0x74
animgraphlib::CAnimParamHandle m_hParameterPelvisOffset; // 0x6e animgraphlib::CAnimParamHandle m_hParameterPelvisOffset; // 0x76
animgraphlib::CAnimParamHandle m_hParameterUseIK; // 0x70 animgraphlib::CAnimParamHandle m_hParameterUseIK; // 0x78
animgraphlib::CAnimParamHandle m_hParameterCameraOnly; // 0x72 animgraphlib::CAnimParamHandle m_hParameterCameraOnly; // 0x7a
animgraphlib::CAnimParamHandle m_hParameterWeaponDepenetrationDistance; // 0x74 animgraphlib::CAnimParamHandle m_hParameterWeaponDepenetrationDistance; // 0x7c
animgraphlib::CAnimParamHandle m_hParameterWeaponDepenetrationDelta; // 0x76 animgraphlib::CAnimParamHandle m_hParameterWeaponDepenetrationDelta; // 0x7e
animgraphlib::CAnimParamHandle m_hParameterCameraClearanceDistance; // 0x78 animgraphlib::CAnimParamHandle m_hParameterCameraClearanceDistance; // 0x80
[[maybe_unused]] std::uint8_t pad_0x7a[0x6]; // 0x7a [[maybe_unused]] std::uint8_t pad_0x82[0x6]; // 0x82
animgraphlib::AimCameraOpFixedSettings_t m_opFixedSettings; // 0x80 animgraphlib::AimCameraOpFixedSettings_t m_opFixedSettings; // 0x88
[[maybe_unused]] std::uint8_t pad_0xb0[0x8]; [[maybe_unused]] std::uint8_t pad_0xb8[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CAimCameraUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CAimCameraUpdateNode because it is not a standard-layout class
static_assert(sizeof(CAimCameraUpdateNode) == 0xb8); static_assert(sizeof(CAimCameraUpdateNode) == 0xc0);
}; };

View File

@ -18,7 +18,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x10 // Registered alignment: 0x10
// Alignment: 0x10 // Alignment: 0x10
// Standard-layout class: false // Standard-layout class: false
// Size: 0x170 // Size: 0x180
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -26,19 +26,18 @@ namespace source2sdk::animgraphlib
class CAimMatrixUpdateNode : public animgraphlib::CUnaryUpdateNode class CAimMatrixUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x8]; // 0x68
animgraphlib::AimMatrixOpFixedSettings_t m_opFixedSettings; // 0x70 animgraphlib::AimMatrixOpFixedSettings_t m_opFixedSettings; // 0x70
[[maybe_unused]] std::uint8_t pad_0x150[0x8]; // 0x150 [[maybe_unused]] std::uint8_t pad_0x160[0x8]; // 0x160
animgraphlib::AnimVectorSource m_target; // 0x158 animgraphlib::AnimVectorSource m_target; // 0x168
animgraphlib::CAnimParamHandle m_paramIndex; // 0x15c animgraphlib::CAnimParamHandle m_paramIndex; // 0x16c
[[maybe_unused]] std::uint8_t pad_0x15e[0x2]; // 0x15e [[maybe_unused]] std::uint8_t pad_0x16e[0x2]; // 0x16e
animationsystem::HSequence m_hSequence; // 0x160 animationsystem::HSequence m_hSequence; // 0x170
bool m_bResetChild; // 0x164 bool m_bResetChild; // 0x174
bool m_bLockWhenWaning; // 0x165 bool m_bLockWhenWaning; // 0x175
[[maybe_unused]] std::uint8_t pad_0x166[0xa]; [[maybe_unused]] std::uint8_t pad_0x176[0xa];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CAimMatrixUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CAimMatrixUpdateNode because it is not a standard-layout class
static_assert(sizeof(CAimMatrixUpdateNode) == 0x170); static_assert(sizeof(CAimMatrixUpdateNode) == 0x180);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x10 // Size: 0x18
// Has VTable // Has VTable
// Has Trivial Destructor // Has Trivial Destructor
// //
@ -29,11 +29,15 @@ namespace source2sdk::animgraphlib
animgraphlib::DampingSpeedFunction m_speedFunction; // 0x8 animgraphlib::DampingSpeedFunction m_speedFunction; // 0x8
// metadata: MPropertyFriendlyName "Speed Scale" // metadata: MPropertyFriendlyName "Speed Scale"
float m_fSpeedScale; // 0xc float m_fSpeedScale; // 0xc
// metadata: MPropertyFriendlyName "Falling Speed Scale"
float m_fFallingSpeedScale; // 0x10
[[maybe_unused]] std::uint8_t pad_0x14[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CAnimInputDamping, m_speedFunction) == 0x8); static_assert(offsetof(CAnimInputDamping, m_speedFunction) == 0x8);
static_assert(offsetof(CAnimInputDamping, m_fSpeedScale) == 0xc); static_assert(offsetof(CAnimInputDamping, m_fSpeedScale) == 0xc);
static_assert(offsetof(CAnimInputDamping, m_fFallingSpeedScale) == 0x10);
static_assert(sizeof(CAnimInputDamping) == 0x10); static_assert(sizeof(CAnimInputDamping) == 0x18);
}; };

View File

@ -16,7 +16,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x88 // Size: 0x90
// Has VTable // Has VTable
// Is Abstract // Is Abstract
// //
@ -25,16 +25,17 @@ namespace source2sdk::animgraphlib
class CBinaryUpdateNode : public animgraphlib::CAnimUpdateNodeBase class CBinaryUpdateNode : public animgraphlib::CAnimUpdateNodeBase
{ {
public: public:
animgraphlib::CAnimUpdateNodeRef m_pChild1; // 0x58 [[maybe_unused]] std::uint8_t pad_0x58[0x8]; // 0x58
animgraphlib::CAnimUpdateNodeRef m_pChild2; // 0x68 animgraphlib::CAnimUpdateNodeRef m_pChild1; // 0x60
animgraphlib::BinaryNodeTiming m_timingBehavior; // 0x78 animgraphlib::CAnimUpdateNodeRef m_pChild2; // 0x70
float m_flTimingBlend; // 0x7c animgraphlib::BinaryNodeTiming m_timingBehavior; // 0x80
bool m_bResetChild1; // 0x80 float m_flTimingBlend; // 0x84
bool m_bResetChild2; // 0x81 bool m_bResetChild1; // 0x88
[[maybe_unused]] std::uint8_t pad_0x82[0x6]; bool m_bResetChild2; // 0x89
[[maybe_unused]] std::uint8_t pad_0x8a[0x6];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBinaryUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CBinaryUpdateNode because it is not a standard-layout class
static_assert(sizeof(CBinaryUpdateNode) == 0x88); static_assert(sizeof(CBinaryUpdateNode) == 0x90);
}; };

View File

@ -21,7 +21,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xf0 // Size: 0xf8
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -41,22 +41,22 @@ namespace source2sdk::animgraphlib
// CUtlVector<int32_t> m_nodeItemIndices; // CUtlVector<int32_t> m_nodeItemIndices;
char m_nodeItemIndices[0x18]; // 0xa8 char m_nodeItemIndices[0x18]; // 0xa8
animgraphlib::CAnimInputDamping m_damping; // 0xc0 animgraphlib::CAnimInputDamping m_damping; // 0xc0
animgraphlib::AnimValueSource m_blendSourceX; // 0xd0 animgraphlib::AnimValueSource m_blendSourceX; // 0xd8
animgraphlib::CAnimParamHandle m_paramX; // 0xd4 animgraphlib::CAnimParamHandle m_paramX; // 0xdc
[[maybe_unused]] std::uint8_t pad_0xd6[0x2]; // 0xd6
animgraphlib::AnimValueSource m_blendSourceY; // 0xd8
animgraphlib::CAnimParamHandle m_paramY; // 0xdc
[[maybe_unused]] std::uint8_t pad_0xde[0x2]; // 0xde [[maybe_unused]] std::uint8_t pad_0xde[0x2]; // 0xde
animgraphlib::Blend2DMode m_eBlendMode; // 0xe0 animgraphlib::AnimValueSource m_blendSourceY; // 0xe0
float m_playbackSpeed; // 0xe4 animgraphlib::CAnimParamHandle m_paramY; // 0xe4
bool m_bLoop; // 0xe8 [[maybe_unused]] std::uint8_t pad_0xe6[0x2]; // 0xe6
bool m_bLockBlendOnReset; // 0xe9 animgraphlib::Blend2DMode m_eBlendMode; // 0xe8
bool m_bLockWhenWaning; // 0xea float m_playbackSpeed; // 0xec
bool m_bAnimEventsAndTagsOnMostWeightedOnly; // 0xeb bool m_bLoop; // 0xf0
[[maybe_unused]] std::uint8_t pad_0xec[0x4]; bool m_bLockBlendOnReset; // 0xf1
bool m_bLockWhenWaning; // 0xf2
bool m_bAnimEventsAndTagsOnMostWeightedOnly; // 0xf3
[[maybe_unused]] std::uint8_t pad_0xf4[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBlend2DUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CBlend2DUpdateNode because it is not a standard-layout class
static_assert(sizeof(CBlend2DUpdateNode) == 0xf0); static_assert(sizeof(CBlend2DUpdateNode) == 0xf8);
}; };

View File

@ -19,7 +19,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xd0 // Size: 0xe0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -42,14 +42,16 @@ namespace source2sdk::animgraphlib
animgraphlib::CAnimParamHandle m_paramIndex; // 0xb0 animgraphlib::CAnimParamHandle m_paramIndex; // 0xb0
[[maybe_unused]] std::uint8_t pad_0xb2[0x6]; // 0xb2 [[maybe_unused]] std::uint8_t pad_0xb2[0x6]; // 0xb2
animgraphlib::CAnimInputDamping m_damping; // 0xb8 animgraphlib::CAnimInputDamping m_damping; // 0xb8
animgraphlib::BlendKeyType m_blendKeyType; // 0xc8 animgraphlib::BlendKeyType m_blendKeyType; // 0xd0
bool m_bLockBlendOnReset; // 0xcc bool m_bLockBlendOnReset; // 0xd4
bool m_bSyncCycles; // 0xcd bool m_bSyncCycles; // 0xd5
bool m_bLoop; // 0xce bool m_bLoop; // 0xd6
bool m_bLockWhenWaning; // 0xcf bool m_bLockWhenWaning; // 0xd7
bool m_bIsAngle; // 0xd8
[[maybe_unused]] std::uint8_t pad_0xd9[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBlendUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CBlendUpdateNode because it is not a standard-layout class
static_assert(sizeof(CBlendUpdateNode) == 0xd0); static_assert(sizeof(CBlendUpdateNode) == 0xe0);
}; };

View File

@ -18,7 +18,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xa8 // Size: 0xb0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -26,19 +26,19 @@ namespace source2sdk::animgraphlib
class CBoneMaskUpdateNode : public animgraphlib::CBinaryUpdateNode class CBoneMaskUpdateNode : public animgraphlib::CBinaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x88[0x4]; // 0x88 [[maybe_unused]] std::uint8_t pad_0x90[0x4]; // 0x90
int32_t m_nWeightListIndex; // 0x8c int32_t m_nWeightListIndex; // 0x94
float m_flRootMotionBlend; // 0x90 float m_flRootMotionBlend; // 0x98
animgraphlib::BoneMaskBlendSpace m_blendSpace; // 0x94 animgraphlib::BoneMaskBlendSpace m_blendSpace; // 0x9c
animgraphlib::BinaryNodeChildOption m_footMotionTiming; // 0x98 animgraphlib::BinaryNodeChildOption m_footMotionTiming; // 0xa0
bool m_bUseBlendScale; // 0x9c bool m_bUseBlendScale; // 0xa4
[[maybe_unused]] std::uint8_t pad_0x9d[0x3]; // 0x9d [[maybe_unused]] std::uint8_t pad_0xa5[0x3]; // 0xa5
animgraphlib::AnimValueSource m_blendValueSource; // 0xa0 animgraphlib::AnimValueSource m_blendValueSource; // 0xa8
animgraphlib::CAnimParamHandle m_hBlendParameter; // 0xa4 animgraphlib::CAnimParamHandle m_hBlendParameter; // 0xac
[[maybe_unused]] std::uint8_t pad_0xa6[0x2]; [[maybe_unused]] std::uint8_t pad_0xae[0x2];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBoneMaskUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CBoneMaskUpdateNode because it is not a standard-layout class
static_assert(sizeof(CBoneMaskUpdateNode) == 0xa8); static_assert(sizeof(CBoneMaskUpdateNode) == 0xb0);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x70 // Size: 0x78
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -22,9 +22,9 @@ namespace source2sdk::animgraphlib
class CChoreoUpdateNode : public animgraphlib::CUnaryUpdateNode class CChoreoUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x8]; [[maybe_unused]] std::uint8_t pad_0x70[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CChoreoUpdateNode) == 0x70); static_assert(sizeof(CChoreoUpdateNode) == 0x78);
}; };

View File

@ -16,7 +16,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x70 // Size: 0x78
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -24,12 +24,12 @@ namespace source2sdk::animgraphlib
class CCycleControlUpdateNode : public animgraphlib::CUnaryUpdateNode class CCycleControlUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
animgraphlib::AnimValueSource m_valueSource; // 0x68 animgraphlib::AnimValueSource m_valueSource; // 0x70
animgraphlib::CAnimParamHandle m_paramIndex; // 0x6c animgraphlib::CAnimParamHandle m_paramIndex; // 0x74
[[maybe_unused]] std::uint8_t pad_0x6e[0x2]; [[maybe_unused]] std::uint8_t pad_0x76[0x2];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CCycleControlUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CCycleControlUpdateNode because it is not a standard-layout class
static_assert(sizeof(CCycleControlUpdateNode) == 0x70); static_assert(sizeof(CCycleControlUpdateNode) == 0x78);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x20 // Size: 0x28
// Has Trivial Destructor // Has Trivial Destructor
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -24,16 +24,16 @@ namespace source2sdk::animgraphlib
{ {
public: public:
animgraphlib::CAnimInputDamping m_damping; // 0x0 animgraphlib::CAnimInputDamping m_damping; // 0x0
[[maybe_unused]] std::uint8_t pad_0x10[0x8]; // 0x10 [[maybe_unused]] std::uint8_t pad_0x18[0x8]; // 0x18
animgraphlib::CAnimParamHandle m_hParamIn; // 0x18 animgraphlib::CAnimParamHandle m_hParamIn; // 0x20
animgraphlib::CAnimParamHandle m_hParamOut; // 0x1a animgraphlib::CAnimParamHandle m_hParamOut; // 0x22
[[maybe_unused]] std::uint8_t pad_0x1c[0x4]; [[maybe_unused]] std::uint8_t pad_0x24[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CDampedValueUpdateItem, m_damping) == 0x0); static_assert(offsetof(CDampedValueUpdateItem, m_damping) == 0x0);
static_assert(offsetof(CDampedValueUpdateItem, m_hParamIn) == 0x18); static_assert(offsetof(CDampedValueUpdateItem, m_hParamIn) == 0x20);
static_assert(offsetof(CDampedValueUpdateItem, m_hParamOut) == 0x1a); static_assert(offsetof(CDampedValueUpdateItem, m_hParamOut) == 0x22);
static_assert(sizeof(CDampedValueUpdateItem) == 0x20); static_assert(sizeof(CDampedValueUpdateItem) == 0x28);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x88 // Size: 0x90
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,16 +23,16 @@ namespace source2sdk::animgraphlib
class CDirectPlaybackUpdateNode : public animgraphlib::CUnaryUpdateNode class CDirectPlaybackUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x4]; // 0x68 [[maybe_unused]] std::uint8_t pad_0x70[0x4]; // 0x70
bool m_bFinishEarly; // 0x6c bool m_bFinishEarly; // 0x74
bool m_bResetOnFinish; // 0x6d bool m_bResetOnFinish; // 0x75
[[maybe_unused]] std::uint8_t pad_0x6e[0x2]; // 0x6e [[maybe_unused]] std::uint8_t pad_0x76[0x2]; // 0x76
// m_allTags has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_allTags has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::CDirectPlaybackTagData> m_allTags; // CUtlVector<animgraphlib::CDirectPlaybackTagData> m_allTags;
char m_allTags[0x18]; // 0x70 char m_allTags[0x18]; // 0x78
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDirectPlaybackUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CDirectPlaybackUpdateNode because it is not a standard-layout class
static_assert(sizeof(CDirectPlaybackUpdateNode) == 0x88); static_assert(sizeof(CDirectPlaybackUpdateNode) == 0x90);
}; };

View File

@ -18,7 +18,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xa8 // Size: 0xb0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -30,17 +30,17 @@ namespace source2sdk::animgraphlib
animationsystem::HSequence m_hSequences[8]; // 0x5c animationsystem::HSequence m_hSequences[8]; // 0x5c
[[maybe_unused]] std::uint8_t pad_0x7c[0x4]; // 0x7c [[maybe_unused]] std::uint8_t pad_0x7c[0x4]; // 0x7c
animgraphlib::CAnimInputDamping m_damping; // 0x80 animgraphlib::CAnimInputDamping m_damping; // 0x80
animgraphlib::AnimValueSource m_blendValueSource; // 0x90 animgraphlib::AnimValueSource m_blendValueSource; // 0x98
animgraphlib::CAnimParamHandle m_paramIndex; // 0x94 animgraphlib::CAnimParamHandle m_paramIndex; // 0x9c
[[maybe_unused]] std::uint8_t pad_0x96[0x2]; // 0x96 [[maybe_unused]] std::uint8_t pad_0x9e[0x2]; // 0x9e
float m_playbackSpeed; // 0x98 float m_playbackSpeed; // 0xa0
float m_duration; // 0x9c float m_duration; // 0xa4
bool m_bLoop; // 0xa0 bool m_bLoop; // 0xa8
bool m_bLockBlendOnReset; // 0xa1 bool m_bLockBlendOnReset; // 0xa9
[[maybe_unused]] std::uint8_t pad_0xa2[0x6]; [[maybe_unused]] std::uint8_t pad_0xaa[0x6];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDirectionalBlendUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CDirectionalBlendUpdateNode because it is not a standard-layout class
static_assert(sizeof(CDirectionalBlendUpdateNode) == 0xa8); static_assert(sizeof(CDirectionalBlendUpdateNode) == 0xb0);
}; };

View File

@ -23,7 +23,6 @@ namespace source2sdk::animgraphlib
class CFollowAttachmentUpdateNode : public animgraphlib::CUnaryUpdateNode class CFollowAttachmentUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x8]; // 0x68
animgraphlib::FollowAttachmentSettings_t m_opFixedData; // 0x70 animgraphlib::FollowAttachmentSettings_t m_opFixedData; // 0x70
[[maybe_unused]] std::uint8_t pad_0x100[0x10]; [[maybe_unused]] std::uint8_t pad_0x100[0x10];
}; };

View File

@ -17,7 +17,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xa8 // Size: 0xb8
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,27 +25,27 @@ namespace source2sdk::animgraphlib
class CFollowPathUpdateNode : public animgraphlib::CUnaryUpdateNode class CFollowPathUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x4]; // 0x68 [[maybe_unused]] std::uint8_t pad_0x70[0x4]; // 0x70
float m_flBlendOutTime; // 0x6c float m_flBlendOutTime; // 0x74
bool m_bBlockNonPathMovement; // 0x70 bool m_bBlockNonPathMovement; // 0x78
bool m_bStopFeetAtGoal; // 0x71 bool m_bStopFeetAtGoal; // 0x79
bool m_bScaleSpeed; // 0x72 bool m_bScaleSpeed; // 0x7a
[[maybe_unused]] std::uint8_t pad_0x73[0x1]; // 0x73 [[maybe_unused]] std::uint8_t pad_0x7b[0x1]; // 0x7b
float m_flScale; // 0x74 float m_flScale; // 0x7c
float m_flMinAngle; // 0x78 float m_flMinAngle; // 0x80
float m_flMaxAngle; // 0x7c float m_flMaxAngle; // 0x84
float m_flSpeedScaleBlending; // 0x80 float m_flSpeedScaleBlending; // 0x88
[[maybe_unused]] std::uint8_t pad_0x84[0x4]; // 0x84 [[maybe_unused]] std::uint8_t pad_0x8c[0x4]; // 0x8c
animgraphlib::CAnimInputDamping m_turnDamping; // 0x88 animgraphlib::CAnimInputDamping m_turnDamping; // 0x90
animgraphlib::AnimValueSource m_facingTarget; // 0x98 animgraphlib::AnimValueSource m_facingTarget; // 0xa8
animgraphlib::CAnimParamHandle m_hParam; // 0x9c animgraphlib::CAnimParamHandle m_hParam; // 0xac
[[maybe_unused]] std::uint8_t pad_0x9e[0x2]; // 0x9e [[maybe_unused]] std::uint8_t pad_0xae[0x2]; // 0xae
float m_flTurnToFaceOffset; // 0xa0 float m_flTurnToFaceOffset; // 0xb0
bool m_bTurnToFace; // 0xa4 bool m_bTurnToFace; // 0xb4
[[maybe_unused]] std::uint8_t pad_0xa5[0x3]; [[maybe_unused]] std::uint8_t pad_0xb5[0x3];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CFollowPathUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CFollowPathUpdateNode because it is not a standard-layout class
static_assert(sizeof(CFollowPathUpdateNode) == 0xa8); static_assert(sizeof(CFollowPathUpdateNode) == 0xb8);
}; };

View File

@ -16,7 +16,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x88 // Size: 0x90
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -24,14 +24,14 @@ namespace source2sdk::animgraphlib
class CFollowTargetUpdateNode : public animgraphlib::CUnaryUpdateNode class CFollowTargetUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
animgraphlib::FollowTargetOpFixedSettings_t m_opFixedData; // 0x68 animgraphlib::FollowTargetOpFixedSettings_t m_opFixedData; // 0x70
[[maybe_unused]] std::uint8_t pad_0x78[0x8]; // 0x78 [[maybe_unused]] std::uint8_t pad_0x80[0x8]; // 0x80
animgraphlib::CAnimParamHandle m_hParameterPosition; // 0x80 animgraphlib::CAnimParamHandle m_hParameterPosition; // 0x88
animgraphlib::CAnimParamHandle m_hParameterOrientation; // 0x82 animgraphlib::CAnimParamHandle m_hParameterOrientation; // 0x8a
[[maybe_unused]] std::uint8_t pad_0x84[0x4]; [[maybe_unused]] std::uint8_t pad_0x8c[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CFollowTargetUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CFollowTargetUpdateNode because it is not a standard-layout class
static_assert(sizeof(CFollowTargetUpdateNode) == 0x88); static_assert(sizeof(CFollowTargetUpdateNode) == 0x90);
}; };

View File

@ -17,7 +17,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xa8 // Size: 0xb0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,23 +25,23 @@ namespace source2sdk::animgraphlib
class CFootAdjustmentUpdateNode : public animgraphlib::CUnaryUpdateNode class CFootAdjustmentUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x8]; // 0x68 [[maybe_unused]] std::uint8_t pad_0x70[0x8]; // 0x70
// m_clips has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_clips has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animationsystem::HSequence> m_clips; // CUtlVector<animationsystem::HSequence> m_clips;
char m_clips[0x18]; // 0x70 char m_clips[0x18]; // 0x78
animgraphlib::CPoseHandle m_hBasePoseCacheHandle; // 0x88 animgraphlib::CPoseHandle m_hBasePoseCacheHandle; // 0x90
animgraphlib::CAnimParamHandle m_facingTarget; // 0x8c animgraphlib::CAnimParamHandle m_facingTarget; // 0x94
[[maybe_unused]] std::uint8_t pad_0x8e[0x2]; // 0x8e [[maybe_unused]] std::uint8_t pad_0x96[0x2]; // 0x96
float m_flTurnTimeMin; // 0x90 float m_flTurnTimeMin; // 0x98
float m_flTurnTimeMax; // 0x94 float m_flTurnTimeMax; // 0x9c
float m_flStepHeightMax; // 0x98 float m_flStepHeightMax; // 0xa0
float m_flStepHeightMaxAngle; // 0x9c float m_flStepHeightMaxAngle; // 0xa4
bool m_bResetChild; // 0xa0 bool m_bResetChild; // 0xa8
bool m_bAnimationDriven; // 0xa1 bool m_bAnimationDriven; // 0xa9
[[maybe_unused]] std::uint8_t pad_0xa2[0x6]; [[maybe_unused]] std::uint8_t pad_0xaa[0x6];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CFootAdjustmentUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CFootAdjustmentUpdateNode because it is not a standard-layout class
static_assert(sizeof(CFootAdjustmentUpdateNode) == 0xa8); static_assert(sizeof(CFootAdjustmentUpdateNode) == 0xb0);
}; };

View File

@ -17,7 +17,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x138 // Size: 0x158
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,33 +25,33 @@ namespace source2sdk::animgraphlib
class CFootLockUpdateNode : public animgraphlib::CUnaryUpdateNode class CFootLockUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
animgraphlib::FootLockPoseOpFixedSettings m_opFixedSettings; // 0x68 animgraphlib::FootLockPoseOpFixedSettings m_opFixedSettings; // 0x70
[[maybe_unused]] std::uint8_t pad_0xc8[0x8]; // 0xc8 [[maybe_unused]] std::uint8_t pad_0xd8[0x8]; // 0xd8
// m_footSettings has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_footSettings has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::FootFixedSettings> m_footSettings; // CUtlVector<animgraphlib::FootFixedSettings> m_footSettings;
char m_footSettings[0x18]; // 0xd0 char m_footSettings[0x18]; // 0xe0
animgraphlib::CAnimInputDamping m_hipShiftDamping; // 0xe8 animgraphlib::CAnimInputDamping m_hipShiftDamping; // 0xf8
animgraphlib::CAnimInputDamping m_rootHeightDamping; // 0xf8 animgraphlib::CAnimInputDamping m_rootHeightDamping; // 0x110
float m_flStrideCurveScale; // 0x108 float m_flStrideCurveScale; // 0x128
float m_flStrideCurveLimitScale; // 0x10c float m_flStrideCurveLimitScale; // 0x12c
float m_flStepHeightIncreaseScale; // 0x110 float m_flStepHeightIncreaseScale; // 0x130
float m_flStepHeightDecreaseScale; // 0x114 float m_flStepHeightDecreaseScale; // 0x134
float m_flHipShiftScale; // 0x118 float m_flHipShiftScale; // 0x138
float m_flBlendTime; // 0x11c float m_flBlendTime; // 0x13c
float m_flMaxRootHeightOffset; // 0x120 float m_flMaxRootHeightOffset; // 0x140
float m_flMinRootHeightOffset; // 0x124 float m_flMinRootHeightOffset; // 0x144
float m_flTiltPlanePitchSpringStrength; // 0x128 float m_flTiltPlanePitchSpringStrength; // 0x148
float m_flTiltPlaneRollSpringStrength; // 0x12c float m_flTiltPlaneRollSpringStrength; // 0x14c
bool m_bApplyFootRotationLimits; // 0x130 bool m_bApplyFootRotationLimits; // 0x150
bool m_bApplyHipShift; // 0x131 bool m_bApplyHipShift; // 0x151
bool m_bModulateStepHeight; // 0x132 bool m_bModulateStepHeight; // 0x152
bool m_bResetChild; // 0x133 bool m_bResetChild; // 0x153
bool m_bEnableVerticalCurvedPaths; // 0x134 bool m_bEnableVerticalCurvedPaths; // 0x154
bool m_bEnableRootHeightDamping; // 0x135 bool m_bEnableRootHeightDamping; // 0x155
[[maybe_unused]] std::uint8_t pad_0x136[0x2]; [[maybe_unused]] std::uint8_t pad_0x156[0x2];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CFootLockUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CFootLockUpdateNode because it is not a standard-layout class
static_assert(sizeof(CFootLockUpdateNode) == 0x138); static_assert(sizeof(CFootLockUpdateNode) == 0x158);
}; };

View File

@ -17,7 +17,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xc8 // Size: 0xd0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,18 +25,18 @@ namespace source2sdk::animgraphlib
class CFootPinningUpdateNode : public animgraphlib::CUnaryUpdateNode class CFootPinningUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x8]; // 0x68 [[maybe_unused]] std::uint8_t pad_0x70[0x8]; // 0x70
animgraphlib::FootPinningPoseOpFixedData_t m_poseOpFixedData; // 0x70 animgraphlib::FootPinningPoseOpFixedData_t m_poseOpFixedData; // 0x78
animgraphlib::FootPinningTimingSource m_eTimingSource; // 0xa0 animgraphlib::FootPinningTimingSource m_eTimingSource; // 0xa8
[[maybe_unused]] std::uint8_t pad_0xa4[0x4]; // 0xa4 [[maybe_unused]] std::uint8_t pad_0xac[0x4]; // 0xac
// m_params has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_params has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::CAnimParamHandle> m_params; // CUtlVector<animgraphlib::CAnimParamHandle> m_params;
char m_params[0x18]; // 0xa8 char m_params[0x18]; // 0xb0
bool m_bResetChild; // 0xc0 bool m_bResetChild; // 0xc8
[[maybe_unused]] std::uint8_t pad_0xc1[0x7]; [[maybe_unused]] std::uint8_t pad_0xc9[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CFootPinningUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CFootPinningUpdateNode because it is not a standard-layout class
static_assert(sizeof(CFootPinningUpdateNode) == 0xc8); static_assert(sizeof(CFootPinningUpdateNode) == 0xd0);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x88 // Size: 0x90
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,12 +25,12 @@ namespace source2sdk::animgraphlib
public: public:
// m_triggers has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_triggers has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::FootStepTrigger> m_triggers; // CUtlVector<animgraphlib::FootStepTrigger> m_triggers;
char m_triggers[0x18]; // 0x68 char m_triggers[0x18]; // 0x70
[[maybe_unused]] std::uint8_t pad_0x80[0x4]; // 0x80 [[maybe_unused]] std::uint8_t pad_0x88[0x4]; // 0x88
float m_flTolerance; // 0x84 float m_flTolerance; // 0x8c
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CFootStepTriggerUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CFootStepTriggerUpdateNode because it is not a standard-layout class
static_assert(sizeof(CFootStepTriggerUpdateNode) == 0x88); static_assert(sizeof(CFootStepTriggerUpdateNode) == 0x90);
}; };

View File

@ -16,7 +16,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xc8 // Size: 0xd0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -24,20 +24,20 @@ namespace source2sdk::animgraphlib
class CHitReactUpdateNode : public animgraphlib::CUnaryUpdateNode class CHitReactUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
animgraphlib::HitReactFixedSettings_t m_opFixedSettings; // 0x68 animgraphlib::HitReactFixedSettings_t m_opFixedSettings; // 0x70
[[maybe_unused]] std::uint8_t pad_0xac[0x8]; // 0xac [[maybe_unused]] std::uint8_t pad_0xb4[0x8]; // 0xb4
animgraphlib::CAnimParamHandle m_triggerParam; // 0xb4 animgraphlib::CAnimParamHandle m_triggerParam; // 0xbc
animgraphlib::CAnimParamHandle m_hitBoneParam; // 0xb6 animgraphlib::CAnimParamHandle m_hitBoneParam; // 0xbe
animgraphlib::CAnimParamHandle m_hitOffsetParam; // 0xb8 animgraphlib::CAnimParamHandle m_hitOffsetParam; // 0xc0
animgraphlib::CAnimParamHandle m_hitDirectionParam; // 0xba animgraphlib::CAnimParamHandle m_hitDirectionParam; // 0xc2
animgraphlib::CAnimParamHandle m_hitStrengthParam; // 0xbc animgraphlib::CAnimParamHandle m_hitStrengthParam; // 0xc4
[[maybe_unused]] std::uint8_t pad_0xbe[0x2]; // 0xbe [[maybe_unused]] std::uint8_t pad_0xc6[0x2]; // 0xc6
float m_flMinDelayBetweenHits; // 0xc0 float m_flMinDelayBetweenHits; // 0xc8
bool m_bResetChild; // 0xc4 bool m_bResetChild; // 0xcc
[[maybe_unused]] std::uint8_t pad_0xc5[0x3]; [[maybe_unused]] std::uint8_t pad_0xcd[0x3];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CHitReactUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CHitReactUpdateNode because it is not a standard-layout class
static_assert(sizeof(CHitReactUpdateNode) == 0xc8); static_assert(sizeof(CHitReactUpdateNode) == 0xd0);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x88 // Size: 0x90
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,11 +23,11 @@ namespace source2sdk::animgraphlib
class CJiggleBoneUpdateNode : public animgraphlib::CUnaryUpdateNode class CJiggleBoneUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
animgraphlib::JiggleBoneSettingsList_t m_opFixedData; // 0x68 animgraphlib::JiggleBoneSettingsList_t m_opFixedData; // 0x70
[[maybe_unused]] std::uint8_t pad_0x80[0x8]; [[maybe_unused]] std::uint8_t pad_0x88[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CJiggleBoneUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CJiggleBoneUpdateNode because it is not a standard-layout class
static_assert(sizeof(CJiggleBoneUpdateNode) == 0x88); static_assert(sizeof(CJiggleBoneUpdateNode) == 0x90);
}; };

View File

@ -16,7 +16,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xd0 // Size: 0xd8
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -24,19 +24,19 @@ namespace source2sdk::animgraphlib
class CJumpHelperUpdateNode : public animgraphlib::CSequenceUpdateNode class CJumpHelperUpdateNode : public animgraphlib::CSequenceUpdateNode
{ {
public: public:
animgraphlib::CAnimParamHandle m_hTargetParam; // 0xa8 animgraphlib::CAnimParamHandle m_hTargetParam; // 0xb0
[[maybe_unused]] std::uint8_t pad_0xaa[0x2]; // 0xaa [[maybe_unused]] std::uint8_t pad_0xb2[0x2]; // 0xb2
Vector m_flOriginalJumpMovement; // 0xac Vector m_flOriginalJumpMovement; // 0xb4
float m_flOriginalJumpDuration; // 0xb8 float m_flOriginalJumpDuration; // 0xc0
float m_flJumpStartCycle; // 0xbc float m_flJumpStartCycle; // 0xc4
float m_flJumpEndCycle; // 0xc0 float m_flJumpEndCycle; // 0xc8
animgraphlib::JumpCorrectionMethod m_eCorrectionMethod; // 0xc4 animgraphlib::JumpCorrectionMethod m_eCorrectionMethod; // 0xcc
bool m_bTranslationAxis[3]; // 0xc8 bool m_bTranslationAxis[3]; // 0xd0
bool m_bScaleSpeed; // 0xcb bool m_bScaleSpeed; // 0xd3
[[maybe_unused]] std::uint8_t pad_0xcc[0x4]; [[maybe_unused]] std::uint8_t pad_0xd4[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CJumpHelperUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CJumpHelperUpdateNode because it is not a standard-layout class
static_assert(sizeof(CJumpHelperUpdateNode) == 0xd0); static_assert(sizeof(CJumpHelperUpdateNode) == 0xd8);
}; };

View File

@ -19,7 +19,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xe8 // Size: 0xf0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -32,18 +32,18 @@ namespace source2sdk::animgraphlib
animgraphlib::CPoseHandle m_poses[9]; // 0x80 animgraphlib::CPoseHandle m_poses[9]; // 0x80
[[maybe_unused]] std::uint8_t pad_0xa4[0x4]; // 0xa4 [[maybe_unused]] std::uint8_t pad_0xa4[0x4]; // 0xa4
animgraphlib::CAnimInputDamping m_damping; // 0xa8 animgraphlib::CAnimInputDamping m_damping; // 0xa8
animgraphlib::AnimVectorSource m_blendSource; // 0xb8 animgraphlib::AnimVectorSource m_blendSource; // 0xc0
animgraphlib::CAnimParamHandle m_paramIndex; // 0xbc animgraphlib::CAnimParamHandle m_paramIndex; // 0xc4
[[maybe_unused]] std::uint8_t pad_0xbe[0x2]; // 0xbe [[maybe_unused]] std::uint8_t pad_0xc6[0x2]; // 0xc6
Vector m_verticalAxis; // 0xc0 Vector m_verticalAxis; // 0xc8
Vector m_horizontalAxis; // 0xcc Vector m_horizontalAxis; // 0xd4
animationsystem::HSequence m_hSequence; // 0xd8 animationsystem::HSequence m_hSequence; // 0xe0
float m_flMaxValue; // 0xdc float m_flMaxValue; // 0xe4
int32_t m_nSequenceMaxFrame; // 0xe0 int32_t m_nSequenceMaxFrame; // 0xe8
[[maybe_unused]] std::uint8_t pad_0xe4[0x4]; [[maybe_unused]] std::uint8_t pad_0xec[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CLeanMatrixUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CLeanMatrixUpdateNode because it is not a standard-layout class
static_assert(sizeof(CLeanMatrixUpdateNode) == 0xe8); static_assert(sizeof(CLeanMatrixUpdateNode) == 0xf0);
}; };

View File

@ -17,7 +17,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x10 // Registered alignment: 0x10
// Alignment: 0x10 // Alignment: 0x10
// Standard-layout class: false // Standard-layout class: false
// Size: 0x150 // Size: 0x160
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,18 +25,17 @@ namespace source2sdk::animgraphlib
class CLookAtUpdateNode : public animgraphlib::CUnaryUpdateNode class CLookAtUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x8]; // 0x68
animgraphlib::LookAtOpFixedSettings_t m_opFixedSettings; // 0x70 animgraphlib::LookAtOpFixedSettings_t m_opFixedSettings; // 0x70
[[maybe_unused]] std::uint8_t pad_0x130[0x8]; // 0x130 [[maybe_unused]] std::uint8_t pad_0x140[0x8]; // 0x140
animgraphlib::AnimVectorSource m_target; // 0x138 animgraphlib::AnimVectorSource m_target; // 0x148
animgraphlib::CAnimParamHandle m_paramIndex; // 0x13c animgraphlib::CAnimParamHandle m_paramIndex; // 0x14c
animgraphlib::CAnimParamHandle m_weightParamIndex; // 0x13e animgraphlib::CAnimParamHandle m_weightParamIndex; // 0x14e
bool m_bResetChild; // 0x140 bool m_bResetChild; // 0x150
bool m_bLockWhenWaning; // 0x141 bool m_bLockWhenWaning; // 0x151
[[maybe_unused]] std::uint8_t pad_0x142[0xe]; [[maybe_unused]] std::uint8_t pad_0x152[0xe];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CLookAtUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CLookAtUpdateNode because it is not a standard-layout class
static_assert(sizeof(CLookAtUpdateNode) == 0x150); static_assert(sizeof(CLookAtUpdateNode) == 0x160);
}; };

View File

@ -25,14 +25,15 @@ namespace source2sdk::animgraphlib
public: public:
[[maybe_unused]] std::uint8_t pad_0x30[0x4]; // 0x30 [[maybe_unused]] std::uint8_t pad_0x30[0x4]; // 0x30
animgraphlib::CAnimParamHandle m_hLookHeading; // 0x34 animgraphlib::CAnimParamHandle m_hLookHeading; // 0x34
animgraphlib::CAnimParamHandle m_hLookHeadingVelocity; // 0x36 animgraphlib::CAnimParamHandle m_hLookHeadingNormalized; // 0x36
animgraphlib::CAnimParamHandle m_hLookPitch; // 0x38 animgraphlib::CAnimParamHandle m_hLookHeadingVelocity; // 0x38
animgraphlib::CAnimParamHandle m_hLookDistance; // 0x3a animgraphlib::CAnimParamHandle m_hLookPitch; // 0x3a
animgraphlib::CAnimParamHandle m_hLookDirection; // 0x3c animgraphlib::CAnimParamHandle m_hLookDistance; // 0x3c
animgraphlib::CAnimParamHandle m_hLookTarget; // 0x3e animgraphlib::CAnimParamHandle m_hLookDirection; // 0x3e
animgraphlib::CAnimParamHandle m_hLookTargetWorldSpace; // 0x40 animgraphlib::CAnimParamHandle m_hLookTarget; // 0x40
bool m_bNetworkLookTarget; // 0x42 animgraphlib::CAnimParamHandle m_hLookTargetWorldSpace; // 0x42
[[maybe_unused]] std::uint8_t pad_0x43[0x5]; bool m_bNetworkLookTarget; // 0x44
[[maybe_unused]] std::uint8_t pad_0x45[0x3];
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -18,7 +18,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x140 // Size: 0x148
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -54,15 +54,15 @@ namespace source2sdk::animgraphlib
float m_flGoalAssistTolerance; // 0x110 float m_flGoalAssistTolerance; // 0x110
[[maybe_unused]] std::uint8_t pad_0x114[0x4]; // 0x114 [[maybe_unused]] std::uint8_t pad_0x114[0x4]; // 0x114
animgraphlib::CAnimInputDamping m_distanceScale_Damping; // 0x118 animgraphlib::CAnimInputDamping m_distanceScale_Damping; // 0x118
float m_flDistanceScale_OuterRadius; // 0x128 float m_flDistanceScale_OuterRadius; // 0x130
float m_flDistanceScale_InnerRadius; // 0x12c float m_flDistanceScale_InnerRadius; // 0x134
float m_flDistanceScale_MaxScale; // 0x130 float m_flDistanceScale_MaxScale; // 0x138
float m_flDistanceScale_MinScale; // 0x134 float m_flDistanceScale_MinScale; // 0x13c
bool m_bEnableDistanceScaling; // 0x138 bool m_bEnableDistanceScaling; // 0x140
[[maybe_unused]] std::uint8_t pad_0x139[0x7]; [[maybe_unused]] std::uint8_t pad_0x141[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CMotionMatchingUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CMotionMatchingUpdateNode because it is not a standard-layout class
static_assert(sizeof(CMotionMatchingUpdateNode) == 0x140); static_assert(sizeof(CMotionMatchingUpdateNode) == 0x148);
}; };

View File

@ -17,7 +17,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xa8 // Size: 0xb8
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -29,17 +29,17 @@ namespace source2sdk::animgraphlib
// CUtlVector<CSmartPtr<animgraphlib::CAnimMotorUpdaterBase>> m_motors; // CUtlVector<CSmartPtr<animgraphlib::CAnimMotorUpdaterBase>> m_motors;
char m_motors[0x18]; // 0x30 char m_motors[0x18]; // 0x30
animgraphlib::CAnimInputDamping m_facingDamping; // 0x48 animgraphlib::CAnimInputDamping m_facingDamping; // 0x48
[[maybe_unused]] std::uint8_t pad_0x58[0x8]; // 0x58 [[maybe_unused]] std::uint8_t pad_0x60[0x8]; // 0x60
int32_t m_nDefaultMotorIndex; // 0x60 int32_t m_nDefaultMotorIndex; // 0x68
float m_flDefaultRunSpeed; // 0x64 float m_flDefaultRunSpeed; // 0x6c
bool m_bMoveVarsDisabled; // 0x68 bool m_bMoveVarsDisabled; // 0x70
bool m_bNetworkPath; // 0x69 bool m_bNetworkPath; // 0x71
bool m_bNetworkFacing; // 0x6a bool m_bNetworkFacing; // 0x72
animgraphlib::CAnimParamHandle m_paramHandles[30]; // 0x6b animgraphlib::CAnimParamHandle m_paramHandles[34]; // 0x73
[[maybe_unused]] std::uint8_t pad_0xa7[0x1]; [[maybe_unused]] std::uint8_t pad_0xb7[0x1];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CMovementComponentUpdater because it is not a standard-layout class // Cannot assert offsets of fields in CMovementComponentUpdater because it is not a standard-layout class
static_assert(sizeof(CMovementComponentUpdater) == 0xa8); static_assert(sizeof(CMovementComponentUpdater) == 0xb8);
}; };

View File

@ -17,7 +17,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xa0 // Size: 0xb0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,24 +25,24 @@ namespace source2sdk::animgraphlib
class CMoverUpdateNode : public animgraphlib::CUnaryUpdateNode class CMoverUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x8]; // 0x68 [[maybe_unused]] std::uint8_t pad_0x70[0x8]; // 0x70
animgraphlib::CAnimInputDamping m_damping; // 0x70 animgraphlib::CAnimInputDamping m_damping; // 0x78
animgraphlib::AnimValueSource m_facingTarget; // 0x80 animgraphlib::AnimValueSource m_facingTarget; // 0x90
animgraphlib::CAnimParamHandle m_hMoveVecParam; // 0x84 animgraphlib::CAnimParamHandle m_hMoveVecParam; // 0x94
animgraphlib::CAnimParamHandle m_hMoveHeadingParam; // 0x86 animgraphlib::CAnimParamHandle m_hMoveHeadingParam; // 0x96
animgraphlib::CAnimParamHandle m_hTurnToFaceParam; // 0x88 animgraphlib::CAnimParamHandle m_hTurnToFaceParam; // 0x98
[[maybe_unused]] std::uint8_t pad_0x8a[0x2]; // 0x8a [[maybe_unused]] std::uint8_t pad_0x9a[0x2]; // 0x9a
float m_flTurnToFaceOffset; // 0x8c float m_flTurnToFaceOffset; // 0x9c
float m_flTurnToFaceLimit; // 0x90 float m_flTurnToFaceLimit; // 0xa0
bool m_bAdditive; // 0x94 bool m_bAdditive; // 0xa4
bool m_bApplyMovement; // 0x95 bool m_bApplyMovement; // 0xa5
bool m_bOrientMovement; // 0x96 bool m_bOrientMovement; // 0xa6
bool m_bApplyRotation; // 0x97 bool m_bApplyRotation; // 0xa7
bool m_bLimitOnly; // 0x98 bool m_bLimitOnly; // 0xa8
[[maybe_unused]] std::uint8_t pad_0x99[0x7]; [[maybe_unused]] std::uint8_t pad_0xa9[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CMoverUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CMoverUpdateNode because it is not a standard-layout class
static_assert(sizeof(CMoverUpdateNode) == 0xa0); static_assert(sizeof(CMoverUpdateNode) == 0xb0);
}; };

View File

@ -0,0 +1,54 @@
#pragma once
#include "source2sdk/animgraphlib/AnimValueSource.hpp"
#include "source2sdk/animgraphlib/CAnimInputDamping.hpp"
#include "source2sdk/animgraphlib/CAnimParamHandle.hpp"
#include "source2sdk/animgraphlib/CUnaryUpdateNode.hpp"
#include "source2sdk/animgraphlib/OrientationWarpMode_t.hpp"
#include "source2sdk/animgraphlib/OrientationWarpRootMotionSource_t.hpp"
#include "source2sdk/animgraphlib/OrientationWarpTargetOffsetMode_t.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animgraphlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animgraphlib
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0xc0
// Has VTable
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class COrientationWarpUpdateNode : public animgraphlib::CUnaryUpdateNode
{
public:
[[maybe_unused]] std::uint8_t pad_0x70[0x4]; // 0x70
animgraphlib::OrientationWarpMode_t m_eMode; // 0x74
animgraphlib::CAnimParamHandle m_hTargetParam; // 0x78
animgraphlib::CAnimParamHandle m_hTargetPositionParam; // 0x7a
animgraphlib::CAnimParamHandle m_hFallbackTargetPositionParam; // 0x7c
[[maybe_unused]] std::uint8_t pad_0x7e[0x2]; // 0x7e
animgraphlib::OrientationWarpTargetOffsetMode_t m_eTargetOffsetMode; // 0x80
float m_flTargetOffset; // 0x84
animgraphlib::CAnimParamHandle m_hTargetOffsetParam; // 0x88
[[maybe_unused]] std::uint8_t pad_0x8a[0x6]; // 0x8a
animgraphlib::CAnimInputDamping m_damping; // 0x90
animgraphlib::OrientationWarpRootMotionSource_t m_eRootMotionSource; // 0xa8
float m_flMaxRootMotionScale; // 0xac
bool m_bEnablePreferredRotationDirection; // 0xb0
[[maybe_unused]] std::uint8_t pad_0xb1[0x3]; // 0xb1
animgraphlib::AnimValueSource m_ePreferredRotationDirection; // 0xb4
float m_flPreferredRotationThreshold; // 0xb8
[[maybe_unused]] std::uint8_t pad_0xbc[0x4];
};
#pragma pack(pop)
// Cannot assert offsets of fields in COrientationWarpUpdateNode because it is not a standard-layout class
static_assert(sizeof(COrientationWarpUpdateNode) == 0xc0);
};

View File

@ -14,7 +14,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x80 // Size: 0x88
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -22,11 +22,11 @@ namespace source2sdk::animgraphlib
class CPairedSequenceUpdateNode : public animgraphlib::CSequenceUpdateNodeBase class CPairedSequenceUpdateNode : public animgraphlib::CSequenceUpdateNodeBase
{ {
public: public:
CGlobalSymbol m_sPairedSequenceRole; // 0x70 CGlobalSymbol m_sPairedSequenceRole; // 0x78
[[maybe_unused]] std::uint8_t pad_0x78[0x8]; [[maybe_unused]] std::uint8_t pad_0x80[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CPairedSequenceUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CPairedSequenceUpdateNode because it is not a standard-layout class
static_assert(sizeof(CPairedSequenceUpdateNode) == 0x80); static_assert(sizeof(CPairedSequenceUpdateNode) == 0x88);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x70 // Size: 0x78
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -22,11 +22,11 @@ namespace source2sdk::animgraphlib
class CPathHelperUpdateNode : public animgraphlib::CUnaryUpdateNode class CPathHelperUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
float m_flStoppingRadius; // 0x68 float m_flStoppingRadius; // 0x70
float m_flStoppingSpeedScale; // 0x6c float m_flStoppingSpeedScale; // 0x74
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CPathHelperUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CPathHelperUpdateNode because it is not a standard-layout class
static_assert(sizeof(CPathHelperUpdateNode) == 0x70); static_assert(sizeof(CPathHelperUpdateNode) == 0x78);
}; };

View File

@ -16,7 +16,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xa8 // Size: 0xd8
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -27,23 +27,29 @@ namespace source2sdk::animgraphlib
// m_ragdollNodePaths has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_ragdollNodePaths has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::CAnimNodePath> m_ragdollNodePaths; // CUtlVector<animgraphlib::CAnimNodePath> m_ragdollNodePaths;
char m_ragdollNodePaths[0x18]; // 0x30 char m_ragdollNodePaths[0x18]; // 0x30
// m_followAttachmentNodePaths has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::CAnimNodePath> m_followAttachmentNodePaths;
char m_followAttachmentNodePaths[0x18]; // 0x48
// m_boneIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_boneIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<int32_t> m_boneIndices; // CUtlVector<int32_t> m_boneIndices;
char m_boneIndices[0x18]; // 0x48 char m_boneIndices[0x18]; // 0x60
// m_boneNames has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_boneNames has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CUtlString> m_boneNames; // CUtlVector<CUtlString> m_boneNames;
char m_boneNames[0x18]; // 0x60 char m_boneNames[0x18]; // 0x78
// m_weightLists has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_weightLists has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::WeightList> m_weightLists; // CUtlVector<animgraphlib::WeightList> m_weightLists;
char m_weightLists[0x18]; // 0x78 char m_weightLists[0x18]; // 0x90
float m_flSpringFrequencyMin; // 0x90 // m_boneToWeightIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below.
float m_flSpringFrequencyMax; // 0x94 // CUtlVector<int32_t> m_boneToWeightIndices;
float m_flMaxStretch; // 0x98 char m_boneToWeightIndices[0x18]; // 0xa8
bool m_bSolidCollisionAtZeroWeight; // 0x9c float m_flSpringFrequencyMin; // 0xc0
[[maybe_unused]] std::uint8_t pad_0x9d[0xb]; float m_flSpringFrequencyMax; // 0xc4
float m_flMaxStretch; // 0xc8
bool m_bSolidCollisionAtZeroWeight; // 0xcc
[[maybe_unused]] std::uint8_t pad_0xcd[0xb];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CRagdollComponentUpdater because it is not a standard-layout class // Cannot assert offsets of fields in CRagdollComponentUpdater because it is not a standard-layout class
static_assert(sizeof(CRagdollComponentUpdater) == 0xa8); static_assert(sizeof(CRagdollComponentUpdater) == 0xd8);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x70 // Size: 0x78
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,11 +23,11 @@ namespace source2sdk::animgraphlib
class CRagdollUpdateNode : public animgraphlib::CUnaryUpdateNode class CRagdollUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
int32_t m_nWeightListIndex; // 0x68 int32_t m_nWeightListIndex; // 0x70
animationsystem::RagdollPoseControl m_poseControlMethod; // 0x6c animationsystem::RagdollPoseControl m_poseControlMethod; // 0x74
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CRagdollUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CRagdollUpdateNode because it is not a standard-layout class
static_assert(sizeof(CRagdollUpdateNode) == 0x70); static_assert(sizeof(CRagdollUpdateNode) == 0x78);
}; };

View File

@ -0,0 +1,34 @@
#pragma once
#include "source2sdk/animgraphlib/CAnimComponentUpdater.hpp"
#include "source2sdk/animgraphlib/CRemapValueUpdateItem.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animgraphlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animgraphlib
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0x48
// Has VTable
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CRemapValueComponentUpdater : public animgraphlib::CAnimComponentUpdater
{
public:
// m_items has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::CRemapValueUpdateItem> m_items;
char m_items[0x18]; // 0x30
};
#pragma pack(pop)
// Cannot assert offsets of fields in CRemapValueComponentUpdater because it is not a standard-layout class
static_assert(sizeof(CRemapValueComponentUpdater) == 0x48);
};

View File

@ -0,0 +1,42 @@
#pragma once
#include "source2sdk/animgraphlib/CAnimParamHandle.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animgraphlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animgraphlib
{
// Registered alignment: 0x4
// Alignment: 0x4
// Standard-layout class: true
// Size: 0x14
// Has Trivial Destructor
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CRemapValueUpdateItem
{
public:
animgraphlib::CAnimParamHandle m_hParamIn; // 0x0
animgraphlib::CAnimParamHandle m_hParamOut; // 0x2
float m_flMinInputValue; // 0x4
float m_flMaxInputValue; // 0x8
float m_flMinOutputValue; // 0xc
float m_flMaxOutputValue; // 0x10
};
#pragma pack(pop)
static_assert(offsetof(CRemapValueUpdateItem, m_hParamIn) == 0x0);
static_assert(offsetof(CRemapValueUpdateItem, m_hParamOut) == 0x2);
static_assert(offsetof(CRemapValueUpdateItem, m_flMinInputValue) == 0x4);
static_assert(offsetof(CRemapValueUpdateItem, m_flMaxInputValue) == 0x8);
static_assert(offsetof(CRemapValueUpdateItem, m_flMinOutputValue) == 0xc);
static_assert(offsetof(CRemapValueUpdateItem, m_flMaxOutputValue) == 0x10);
static_assert(sizeof(CRemapValueUpdateItem) == 0x14);
};

View File

@ -14,7 +14,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x68 // Size: 0x70
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,5 +25,5 @@ namespace source2sdk::animgraphlib
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CRootUpdateNode) == 0x68); static_assert(sizeof(CRootUpdateNode) == 0x70);
}; };

View File

@ -18,7 +18,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xb0 // Size: 0xb8
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -26,28 +26,29 @@ namespace source2sdk::animgraphlib
class CSelectorUpdateNode : public animgraphlib::CAnimUpdateNodeBase class CSelectorUpdateNode : public animgraphlib::CAnimUpdateNodeBase
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x58[0x8]; // 0x58
// m_children has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_children has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::CAnimUpdateNodeRef> m_children; // CUtlVector<animgraphlib::CAnimUpdateNodeRef> m_children;
char m_children[0x18]; // 0x58 char m_children[0x18]; // 0x60
// m_tags has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_tags has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<int8_t> m_tags; // CUtlVector<int8_t> m_tags;
char m_tags[0x18]; // 0x70 char m_tags[0x18]; // 0x78
[[maybe_unused]] std::uint8_t pad_0x88[0x4]; // 0x88 [[maybe_unused]] std::uint8_t pad_0x90[0x4]; // 0x90
animgraphlib::CBlendCurve m_blendCurve; // 0x8c animgraphlib::CBlendCurve m_blendCurve; // 0x94
// m_flBlendTime has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_flBlendTime has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CAnimValue<float> m_flBlendTime; // CAnimValue<float> m_flBlendTime;
char m_flBlendTime[0x8]; // 0x94 char m_flBlendTime[0x8]; // 0x9c
animgraphlib::CAnimParamHandle m_hParameter; // 0x9c animgraphlib::CAnimParamHandle m_hParameter; // 0xa4
[[maybe_unused]] std::uint8_t pad_0x9e[0x2]; // 0x9e [[maybe_unused]] std::uint8_t pad_0xa6[0x2]; // 0xa6
int32_t m_nTagIndex; // 0xa0 int32_t m_nTagIndex; // 0xa8
animgraphlib::SelectorTagBehavior_t m_eTagBehavior; // 0xa4 animgraphlib::SelectorTagBehavior_t m_eTagBehavior; // 0xac
bool m_bResetOnChange; // 0xa8 bool m_bResetOnChange; // 0xb0
bool m_bLockWhenWaning; // 0xa9 bool m_bLockWhenWaning; // 0xb1
bool m_bSyncCyclesOnChange; // 0xaa bool m_bSyncCyclesOnChange; // 0xb2
[[maybe_unused]] std::uint8_t pad_0xab[0x5]; [[maybe_unused]] std::uint8_t pad_0xb3[0x5];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CSelectorUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CSelectorUpdateNode because it is not a standard-layout class
static_assert(sizeof(CSelectorUpdateNode) == 0xb0); static_assert(sizeof(CSelectorUpdateNode) == 0xb8);
}; };

View File

@ -17,7 +17,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xa8 // Size: 0xb0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,15 +25,15 @@ namespace source2sdk::animgraphlib
class CSequenceUpdateNode : public animgraphlib::CSequenceUpdateNodeBase class CSequenceUpdateNode : public animgraphlib::CSequenceUpdateNodeBase
{ {
public: public:
animationsystem::HSequence m_hSequence; // 0x70 animationsystem::HSequence m_hSequence; // 0x78
float m_duration; // 0x74 float m_duration; // 0x7c
animgraphlib::CParamSpanUpdater m_paramSpans; // 0x78 animgraphlib::CParamSpanUpdater m_paramSpans; // 0x80
// m_tags has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_tags has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::TagSpan_t> m_tags; // CUtlVector<animgraphlib::TagSpan_t> m_tags;
char m_tags[0x18]; // 0x90 char m_tags[0x18]; // 0x98
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CSequenceUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CSequenceUpdateNode because it is not a standard-layout class
static_assert(sizeof(CSequenceUpdateNode) == 0xa8); static_assert(sizeof(CSequenceUpdateNode) == 0xb0);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x70 // Size: 0x78
// Has VTable // Has VTable
// Is Abstract // Is Abstract
// //
@ -23,13 +23,13 @@ namespace source2sdk::animgraphlib
class CSequenceUpdateNodeBase : public animgraphlib::CLeafUpdateNode class CSequenceUpdateNodeBase : public animgraphlib::CLeafUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x58[0xc]; // 0x58 [[maybe_unused]] std::uint8_t pad_0x58[0x14]; // 0x58
float m_playbackSpeed; // 0x64 float m_playbackSpeed; // 0x6c
bool m_bLoop; // 0x68 bool m_bLoop; // 0x70
[[maybe_unused]] std::uint8_t pad_0x69[0x7]; [[maybe_unused]] std::uint8_t pad_0x71[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CSequenceUpdateNodeBase because it is not a standard-layout class // Cannot assert offsets of fields in CSequenceUpdateNodeBase because it is not a standard-layout class
static_assert(sizeof(CSequenceUpdateNodeBase) == 0x70); static_assert(sizeof(CSequenceUpdateNodeBase) == 0x78);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x70 // Size: 0x78
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -22,11 +22,11 @@ namespace source2sdk::animgraphlib
class CSlowDownOnSlopesUpdateNode : public animgraphlib::CUnaryUpdateNode class CSlowDownOnSlopesUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
float m_flSlowDownStrength; // 0x68 float m_flSlowDownStrength; // 0x70
[[maybe_unused]] std::uint8_t pad_0x6c[0x4]; [[maybe_unused]] std::uint8_t pad_0x74[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CSlowDownOnSlopesUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CSlowDownOnSlopesUpdateNode because it is not a standard-layout class
static_assert(sizeof(CSlowDownOnSlopesUpdateNode) == 0x70); static_assert(sizeof(CSlowDownOnSlopesUpdateNode) == 0x78);
}; };

View File

@ -26,8 +26,8 @@ namespace source2sdk::animgraphlib
public: public:
// m_targetHandles has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_targetHandles has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::CSolveIKTargetHandle_t> m_targetHandles; // CUtlVector<animgraphlib::CSolveIKTargetHandle_t> m_targetHandles;
char m_targetHandles[0x18]; // 0x68 char m_targetHandles[0x18]; // 0x70
animgraphlib::SolveIKChainPoseOpFixedSettings_t m_opFixedData; // 0x80 animgraphlib::SolveIKChainPoseOpFixedSettings_t m_opFixedData; // 0x88
[[maybe_unused]] std::uint8_t pad_0xa0[0x8]; [[maybe_unused]] std::uint8_t pad_0xa0[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x70 // Size: 0x78
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,11 +23,11 @@ namespace source2sdk::animgraphlib
class CSpeedScaleUpdateNode : public animgraphlib::CUnaryUpdateNode class CSpeedScaleUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
animgraphlib::CAnimParamHandle m_paramIndex; // 0x68 animgraphlib::CAnimParamHandle m_paramIndex; // 0x70
[[maybe_unused]] std::uint8_t pad_0x6a[0x6]; [[maybe_unused]] std::uint8_t pad_0x72[0x6];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CSpeedScaleUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CSpeedScaleUpdateNode because it is not a standard-layout class
static_assert(sizeof(CSpeedScaleUpdateNode) == 0x70); static_assert(sizeof(CSpeedScaleUpdateNode) == 0x78);
}; };

View File

@ -18,7 +18,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x98 // Size: 0xa0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -28,14 +28,14 @@ namespace source2sdk::animgraphlib
public: public:
// m_footStanceInfo has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_footStanceInfo has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::StanceInfo_t> m_footStanceInfo; // CUtlVector<animgraphlib::StanceInfo_t> m_footStanceInfo;
char m_footStanceInfo[0x18]; // 0x68 char m_footStanceInfo[0x18]; // 0x70
animgraphlib::CAnimUpdateNodeRef m_pStanceSourceNode; // 0x80 animgraphlib::CAnimUpdateNodeRef m_pStanceSourceNode; // 0x88
animgraphlib::CAnimParamHandle m_hParameter; // 0x90 animgraphlib::CAnimParamHandle m_hParameter; // 0x98
[[maybe_unused]] std::uint8_t pad_0x92[0x2]; // 0x92 [[maybe_unused]] std::uint8_t pad_0x9a[0x2]; // 0x9a
animgraphlib::StanceOverrideMode m_eMode; // 0x94 animgraphlib::StanceOverrideMode m_eMode; // 0x9c
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CStanceOverrideUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CStanceOverrideUpdateNode because it is not a standard-layout class
static_assert(sizeof(CStanceOverrideUpdateNode) == 0x98); static_assert(sizeof(CStanceOverrideUpdateNode) == 0xa0);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x70 // Size: 0x78
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,11 +23,11 @@ namespace source2sdk::animgraphlib
class CStanceScaleUpdateNode : public animgraphlib::CUnaryUpdateNode class CStanceScaleUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
animgraphlib::CAnimParamHandle m_hParam; // 0x68 animgraphlib::CAnimParamHandle m_hParam; // 0x70
[[maybe_unused]] std::uint8_t pad_0x6a[0x6]; [[maybe_unused]] std::uint8_t pad_0x72[0x6];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CStanceScaleUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CStanceScaleUpdateNode because it is not a standard-layout class
static_assert(sizeof(CStanceScaleUpdateNode) == 0x70); static_assert(sizeof(CStanceScaleUpdateNode) == 0x78);
}; };

View File

@ -17,7 +17,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xf8 // Size: 0x100
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,21 +25,22 @@ namespace source2sdk::animgraphlib
class CStateMachineUpdateNode : public animgraphlib::CAnimUpdateNodeBase class CStateMachineUpdateNode : public animgraphlib::CAnimUpdateNodeBase
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x58[0x10]; // 0x58 [[maybe_unused]] std::uint8_t pad_0x58[0x18]; // 0x58
animgraphlib::CAnimStateMachineUpdater m_stateMachine; // 0x68 animgraphlib::CAnimStateMachineUpdater m_stateMachine; // 0x70
// m_stateData has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_stateData has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::CStateNodeStateData> m_stateData; // CUtlVector<animgraphlib::CStateNodeStateData> m_stateData;
char m_stateData[0x18]; // 0xc0 char m_stateData[0x18]; // 0xc8
// m_transitionData has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_transitionData has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::CStateNodeTransitionData> m_transitionData; // CUtlVector<animgraphlib::CStateNodeTransitionData> m_transitionData;
char m_transitionData[0x18]; // 0xd8 char m_transitionData[0x18]; // 0xe0
[[maybe_unused]] std::uint8_t pad_0xf0[0x4]; // 0xf0 [[maybe_unused]] std::uint8_t pad_0xf8[0x4]; // 0xf8
bool m_bBlockWaningTags; // 0xf4 bool m_bBlockWaningTags; // 0xfc
bool m_bLockStateWhenWaning; // 0xf5 bool m_bLockStateWhenWaning; // 0xfd
[[maybe_unused]] std::uint8_t pad_0xf6[0x2]; bool m_bResetWhenActivated; // 0xfe
[[maybe_unused]] std::uint8_t pad_0xff[0x1];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CStateMachineUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CStateMachineUpdateNode because it is not a standard-layout class
static_assert(sizeof(CStateMachineUpdateNode) == 0xf8); static_assert(sizeof(CStateMachineUpdateNode) == 0x100);
}; };

View File

@ -37,7 +37,9 @@ namespace source2sdk::animgraphlib
uint8_t m_bIsStartState: 1; uint8_t m_bIsStartState: 1;
uint8_t m_bIsEndState: 1; uint8_t m_bIsEndState: 1;
uint8_t m_bIsPassthrough: 1; uint8_t m_bIsPassthrough: 1;
// end of bitfield block // 3 bits uint8_t m_bIsPassthroughRootMotion: 1;
uint8_t m_bPreEvaluatePassthroughTransitionPath: 1;
// end of bitfield block // 5 bits
[[maybe_unused]] std::uint8_t pad_0x45[0x3]; [[maybe_unused]] std::uint8_t pad_0x45[0x3];
}; };
#pragma pack(pop) #pragma pack(pop)
@ -50,6 +52,8 @@ namespace source2sdk::animgraphlib
// Cannot assert offset of bitfield CStateUpdateData::m_bIsStartState // Cannot assert offset of bitfield CStateUpdateData::m_bIsStartState
// Cannot assert offset of bitfield CStateUpdateData::m_bIsEndState // Cannot assert offset of bitfield CStateUpdateData::m_bIsEndState
// Cannot assert offset of bitfield CStateUpdateData::m_bIsPassthrough // Cannot assert offset of bitfield CStateUpdateData::m_bIsPassthrough
// Cannot assert offset of bitfield CStateUpdateData::m_bIsPassthroughRootMotion
// Cannot assert offset of bitfield CStateUpdateData::m_bPreEvaluatePassthroughTransitionPath
static_assert(sizeof(CStateUpdateData) == 0x48); static_assert(sizeof(CStateUpdateData) == 0x48);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x90 // Size: 0xa0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,16 +23,16 @@ namespace source2sdk::animgraphlib
class CStopAtGoalUpdateNode : public animgraphlib::CUnaryUpdateNode class CStopAtGoalUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x4]; // 0x68 [[maybe_unused]] std::uint8_t pad_0x70[0x4]; // 0x70
float m_flOuterRadius; // 0x6c float m_flOuterRadius; // 0x74
float m_flInnerRadius; // 0x70 float m_flInnerRadius; // 0x78
float m_flMaxScale; // 0x74 float m_flMaxScale; // 0x7c
float m_flMinScale; // 0x78 float m_flMinScale; // 0x80
[[maybe_unused]] std::uint8_t pad_0x7c[0x4]; // 0x7c [[maybe_unused]] std::uint8_t pad_0x84[0x4]; // 0x84
animgraphlib::CAnimInputDamping m_damping; // 0x80 animgraphlib::CAnimInputDamping m_damping; // 0x88
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CStopAtGoalUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CStopAtGoalUpdateNode because it is not a standard-layout class
static_assert(sizeof(CStopAtGoalUpdateNode) == 0x90); static_assert(sizeof(CStopAtGoalUpdateNode) == 0xa0);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x98 // Size: 0xa0
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,15 +23,15 @@ namespace source2sdk::animgraphlib
class CSubtractUpdateNode : public animgraphlib::CBinaryUpdateNode class CSubtractUpdateNode : public animgraphlib::CBinaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x88[0x4]; // 0x88 [[maybe_unused]] std::uint8_t pad_0x90[0x4]; // 0x90
animgraphlib::BinaryNodeChildOption m_footMotionTiming; // 0x8c animgraphlib::BinaryNodeChildOption m_footMotionTiming; // 0x94
bool m_bApplyToFootMotion; // 0x90 bool m_bApplyToFootMotion; // 0x98
bool m_bApplyChannelsSeparately; // 0x91 bool m_bApplyChannelsSeparately; // 0x99
bool m_bUseModelSpace; // 0x92 bool m_bUseModelSpace; // 0x9a
[[maybe_unused]] std::uint8_t pad_0x93[0x5]; [[maybe_unused]] std::uint8_t pad_0x9b[0x5];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CSubtractUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CSubtractUpdateNode because it is not a standard-layout class
static_assert(sizeof(CSubtractUpdateNode) == 0x98); static_assert(sizeof(CSubtractUpdateNode) == 0xa0);
}; };

View File

@ -16,7 +16,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x78 // Size: 0x88
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -24,15 +24,21 @@ namespace source2sdk::animgraphlib
class CTargetSelectorUpdateNode : public animgraphlib::CAnimUpdateNodeBase class CTargetSelectorUpdateNode : public animgraphlib::CAnimUpdateNodeBase
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x58[0x8]; // 0x58
// m_children has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_children has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::CAnimUpdateNodeRef> m_children; // CUtlVector<animgraphlib::CAnimUpdateNodeRef> m_children;
char m_children[0x18]; // 0x58 char m_children[0x18]; // 0x60
[[maybe_unused]] std::uint8_t pad_0x70[0x4]; // 0x70 [[maybe_unused]] std::uint8_t pad_0x78[0x4]; // 0x78
animgraphlib::CAnimParamHandle m_hPositionParameter; // 0x74 animgraphlib::CAnimParamHandle m_hTargetPosition; // 0x7c
animgraphlib::CAnimParamHandle m_hOrientationParameter; // 0x76 animgraphlib::CAnimParamHandle m_hTargetFacePositionParameter; // 0x7e
bool m_bTargetPositionIsWorldSpace; // 0x80
bool m_bTargetFacePositionIsWorldSpace; // 0x81
bool m_bEnablePhaseMatching; // 0x82
[[maybe_unused]] std::uint8_t pad_0x83[0x1]; // 0x83
float m_flPhaseMatchingMaxRootMotionSkip; // 0x84
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CTargetSelectorUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CTargetSelectorUpdateNode because it is not a standard-layout class
static_assert(sizeof(CTargetSelectorUpdateNode) == 0x78); static_assert(sizeof(CTargetSelectorUpdateNode) == 0x88);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x70 // Size: 0x88
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,12 +23,20 @@ namespace source2sdk::animgraphlib
class CTargetWarpUpdateNode : public animgraphlib::CUnaryUpdateNode class CTargetWarpUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x4]; // 0x68 [[maybe_unused]] std::uint8_t pad_0x70[0x4]; // 0x70
animgraphlib::CAnimParamHandle m_hPositionParameter; // 0x6c animgraphlib::CAnimParamHandle m_hTargetPositionParameter; // 0x74
animgraphlib::CAnimParamHandle m_hOrientationParameter; // 0x6e animgraphlib::CAnimParamHandle m_hTargetUpVectorParameter; // 0x76
animgraphlib::CAnimParamHandle m_hTargetFacePositionParameter; // 0x78
bool m_bTargetFacePositionIsWorldSpace; // 0x7a
bool m_bTargetPositionIsWorldSpace; // 0x7b
bool m_bOnlyWarpWhenTagIsFound; // 0x7c
bool m_bWarpOrientationDuringTranslation; // 0x7d
[[maybe_unused]] std::uint8_t pad_0x7e[0x2]; // 0x7e
float m_flMaxAngle; // 0x80
[[maybe_unused]] std::uint8_t pad_0x84[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CTargetWarpUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CTargetWarpUpdateNode because it is not a standard-layout class
static_assert(sizeof(CTargetWarpUpdateNode) == 0x70); static_assert(sizeof(CTargetWarpUpdateNode) == 0x88);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x88 // Size: 0x90
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,18 +23,18 @@ namespace source2sdk::animgraphlib
class CTurnHelperUpdateNode : public animgraphlib::CUnaryUpdateNode class CTurnHelperUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x4]; // 0x68 [[maybe_unused]] std::uint8_t pad_0x70[0x4]; // 0x70
animgraphlib::AnimValueSource m_facingTarget; // 0x6c animgraphlib::AnimValueSource m_facingTarget; // 0x74
float m_turnStartTimeOffset; // 0x70 float m_turnStartTimeOffset; // 0x78
float m_turnDuration; // 0x74 float m_turnDuration; // 0x7c
bool m_bMatchChildDuration; // 0x78 bool m_bMatchChildDuration; // 0x80
[[maybe_unused]] std::uint8_t pad_0x79[0x3]; // 0x79 [[maybe_unused]] std::uint8_t pad_0x81[0x3]; // 0x81
float m_manualTurnOffset; // 0x7c float m_manualTurnOffset; // 0x84
bool m_bUseManualTurnOffset; // 0x80 bool m_bUseManualTurnOffset; // 0x88
[[maybe_unused]] std::uint8_t pad_0x81[0x7]; [[maybe_unused]] std::uint8_t pad_0x89[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CTurnHelperUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CTurnHelperUpdateNode because it is not a standard-layout class
static_assert(sizeof(CTurnHelperUpdateNode) == 0x88); static_assert(sizeof(CTurnHelperUpdateNode) == 0x90);
}; };

View File

@ -23,7 +23,6 @@ namespace source2sdk::animgraphlib
class CTwoBoneIKUpdateNode : public animgraphlib::CUnaryUpdateNode class CTwoBoneIKUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x8]; // 0x68
animgraphlib::TwoBoneIKSettings_t m_opFixedData; // 0x70 animgraphlib::TwoBoneIKSettings_t m_opFixedData; // 0x70
[[maybe_unused]] std::uint8_t pad_0x1d0[0x10]; [[maybe_unused]] std::uint8_t pad_0x1d0[0x10];
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x68 // Size: 0x70
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -23,10 +23,11 @@ namespace source2sdk::animgraphlib
class CUnaryUpdateNode : public animgraphlib::CAnimUpdateNodeBase class CUnaryUpdateNode : public animgraphlib::CAnimUpdateNodeBase
{ {
public: public:
animgraphlib::CAnimUpdateNodeRef m_pChildNode; // 0x58 [[maybe_unused]] std::uint8_t pad_0x58[0x8]; // 0x58
animgraphlib::CAnimUpdateNodeRef m_pChildNode; // 0x60
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CUnaryUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CUnaryUpdateNode because it is not a standard-layout class
static_assert(sizeof(CUnaryUpdateNode) == 0x68); static_assert(sizeof(CUnaryUpdateNode) == 0x70);
}; };

View File

@ -0,0 +1,36 @@
#pragma once
#include "source2sdk/animgraphlib/CWarpSectionAnimTagBase.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animgraphlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animgraphlib
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0x58
// Has VTable
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MPropertyFriendlyName "Warp Section Tag"
#pragma pack(push, 1)
class CWarpSectionAnimTag : public animgraphlib::CWarpSectionAnimTagBase
{
public:
// metadata: MPropertyFriendlyName "Warp Position"
bool m_bWarpPosition; // 0x50
// metadata: MPropertyFriendlyName "Warp Orientation"
bool m_bWarpOrientation; // 0x51
[[maybe_unused]] std::uint8_t pad_0x52[0x6];
};
#pragma pack(pop)
// Cannot assert offsets of fields in CWarpSectionAnimTag because it is not a standard-layout class
static_assert(sizeof(CWarpSectionAnimTag) == 0x58);
};

View File

@ -0,0 +1,29 @@
#pragma once
#include "source2sdk/animgraphlib/CAnimTagBase.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animgraphlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animgraphlib
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0x50
// Has VTable
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CWarpSectionAnimTagBase : public animgraphlib::CAnimTagBase
{
public:
};
#pragma pack(pop)
static_assert(sizeof(CWarpSectionAnimTagBase) == 0x50);
};

View File

@ -14,7 +14,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x78 // Size: 0x80
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -22,16 +22,16 @@ namespace source2sdk::animgraphlib
class CWayPointHelperUpdateNode : public animgraphlib::CUnaryUpdateNode class CWayPointHelperUpdateNode : public animgraphlib::CUnaryUpdateNode
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x68[0x4]; // 0x68 [[maybe_unused]] std::uint8_t pad_0x70[0x4]; // 0x70
float m_flStartCycle; // 0x6c float m_flStartCycle; // 0x74
float m_flEndCycle; // 0x70 float m_flEndCycle; // 0x78
bool m_bOnlyGoals; // 0x74 bool m_bOnlyGoals; // 0x7c
bool m_bPreventOvershoot; // 0x75 bool m_bPreventOvershoot; // 0x7d
bool m_bPreventUndershoot; // 0x76 bool m_bPreventUndershoot; // 0x7e
[[maybe_unused]] std::uint8_t pad_0x77[0x1]; [[maybe_unused]] std::uint8_t pad_0x7f[0x1];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CWayPointHelperUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CWayPointHelperUpdateNode because it is not a standard-layout class
static_assert(sizeof(CWayPointHelperUpdateNode) == 0x78); static_assert(sizeof(CWayPointHelperUpdateNode) == 0x80);
}; };

View File

@ -25,7 +25,6 @@ namespace source2sdk::animgraphlib
public: public:
int32_t m_nChainIndex; // 0x0 int32_t m_nChainIndex; // 0x0
animgraphlib::IKSolverSettings_t m_SolverSettings; // 0x4 animgraphlib::IKSolverSettings_t m_SolverSettings; // 0x4
[[maybe_unused]] std::uint8_t pad_0x0c[0x4]; // 0xc
animgraphlib::IKTargetSettings_t m_TargetSettings; // 0x10 animgraphlib::IKTargetSettings_t m_TargetSettings; // 0x10
animgraphlib::SolveIKChainAnimNodeDebugSetting m_DebugSetting; // 0x38 animgraphlib::SolveIKChainAnimNodeDebugSetting m_DebugSetting; // 0x38
float m_flDebugNormalizedValue; // 0x3c float m_flDebugNormalizedValue; // 0x3c

View File

@ -8,7 +8,7 @@
namespace source2sdk::animgraphlib namespace source2sdk::animgraphlib
{ {
// Enumerator count: 3 // Enumerator count: 4
// Alignment: 4 // Alignment: 4
// Size: 0x4 // Size: 0x4
enum class DampingSpeedFunction : std::uint32_t enum class DampingSpeedFunction : std::uint32_t
@ -16,5 +16,6 @@ namespace source2sdk::animgraphlib
NoDamping = 0x0, NoDamping = 0x0,
Constant = 0x1, Constant = 0x1,
Spring = 0x2, Spring = 0x2,
AsymmetricSpring = 0x3,
}; };
}; };

View File

@ -0,0 +1,31 @@
#pragma once
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animgraphlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animgraphlib
{
// Enumerator count: 5
// Alignment: 4
// Size: 0x4
enum class EIKEndEffectorRotationFixUpMode : std::uint32_t
{
// MPropertyFriendlyName "None"
// MPropertyDescription "However the end effector ends up after the solve, it's rotation will remain unchanged."
None = 0x0,
// MPropertyFriendlyName "Match Target Orientation"
// MPropertyDescription "The targets orientation will be stamped onto the end effector."
MatchTargetOrientation = 0x1,
// MPropertyFriendlyName "Look At Target Forward"
// MPropertyDescription "The targets forward vector will be used to build a look orientation while preserving the rotation of the end effector after the solve as much as possible."
LookAtTargetForward = 0x2,
// MPropertyFriendlyName "Maintain Parent Orientation"
// MPropertyDescription "Use the parent bone's orientation as the end effector's orientation."
MaintainParentOrientation = 0x3,
// MPropertySuppressEnumerator
Count = 0x4,
};
};

View File

@ -1,4 +1,5 @@
#pragma once #pragma once
#include "source2sdk/modellib/AttachmentHandle_t.hpp"
#include "source2sdk/modellib/CAnimAttachment.hpp" #include "source2sdk/modellib/CAnimAttachment.hpp"
#include "source2sdk/source2gen.hpp" #include "source2sdk/source2gen.hpp"
#include <cstddef> #include <cstddef>
@ -24,16 +25,18 @@ namespace source2sdk::animgraphlib
public: public:
modellib::CAnimAttachment m_attachment; // 0x0 modellib::CAnimAttachment m_attachment; // 0x0
int32_t m_boneIndex; // 0x80 int32_t m_boneIndex; // 0x80
bool m_bMatchTranslation; // 0x84 modellib::AttachmentHandle_t m_attachmentHandle; // 0x84
bool m_bMatchRotation; // 0x85 bool m_bMatchTranslation; // 0x85
[[maybe_unused]] std::uint8_t pad_0x86[0xa]; bool m_bMatchRotation; // 0x86
[[maybe_unused]] std::uint8_t pad_0x87[0x9];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(FollowAttachmentSettings_t, m_attachment) == 0x0); static_assert(offsetof(FollowAttachmentSettings_t, m_attachment) == 0x0);
static_assert(offsetof(FollowAttachmentSettings_t, m_boneIndex) == 0x80); static_assert(offsetof(FollowAttachmentSettings_t, m_boneIndex) == 0x80);
static_assert(offsetof(FollowAttachmentSettings_t, m_bMatchTranslation) == 0x84); static_assert(offsetof(FollowAttachmentSettings_t, m_attachmentHandle) == 0x84);
static_assert(offsetof(FollowAttachmentSettings_t, m_bMatchRotation) == 0x85); static_assert(offsetof(FollowAttachmentSettings_t, m_bMatchTranslation) == 0x85);
static_assert(offsetof(FollowAttachmentSettings_t, m_bMatchRotation) == 0x86);
static_assert(sizeof(FollowAttachmentSettings_t) == 0x90); static_assert(sizeof(FollowAttachmentSettings_t) == 0x90);
}; };

View File

@ -16,7 +16,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x60 // Size: 0x68
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1) #pragma pack(push, 1)
@ -27,47 +27,47 @@ namespace source2sdk::animgraphlib
// CUtlVector<animgraphlib::FootFixedData_t> m_footInfo; // CUtlVector<animgraphlib::FootFixedData_t> m_footInfo;
char m_footInfo[0x18]; // 0x0 char m_footInfo[0x18]; // 0x0
animgraphlib::CAnimInputDamping m_hipDampingSettings; // 0x18 animgraphlib::CAnimInputDamping m_hipDampingSettings; // 0x18
int32_t m_nHipBoneIndex; // 0x28 int32_t m_nHipBoneIndex; // 0x30
animgraphlib::IKSolverType m_ikSolverType; // 0x2c animgraphlib::IKSolverType m_ikSolverType; // 0x34
bool m_bApplyTilt; // 0x30 bool m_bApplyTilt; // 0x38
bool m_bApplyHipDrop; // 0x31 bool m_bApplyHipDrop; // 0x39
bool m_bAlwaysUseFallbackHinge; // 0x32 bool m_bAlwaysUseFallbackHinge; // 0x3a
bool m_bApplyFootRotationLimits; // 0x33 bool m_bApplyFootRotationLimits; // 0x3b
bool m_bApplyLegTwistLimits; // 0x34 bool m_bApplyLegTwistLimits; // 0x3c
[[maybe_unused]] std::uint8_t pad_0x35[0x3]; // 0x35 [[maybe_unused]] std::uint8_t pad_0x3d[0x3]; // 0x3d
float m_flMaxFootHeight; // 0x38 float m_flMaxFootHeight; // 0x40
float m_flExtensionScale; // 0x3c float m_flExtensionScale; // 0x44
float m_flMaxLegTwist; // 0x40 float m_flMaxLegTwist; // 0x48
bool m_bEnableLockBreaking; // 0x44 bool m_bEnableLockBreaking; // 0x4c
[[maybe_unused]] std::uint8_t pad_0x45[0x3]; // 0x45 [[maybe_unused]] std::uint8_t pad_0x4d[0x3]; // 0x4d
float m_flLockBreakTolerance; // 0x48 float m_flLockBreakTolerance; // 0x50
float m_flLockBlendTime; // 0x4c float m_flLockBlendTime; // 0x54
bool m_bEnableStretching; // 0x50 bool m_bEnableStretching; // 0x58
[[maybe_unused]] std::uint8_t pad_0x51[0x3]; // 0x51 [[maybe_unused]] std::uint8_t pad_0x59[0x3]; // 0x59
float m_flMaxStretchAmount; // 0x54 float m_flMaxStretchAmount; // 0x5c
float m_flStretchExtensionScale; // 0x58 float m_flStretchExtensionScale; // 0x60
[[maybe_unused]] std::uint8_t pad_0x5c[0x4]; [[maybe_unused]] std::uint8_t pad_0x64[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(FootLockPoseOpFixedSettings, m_footInfo) == 0x0); static_assert(offsetof(FootLockPoseOpFixedSettings, m_footInfo) == 0x0);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_hipDampingSettings) == 0x18); static_assert(offsetof(FootLockPoseOpFixedSettings, m_hipDampingSettings) == 0x18);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_nHipBoneIndex) == 0x28); static_assert(offsetof(FootLockPoseOpFixedSettings, m_nHipBoneIndex) == 0x30);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_ikSolverType) == 0x2c); static_assert(offsetof(FootLockPoseOpFixedSettings, m_ikSolverType) == 0x34);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_bApplyTilt) == 0x30); static_assert(offsetof(FootLockPoseOpFixedSettings, m_bApplyTilt) == 0x38);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_bApplyHipDrop) == 0x31); static_assert(offsetof(FootLockPoseOpFixedSettings, m_bApplyHipDrop) == 0x39);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_bAlwaysUseFallbackHinge) == 0x32); static_assert(offsetof(FootLockPoseOpFixedSettings, m_bAlwaysUseFallbackHinge) == 0x3a);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_bApplyFootRotationLimits) == 0x33); static_assert(offsetof(FootLockPoseOpFixedSettings, m_bApplyFootRotationLimits) == 0x3b);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_bApplyLegTwistLimits) == 0x34); static_assert(offsetof(FootLockPoseOpFixedSettings, m_bApplyLegTwistLimits) == 0x3c);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_flMaxFootHeight) == 0x38); static_assert(offsetof(FootLockPoseOpFixedSettings, m_flMaxFootHeight) == 0x40);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_flExtensionScale) == 0x3c); static_assert(offsetof(FootLockPoseOpFixedSettings, m_flExtensionScale) == 0x44);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_flMaxLegTwist) == 0x40); static_assert(offsetof(FootLockPoseOpFixedSettings, m_flMaxLegTwist) == 0x48);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_bEnableLockBreaking) == 0x44); static_assert(offsetof(FootLockPoseOpFixedSettings, m_bEnableLockBreaking) == 0x4c);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_flLockBreakTolerance) == 0x48); static_assert(offsetof(FootLockPoseOpFixedSettings, m_flLockBreakTolerance) == 0x50);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_flLockBlendTime) == 0x4c); static_assert(offsetof(FootLockPoseOpFixedSettings, m_flLockBlendTime) == 0x54);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_bEnableStretching) == 0x50); static_assert(offsetof(FootLockPoseOpFixedSettings, m_bEnableStretching) == 0x58);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_flMaxStretchAmount) == 0x54); static_assert(offsetof(FootLockPoseOpFixedSettings, m_flMaxStretchAmount) == 0x5c);
static_assert(offsetof(FootLockPoseOpFixedSettings, m_flStretchExtensionScale) == 0x58); static_assert(offsetof(FootLockPoseOpFixedSettings, m_flStretchExtensionScale) == 0x60);
static_assert(sizeof(FootLockPoseOpFixedSettings) == 0x60); static_assert(sizeof(FootLockPoseOpFixedSettings) == 0x68);
}; };

View File

@ -1,4 +1,5 @@
#pragma once #pragma once
#include "source2sdk/animgraphlib/EIKEndEffectorRotationFixUpMode.hpp"
#include "source2sdk/animgraphlib/IKSolverType.hpp" #include "source2sdk/animgraphlib/IKSolverType.hpp"
#include "source2sdk/source2gen.hpp" #include "source2sdk/source2gen.hpp"
#include <cstddef> #include <cstddef>
@ -14,7 +15,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: 0x4 // Alignment: 0x4
// Standard-layout class: true // Standard-layout class: true
// Size: 0x8 // Size: 0xc
// Has Trivial Destructor // Has Trivial Destructor
#pragma pack(push, 1) #pragma pack(push, 1)
struct IKSolverSettings_t struct IKSolverSettings_t
@ -26,11 +27,14 @@ namespace source2sdk::animgraphlib
// metadata: MPropertyFriendlyName "Num Iterations " // metadata: MPropertyFriendlyName "Num Iterations "
// metadata: MPropertyAttrStateCallback // metadata: MPropertyAttrStateCallback
int32_t m_nNumIterations; // 0x4 int32_t m_nNumIterations; // 0x4
// metadata: MPropertyFriendlyName "End Effector Rotation Behaviour"
animgraphlib::EIKEndEffectorRotationFixUpMode m_EndEffectorRotationFixUpMode; // 0x8
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(IKSolverSettings_t, m_SolverType) == 0x0); static_assert(offsetof(IKSolverSettings_t, m_SolverType) == 0x0);
static_assert(offsetof(IKSolverSettings_t, m_nNumIterations) == 0x4); static_assert(offsetof(IKSolverSettings_t, m_nNumIterations) == 0x4);
static_assert(offsetof(IKSolverSettings_t, m_EndEffectorRotationFixUpMode) == 0x8);
static_assert(sizeof(IKSolverSettings_t) == 0x8); static_assert(sizeof(IKSolverSettings_t) == 0xc);
}; };

View File

@ -14,14 +14,19 @@ namespace source2sdk::animgraphlib
enum class IKSolverType : std::uint32_t enum class IKSolverType : std::uint32_t
{ {
// MPropertyFriendlyName "Perlin" // MPropertyFriendlyName "Perlin"
// MPropertyDescription "Classic perlin 2-bone solver"
IKSOLVER_Perlin = 0x0, IKSOLVER_Perlin = 0x0,
// MPropertyFriendlyName "Two Bone" // MPropertyFriendlyName "Two Bone"
// MPropertyDescription "2-bone solver that does not have singularities that Perlin does, and should be used as a default starting point for 2 bone solves."
IKSOLVER_TwoBone = 0x1, IKSOLVER_TwoBone = 0x1,
// MPropertyFriendlyName "FABRIK" // MPropertyFriendlyName "FABRIK"
// MPropertyDescription ""Forward And Backward Reaching Inverse Kinematics" solver - A solver that can handle any number of bones and works by iteratively solving for the position of each bone in the chain."
IKSOLVER_Fabrik = 0x2, IKSOLVER_Fabrik = 0x2,
// MPropertyFriendlyName "Dog Leg (3 Bone)" // MPropertyFriendlyName "Dog Leg (3-Bone)"
// MPropertyDescription "A 3-bone solver that uses two 2-bone solves under the hood to emulate a dog leg."
IKSOLVER_DogLeg3Bone = 0x3, IKSOLVER_DogLeg3Bone = 0x3,
// MPropertyFriendlyName "CCD" // MPropertyFriendlyName "CCD"
// MPropertyDescription "Cyclic Coordinate Descent solver - A solver that can handle any number of bones and works by iteratively solving for the rotation of each bone in the chain."
IKSOLVER_CCD = 0x4, IKSOLVER_CCD = 0x4,
// MPropertySuppressEnumerator // MPropertySuppressEnumerator
IKSOLVER_COUNT = 0x5, IKSOLVER_COUNT = 0x5,

View File

@ -16,7 +16,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x10 // Registered alignment: 0x10
// Alignment: 0x10 // Alignment: 0x10
// Standard-layout class: true // Standard-layout class: true
// Size: 0xc0 // Size: 0xd0
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1) #pragma pack(push, 1)
@ -27,30 +27,30 @@ namespace source2sdk::animgraphlib
animgraphlib::CAnimInputDamping m_damping; // 0x80 animgraphlib::CAnimInputDamping m_damping; // 0x80
// m_bones has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_bones has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::LookAtBone_t> m_bones; // CUtlVector<animgraphlib::LookAtBone_t> m_bones;
char m_bones[0x18]; // 0x90 char m_bones[0x18]; // 0x98
float m_flYawLimit; // 0xa8 float m_flYawLimit; // 0xb0
float m_flPitchLimit; // 0xac float m_flPitchLimit; // 0xb4
float m_flHysteresisInnerAngle; // 0xb0 float m_flHysteresisInnerAngle; // 0xb8
float m_flHysteresisOuterAngle; // 0xb4 float m_flHysteresisOuterAngle; // 0xbc
bool m_bRotateYawForward; // 0xb8 bool m_bRotateYawForward; // 0xc0
bool m_bMaintainUpDirection; // 0xb9 bool m_bMaintainUpDirection; // 0xc1
bool m_bTargetIsPosition; // 0xba bool m_bTargetIsPosition; // 0xc2
bool m_bUseHysteresis; // 0xbb bool m_bUseHysteresis; // 0xc3
[[maybe_unused]] std::uint8_t pad_0xbc[0x4]; [[maybe_unused]] std::uint8_t pad_0xc4[0xc];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(LookAtOpFixedSettings_t, m_attachment) == 0x0); static_assert(offsetof(LookAtOpFixedSettings_t, m_attachment) == 0x0);
static_assert(offsetof(LookAtOpFixedSettings_t, m_damping) == 0x80); static_assert(offsetof(LookAtOpFixedSettings_t, m_damping) == 0x80);
static_assert(offsetof(LookAtOpFixedSettings_t, m_bones) == 0x90); static_assert(offsetof(LookAtOpFixedSettings_t, m_bones) == 0x98);
static_assert(offsetof(LookAtOpFixedSettings_t, m_flYawLimit) == 0xa8); static_assert(offsetof(LookAtOpFixedSettings_t, m_flYawLimit) == 0xb0);
static_assert(offsetof(LookAtOpFixedSettings_t, m_flPitchLimit) == 0xac); static_assert(offsetof(LookAtOpFixedSettings_t, m_flPitchLimit) == 0xb4);
static_assert(offsetof(LookAtOpFixedSettings_t, m_flHysteresisInnerAngle) == 0xb0); static_assert(offsetof(LookAtOpFixedSettings_t, m_flHysteresisInnerAngle) == 0xb8);
static_assert(offsetof(LookAtOpFixedSettings_t, m_flHysteresisOuterAngle) == 0xb4); static_assert(offsetof(LookAtOpFixedSettings_t, m_flHysteresisOuterAngle) == 0xbc);
static_assert(offsetof(LookAtOpFixedSettings_t, m_bRotateYawForward) == 0xb8); static_assert(offsetof(LookAtOpFixedSettings_t, m_bRotateYawForward) == 0xc0);
static_assert(offsetof(LookAtOpFixedSettings_t, m_bMaintainUpDirection) == 0xb9); static_assert(offsetof(LookAtOpFixedSettings_t, m_bMaintainUpDirection) == 0xc1);
static_assert(offsetof(LookAtOpFixedSettings_t, m_bTargetIsPosition) == 0xba); static_assert(offsetof(LookAtOpFixedSettings_t, m_bTargetIsPosition) == 0xc2);
static_assert(offsetof(LookAtOpFixedSettings_t, m_bUseHysteresis) == 0xbb); static_assert(offsetof(LookAtOpFixedSettings_t, m_bUseHysteresis) == 0xc3);
static_assert(sizeof(LookAtOpFixedSettings_t) == 0xc0); static_assert(sizeof(LookAtOpFixedSettings_t) == 0xd0);
}; };

View File

@ -0,0 +1,23 @@
#pragma once
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animgraphlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animgraphlib
{
// Enumerator count: 3
// Alignment: 4
// Size: 0x4
enum class OrientationWarpMode_t : std::uint32_t
{
// MPropertySuppressEnumerator
eInvalid = 0x0,
// MPropertyFriendlyName "Angle"
eAngle = 0x1,
// MPropertyFriendlyName "World Position"
eWorldPosition = 0x2,
};
};

View File

@ -0,0 +1,23 @@
#pragma once
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animgraphlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animgraphlib
{
// Enumerator count: 3
// Alignment: 4
// Size: 0x4
enum class OrientationWarpRootMotionSource_t : std::uint32_t
{
// MPropertyFriendlyName "Animation Or Procedural"
eAnimationOrProcedural = 0x0,
// MPropertyFriendlyName "Animation Only"
eAnimationOnly = 0x1,
// MPropertyFriendlyName "Procedural Only"
eProceduralOnly = 0x2,
};
};

View File

@ -0,0 +1,25 @@
#pragma once
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animgraphlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animgraphlib
{
// Enumerator count: 4
// Alignment: 4
// Size: 0x4
enum class OrientationWarpTargetOffsetMode_t : std::uint32_t
{
// MPropertyFriendlyName "Literal Value"
eLiteralValue = 0x0,
// MPropertyFriendlyName "Parameter"
eParameter = 0x1,
// MPropertyFriendlyName "Animation Movement Heading"
eAnimationMovementHeading = 0x2,
// MPropertyFriendlyName "Animation Movement Heading At End"
eAnimationMovementHeadingAtEnd = 0x3,
};
};

View File

@ -14,7 +14,7 @@ namespace source2sdk::animgraphlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x20 // Size: 0x18
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1) #pragma pack(push, 1)
@ -24,13 +24,10 @@ namespace source2sdk::animgraphlib
// m_ChainsToSolveData has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_ChainsToSolveData has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animgraphlib::ChainToSolveData_t> m_ChainsToSolveData; // CUtlVector<animgraphlib::ChainToSolveData_t> m_ChainsToSolveData;
char m_ChainsToSolveData[0x18]; // 0x0 char m_ChainsToSolveData[0x18]; // 0x0
bool m_bMatchTargetOrientation; // 0x18
[[maybe_unused]] std::uint8_t pad_0x19[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(SolveIKChainPoseOpFixedSettings_t, m_ChainsToSolveData) == 0x0); static_assert(offsetof(SolveIKChainPoseOpFixedSettings_t, m_ChainsToSolveData) == 0x0);
static_assert(offsetof(SolveIKChainPoseOpFixedSettings_t, m_bMatchTargetOrientation) == 0x18);
static_assert(sizeof(SolveIKChainPoseOpFixedSettings_t) == 0x20); static_assert(sizeof(SolveIKChainPoseOpFixedSettings_t) == 0x18);
}; };

View File

@ -8,7 +8,7 @@
namespace source2sdk::animgraphlib namespace source2sdk::animgraphlib
{ {
// Enumerator count: 4 // Enumerator count: 5
// Alignment: 4 // Alignment: 4
// Size: 0x4 // Size: 0x4
enum class StateActionBehavior : std::uint32_t enum class StateActionBehavior : std::uint32_t
@ -17,5 +17,6 @@ namespace source2sdk::animgraphlib
STATETAGBEHAVIOR_FIRE_ON_ENTER = 0x1, STATETAGBEHAVIOR_FIRE_ON_ENTER = 0x1,
STATETAGBEHAVIOR_FIRE_ON_EXIT = 0x2, STATETAGBEHAVIOR_FIRE_ON_EXIT = 0x2,
STATETAGBEHAVIOR_FIRE_ON_ENTER_AND_EXIT = 0x3, STATETAGBEHAVIOR_FIRE_ON_ENTER_AND_EXIT = 0x3,
STATETAGBEHAVIOR_ACTIVE_WHILE_FULLY_BLENDED = 0x4,
}; };
}; };

View File

@ -22,9 +22,6 @@ namespace source2sdk::animlib
{ {
public: public:
uint32_t m_flags; // 0x0 uint32_t m_flags; // 0x0
// Static fields:
static uint8_t &Get_MaxFlags() {return *reinterpret_cast<uint8_t*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CNmBitFlags")->GetStaticFields()[0]->m_pInstance);};
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -0,0 +1,34 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animlib
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0x20
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
struct CNmBoneMask__SerializedData_t
{
public:
CGlobalSymbol m_ID; // 0x0
// m_weights has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<float> m_weights;
char m_weights[0x18]; // 0x8
};
#pragma pack(pop)
static_assert(offsetof(CNmBoneMask__SerializedData_t, m_ID) == 0x0);
static_assert(offsetof(CNmBoneMask__SerializedData_t, m_weights) == 0x8);
static_assert(sizeof(CNmBoneMask__SerializedData_t) == 0x20);
};

View File

@ -14,16 +14,16 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x40 // Size: 0x38
// Has VTable // Has VTable
#pragma pack(push, 1) #pragma pack(push, 1)
class CNmCachedPoseReadTask : public animlib::CNmTask class CNmCachedPoseReadTask : public animlib::CNmTask
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x30[0x10]; [[maybe_unused]] std::uint8_t pad_0x30[0x8];
// No schema binary for binding // No schema binary for binding
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CNmCachedPoseReadTask) == 0x40); static_assert(sizeof(CNmCachedPoseReadTask) == 0x38);
}; };

View File

@ -14,16 +14,16 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x40 // Size: 0x38
// Has VTable // Has VTable
#pragma pack(push, 1) #pragma pack(push, 1)
class CNmCachedPoseWriteTask : public animlib::CNmTask class CNmCachedPoseWriteTask : public animlib::CNmTask
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x30[0x10]; [[maybe_unused]] std::uint8_t pad_0x30[0x8];
// No schema binary for binding // No schema binary for binding
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CNmCachedPoseWriteTask) == 0x40); static_assert(sizeof(CNmCachedPoseWriteTask) == 0x38);
}; };

View File

@ -0,0 +1,43 @@
#pragma once
#include "source2sdk/animlib/CNmTarget.hpp"
#include "source2sdk/animlib/CNmTask.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animlib
{
// Registered alignment: 0x10
// Alignment: 0x10
// Standard-layout class: false
// Size: 0x100
// Has VTable
#pragma pack(push, 1)
class CNmChainSolverTask : public animlib::CNmTask
{
public:
int32_t m_nEffectorBoneIdx; // 0x30
[[maybe_unused]] std::uint8_t pad_0x34[0xc]; // 0x34
CTransform m_targetTransform; // 0x40
int32_t m_nNumBonesInChain; // 0x60
[[maybe_unused]] std::uint8_t pad_0x64[0xc]; // 0x64
animlib::CNmTarget m_effectorTarget; // 0x70
bool m_bIsTargetInWorldSpace; // 0xa0
bool m_bIsRunningFromDeserializedData; // 0xa1
[[maybe_unused]] std::uint8_t pad_0xa2[0x6]; // 0xa2
CGlobalSymbol m_debugEffectorBoneID; // 0xa8
CTransform m_chainStartTransformMS; // 0xb0
CTransform m_debugRequestedTargetTransformMS; // 0xd0
float m_debugTotalChainLength; // 0xf0
[[maybe_unused]] std::uint8_t pad_0xf4[0xc];
};
#pragma pack(pop)
// Cannot assert offsets of fields in CNmChainSolverTask because it is not a standard-layout class
static_assert(sizeof(CNmChainSolverTask) == 0x100);
};

View File

@ -36,7 +36,10 @@ namespace source2sdk::animlib
// m_compressedPoseOffsets has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_compressedPoseOffsets has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<uint32_t> m_compressedPoseOffsets; // CUtlVector<uint32_t> m_compressedPoseOffsets;
char m_compressedPoseOffsets[0x18]; // 0x40 char m_compressedPoseOffsets[0x18]; // 0x40
[[maybe_unused]] std::uint8_t pad_0x58[0x48]; // 0x58 [[maybe_unused]] std::uint8_t pad_0x58[0x28]; // 0x58
// m_secondaryAnimations has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVectorFixedGrowable<animlib::CNmClip*,1> m_secondaryAnimations;
char m_secondaryAnimations[0x20]; // 0x80
animlib::CNmSyncTrack m_syncTrack; // 0xa0 animlib::CNmSyncTrack m_syncTrack; // 0xa0
animlib::CNmRootMotionData m_rootMotion; // 0x150 animlib::CNmRootMotionData m_rootMotion; // 0x150
bool m_bIsAdditive; // 0x1a0 bool m_bIsAdditive; // 0x1a0
@ -50,6 +53,7 @@ namespace source2sdk::animlib
static_assert(offsetof(CNmClip, m_compressedPoseData) == 0x10); static_assert(offsetof(CNmClip, m_compressedPoseData) == 0x10);
static_assert(offsetof(CNmClip, m_trackCompressionSettings) == 0x28); static_assert(offsetof(CNmClip, m_trackCompressionSettings) == 0x28);
static_assert(offsetof(CNmClip, m_compressedPoseOffsets) == 0x40); static_assert(offsetof(CNmClip, m_compressedPoseOffsets) == 0x40);
static_assert(offsetof(CNmClip, m_secondaryAnimations) == 0x80);
static_assert(offsetof(CNmClip, m_syncTrack) == 0xa0); static_assert(offsetof(CNmClip, m_syncTrack) == 0xa0);
static_assert(offsetof(CNmClip, m_rootMotion) == 0x150); static_assert(offsetof(CNmClip, m_rootMotion) == 0x150);
static_assert(offsetof(CNmClip, m_bIsAdditive) == 0x1a0); static_assert(offsetof(CNmClip, m_bIsAdditive) == 0x1a0);

View File

@ -1,5 +1,5 @@
#pragma once #pragma once
#include "source2sdk/animlib/CNmPoseNode__CDefinition.hpp" #include "source2sdk/animlib/CNmClipReferenceNode__CDefinition.hpp"
#include "source2sdk/source2gen.hpp" #include "source2sdk/source2gen.hpp"
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
@ -14,22 +14,24 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18 // Size: 0x20
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1) #pragma pack(push, 1)
class CNmClipNode__CDefinition : public animlib::CNmPoseNode__CDefinition class CNmClipNode__CDefinition : public animlib::CNmClipReferenceNode__CDefinition
{ {
public: public:
int16_t m_nPlayInReverseValueNodeIdx; // 0x10 int16_t m_nPlayInReverseValueNodeIdx; // 0x10
int16_t m_nResetTimeValueNodeIdx; // 0x12 int16_t m_nResetTimeValueNodeIdx; // 0x12
bool m_bSampleRootMotion; // 0x14 float m_flSpeedMultiplier; // 0x14
bool m_bAllowLooping; // 0x15 int32_t m_nStartSyncEventOffset; // 0x18
int16_t m_nDataSlotIdx; // 0x16 bool m_bSampleRootMotion; // 0x1c
bool m_bAllowLooping; // 0x1d
int16_t m_nDataSlotIdx; // 0x1e
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CNmClipNode::CDefinition because it is not a standard-layout class // Cannot assert offsets of fields in CNmClipNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmClipNode__CDefinition) == 0x18); static_assert(sizeof(CNmClipNode__CDefinition) == 0x20);
}; };

View File

@ -0,0 +1,30 @@
#pragma once
#include "source2sdk/animlib/CNmPoseNode__CDefinition.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animlib
{
// Registered alignment: unknown
// Alignment: 0x2
// Standard-layout class: false
// Size: 0x10
// Has VTable
// Is Abstract
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CNmClipReferenceNode__CDefinition : public animlib::CNmPoseNode__CDefinition
{
public:
};
#pragma pack(pop)
static_assert(sizeof(CNmClipReferenceNode__CDefinition) == 0x10);
};

View File

@ -1,5 +1,5 @@
#pragma once #pragma once
#include "source2sdk/animlib/CNmPoseNode__CDefinition.hpp" #include "source2sdk/animlib/CNmClipReferenceNode__CDefinition.hpp"
#include "source2sdk/source2gen.hpp" #include "source2sdk/source2gen.hpp"
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
@ -19,7 +19,7 @@ namespace source2sdk::animlib
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1) #pragma pack(push, 1)
class CNmClipSelectorNode__CDefinition : public animlib::CNmPoseNode__CDefinition class CNmClipSelectorNode__CDefinition : public animlib::CNmClipReferenceNode__CDefinition
{ {
public: public:
// m_optionNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_optionNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below.

View File

@ -23,7 +23,8 @@ namespace source2sdk::animlib
{ {
public: public:
int16_t m_nSourceStateNodeIdx; // 0x10 int16_t m_nSourceStateNodeIdx; // 0x10
[[maybe_unused]] std::uint8_t pad_0x12[0x6]; bool m_bOnlyReturnPercentageThrough; // 0x12
[[maybe_unused]] std::uint8_t pad_0x13[0x5];
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -8,7 +8,7 @@
namespace source2sdk::animlib namespace source2sdk::animlib
{ {
// Enumerator count: 4 // Enumerator count: 5
// Alignment: 1 // Alignment: 1
// Size: 0x1 // Size: 0x1
enum class CNmFloatMathNode__Operator_t : std::uint8_t enum class CNmFloatMathNode__Operator_t : std::uint8_t
@ -17,5 +17,6 @@ namespace source2sdk::animlib
Sub = 1, Sub = 1,
Mul = 2, Mul = 2,
Div = 3, Div = 3,
Mod = 4,
}; };
}; };

View File

@ -1,5 +1,5 @@
#pragma once #pragma once
#include "source2sdk/animlib/CNmPoseNode__CDefinition.hpp" #include "source2sdk/animlib/CNmPassthroughNode__CDefinition.hpp"
#include "source2sdk/source2gen.hpp" #include "source2sdk/source2gen.hpp"
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
@ -14,19 +14,19 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18 // Size: 0x28
// Has VTable // Has VTable
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1) #pragma pack(push, 1)
class CNmChildGraphNode__CDefinition : public animlib::CNmPoseNode__CDefinition class CNmFollowBoneNode__CDefinition : public animlib::CNmPassthroughNode__CDefinition
{ {
public: public:
int16_t m_nChildGraphIdx; // 0x10 CGlobalSymbol m_bone; // 0x18
[[maybe_unused]] std::uint8_t pad_0x12[0x6]; CGlobalSymbol m_followTargetBone; // 0x20
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CNmChildGraphNode::CDefinition because it is not a standard-layout class // Cannot assert offsets of fields in CNmFollowBoneNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmChildGraphNode__CDefinition) == 0x18); static_assert(sizeof(CNmFollowBoneNode__CDefinition) == 0x28);
}; };

View File

@ -0,0 +1,29 @@
#pragma once
#include "source2sdk/animlib/CNmTask.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animlib
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0x48
// Has VTable
#pragma pack(push, 1)
class CNmFollowBoneTask : public animlib::CNmTask
{
public:
[[maybe_unused]] std::uint8_t pad_0x30[0x18];
// No schema binary for binding
};
#pragma pack(pop)
static_assert(sizeof(CNmFollowBoneTask) == 0x48);
};

View File

@ -1,40 +0,0 @@
#pragma once
#include "source2sdk/resourcesystem/InfoForResourceTypeCNmSkeleton.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animlib
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0x50
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CNmGraphDataSet
{
public:
CGlobalSymbol m_variationID; // 0x0
// m_skeleton has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeCNmSkeleton> m_skeleton;
char m_skeleton[0x8]; // 0x8
// m_resources has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CStrongHandleVoid> m_resources;
char m_resources[0x18]; // 0x10
[[maybe_unused]] std::uint8_t pad_0x28[0x28];
};
#pragma pack(pop)
static_assert(offsetof(CNmGraphDataSet, m_variationID) == 0x0);
static_assert(offsetof(CNmGraphDataSet, m_skeleton) == 0x8);
static_assert(offsetof(CNmGraphDataSet, m_resources) == 0x10);
static_assert(sizeof(CNmGraphDataSet) == 0x50);
};

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include "source2sdk/animlib/CNmGraphDefinition__ChildGraphSlot_t.hpp"
#include "source2sdk/animlib/CNmGraphDefinition__ExternalGraphSlot_t.hpp" #include "source2sdk/animlib/CNmGraphDefinition__ExternalGraphSlot_t.hpp"
#include "source2sdk/animlib/CNmGraphDefinition__ReferencedGraphSlot_t.hpp"
#include "source2sdk/resourcesystem/InfoForResourceTypeCNmSkeleton.hpp"
#include "source2sdk/source2gen.hpp" #include "source2sdk/source2gen.hpp"
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
@ -15,50 +16,61 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x130 // Size: 0x190
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1) #pragma pack(push, 1)
class CNmGraphDefinition class CNmGraphDefinition
{ {
public: public:
CGlobalSymbol m_variationID; // 0x0
// m_skeleton has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeCNmSkeleton> m_skeleton;
char m_skeleton[0x8]; // 0x8
V_uuid_t m_runtimeVersionID; // 0x10
// m_persistentNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_persistentNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<int16_t> m_persistentNodeIndices; // CUtlVector<int16_t> m_persistentNodeIndices;
char m_persistentNodeIndices[0x18]; // 0x0 char m_persistentNodeIndices[0x18]; // 0x20
int16_t m_nRootNodeIdx; // 0x18 int16_t m_nRootNodeIdx; // 0x38
[[maybe_unused]] std::uint8_t pad_0x1a[0x6]; // 0x1a [[maybe_unused]] std::uint8_t pad_0x3a[0x6]; // 0x3a
// m_controlParameterIDs has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_controlParameterIDs has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CGlobalSymbol> m_controlParameterIDs; // CUtlVector<CGlobalSymbol> m_controlParameterIDs;
char m_controlParameterIDs[0x18]; // 0x20 char m_controlParameterIDs[0x18]; // 0x40
// m_virtualParameterIDs has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_virtualParameterIDs has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CGlobalSymbol> m_virtualParameterIDs; // CUtlVector<CGlobalSymbol> m_virtualParameterIDs;
char m_virtualParameterIDs[0x18]; // 0x38 char m_virtualParameterIDs[0x18]; // 0x58
// m_virtualParameterNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_virtualParameterNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<int16_t> m_virtualParameterNodeIndices; // CUtlVector<int16_t> m_virtualParameterNodeIndices;
char m_virtualParameterNodeIndices[0x18]; // 0x50 char m_virtualParameterNodeIndices[0x18]; // 0x70
// m_childGraphSlots has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_referencedGraphSlots has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animlib::CNmGraphDefinition__ChildGraphSlot_t> m_childGraphSlots; // CUtlVector<animlib::CNmGraphDefinition__ReferencedGraphSlot_t> m_referencedGraphSlots;
char m_childGraphSlots[0x18]; // 0x68 char m_referencedGraphSlots[0x18]; // 0x88
// m_externalGraphSlots has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_externalGraphSlots has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<animlib::CNmGraphDefinition__ExternalGraphSlot_t> m_externalGraphSlots; // CUtlVector<animlib::CNmGraphDefinition__ExternalGraphSlot_t> m_externalGraphSlots;
char m_externalGraphSlots[0x18]; // 0x80 char m_externalGraphSlots[0x18]; // 0xa0
[[maybe_unused]] std::uint8_t pad_0x98[0x70]; // 0x98 [[maybe_unused]] std::uint8_t pad_0xb8[0x70]; // 0xb8
// m_nodePaths has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_nodePaths has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CUtlString> m_nodePaths; // CUtlVector<CUtlString> m_nodePaths;
char m_nodePaths[0x18]; // 0x108 char m_nodePaths[0x18]; // 0x128
V_uuid_t m_runtimeVersionID; // 0x120 // m_resources has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CStrongHandleVoid> m_resources;
char m_resources[0x18]; // 0x140
[[maybe_unused]] std::uint8_t pad_0x158[0x38];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CNmGraphDefinition, m_persistentNodeIndices) == 0x0); static_assert(offsetof(CNmGraphDefinition, m_variationID) == 0x0);
static_assert(offsetof(CNmGraphDefinition, m_nRootNodeIdx) == 0x18); static_assert(offsetof(CNmGraphDefinition, m_skeleton) == 0x8);
static_assert(offsetof(CNmGraphDefinition, m_controlParameterIDs) == 0x20); static_assert(offsetof(CNmGraphDefinition, m_runtimeVersionID) == 0x10);
static_assert(offsetof(CNmGraphDefinition, m_virtualParameterIDs) == 0x38); static_assert(offsetof(CNmGraphDefinition, m_persistentNodeIndices) == 0x20);
static_assert(offsetof(CNmGraphDefinition, m_virtualParameterNodeIndices) == 0x50); static_assert(offsetof(CNmGraphDefinition, m_nRootNodeIdx) == 0x38);
static_assert(offsetof(CNmGraphDefinition, m_childGraphSlots) == 0x68); static_assert(offsetof(CNmGraphDefinition, m_controlParameterIDs) == 0x40);
static_assert(offsetof(CNmGraphDefinition, m_externalGraphSlots) == 0x80); static_assert(offsetof(CNmGraphDefinition, m_virtualParameterIDs) == 0x58);
static_assert(offsetof(CNmGraphDefinition, m_nodePaths) == 0x108); static_assert(offsetof(CNmGraphDefinition, m_virtualParameterNodeIndices) == 0x70);
static_assert(offsetof(CNmGraphDefinition, m_runtimeVersionID) == 0x120); static_assert(offsetof(CNmGraphDefinition, m_referencedGraphSlots) == 0x88);
static_assert(offsetof(CNmGraphDefinition, m_externalGraphSlots) == 0xa0);
static_assert(offsetof(CNmGraphDefinition, m_nodePaths) == 0x128);
static_assert(offsetof(CNmGraphDefinition, m_resources) == 0x140);
static_assert(sizeof(CNmGraphDefinition) == 0x130); static_assert(sizeof(CNmGraphDefinition) == 0x190);
}; };

View File

@ -18,7 +18,7 @@ namespace source2sdk::animlib
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1) #pragma pack(push, 1)
struct CNmGraphDefinition__ChildGraphSlot_t struct CNmGraphDefinition__ReferencedGraphSlot_t
{ {
public: public:
int16_t m_nNodeIdx; // 0x0 int16_t m_nNodeIdx; // 0x0
@ -26,8 +26,8 @@ namespace source2sdk::animlib
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CNmGraphDefinition__ChildGraphSlot_t, m_nNodeIdx) == 0x0); static_assert(offsetof(CNmGraphDefinition__ReferencedGraphSlot_t, m_nNodeIdx) == 0x0);
static_assert(offsetof(CNmGraphDefinition__ChildGraphSlot_t, m_dataSlotIdx) == 0x2); static_assert(offsetof(CNmGraphDefinition__ReferencedGraphSlot_t, m_dataSlotIdx) == 0x2);
static_assert(sizeof(CNmGraphDefinition__ChildGraphSlot_t) == 0x4); static_assert(sizeof(CNmGraphDefinition__ReferencedGraphSlot_t) == 0x4);
}; };

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
#include "source2sdk/animlib/CNmBitFlags.hpp" #include "source2sdk/animlib/CNmBitFlags.hpp"
#include "source2sdk/animlib/CNmBoolValueNode__CDefinition.hpp" #include "source2sdk/animlib/CNmBoolValueNode__CDefinition.hpp"
#include "source2sdk/animlib/CNmStateEventConditionNode__Condition_t.hpp" #include "source2sdk/animlib/CNmGraphEventConditionNode__Condition_t.hpp"
#include "source2sdk/source2gen.hpp" #include "source2sdk/source2gen.hpp"
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
@ -21,18 +21,18 @@ namespace source2sdk::animlib
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1) #pragma pack(push, 1)
class CNmStateEventConditionNode__CDefinition : public animlib::CNmBoolValueNode__CDefinition class CNmGraphEventConditionNode__CDefinition : public animlib::CNmBoolValueNode__CDefinition
{ {
public: public:
int16_t m_nSourceStateNodeIdx; // 0x10 int16_t m_nSourceStateNodeIdx; // 0x10
[[maybe_unused]] std::uint8_t pad_0x12[0x2]; // 0x12 [[maybe_unused]] std::uint8_t pad_0x12[0x2]; // 0x12
animlib::CNmBitFlags m_eventConditionRules; // 0x14 animlib::CNmBitFlags m_eventConditionRules; // 0x14
// m_conditions has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_conditions has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVectorFixedGrowable<animlib::CNmStateEventConditionNode__Condition_t,5> m_conditions; // CUtlVectorFixedGrowable<animlib::CNmGraphEventConditionNode__Condition_t,5> m_conditions;
char m_conditions[0x68]; // 0x18 char m_conditions[0x68]; // 0x18
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CNmStateEventConditionNode::CDefinition because it is not a standard-layout class // Cannot assert offsets of fields in CNmGraphEventConditionNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmStateEventConditionNode__CDefinition) == 0x80); static_assert(sizeof(CNmGraphEventConditionNode__CDefinition) == 0x80);
}; };

View File

@ -1,5 +1,5 @@
#pragma once #pragma once
#include "source2sdk/animlib/NmStateEventTypeCondition_t.hpp" #include "source2sdk/animlib/NmGraphEventTypeCondition_t.hpp"
#include "source2sdk/source2gen.hpp" #include "source2sdk/source2gen.hpp"
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
@ -19,17 +19,17 @@ namespace source2sdk::animlib
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1) #pragma pack(push, 1)
struct CNmStateEventConditionNode__Condition_t struct CNmGraphEventConditionNode__Condition_t
{ {
public: public:
CGlobalSymbol m_eventID; // 0x0 CGlobalSymbol m_eventID; // 0x0
animlib::NmStateEventTypeCondition_t m_eventTypeCondition; // 0x8 animlib::NmGraphEventTypeCondition_t m_eventTypeCondition; // 0x8
[[maybe_unused]] std::uint8_t pad_0x09[0x7]; [[maybe_unused]] std::uint8_t pad_0x09[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CNmStateEventConditionNode__Condition_t, m_eventID) == 0x0); static_assert(offsetof(CNmGraphEventConditionNode__Condition_t, m_eventID) == 0x0);
static_assert(offsetof(CNmStateEventConditionNode__Condition_t, m_eventTypeCondition) == 0x8); static_assert(offsetof(CNmGraphEventConditionNode__Condition_t, m_eventTypeCondition) == 0x8);
static_assert(sizeof(CNmStateEventConditionNode__Condition_t) == 0x10); static_assert(sizeof(CNmGraphEventConditionNode__Condition_t) == 0x10);
}; };

View File

@ -1,36 +0,0 @@
#pragma once
#include "source2sdk/animlib/CNmGraphDataSet.hpp"
#include "source2sdk/resourcesystem/InfoForResourceTypeCNmGraphDefinition.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animlib
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0x58
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CNmGraphVariation
{
public:
// m_graphDefinition has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeCNmGraphDefinition> m_graphDefinition;
char m_graphDefinition[0x8]; // 0x0
animlib::CNmGraphDataSet m_dataSet; // 0x8
};
#pragma pack(pop)
static_assert(offsetof(CNmGraphVariation, m_graphDefinition) == 0x0);
static_assert(offsetof(CNmGraphVariation, m_dataSet) == 0x8);
static_assert(sizeof(CNmGraphVariation) == 0x58);
};

View File

@ -0,0 +1,37 @@
#pragma once
#include "source2sdk/animlib/CNmIDValueNode__CDefinition.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animlib
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0x80
// Has VTable
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CNmIDSelectorNode__CDefinition : public animlib::CNmIDValueNode__CDefinition
{
public:
// m_conditionNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVectorFixedGrowable<int16_t,5> m_conditionNodeIndices;
char m_conditionNodeIndices[0x28]; // 0x10
// m_values has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVectorFixedGrowable<CGlobalSymbol,5> m_values;
char m_values[0x40]; // 0x38
CGlobalSymbol m_defaultValue; // 0x78
};
#pragma pack(pop)
// Cannot assert offsets of fields in CNmIDSelectorNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmIDSelectorNode__CDefinition) == 0x80);
};

View File

@ -0,0 +1,34 @@
#pragma once
#include "source2sdk/animlib/CNmIDValueNode__CDefinition.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animlib
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0x18
// Has VTable
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CNmIDSwitchNode__CDefinition : public animlib::CNmIDValueNode__CDefinition
{
public:
int16_t m_nSwitchValueNodeIdx; // 0x10
int16_t m_nTrueValueNodeIdx; // 0x12
int16_t m_nFalseValueNodeIdx; // 0x14
[[maybe_unused]] std::uint8_t pad_0x16[0x2];
};
#pragma pack(pop)
// Cannot assert offsets of fields in CNmIDSwitchNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmIDSwitchNode__CDefinition) == 0x18);
};

View File

@ -0,0 +1,37 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animlib
{
// Registered alignment: 0x4
// Alignment: 0x4
// Standard-layout class: true
// Size: 0x20
// Has Trivial Destructor
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CNmIKBody
{
public:
float m_flMass; // 0x0
Vector m_vLocalMassCenter; // 0x4
Vector m_vRadius; // 0x10
float m_flResistance; // 0x1c
};
#pragma pack(pop)
static_assert(offsetof(CNmIKBody, m_flMass) == 0x0);
static_assert(offsetof(CNmIKBody, m_vLocalMassCenter) == 0x4);
static_assert(offsetof(CNmIKBody, m_vRadius) == 0x10);
static_assert(offsetof(CNmIKBody, m_flResistance) == 0x1c);
static_assert(sizeof(CNmIKBody) == 0x20);
};

View File

@ -0,0 +1,42 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: animlib
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::animlib
{
// Registered alignment: 0x10
// Alignment: 0x10
// Standard-layout class: true
// Size: 0x40
// Has Trivial Destructor
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CNmIKEffector
{
public:
int32_t m_nBodyIndex; // 0x0
bool m_bEnabled; // 0x4
[[maybe_unused]] std::uint8_t pad_0x05[0x3]; // 0x5
Vector m_vTargetPosition; // 0x8
[[maybe_unused]] std::uint8_t pad_0x14[0xc]; // 0x14
Quaternion m_qTargetOrientation; // 0x20
float m_flWeight; // 0x30
[[maybe_unused]] std::uint8_t pad_0x34[0xc];
};
#pragma pack(pop)
static_assert(offsetof(CNmIKEffector, m_nBodyIndex) == 0x0);
static_assert(offsetof(CNmIKEffector, m_bEnabled) == 0x4);
static_assert(offsetof(CNmIKEffector, m_vTargetPosition) == 0x8);
static_assert(offsetof(CNmIKEffector, m_qTargetOrientation) == 0x20);
static_assert(offsetof(CNmIKEffector, m_flWeight) == 0x30);
static_assert(sizeof(CNmIKEffector) == 0x40);
};

Some files were not shown because too many files have changed in this diff Show More