08.11.2024 (Kesha)

This commit is contained in:
Konstantin 'cpz' L. 2024-11-08 17:13:12 +03:00
parent cef5650f51
commit ebd82a6a66
13718 changed files with 72129 additions and 73770 deletions

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
// Construct allowed // Construct allowed
// //
@ -47,7 +47,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)
@ -58,6 +61,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,36 @@
#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
// Construct allowed
//
// 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

@ -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

@ -43,7 +43,8 @@ namespace source2sdk::animgraphlib
[[maybe_unused]] std::uint8_t pad_0x9e[0x2]; // 0x9e [[maybe_unused]] std::uint8_t pad_0x9e[0x2]; // 0x9e
float m_flTurnToFaceOffset; // 0xa0 float m_flTurnToFaceOffset; // 0xa0
bool m_bTurnToFace; // 0xa4 bool m_bTurnToFace; // 0xa4
[[maybe_unused]] std::uint8_t pad_0xa5[0x3]; bool m_bAlignRootMotionWithMoveDirection; // 0xa5
[[maybe_unused]] std::uint8_t pad_0xa6[0x2];
}; };
#pragma pack(pop) #pragma pack(pop)

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
// Construct allowed // Construct allowed
// //
@ -26,18 +26,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_0x68[0x10]; // 0x68
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

@ -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
// Construct allowed // Construct allowed
// //
@ -25,19 +25,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

@ -26,14 +26,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

@ -0,0 +1,48 @@
#pragma once
#include "source2sdk/animgraphlib/AnimValueSource.hpp"
#include "source2sdk/animgraphlib/CAnimInputDamping.hpp"
#include "source2sdk/animgraphlib/CAnimParamHandle.hpp"
#include "source2sdk/animgraphlib/CUnaryUpdateNode.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: 0xa0
// Has VTable
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class COrientationWarpUpdateNode : public animgraphlib::CUnaryUpdateNode
{
public:
[[maybe_unused]] std::uint8_t pad_0x68[0x4]; // 0x68
animgraphlib::AnimValueSource m_eTarget; // 0x6c
animgraphlib::CAnimParamHandle m_hTargetParam; // 0x70
animgraphlib::CAnimParamHandle m_hTargetPositionParam; // 0x72
float m_flTargetOffset; // 0x74
animgraphlib::CAnimInputDamping m_damping; // 0x78
float m_flSmoothDampingDuration; // 0x88
bool m_bAddRootMotionIfNeeded; // 0x8c
[[maybe_unused]] std::uint8_t pad_0x8d[0x3]; // 0x8d
float m_flMaxRootMotionScale; // 0x90
bool m_bEnablePreferredRotationDirection; // 0x94
[[maybe_unused]] std::uint8_t pad_0x95[0x3]; // 0x95
animgraphlib::AnimValueSource m_ePreferredRotationDirection; // 0x98
float m_flPreferredRotationThreshold; // 0x9c
};
#pragma pack(pop)
// Cannot assert offsets of fields in COrientationWarpUpdateNode because it is not a standard-layout class
static_assert(sizeof(COrientationWarpUpdateNode) == 0xa0);
};

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
// Construct allowed // Construct allowed
// //
@ -23,11 +23,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

@ -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: 0xc0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// //
@ -28,23 +28,26 @@ 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 float m_flSpringFrequencyMin; // 0xa8
float m_flSpringFrequencyMax; // 0x94 float m_flSpringFrequencyMax; // 0xac
float m_flMaxStretch; // 0x98 float m_flMaxStretch; // 0xb0
bool m_bSolidCollisionAtZeroWeight; // 0x9c bool m_bSolidCollisionAtZeroWeight; // 0xb4
[[maybe_unused]] std::uint8_t pad_0x9d[0xb]; [[maybe_unused]] std::uint8_t pad_0xb5[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) == 0xc0);
}; };

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
// Construct allowed // Construct allowed
// //
@ -26,15 +26,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
// Construct allowed // Construct allowed
@ -24,13 +24,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

@ -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: 0xa0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// //
@ -29,10 +29,10 @@ namespace source2sdk::animgraphlib
// CUtlVector<animgraphlib::CSolveIKTargetHandle_t> m_targetHandles; // CUtlVector<animgraphlib::CSolveIKTargetHandle_t> m_targetHandles;
char m_targetHandles[0x18]; // 0x68 char m_targetHandles[0x18]; // 0x68
animgraphlib::SolveIKChainPoseOpFixedSettings_t m_opFixedData; // 0x80 animgraphlib::SolveIKChainPoseOpFixedSettings_t m_opFixedData; // 0x80
[[maybe_unused]] std::uint8_t pad_0xa0[0x8]; [[maybe_unused]] std::uint8_t pad_0x98[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CSolveIKChainUpdateNode because it is not a standard-layout class // Cannot assert offsets of fields in CSolveIKChainUpdateNode because it is not a standard-layout class
static_assert(sizeof(CSolveIKChainUpdateNode) == 0xa8); static_assert(sizeof(CSolveIKChainUpdateNode) == 0xa0);
}; };

View File

@ -37,7 +37,8 @@ namespace source2sdk::animgraphlib
[[maybe_unused]] std::uint8_t pad_0xf0[0x4]; // 0xf0 [[maybe_unused]] std::uint8_t pad_0xf0[0x4]; // 0xf0
bool m_bBlockWaningTags; // 0xf4 bool m_bBlockWaningTags; // 0xf4
bool m_bLockStateWhenWaning; // 0xf5 bool m_bLockStateWhenWaning; // 0xf5
[[maybe_unused]] std::uint8_t pad_0xf6[0x2]; bool m_bResetWhenActivated; // 0xf6
[[maybe_unused]] std::uint8_t pad_0xf7[0x1];
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -38,7 +38,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)
@ -51,6 +53,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

@ -0,0 +1,44 @@
#pragma once
#include "source2sdk/animgraphlib/CAnimParamHandle.hpp"
#include "source2sdk/animgraphlib/CAnimUpdateNodeBase.hpp"
#include "source2sdk/animgraphlib/CAnimUpdateNodeRef.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: 0x88
// Has VTable
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CTargetSelectorUpdateNode : public animgraphlib::CAnimUpdateNodeBase
{
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.
// CUtlVector<animgraphlib::CAnimUpdateNodeRef> m_children;
char m_children[0x18]; // 0x60
[[maybe_unused]] std::uint8_t pad_0x78[0x4]; // 0x78
animgraphlib::CAnimParamHandle m_hTargetPosition; // 0x7c
animgraphlib::CAnimParamHandle m_hTargetFacePositionParameter; // 0x7e
animgraphlib::CAnimParamHandle m_hForwardDirectionOverrideParameter; // 0x80
bool m_bTargetPositionIsWorldSpace; // 0x82
bool m_bTargetFacePositionIsWorldSpace; // 0x83
[[maybe_unused]] std::uint8_t pad_0x84[0x4];
};
#pragma pack(pop)
// Cannot assert offsets of fields in CTargetSelectorUpdateNode because it is not a standard-layout class
static_assert(sizeof(CTargetSelectorUpdateNode) == 0x88);
};

View File

@ -0,0 +1,39 @@
#pragma once
#include "source2sdk/animgraphlib/CAnimParamHandle.hpp"
#include "source2sdk/animgraphlib/CUnaryUpdateNode.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: 0x78
// Has VTable
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
class CTargetWarpUpdateNode : public animgraphlib::CUnaryUpdateNode
{
public:
[[maybe_unused]] std::uint8_t pad_0x68[0x4]; // 0x68
animgraphlib::CAnimParamHandle m_hTargetPositionParameter; // 0x6c
animgraphlib::CAnimParamHandle m_hTargetUpVectorParameter; // 0x6e
animgraphlib::CAnimParamHandle m_hTargetFacePositionParameter; // 0x70
bool m_bTargetFacePositionIsWorldSpace; // 0x72
bool m_bTargetPositionIsWorldSpace; // 0x73
[[maybe_unused]] std::uint8_t pad_0x74[0x4];
};
#pragma pack(pop)
// Cannot assert offsets of fields in CTargetWarpUpdateNode because it is not a standard-layout class
static_assert(sizeof(CTargetWarpUpdateNode) == 0x78);
};

View File

@ -26,7 +26,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

@ -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>
@ -25,16 +26,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

@ -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

@ -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
// Construct allowed // Construct allowed
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -25,13 +25,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

@ -15,7 +15,7 @@ namespace source2sdk::animlib
// 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
// Construct allowed // Construct allowed
// //
@ -29,5 +29,5 @@ namespace source2sdk::animlib
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CNmBlend1DNode::CDefinition because it is not a standard-layout class // Cannot assert offsets of fields in CNmBlend1DNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmBlend1DNode__CDefinition) == 0x88); static_assert(sizeof(CNmBlend1DNode__CDefinition) == 0x90);
}; };

View File

@ -0,0 +1,35 @@
#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
// Construct allowed
//
// 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

@ -37,7 +37,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
@ -51,6 +54,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

@ -14,7 +14,7 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x30 // Size: 0x40
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// //
@ -25,13 +25,13 @@ namespace source2sdk::animlib
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.
// CUtlLeanVectorFixedGrowable<int16_t,5> m_optionNodeIndices; // CUtlLeanVectorFixedGrowable<int16_t,5> m_optionNodeIndices;
char m_optionNodeIndices[0x10]; // 0x10 char m_optionNodeIndices[0x18]; // 0x10
// m_conditionNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_conditionNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlLeanVectorFixedGrowable<int16_t,5> m_conditionNodeIndices; // CUtlLeanVectorFixedGrowable<int16_t,5> m_conditionNodeIndices;
char m_conditionNodeIndices[0x10]; // 0x20 char m_conditionNodeIndices[0x18]; // 0x28
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CNmClipSelectorNode::CDefinition because it is not a standard-layout class // Cannot assert offsets of fields in CNmClipSelectorNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmClipSelectorNode__CDefinition) == 0x30); static_assert(sizeof(CNmClipSelectorNode__CDefinition) == 0x40);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x48 // Size: 0x60
// Construct allowed // Construct allowed
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -29,7 +29,7 @@ namespace source2sdk::animlib
// m_resources has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_resources has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CStrongHandleVoid> m_resources; // CUtlVector<CStrongHandleVoid> m_resources;
char m_resources[0x18]; // 0x10 char m_resources[0x18]; // 0x10
[[maybe_unused]] std::uint8_t pad_0x28[0x20]; [[maybe_unused]] std::uint8_t pad_0x28[0x38];
}; };
#pragma pack(pop) #pragma pack(pop)
@ -37,5 +37,5 @@ namespace source2sdk::animlib
static_assert(offsetof(CNmGraphDataSet, m_skeleton) == 0x8); static_assert(offsetof(CNmGraphDataSet, m_skeleton) == 0x8);
static_assert(offsetof(CNmGraphDataSet, m_resources) == 0x10); static_assert(offsetof(CNmGraphDataSet, m_resources) == 0x10);
static_assert(sizeof(CNmGraphDataSet) == 0x48); static_assert(sizeof(CNmGraphDataSet) == 0x60);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x50 // Size: 0x68
// Construct allowed // Construct allowed
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -33,5 +33,5 @@ namespace source2sdk::animlib
static_assert(offsetof(CNmGraphVariation, m_graphDefinition) == 0x0); static_assert(offsetof(CNmGraphVariation, m_graphDefinition) == 0x0);
static_assert(offsetof(CNmGraphVariation, m_dataSet) == 0x8); static_assert(offsetof(CNmGraphVariation, m_dataSet) == 0x8);
static_assert(sizeof(CNmGraphVariation) == 0x50); static_assert(sizeof(CNmGraphVariation) == 0x68);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x60 // Size: 0x68
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// //
@ -31,10 +31,10 @@ namespace source2sdk::animlib
char m_IDs[0x30]; // 0x18 char m_IDs[0x30]; // 0x18
// m_values has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_values has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlLeanVectorFixedGrowable<float,5> m_values; // CUtlLeanVectorFixedGrowable<float,5> m_values;
char m_values[0x18]; // 0x48 char m_values[0x20]; // 0x48
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CNmIDToFloatNode::CDefinition because it is not a standard-layout class // Cannot assert offsets of fields in CNmIDToFloatNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmIDToFloatNode__CDefinition) == 0x60); static_assert(sizeof(CNmIDToFloatNode__CDefinition) == 0x68);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x40 // Size: 0x48
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// //
@ -29,10 +29,10 @@ namespace source2sdk::animlib
[[maybe_unused]] std::uint8_t pad_0x13[0x5]; // 0x13 [[maybe_unused]] std::uint8_t pad_0x13[0x5]; // 0x13
// m_layerDefinition has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_layerDefinition has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlLeanVectorFixedGrowable<animlib::CNmLayerBlendNode__LayerDefinition_t,3> m_layerDefinition; // CUtlLeanVectorFixedGrowable<animlib::CNmLayerBlendNode__LayerDefinition_t,3> m_layerDefinition;
char m_layerDefinition[0x28]; // 0x18 char m_layerDefinition[0x30]; // 0x18
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CNmLayerBlendNode::CDefinition because it is not a standard-layout class // Cannot assert offsets of fields in CNmLayerBlendNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmLayerBlendNode__CDefinition) == 0x40); static_assert(sizeof(CNmLayerBlendNode__CDefinition) == 0x48);
}; };

View File

@ -14,7 +14,7 @@ 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
// Construct allowed // Construct allowed
// //
@ -23,9 +23,12 @@ namespace source2sdk::animlib
class CNmLegacyEvent : public animlib::CNmEvent class CNmLegacyEvent : public animlib::CNmEvent
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x18[0x28]; CUtlString m_animEventClassName; // 0x18
KeyValues3 m_KV; // 0x20
[[maybe_unused]] std::uint8_t pad_0x30[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CNmLegacyEvent) == 0x40); // Cannot assert offsets of fields in CNmLegacyEvent because it is not a standard-layout class
static_assert(sizeof(CNmLegacyEvent) == 0x38);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x48 // Size: 0x50
// Construct allowed // Construct allowed
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -24,13 +24,13 @@ namespace source2sdk::animlib
public: public:
// m_blendRanges has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_blendRanges has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlLeanVectorFixedGrowable<animlib::CNmParameterizedBlendNode__BlendRange_t,5> m_blendRanges; // CUtlLeanVectorFixedGrowable<animlib::CNmParameterizedBlendNode__BlendRange_t,5> m_blendRanges;
char m_blendRanges[0x40]; // 0x0 char m_blendRanges[0x48]; // 0x0
Range_t m_parameterRange; // 0x40 Range_t m_parameterRange; // 0x48
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CNmParameterizedBlendNode__Parameterization_t, m_blendRanges) == 0x0); static_assert(offsetof(CNmParameterizedBlendNode__Parameterization_t, m_blendRanges) == 0x0);
static_assert(offsetof(CNmParameterizedBlendNode__Parameterization_t, m_parameterRange) == 0x40); static_assert(offsetof(CNmParameterizedBlendNode__Parameterization_t, m_parameterRange) == 0x48);
static_assert(sizeof(CNmParameterizedBlendNode__Parameterization_t) == 0x48); static_assert(sizeof(CNmParameterizedBlendNode__Parameterization_t) == 0x50);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x28 // Size: 0x30
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// //
@ -25,12 +25,12 @@ namespace source2sdk::animlib
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.
// CUtlLeanVectorFixedGrowable<int16_t,5> m_optionNodeIndices; // CUtlLeanVectorFixedGrowable<int16_t,5> m_optionNodeIndices;
char m_optionNodeIndices[0x10]; // 0x10 char m_optionNodeIndices[0x18]; // 0x10
int16_t m_parameterNodeIdx; // 0x20 int16_t m_parameterNodeIdx; // 0x28
[[maybe_unused]] std::uint8_t pad_0x22[0x6]; [[maybe_unused]] std::uint8_t pad_0x2a[0x6];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CNmParameterizedClipSelectorNode::CDefinition because it is not a standard-layout class // Cannot assert offsets of fields in CNmParameterizedClipSelectorNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmParameterizedClipSelectorNode__CDefinition) == 0x28); static_assert(sizeof(CNmParameterizedClipSelectorNode__CDefinition) == 0x30);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x28 // Size: 0x30
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// //
@ -25,12 +25,12 @@ namespace source2sdk::animlib
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.
// CUtlLeanVectorFixedGrowable<int16_t,5> m_optionNodeIndices; // CUtlLeanVectorFixedGrowable<int16_t,5> m_optionNodeIndices;
char m_optionNodeIndices[0x10]; // 0x10 char m_optionNodeIndices[0x18]; // 0x10
int16_t m_parameterNodeIdx; // 0x20 int16_t m_parameterNodeIdx; // 0x28
[[maybe_unused]] std::uint8_t pad_0x22[0x6]; [[maybe_unused]] std::uint8_t pad_0x2a[0x6];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CNmParameterizedSelectorNode::CDefinition because it is not a standard-layout class // Cannot assert offsets of fields in CNmParameterizedSelectorNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmParameterizedSelectorNode__CDefinition) == 0x28); static_assert(sizeof(CNmParameterizedSelectorNode__CDefinition) == 0x30);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x30 // Size: 0x40
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// //
@ -25,13 +25,13 @@ namespace source2sdk::animlib
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.
// CUtlLeanVectorFixedGrowable<int16_t,5> m_optionNodeIndices; // CUtlLeanVectorFixedGrowable<int16_t,5> m_optionNodeIndices;
char m_optionNodeIndices[0x10]; // 0x10 char m_optionNodeIndices[0x18]; // 0x10
// m_conditionNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_conditionNodeIndices has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlLeanVectorFixedGrowable<int16_t,5> m_conditionNodeIndices; // CUtlLeanVectorFixedGrowable<int16_t,5> m_conditionNodeIndices;
char m_conditionNodeIndices[0x10]; // 0x20 char m_conditionNodeIndices[0x18]; // 0x28
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CNmSelectorNode::CDefinition because it is not a standard-layout class // Cannot assert offsets of fields in CNmSelectorNode::CDefinition because it is not a standard-layout class
static_assert(sizeof(CNmSelectorNode__CDefinition) == 0x30); static_assert(sizeof(CNmSelectorNode__CDefinition) == 0x40);
}; };

View File

@ -1,5 +1,5 @@
#pragma once #pragma once
#include "source2sdk/animlib/CNmBoneMask.hpp" #include "source2sdk/animlib/CNmBoneMask__SerializedData_t.hpp"
#include "source2sdk/source2gen.hpp" #include "source2sdk/source2gen.hpp"
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
@ -14,7 +14,7 @@ namespace source2sdk::animlib
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x78 // Size: 0x88
// Construct allowed // Construct allowed
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -37,9 +37,10 @@ namespace source2sdk::animlib
char m_modelSpaceReferencePose[0x18]; // 0x48 char m_modelSpaceReferencePose[0x18]; // 0x48
int32_t m_numBonesToSampleAtLowLOD; // 0x60 int32_t m_numBonesToSampleAtLowLOD; // 0x60
[[maybe_unused]] std::uint8_t pad_0x64[0x4]; // 0x64 [[maybe_unused]] std::uint8_t pad_0x64[0x4]; // 0x64
// m_boneMasks has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_serializedMasks has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlLeanVector<animlib::CNmBoneMask> m_boneMasks; // CUtlLeanVector<animlib::CNmBoneMask__SerializedData_t> m_serializedMasks;
char m_boneMasks[0x10]; // 0x68 char m_serializedMasks[0x10]; // 0x68
[[maybe_unused]] std::uint8_t pad_0x78[0x10];
}; };
#pragma pack(pop) #pragma pack(pop)
@ -49,7 +50,7 @@ namespace source2sdk::animlib
static_assert(offsetof(CNmSkeleton, m_parentSpaceReferencePose) == 0x30); static_assert(offsetof(CNmSkeleton, m_parentSpaceReferencePose) == 0x30);
static_assert(offsetof(CNmSkeleton, m_modelSpaceReferencePose) == 0x48); static_assert(offsetof(CNmSkeleton, m_modelSpaceReferencePose) == 0x48);
static_assert(offsetof(CNmSkeleton, m_numBonesToSampleAtLowLOD) == 0x60); static_assert(offsetof(CNmSkeleton, m_numBonesToSampleAtLowLOD) == 0x60);
static_assert(offsetof(CNmSkeleton, m_boneMasks) == 0x68); static_assert(offsetof(CNmSkeleton, m_serializedMasks) == 0x68);
static_assert(sizeof(CNmSkeleton) == 0x78); static_assert(sizeof(CNmSkeleton) == 0x88);
}; };

View File

@ -15,6 +15,6 @@ namespace source2sdk::animlib
{ {
Overlay = 0, Overlay = 0,
Additive = 1, Additive = 1,
GlobalSpace = 2, ModelSpace = 2,
}; };
}; };

View File

@ -0,0 +1,38 @@
#pragma once
#include "source2sdk/client/ArtyGameObjectDef_t.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0xf0
// Has VTable
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
struct ArtyCannonDef_t : public client::ArtyGameObjectDef_t
{
public:
bool m_bDirectAimAtTarget; // 0xb0
[[maybe_unused]] std::uint8_t pad_0xb1[0x7]; // 0xb1
// m_vecWeapons has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CUtlString> m_vecWeapons;
char m_vecWeapons[0x18]; // 0xb8
[[maybe_unused]] std::uint8_t pad_0xd0[0x18]; // 0xd0
Vector2D m_vShotOffset; // 0xe8
};
#pragma pack(pop)
// Cannot assert offsets of fields in ArtyCannonDef_t because it is not a standard-layout class
static_assert(sizeof(ArtyCannonDef_t) == 0xf0);
};

View File

@ -0,0 +1,64 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x4
// Alignment: 0x4
// Standard-layout class: true
// Size: 0x34
// Has Trivial Destructor
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
struct ArtyConstants_t
{
public:
float m_flWindAccel; // 0x0
float m_flG0; // 0x4
float m_flDragCoeff; // 0x8
bool m_bPuzzle; // 0xc
[[maybe_unused]] std::uint8_t pad_0x0d[0x3]; // 0xd
float m_flMinVelocityForFallDamage; // 0x10
float m_flFallDamageMult; // 0x14
float m_flMinAirTimeForDamage; // 0x18
bool m_bRefillAmmoEachLevel; // 0x1c
[[maybe_unused]] std::uint8_t pad_0x1d[0x3]; // 0x1d
float m_flMaxClimbHeight; // 0x20
bool m_bShowPathProjection; // 0x24
bool m_bShowTrails; // 0x25
bool m_bClearOldTrailsOnFire; // 0x26
[[maybe_unused]] std::uint8_t pad_0x27[0x1]; // 0x27
float m_flTrailLingerSeconds; // 0x28
float m_flVelocityPerChargeSecond; // 0x2c
float m_flMinimumGameObjectY; // 0x30
};
#pragma pack(pop)
static_assert(offsetof(ArtyConstants_t, m_flWindAccel) == 0x0);
static_assert(offsetof(ArtyConstants_t, m_flG0) == 0x4);
static_assert(offsetof(ArtyConstants_t, m_flDragCoeff) == 0x8);
static_assert(offsetof(ArtyConstants_t, m_bPuzzle) == 0xc);
static_assert(offsetof(ArtyConstants_t, m_flMinVelocityForFallDamage) == 0x10);
static_assert(offsetof(ArtyConstants_t, m_flFallDamageMult) == 0x14);
static_assert(offsetof(ArtyConstants_t, m_flMinAirTimeForDamage) == 0x18);
static_assert(offsetof(ArtyConstants_t, m_bRefillAmmoEachLevel) == 0x1c);
static_assert(offsetof(ArtyConstants_t, m_flMaxClimbHeight) == 0x20);
static_assert(offsetof(ArtyConstants_t, m_bShowPathProjection) == 0x24);
static_assert(offsetof(ArtyConstants_t, m_bShowTrails) == 0x25);
static_assert(offsetof(ArtyConstants_t, m_bClearOldTrailsOnFire) == 0x26);
static_assert(offsetof(ArtyConstants_t, m_flTrailLingerSeconds) == 0x28);
static_assert(offsetof(ArtyConstants_t, m_flVelocityPerChargeSecond) == 0x2c);
static_assert(offsetof(ArtyConstants_t, m_flMinimumGameObjectY) == 0x30);
static_assert(sizeof(ArtyConstants_t) == 0x34);
};

View File

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

View File

@ -0,0 +1,35 @@
#pragma once
#include "source2sdk/client/EArtyOrderFlag.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x4
// Alignment: 0x4
// Standard-layout class: true
// Size: 0x8
// Has Trivial Destructor
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
struct ArtyEnemyOrder_t
{
public:
float m_flDuration; // 0x0
client::EArtyOrderFlag m_unOrders; // 0x4
};
#pragma pack(pop)
static_assert(offsetof(ArtyEnemyOrder_t, m_flDuration) == 0x0);
static_assert(offsetof(ArtyEnemyOrder_t, m_unOrders) == 0x4);
static_assert(sizeof(ArtyEnemyOrder_t) == 0x8);
};

View File

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

View File

@ -0,0 +1,32 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0x8
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
struct ArtyGameModeLevelInfo_t
{
public:
CUtlString m_szLevelName; // 0x0
};
#pragma pack(pop)
static_assert(offsetof(ArtyGameModeLevelInfo_t, m_szLevelName) == 0x0);
static_assert(sizeof(ArtyGameModeLevelInfo_t) == 0x8);
};

View File

@ -0,0 +1,115 @@
#pragma once
#include "source2sdk/client/ArtyGameObjectID_t.hpp"
#include "source2sdk/client/ArtyGameObjectInstance_t.hpp"
#include "source2sdk/client/EArtyGameObjectType.hpp"
#include "source2sdk/client/EArtyHitboxType.hpp"
#include "source2sdk/client/EArtyLayer.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0xb0
// Has VTable
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
// static metadata: MVDataNodeType "1"
#pragma pack(push, 1)
struct ArtyGameObjectDef_t
{
public:
[[maybe_unused]] std::uint8_t pad_0x00[0x10]; // 0x0
client::ArtyGameObjectID_t m_unID; // 0x10
[[maybe_unused]] std::uint8_t pad_0x14[0x4]; // 0x14
// metadata: MPropertyCustomFGDType "vdata_choice:scripts/events/crownfall/artillery_graphics.vdata"
CUtlString m_szGraphicsDef; // 0x18
[[maybe_unused]] std::uint8_t pad_0x20[0x8]; // 0x20
CUtlString m_szDeathSound; // 0x28
client::EArtyHitboxType m_eHitboxType; // 0x30
[[maybe_unused]] std::uint8_t pad_0x31[0x3]; // 0x31
Vector2D m_vHitboxMin; // 0x34
Vector2D m_vHitboxMax; // 0x3c
float m_flHitboxRadius; // 0x44
float m_flHitboxExtents; // 0x48
bool m_bInheritTransform; // 0x4c
bool m_bInheritRotation; // 0x4d
bool m_bInheritVisibility; // 0x4e
bool m_bInheritState; // 0x4f
bool m_bDestroyOnFallThrough; // 0x50
[[maybe_unused]] std::uint8_t pad_0x51[0x3]; // 0x51
float m_flFallDamagePerVelocity; // 0x54
bool m_bDeathCausesExplosion; // 0x58
[[maybe_unused]] std::uint8_t pad_0x59[0x3]; // 0x59
float m_flExplosionDamage; // 0x5c
float m_flExplosionRadius; // 0x60
float m_flExplosionTerrainRadius; // 0x64
float m_flGravityMult; // 0x68
float m_flDragMult; // 0x6c
float m_flWindMult; // 0x70
float m_flDeathMaxScaleFactor; // 0x74
bool m_bAllowPhysicsInDying; // 0x78
client::EArtyGameObjectType m_eType; // 0x79
[[maybe_unused]] std::uint8_t pad_0x7a[0x2]; // 0x7a
client::EArtyLayer m_eLayer; // 0x7c
float m_flMaxHealth; // 0x80
float m_flHealth; // 0x84
bool m_bVisible; // 0x88
bool m_bCanCollide; // 0x89
bool m_bDoPhysics; // 0x8a
[[maybe_unused]] std::uint8_t pad_0x8b[0x1]; // 0x8b
float m_flLifetime; // 0x8c
float m_flDieTime; // 0x90
[[maybe_unused]] std::uint8_t pad_0x94[0x4]; // 0x94
// m_vecChildren has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::ArtyGameObjectInstance_t> m_vecChildren;
char m_vecChildren[0x18]; // 0x98
};
#pragma pack(pop)
static_assert(offsetof(ArtyGameObjectDef_t, m_unID) == 0x10);
static_assert(offsetof(ArtyGameObjectDef_t, m_szGraphicsDef) == 0x18);
static_assert(offsetof(ArtyGameObjectDef_t, m_szDeathSound) == 0x28);
static_assert(offsetof(ArtyGameObjectDef_t, m_eHitboxType) == 0x30);
static_assert(offsetof(ArtyGameObjectDef_t, m_vHitboxMin) == 0x34);
static_assert(offsetof(ArtyGameObjectDef_t, m_vHitboxMax) == 0x3c);
static_assert(offsetof(ArtyGameObjectDef_t, m_flHitboxRadius) == 0x44);
static_assert(offsetof(ArtyGameObjectDef_t, m_flHitboxExtents) == 0x48);
static_assert(offsetof(ArtyGameObjectDef_t, m_bInheritTransform) == 0x4c);
static_assert(offsetof(ArtyGameObjectDef_t, m_bInheritRotation) == 0x4d);
static_assert(offsetof(ArtyGameObjectDef_t, m_bInheritVisibility) == 0x4e);
static_assert(offsetof(ArtyGameObjectDef_t, m_bInheritState) == 0x4f);
static_assert(offsetof(ArtyGameObjectDef_t, m_bDestroyOnFallThrough) == 0x50);
static_assert(offsetof(ArtyGameObjectDef_t, m_flFallDamagePerVelocity) == 0x54);
static_assert(offsetof(ArtyGameObjectDef_t, m_bDeathCausesExplosion) == 0x58);
static_assert(offsetof(ArtyGameObjectDef_t, m_flExplosionDamage) == 0x5c);
static_assert(offsetof(ArtyGameObjectDef_t, m_flExplosionRadius) == 0x60);
static_assert(offsetof(ArtyGameObjectDef_t, m_flExplosionTerrainRadius) == 0x64);
static_assert(offsetof(ArtyGameObjectDef_t, m_flGravityMult) == 0x68);
static_assert(offsetof(ArtyGameObjectDef_t, m_flDragMult) == 0x6c);
static_assert(offsetof(ArtyGameObjectDef_t, m_flWindMult) == 0x70);
static_assert(offsetof(ArtyGameObjectDef_t, m_flDeathMaxScaleFactor) == 0x74);
static_assert(offsetof(ArtyGameObjectDef_t, m_bAllowPhysicsInDying) == 0x78);
static_assert(offsetof(ArtyGameObjectDef_t, m_eType) == 0x79);
static_assert(offsetof(ArtyGameObjectDef_t, m_eLayer) == 0x7c);
static_assert(offsetof(ArtyGameObjectDef_t, m_flMaxHealth) == 0x80);
static_assert(offsetof(ArtyGameObjectDef_t, m_flHealth) == 0x84);
static_assert(offsetof(ArtyGameObjectDef_t, m_bVisible) == 0x88);
static_assert(offsetof(ArtyGameObjectDef_t, m_bCanCollide) == 0x89);
static_assert(offsetof(ArtyGameObjectDef_t, m_bDoPhysics) == 0x8a);
static_assert(offsetof(ArtyGameObjectDef_t, m_flLifetime) == 0x8c);
static_assert(offsetof(ArtyGameObjectDef_t, m_flDieTime) == 0x90);
static_assert(offsetof(ArtyGameObjectDef_t, m_vecChildren) == 0x98);
static_assert(sizeof(ArtyGameObjectDef_t) == 0xb0);
};

View File

@ -0,0 +1,34 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: unknown
// Alignment: 0x4
// Standard-layout class: true
// Size: 0x4
// Has Trivial Destructor
//
// static metadata: MIsBoxedIntegerType
#pragma pack(push, 1)
struct ArtyGameObjectID_t
{
public:
uint32_t m_Value; // 0x0
// Static fields:
static bool &Get_IS_TYPESAFE_INTEGER() {return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("ArtyGameObjectID_t")->GetStaticFields()[0]->m_pInstance);};
};
#pragma pack(pop)
static_assert(offsetof(ArtyGameObjectID_t, m_Value) == 0x0);
static_assert(sizeof(ArtyGameObjectID_t) == 0x4);
};

View File

@ -0,0 +1,48 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0x38
// Has VTable
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
struct ArtyGameObjectInstance_t
{
public:
[[maybe_unused]] std::uint8_t pad_0x00[0x8]; // 0x0
CUtlString m_szName; // 0x8
CUtlString m_szGameObject; // 0x10
[[maybe_unused]] std::uint8_t pad_0x18[0x4]; // 0x18
Vector2D m_vPosition; // 0x1c
float m_flRotation; // 0x24
Vector2D m_vScale; // 0x28
bool m_bFacingLeft; // 0x30
[[maybe_unused]] std::uint8_t pad_0x31[0x3]; // 0x31
float m_flYawOffset; // 0x34
};
#pragma pack(pop)
static_assert(offsetof(ArtyGameObjectInstance_t, m_szName) == 0x8);
static_assert(offsetof(ArtyGameObjectInstance_t, m_szGameObject) == 0x10);
static_assert(offsetof(ArtyGameObjectInstance_t, m_vPosition) == 0x1c);
static_assert(offsetof(ArtyGameObjectInstance_t, m_flRotation) == 0x24);
static_assert(offsetof(ArtyGameObjectInstance_t, m_vScale) == 0x28);
static_assert(offsetof(ArtyGameObjectInstance_t, m_bFacingLeft) == 0x30);
static_assert(offsetof(ArtyGameObjectInstance_t, m_flYawOffset) == 0x34);
static_assert(sizeof(ArtyGameObjectInstance_t) == 0x38);
};

View File

@ -0,0 +1,34 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: unknown
// Alignment: 0x4
// Standard-layout class: true
// Size: 0x4
// Has Trivial Destructor
//
// static metadata: MIsBoxedIntegerType
#pragma pack(push, 1)
struct ArtyGraphicID_t
{
public:
uint32_t m_Value; // 0x0
// Static fields:
static bool &Get_IS_TYPESAFE_INTEGER() {return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("ArtyGraphicID_t")->GetStaticFields()[0]->m_pInstance);};
};
#pragma pack(pop)
static_assert(offsetof(ArtyGraphicID_t, m_Value) == 0x0);
static_assert(sizeof(ArtyGraphicID_t) == 0x4);
};

View File

@ -0,0 +1,68 @@
#pragma once
#include "source2sdk/client/ArtyGraphicID_t.hpp"
#include "source2sdk/client/EArtyGraphicsType.hpp"
#include "source2sdk/resourcesystem/InfoForResourceTypeCModel.hpp"
#include "source2sdk/resourcesystem/InfoForResourceTypeIParticleSystemDefinition.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0x218
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
struct ArtyGraphicInfo_t
{
public:
[[maybe_unused]] std::uint8_t pad_0x00[0x8]; // 0x0
client::ArtyGraphicID_t m_unID; // 0x8
[[maybe_unused]] std::uint8_t pad_0x0c[0x4]; // 0xc
CUtlString m_szSnippet; // 0x10
CUtlString m_szUnit; // 0x18
// m_szModel has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeCModel>> m_szModel;
char m_szModel[0xe0]; // 0x20
// m_szParticle has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_szParticle;
char m_szParticle[0xe0]; // 0x100
client::EArtyGraphicsType m_eType; // 0x1e0
[[maybe_unused]] std::uint8_t pad_0x1e1[0x3]; // 0x1e1
QAngle m_vAngles; // 0x1e4
Vector m_vPosition; // 0x1f0
Vector m_vCameraOffset; // 0x1fc
int32_t m_nWidth; // 0x208
int32_t m_nHeight; // 0x20c
bool m_bPlayEndcap; // 0x210
[[maybe_unused]] std::uint8_t pad_0x211[0x3]; // 0x211
float m_flDefaultScale; // 0x214
};
#pragma pack(pop)
static_assert(offsetof(ArtyGraphicInfo_t, m_unID) == 0x8);
static_assert(offsetof(ArtyGraphicInfo_t, m_szSnippet) == 0x10);
static_assert(offsetof(ArtyGraphicInfo_t, m_szUnit) == 0x18);
static_assert(offsetof(ArtyGraphicInfo_t, m_szModel) == 0x20);
static_assert(offsetof(ArtyGraphicInfo_t, m_szParticle) == 0x100);
static_assert(offsetof(ArtyGraphicInfo_t, m_eType) == 0x1e0);
static_assert(offsetof(ArtyGraphicInfo_t, m_vAngles) == 0x1e4);
static_assert(offsetof(ArtyGraphicInfo_t, m_vPosition) == 0x1f0);
static_assert(offsetof(ArtyGraphicInfo_t, m_vCameraOffset) == 0x1fc);
static_assert(offsetof(ArtyGraphicInfo_t, m_nWidth) == 0x208);
static_assert(offsetof(ArtyGraphicInfo_t, m_nHeight) == 0x20c);
static_assert(offsetof(ArtyGraphicInfo_t, m_bPlayEndcap) == 0x210);
static_assert(offsetof(ArtyGraphicInfo_t, m_flDefaultScale) == 0x214);
static_assert(sizeof(ArtyGraphicInfo_t) == 0x218);
};

View File

@ -0,0 +1,34 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: unknown
// Alignment: 0x4
// Standard-layout class: true
// Size: 0x4
// Has Trivial Destructor
//
// static metadata: MIsBoxedIntegerType
#pragma pack(push, 1)
struct ArtyLevelID_t
{
public:
uint32_t m_Value; // 0x0
// Static fields:
static bool &Get_IS_TYPESAFE_INTEGER() {return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("ArtyLevelID_t")->GetStaticFields()[0]->m_pInstance);};
};
#pragma pack(pop)
static_assert(offsetof(ArtyLevelID_t, m_Value) == 0x0);
static_assert(sizeof(ArtyLevelID_t) == 0x4);
};

View File

@ -0,0 +1,56 @@
#pragma once
#include "source2sdk/client/ArtyLevelID_t.hpp"
#include "source2sdk/client/ArtyLevelObjectInstance_t.hpp"
#include "source2sdk/client/ArtyLevelWeaponInstance_t.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0x138
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
struct ArtyLevelInfo_t
{
public:
[[maybe_unused]] std::uint8_t pad_0x00[0x8]; // 0x0
client::ArtyLevelID_t m_unID; // 0x8
[[maybe_unused]] std::uint8_t pad_0x0c[0x4]; // 0xc
CUtlString m_sLocLevelName; // 0x10
client::ArtyLevelObjectInstance_t m_playerInfo; // 0x18
// m_vecGameObjects has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::ArtyLevelObjectInstance_t> m_vecGameObjects;
char m_vecGameObjects[0x18]; // 0xa0
// m_vecWeapons has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::ArtyLevelWeaponInstance_t> m_vecWeapons;
char m_vecWeapons[0x18]; // 0xb8
int32_t m_nLevelCompletePoints; // 0xd0
int32_t m_nTimeBonusBasePoints; // 0xd4
int32_t m_nTimeBonusMaxPoints; // 0xd8
int32_t m_nTimeBonusFastTime; // 0xdc
int32_t m_nTimeBonusMaxTime; // 0xe0
float m_flBackgroundOffsetX; // 0xe4
int32_t m_aryStarPointThresholds[3]; // 0xe8
[[maybe_unused]] std::uint8_t pad_0xf4[0x4]; // 0xf4
CPanoramaImageName m_sBackgroundImage; // 0xf8
CPanoramaImageName m_sTerrainBackgroundImage; // 0x108
CPanoramaImageName m_sTerrainImage; // 0x118
CPanoramaImageName m_sTerrainForegroundImage; // 0x128
};
#pragma pack(pop)
// Cannot assert offsets of fields in ArtyLevelInfo_t because it is not a standard-layout class
static_assert(sizeof(ArtyLevelInfo_t) == 0x138);
};

View File

@ -0,0 +1,51 @@
#pragma once
#include "source2sdk/client/ArtyEnemyOrder_t.hpp"
#include "source2sdk/client/ArtyGameObjectInstance_t.hpp"
#include "source2sdk/client/EArtyTeam.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0x88
// Has VTable
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
struct ArtyLevelObjectInstance_t : public client::ArtyGameObjectInstance_t
{
public:
CUtlString m_szLeftBorderObject; // 0x38
float m_flLeftObjectOffset; // 0x40
[[maybe_unused]] std::uint8_t pad_0x44[0x4]; // 0x44
CUtlString m_szRightBorderObject; // 0x48
float m_flRightObjectOffset; // 0x50
bool m_bRandomPosition; // 0x54
bool m_bRepositionToTerrain; // 0x55
[[maybe_unused]] std::uint8_t pad_0x56[0x2]; // 0x56
float m_flLeftBorderWidthMult; // 0x58
float m_flRightBorderWidthMult; // 0x5c
float m_flAppearanceChance; // 0x60
client::EArtyTeam m_eTeam; // 0x64
[[maybe_unused]] std::uint8_t pad_0x65[0x3]; // 0x65
float m_flTimeOffset; // 0x68
[[maybe_unused]] std::uint8_t pad_0x6c[0x4]; // 0x6c
// m_vecCustomOrders has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::ArtyEnemyOrder_t> m_vecCustomOrders;
char m_vecCustomOrders[0x18]; // 0x70
};
#pragma pack(pop)
// Cannot assert offsets of fields in ArtyLevelObjectInstance_t because it is not a standard-layout class
static_assert(sizeof(ArtyLevelObjectInstance_t) == 0x88);
};

View File

@ -0,0 +1,39 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0x18
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
struct ArtyLevelWeaponInstance_t
{
public:
// metadata: MPropertyCustomFGDType "vdata_choice:scripts/events/crownfall/artillery_weapons.vdata"
CUtlString m_szName; // 0x0
[[maybe_unused]] std::uint8_t pad_0x08[0x4]; // 0x8
int32_t m_nReloads; // 0xc
int32_t m_nPointsPerShot; // 0x10
[[maybe_unused]] std::uint8_t pad_0x14[0x4];
};
#pragma pack(pop)
static_assert(offsetof(ArtyLevelWeaponInstance_t, m_szName) == 0x0);
static_assert(offsetof(ArtyLevelWeaponInstance_t, m_nReloads) == 0xc);
static_assert(offsetof(ArtyLevelWeaponInstance_t, m_nPointsPerShot) == 0x10);
static_assert(sizeof(ArtyLevelWeaponInstance_t) == 0x18);
};

View File

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

View File

@ -0,0 +1,33 @@
#pragma once
#include "source2sdk/client/ArtyGameObjectDef_t.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0xb8
// Has VTable
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
struct ArtyProgressBarDef_t : public client::ArtyGameObjectDef_t
{
public:
float m_flNotchSize; // 0xb0
[[maybe_unused]] std::uint8_t pad_0xb4[0x4];
};
#pragma pack(pop)
// Cannot assert offsets of fields in ArtyProgressBarDef_t because it is not a standard-layout class
static_assert(sizeof(ArtyProgressBarDef_t) == 0xb8);
};

View File

@ -0,0 +1,39 @@
#pragma once
#include "source2sdk/client/ArtyGameObjectDef_t.hpp"
#include "source2sdk/client/EArtyTeam.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0xd0
// Has VTable
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
struct ArtySpawnerDef_t : public client::ArtyGameObjectDef_t
{
public:
float m_flInitialDelay; // 0xb0
float m_flDelayBetween; // 0xb4
int32_t m_nNumToSpawn; // 0xb8
client::EArtyTeam m_eSpawnedUnitTeam; // 0xbc
[[maybe_unused]] std::uint8_t pad_0xbd[0x3]; // 0xbd
CUtlString m_szGameObject; // 0xc0
[[maybe_unused]] std::uint8_t pad_0xc8[0x8];
};
#pragma pack(pop)
// Cannot assert offsets of fields in ArtySpawnerDef_t because it is not a standard-layout class
static_assert(sizeof(ArtySpawnerDef_t) == 0xd0);
};

View File

@ -0,0 +1,36 @@
#pragma once
#include "source2sdk/client/ArtyGameObjectDef_t.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: false
// Size: 0xc0
// Has VTable
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
#pragma pack(push, 1)
struct ArtyUnitDef_t : public client::ArtyGameObjectDef_t
{
public:
bool m_bRotateReloadBar; // 0xb0
[[maybe_unused]] std::uint8_t pad_0xb1[0x3]; // 0xb1
float m_flMaxMana; // 0xb4
float m_flMovementSpeed; // 0xb8
[[maybe_unused]] std::uint8_t pad_0xbc[0x4];
};
#pragma pack(pop)
// Cannot assert offsets of fields in ArtyUnitDef_t because it is not a standard-layout class
static_assert(sizeof(ArtyUnitDef_t) == 0xc0);
};

View File

@ -0,0 +1,34 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: unknown
// Alignment: 0x4
// Standard-layout class: true
// Size: 0x4
// Has Trivial Destructor
//
// static metadata: MIsBoxedIntegerType
#pragma pack(push, 1)
struct ArtyWeaponID_t
{
public:
uint32_t m_Value; // 0x0
// Static fields:
static bool &Get_IS_TYPESAFE_INTEGER() {return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("ArtyWeaponID_t")->GetStaticFields()[0]->m_pInstance);};
};
#pragma pack(pop)
static_assert(offsetof(ArtyWeaponID_t, m_Value) == 0x0);
static_assert(sizeof(ArtyWeaponID_t) == 0x4);
};

View File

@ -0,0 +1,154 @@
#pragma once
#include "source2sdk/client/ArtyWeaponID_t.hpp"
#include "source2sdk/client/GameActivity_t.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0x110
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
struct ArtyWeaponInfo_t
{
public:
[[maybe_unused]] std::uint8_t pad_0x00[0x8]; // 0x0
client::ArtyWeaponID_t m_unID; // 0x8
[[maybe_unused]] std::uint8_t pad_0x0c[0x4]; // 0xc
CUtlString m_sWeaponLocName; // 0x10
CUtlString m_sWeaponLocDesc; // 0x18
CUtlString m_sWeaponSwapSound; // 0x20
CUtlString m_sWeaponFireSound; // 0x28
CPanoramaImageName m_sWeaponImage; // 0x30
bool m_bIsPlayerWeapon; // 0x40
[[maybe_unused]] std::uint8_t pad_0x41[0x7]; // 0x41
// metadata: MPropertyCustomFGDType "vdata_choice:scripts/events/crownfall/artillery_graphics.vdata"
CUtlString m_strGraphicInfoName; // 0x48
[[maybe_unused]] std::uint8_t pad_0x50[0x4]; // 0x50
client::GameActivity_t m_weaponAttackActivity; // 0x54
float m_flShotCreationTime; // 0x58
float m_flDamage; // 0x5c
float m_flHitRadius; // 0x60
float m_flTerrainCarveRadius; // 0x64
float m_flDamageRadius; // 0x68
float m_flLockedAngle; // 0x6c
float m_flLockedPower; // 0x70
float m_flReloadTime; // 0x74
int32_t m_nSplitCount; // 0x78
float m_flSplitTime; // 0x7c
float m_flSplitRepeatTime; // 0x80
float m_flSplitDispersion; // 0x84
bool m_bSplitAtTop; // 0x88
bool m_bZeroXOnSplit; // 0x89
bool m_bSplitRepeats; // 0x8a
[[maybe_unused]] std::uint8_t pad_0x8b[0x5]; // 0x8b
CUtlString m_szSplitWeapon; // 0x90
[[maybe_unused]] std::uint8_t pad_0x98[0x4]; // 0x98
float m_flMaxSpeed; // 0x9c
float m_flDragMult; // 0xa0
float m_flWindMult; // 0xa4
bool m_bIsRay; // 0xa8
[[maybe_unused]] std::uint8_t pad_0xa9[0x3]; // 0xa9
float m_flRangeMult; // 0xac
int32_t m_nInitialShotCount; // 0xb0
float m_nInitialShotAngleDispersionPer; // 0xb4
float m_flManaCost; // 0xb8
bool m_bDisabled; // 0xbc
bool m_bBounces; // 0xbd
bool m_bBounceOffTarget; // 0xbe
[[maybe_unused]] std::uint8_t pad_0xbf[0x1]; // 0xbf
float m_flFuseTime; // 0xc0
float m_flBounceDrag; // 0xc4
int32_t m_nMaxReloads; // 0xc8
float m_flGravityMult; // 0xcc
bool m_bProximityFuse; // 0xd0
bool m_bUseHighArc; // 0xd1
bool m_bCollides; // 0xd2
bool m_bDirectAimAtTarget; // 0xd3
int32_t m_nWeaponPoints; // 0xd4
int32_t m_nRayDigTimes; // 0xd8
bool m_bNoShootingWhileInAir; // 0xdc
bool m_bListenForKeypress; // 0xdd
[[maybe_unused]] std::uint8_t pad_0xde[0x2]; // 0xde
Vector2D m_vVelocityMultOnKeypress; // 0xe0
Vector2D m_vVelocityOffsetOnKeypress; // 0xe8
bool m_bShowTrajectory; // 0xf0
[[maybe_unused]] std::uint8_t pad_0xf1[0x3]; // 0xf1
Vector2D m_vVelocityMultOnExplode; // 0xf4
Vector2D m_vVelocityOffsetOnExplode; // 0xfc
int32_t m_nExplodeTimes; // 0x104
float m_flRadiusChangePerExplode; // 0x108
[[maybe_unused]] std::uint8_t pad_0x10c[0x4];
};
#pragma pack(pop)
static_assert(offsetof(ArtyWeaponInfo_t, m_unID) == 0x8);
static_assert(offsetof(ArtyWeaponInfo_t, m_sWeaponLocName) == 0x10);
static_assert(offsetof(ArtyWeaponInfo_t, m_sWeaponLocDesc) == 0x18);
static_assert(offsetof(ArtyWeaponInfo_t, m_sWeaponSwapSound) == 0x20);
static_assert(offsetof(ArtyWeaponInfo_t, m_sWeaponFireSound) == 0x28);
static_assert(offsetof(ArtyWeaponInfo_t, m_sWeaponImage) == 0x30);
static_assert(offsetof(ArtyWeaponInfo_t, m_bIsPlayerWeapon) == 0x40);
static_assert(offsetof(ArtyWeaponInfo_t, m_strGraphicInfoName) == 0x48);
static_assert(offsetof(ArtyWeaponInfo_t, m_weaponAttackActivity) == 0x54);
static_assert(offsetof(ArtyWeaponInfo_t, m_flShotCreationTime) == 0x58);
static_assert(offsetof(ArtyWeaponInfo_t, m_flDamage) == 0x5c);
static_assert(offsetof(ArtyWeaponInfo_t, m_flHitRadius) == 0x60);
static_assert(offsetof(ArtyWeaponInfo_t, m_flTerrainCarveRadius) == 0x64);
static_assert(offsetof(ArtyWeaponInfo_t, m_flDamageRadius) == 0x68);
static_assert(offsetof(ArtyWeaponInfo_t, m_flLockedAngle) == 0x6c);
static_assert(offsetof(ArtyWeaponInfo_t, m_flLockedPower) == 0x70);
static_assert(offsetof(ArtyWeaponInfo_t, m_flReloadTime) == 0x74);
static_assert(offsetof(ArtyWeaponInfo_t, m_nSplitCount) == 0x78);
static_assert(offsetof(ArtyWeaponInfo_t, m_flSplitTime) == 0x7c);
static_assert(offsetof(ArtyWeaponInfo_t, m_flSplitRepeatTime) == 0x80);
static_assert(offsetof(ArtyWeaponInfo_t, m_flSplitDispersion) == 0x84);
static_assert(offsetof(ArtyWeaponInfo_t, m_bSplitAtTop) == 0x88);
static_assert(offsetof(ArtyWeaponInfo_t, m_bZeroXOnSplit) == 0x89);
static_assert(offsetof(ArtyWeaponInfo_t, m_bSplitRepeats) == 0x8a);
static_assert(offsetof(ArtyWeaponInfo_t, m_szSplitWeapon) == 0x90);
static_assert(offsetof(ArtyWeaponInfo_t, m_flMaxSpeed) == 0x9c);
static_assert(offsetof(ArtyWeaponInfo_t, m_flDragMult) == 0xa0);
static_assert(offsetof(ArtyWeaponInfo_t, m_flWindMult) == 0xa4);
static_assert(offsetof(ArtyWeaponInfo_t, m_bIsRay) == 0xa8);
static_assert(offsetof(ArtyWeaponInfo_t, m_flRangeMult) == 0xac);
static_assert(offsetof(ArtyWeaponInfo_t, m_nInitialShotCount) == 0xb0);
static_assert(offsetof(ArtyWeaponInfo_t, m_nInitialShotAngleDispersionPer) == 0xb4);
static_assert(offsetof(ArtyWeaponInfo_t, m_flManaCost) == 0xb8);
static_assert(offsetof(ArtyWeaponInfo_t, m_bDisabled) == 0xbc);
static_assert(offsetof(ArtyWeaponInfo_t, m_bBounces) == 0xbd);
static_assert(offsetof(ArtyWeaponInfo_t, m_bBounceOffTarget) == 0xbe);
static_assert(offsetof(ArtyWeaponInfo_t, m_flFuseTime) == 0xc0);
static_assert(offsetof(ArtyWeaponInfo_t, m_flBounceDrag) == 0xc4);
static_assert(offsetof(ArtyWeaponInfo_t, m_nMaxReloads) == 0xc8);
static_assert(offsetof(ArtyWeaponInfo_t, m_flGravityMult) == 0xcc);
static_assert(offsetof(ArtyWeaponInfo_t, m_bProximityFuse) == 0xd0);
static_assert(offsetof(ArtyWeaponInfo_t, m_bUseHighArc) == 0xd1);
static_assert(offsetof(ArtyWeaponInfo_t, m_bCollides) == 0xd2);
static_assert(offsetof(ArtyWeaponInfo_t, m_bDirectAimAtTarget) == 0xd3);
static_assert(offsetof(ArtyWeaponInfo_t, m_nWeaponPoints) == 0xd4);
static_assert(offsetof(ArtyWeaponInfo_t, m_nRayDigTimes) == 0xd8);
static_assert(offsetof(ArtyWeaponInfo_t, m_bNoShootingWhileInAir) == 0xdc);
static_assert(offsetof(ArtyWeaponInfo_t, m_bListenForKeypress) == 0xdd);
static_assert(offsetof(ArtyWeaponInfo_t, m_vVelocityMultOnKeypress) == 0xe0);
static_assert(offsetof(ArtyWeaponInfo_t, m_vVelocityOffsetOnKeypress) == 0xe8);
static_assert(offsetof(ArtyWeaponInfo_t, m_bShowTrajectory) == 0xf0);
static_assert(offsetof(ArtyWeaponInfo_t, m_vVelocityMultOnExplode) == 0xf4);
static_assert(offsetof(ArtyWeaponInfo_t, m_vVelocityOffsetOnExplode) == 0xfc);
static_assert(offsetof(ArtyWeaponInfo_t, m_nExplodeTimes) == 0x104);
static_assert(offsetof(ArtyWeaponInfo_t, m_flRadiusChangePerExplode) == 0x108);
static_assert(sizeof(ArtyWeaponInfo_t) == 0x110);
};

View File

@ -14,10 +14,9 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xab0 // Size: 0xaf8
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CAdditionalWearable : public client::C_DynamicProp class CAdditionalWearable : public client::C_DynamicProp
{ {
@ -26,5 +25,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CAdditionalWearable) == 0xab0); static_assert(sizeof(CAdditionalWearable) == 0xaf8);
}; };

View File

@ -14,18 +14,17 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x828 // Size: 0x870
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CAmbientCreatures : public client::C_DOTAWorldParticleSystem class CAmbientCreatures : public client::C_DOTAWorldParticleSystem
{ {
public: public:
CUtlString m_szAnimationName; // 0x820 CUtlString m_szAnimationName; // 0x868
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CAmbientCreatures because it is not a standard-layout class // Cannot assert offsets of fields in CAmbientCreatures because it is not a standard-layout class
static_assert(sizeof(CAmbientCreatures) == 0x828); static_assert(sizeof(CAmbientCreatures) == 0x870);
}; };

View File

@ -11,19 +11,23 @@
namespace source2sdk::client namespace source2sdk::client
{ {
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: 0x1 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x18 // Size: 0x78
// Has VTable // Has VTable
// Is Abstract // Is Abstract
#pragma pack(push, 1) #pragma pack(push, 1)
class CAnimGraphControllerBase class CAnimGraphControllerBase
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x00[0x18]; [[maybe_unused]] std::uint8_t pad_0x00[0x20]; // 0x0
// No schema binary for binding // m_vecParamsToResetInPostGraphUpdate has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVectorFixedGrowable<CGlobalSymbol,8> m_vecParamsToResetInPostGraphUpdate;
char m_vecParamsToResetInPostGraphUpdate[0x58]; // 0x20
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CAnimGraphControllerBase) == 0x18); static_assert(offsetof(CAnimGraphControllerBase, m_vecParamsToResetInPostGraphUpdate) == 0x20);
static_assert(sizeof(CAnimGraphControllerBase) == 0x78);
}; };

View File

@ -47,32 +47,19 @@ namespace source2sdk::client
// metadata: MNetworkPriority "32" // metadata: MNetworkPriority "32"
// metadata: MNetworkChangeCallback "animationLayerCycleReset" // metadata: MNetworkChangeCallback "animationLayerCycleReset"
int32_t m_nNewSequenceParity; // 0x68 int32_t m_nNewSequenceParity; // 0x68
// metadata: MNetworkDisable
entity2::GameTime_t m_flSeqStartTime; // 0x6c entity2::GameTime_t m_flSeqStartTime; // 0x6c
// metadata: MNetworkDisable
float m_flCachedSequenceCycleRate; // 0x70 float m_flCachedSequenceCycleRate; // 0x70
// metadata: MNetworkDisable
int32_t m_nFlags; // 0x74 int32_t m_nFlags; // 0x74
// metadata: MNetworkDisable
bool m_bSequenceFinished; // 0x78 bool m_bSequenceFinished; // 0x78
[[maybe_unused]] std::uint8_t pad_0x79[0x3]; // 0x79 [[maybe_unused]] std::uint8_t pad_0x79[0x3]; // 0x79
// metadata: MNetworkDisable
entity2::GameTime_t m_flKillStartTime; // 0x7c entity2::GameTime_t m_flKillStartTime; // 0x7c
// metadata: MNetworkDisable
float m_flKillRate; // 0x80 float m_flKillRate; // 0x80
// metadata: MNetworkDisable
entity2::GameTime_t m_flLayerSuppressChangeTime; // 0x84 entity2::GameTime_t m_flLayerSuppressChangeTime; // 0x84
// metadata: MNetworkDisable
int32_t m_nActivity; // 0x88 int32_t m_nActivity; // 0x88
// metadata: MNetworkDisable
int32_t m_nPriority; // 0x8c int32_t m_nPriority; // 0x8c
// metadata: MNetworkDisable
float m_flLastEventCycle; // 0x90 float m_flLastEventCycle; // 0x90
// metadata: MNetworkDisable
float m_flFadeInFraction; // 0x94 float m_flFadeInFraction; // 0x94
// metadata: MNetworkDisable
float m_flFadeOutFraction; // 0x98 float m_flFadeOutFraction; // 0x98
// metadata: MNetworkDisable
bool m_bHasFadedIn; // 0x9c bool m_bHasFadedIn; // 0x9c
[[maybe_unused]] std::uint8_t pad_0x9d[0xb]; [[maybe_unused]] std::uint8_t pad_0x9d[0xb];
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x128 // Size: 0x140
// Has VTable // Has VTable
// MNetworkNoBase // MNetworkNoBase
// //
@ -34,5 +34,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CAttributeContainer because it is not a standard-layout class // Cannot assert offsets of fields in CAttributeContainer because it is not a standard-layout class
static_assert(sizeof(CAttributeContainer) == 0x128); static_assert(sizeof(CAttributeContainer) == 0x140);
}; };

View File

@ -19,9 +19,8 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x60 // Size: 0x78
// Has VTable // Has VTable
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "C_EconItemAttribute m_Attributes" // static metadata: MNetworkVarNames "C_EconItemAttribute m_Attributes"
#pragma pack(push, 1) #pragma pack(push, 1)
@ -33,13 +32,13 @@ namespace source2sdk::client
// metadata: MNetworkTypeAlias "CUtlVector< CEconItemAttribute >" // metadata: MNetworkTypeAlias "CUtlVector< CEconItemAttribute >"
// m_Attributes has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_Attributes has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// C_UtlVectorEmbeddedNetworkVar<client::C_EconItemAttribute> m_Attributes; // C_UtlVectorEmbeddedNetworkVar<client::C_EconItemAttribute> m_Attributes;
char m_Attributes[0x50]; // 0x8 char m_Attributes[0x68]; // 0x8
client::CAttributeManager* m_pManager; // 0x58 client::CAttributeManager* m_pManager; // 0x70
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CAttributeList, m_Attributes) == 0x8); static_assert(offsetof(CAttributeList, m_Attributes) == 0x8);
static_assert(offsetof(CAttributeList, m_pManager) == 0x58); static_assert(offsetof(CAttributeList, m_pManager) == 0x70);
static_assert(sizeof(CAttributeList) == 0x60); static_assert(sizeof(CAttributeList) == 0x78);
}; };

View File

@ -22,7 +22,6 @@ namespace source2sdk::client
// Standard-layout class: true // Standard-layout class: true
// Size: 0x68 // Size: 0x68
// Has VTable // Has VTable
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "int m_iReapplyProvisionParity" // static metadata: MNetworkVarNames "int m_iReapplyProvisionParity"
// static metadata: MNetworkVarNames "EHANDLE m_hOuter" // static metadata: MNetworkVarNames "EHANDLE m_hOuter"

View File

@ -15,10 +15,9 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xa38 // Size: 0xa80
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkIncludeByName "m_bClientSideRagdoll" // static metadata: MNetworkIncludeByName "m_bClientSideRagdoll"
// static metadata: MNetworkVarNames "bool m_bInitiallyPopulateInterpHistory" // static metadata: MNetworkVarNames "bool m_bInitiallyPopulateInterpHistory"
@ -31,37 +30,37 @@ namespace source2sdk::client
class CBaseAnimGraph : public client::C_BaseModelEntity class CBaseAnimGraph : public client::C_BaseModelEntity
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x7d8[0x78]; // 0x7d8 [[maybe_unused]] std::uint8_t pad_0x820[0x78]; // 0x820
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bInitiallyPopulateInterpHistory; // 0x850 bool m_bInitiallyPopulateInterpHistory; // 0x898
[[maybe_unused]] std::uint8_t pad_0x851[0x1]; // 0x851 [[maybe_unused]] std::uint8_t pad_0x899[0x1]; // 0x899
bool m_bSuppressAnimEventSounds; // 0x852 bool m_bSuppressAnimEventSounds; // 0x89a
[[maybe_unused]] std::uint8_t pad_0x853[0xd]; // 0x853 [[maybe_unused]] std::uint8_t pad_0x89b[0xd]; // 0x89b
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bAnimGraphUpdateEnabled; // 0x860 bool m_bAnimGraphUpdateEnabled; // 0x8a8
[[maybe_unused]] std::uint8_t pad_0x861[0x3]; // 0x861 [[maybe_unused]] std::uint8_t pad_0x8a9[0x3]; // 0x8a9
float m_flMaxSlopeDistance; // 0x864 float m_flMaxSlopeDistance; // 0x8ac
Vector m_vLastSlopeCheckPos; // 0x868 Vector m_vLastSlopeCheckPos; // 0x8b0
bool m_bAnimationUpdateScheduled; // 0x874 bool m_bAnimationUpdateScheduled; // 0x8bc
[[maybe_unused]] std::uint8_t pad_0x875[0x3]; // 0x875 [[maybe_unused]] std::uint8_t pad_0x8bd[0x3]; // 0x8bd
// metadata: MNetworkEnable // metadata: MNetworkEnable
Vector m_vecForce; // 0x878 Vector m_vecForce; // 0x8c0
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_nForceBone; // 0x884 int32_t m_nForceBone; // 0x8cc
client::CBaseAnimGraph* m_pClientsideRagdoll; // 0x888 client::CBaseAnimGraph* m_pClientsideRagdoll; // 0x8d0
bool m_bBuiltRagdoll; // 0x890 bool m_bBuiltRagdoll; // 0x8d8
[[maybe_unused]] std::uint8_t pad_0x891[0x17]; // 0x891 [[maybe_unused]] std::uint8_t pad_0x8d9[0x17]; // 0x8d9
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::PhysicsRagdollPose_t m_RagdollPose; // 0x8a8 client::PhysicsRagdollPose_t m_RagdollPose; // 0x8f0
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnClientRagdollChanged" // metadata: MNetworkChangeCallback "OnClientRagdollChanged"
bool m_bRagdollClientSide; // 0x8f0 bool m_bRagdollClientSide; // 0x938
[[maybe_unused]] std::uint8_t pad_0x8f1[0xf]; // 0x8f1 [[maybe_unused]] std::uint8_t pad_0x939[0xf]; // 0x939
bool m_bHasAnimatedMaterialAttributes; // 0x900 bool m_bHasAnimatedMaterialAttributes; // 0x948
[[maybe_unused]] std::uint8_t pad_0x901[0x137]; [[maybe_unused]] std::uint8_t pad_0x949[0x137];
// Datamap fields: // Datamap fields:
// void m_pMainGraphController; // 0x848 // void m_pMainGraphController; // 0x890
// float InputSetPlaybackRate; // 0x0 // float InputSetPlaybackRate; // 0x0
// CUtlSymbolLarge InputSetBodyGroup; // 0x0 // CUtlSymbolLarge InputSetBodyGroup; // 0x0
// bool InputDisableAnimEventSounds; // 0x0 // bool InputDisableAnimEventSounds; // 0x0
@ -69,5 +68,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBaseAnimGraph because it is not a standard-layout class // Cannot assert offsets of fields in CBaseAnimGraph because it is not a standard-layout class
static_assert(sizeof(CBaseAnimGraph) == 0xa38); static_assert(sizeof(CBaseAnimGraph) == 0xa80);
}; };

View File

@ -0,0 +1,38 @@
#pragma once
#include "source2sdk/client/CAnimGraphControllerBase.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: unknown
// Alignment: 0x8
// Standard-layout class: false
// Size: 0xb0
// Has VTable
#pragma pack(push, 1)
class CBaseAnimGraphAnimGraphController : public client::CAnimGraphControllerBase
{
public:
// m_sDestructiblePartDestroyedHitGroup has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CAnimGraph1ParamOptionalRef<char*> m_sDestructiblePartDestroyedHitGroup;
char m_sDestructiblePartDestroyedHitGroup[0x20]; // 0x78
// m_nDestructiblePartDestroyedPartIndex has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CAnimGraph1ParamOptionalRef<int32_t> m_nDestructiblePartDestroyedPartIndex;
char m_nDestructiblePartDestroyedPartIndex[0x18]; // 0x98
// Static fields:
static uint32_t &Get_s_nControllerTypeID() {return *reinterpret_cast<uint32_t*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CBaseAnimGraphAnimGraphController")->GetStaticFields()[0]->m_pInstance);};
static bool &Get_s_bSchemaTest() {return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CBaseAnimGraphAnimGraphController")->GetStaticFields()[1]->m_pInstance);};
};
#pragma pack(pop)
// Cannot assert offsets of fields in CBaseAnimGraphAnimGraphController because it is not a standard-layout class
static_assert(sizeof(CBaseAnimGraphAnimGraphController) == 0xb0);
};

View File

@ -18,7 +18,7 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x3c8 // Size: 0x3d0
// Has VTable // Has VTable
// //
// static metadata: MNetworkVarNames "HSequence m_hSequence" // static metadata: MNetworkVarNames "HSequence m_hSequence"
@ -30,12 +30,9 @@ namespace source2sdk::client
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x10[0x8]; // 0x10 [[maybe_unused]] std::uint8_t pad_0x10[0x8]; // 0x10
// metadata: MNetworkDisable
bool m_bSequenceFinished; // 0x18 bool m_bSequenceFinished; // 0x18
[[maybe_unused]] std::uint8_t pad_0x19[0x3]; // 0x19 [[maybe_unused]] std::uint8_t pad_0x19[0x3]; // 0x19
// metadata: MNetworkDisable
float m_flSoundSyncTime; // 0x1c float m_flSoundSyncTime; // 0x1c
// metadata: MNetworkDisable
uint32_t m_nActiveIKChainMask; // 0x20 uint32_t m_nActiveIKChainMask; // 0x20
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkSerializer "minusone" // metadata: MNetworkSerializer "minusone"
@ -63,27 +60,22 @@ namespace source2sdk::client
// metadata: MNetworkChangeCallback "OnNetworkedAnimationChanged" // metadata: MNetworkChangeCallback "OnNetworkedAnimationChanged"
CNetworkedQuantizedFloat m_flPlaybackRate; // 0x34 CNetworkedQuantizedFloat m_flPlaybackRate; // 0x34
[[maybe_unused]] std::uint8_t pad_0x3c[0x4]; // 0x3c [[maybe_unused]] std::uint8_t pad_0x3c[0x4]; // 0x3c
// metadata: MNetworkDisable
client::SequenceFinishNotifyState_t m_nNotifyState; // 0x40 client::SequenceFinishNotifyState_t m_nNotifyState; // 0x40
[[maybe_unused]] std::uint8_t pad_0x41[0x1]; // 0x41 [[maybe_unused]] std::uint8_t pad_0x41[0x1]; // 0x41
// metadata: MNetworkDisable
bool m_bNetworkedAnimationInputsChanged; // 0x42 bool m_bNetworkedAnimationInputsChanged; // 0x42
// metadata: MNetworkDisable
bool m_bNetworkedSequenceChanged; // 0x43 bool m_bNetworkedSequenceChanged; // 0x43
// metadata: MNetworkDisable
bool m_bLastUpdateSkipped; // 0x44 bool m_bLastUpdateSkipped; // 0x44
[[maybe_unused]] std::uint8_t pad_0x45[0x3]; // 0x45 [[maybe_unused]] std::uint8_t pad_0x45[0x3]; // 0x45
// metadata: MNetworkDisable
entity2::GameTime_t m_flPrevAnimUpdateTime; // 0x48 entity2::GameTime_t m_flPrevAnimUpdateTime; // 0x48
[[maybe_unused]] std::uint8_t pad_0x4c[0x37c]; [[maybe_unused]] std::uint8_t pad_0x4c[0x384];
// Datamap fields: // Datamap fields:
// void m_pAnimGraphInstance; // 0x2e8 // void m_pAnimGraphInstance; // 0x2e8
// float m_flCachedSequenceCycleRate; // 0x3c // float m_flCachedSequenceCycleRate; // 0x3c
// void m_iv_AnimOpHistory; // 0x378 // void m_iv_AnimOpHistory; // 0x380
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBaseAnimGraphController because it is not a standard-layout class // Cannot assert offsets of fields in CBaseAnimGraphController because it is not a standard-layout class
static_assert(sizeof(CBaseAnimGraphController) == 0x3c8); static_assert(sizeof(CBaseAnimGraphController) == 0x3d0);
}; };

View File

@ -14,10 +14,9 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x800 // Size: 0x848
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "bool m_bShouldAnimateDuringGameplayPause" // static metadata: MNetworkVarNames "bool m_bShouldAnimateDuringGameplayPause"
// static metadata: MNetworkVarNames "bool m_bInitiallyPopulateInterpHistory" // static metadata: MNetworkVarNames "bool m_bInitiallyPopulateInterpHistory"
@ -26,18 +25,18 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bShouldAnimateDuringGameplayPause; // 0x7d8 bool m_bShouldAnimateDuringGameplayPause; // 0x820
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bInitiallyPopulateInterpHistory; // 0x7d9 bool m_bInitiallyPopulateInterpHistory; // 0x821
bool m_bAnimationUpdateScheduled; // 0x7da bool m_bAnimationUpdateScheduled; // 0x822
[[maybe_unused]] std::uint8_t pad_0x7db[0x5]; // 0x7db [[maybe_unused]] std::uint8_t pad_0x823[0x5]; // 0x823
// m_pSuppressedAnimEventTags has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_pSuppressedAnimEventTags has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CUtlString>* m_pSuppressedAnimEventTags; // CUtlVector<CUtlString>* m_pSuppressedAnimEventTags;
char m_pSuppressedAnimEventTags[0x8]; // 0x7e0 char m_pSuppressedAnimEventTags[0x8]; // 0x828
bool m_bHasAnimatedMaterialAttributes; // 0x7e8 bool m_bHasAnimatedMaterialAttributes; // 0x830
[[maybe_unused]] std::uint8_t pad_0x7e9[0xf]; // 0x7e9 [[maybe_unused]] std::uint8_t pad_0x831[0xf]; // 0x831
bool m_bSuppressAnimEventSounds; // 0x7f8 bool m_bSuppressAnimEventSounds; // 0x840
[[maybe_unused]] std::uint8_t pad_0x7f9[0x7]; [[maybe_unused]] std::uint8_t pad_0x841[0x7];
// Datamap fields: // Datamap fields:
// float InputSetPlaybackRate; // 0x0 // float InputSetPlaybackRate; // 0x0
@ -46,5 +45,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBaseAnimatingActivity because it is not a standard-layout class // Cannot assert offsets of fields in CBaseAnimatingActivity because it is not a standard-layout class
static_assert(sizeof(CBaseAnimatingActivity) == 0x800); static_assert(sizeof(CBaseAnimatingActivity) == 0x848);
}; };

View File

@ -21,11 +21,10 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x6d8 // Size: 0x700
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkNoBase // MNetworkNoBase
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkIncludeByName "m_pEntity" // static metadata: MNetworkIncludeByName "m_pEntity"
// static metadata: MNetworkIncludeByName "m_flSimulationTime" // static metadata: MNetworkIncludeByName "m_flSimulationTime"
@ -48,51 +47,51 @@ namespace source2sdk::client
class CBasePlayerController : public client::C_BaseEntity class CBasePlayerController : public client::C_BaseEntity
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x538[0x8]; // 0x538 [[maybe_unused]] std::uint8_t pad_0x560[0x8]; // 0x560
int32_t m_nFinalPredictedTick; // 0x540 int32_t m_nFinalPredictedTick; // 0x568
[[maybe_unused]] std::uint8_t pad_0x544[0x4]; // 0x544 [[maybe_unused]] std::uint8_t pad_0x56c[0x4]; // 0x56c
client::C_CommandContext m_CommandContext; // 0x548 client::C_CommandContext m_CommandContext; // 0x570
uint64_t m_nInButtonsWhichAreToggles; // 0x5e8 uint64_t m_nInButtonsWhichAreToggles; // 0x610
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkPriority "1" // metadata: MNetworkPriority "1"
// metadata: MNetworkUserGroup "LocalPlayerExclusive" // metadata: MNetworkUserGroup "LocalPlayerExclusive"
uint32_t m_nTickBase; // 0x5f0 uint32_t m_nTickBase; // 0x618
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnPawnChanged" // metadata: MNetworkChangeCallback "OnPawnChanged"
// m_hPawn has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hPawn has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_BasePlayerPawn> m_hPawn; // CHandle<client::C_BasePlayerPawn> m_hPawn;
char m_hPawn[0x4]; // 0x5f4 char m_hPawn[0x4]; // 0x61c
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bKnownTeamMismatch; // 0x5f8 bool m_bKnownTeamMismatch; // 0x620
[[maybe_unused]] std::uint8_t pad_0x5f9[0x3]; // 0x5f9 [[maybe_unused]] std::uint8_t pad_0x621[0x3]; // 0x621
// m_hPredictedPawn has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hPredictedPawn has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_BasePlayerPawn> m_hPredictedPawn; // CHandle<client::C_BasePlayerPawn> m_hPredictedPawn;
char m_hPredictedPawn[0x4]; // 0x5fc char m_hPredictedPawn[0x4]; // 0x624
CSplitScreenSlot m_nSplitScreenSlot; // 0x600 CSplitScreenSlot m_nSplitScreenSlot; // 0x628
// m_hSplitOwner has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hSplitOwner has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::CBasePlayerController> m_hSplitOwner; // CHandle<client::CBasePlayerController> m_hSplitOwner;
char m_hSplitOwner[0x4]; // 0x604 char m_hSplitOwner[0x4]; // 0x62c
// m_hSplitScreenPlayers has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hSplitScreenPlayers has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CHandle<client::CBasePlayerController>> m_hSplitScreenPlayers; // CUtlVector<CHandle<client::CBasePlayerController>> m_hSplitScreenPlayers;
char m_hSplitScreenPlayers[0x18]; // 0x608 char m_hSplitScreenPlayers[0x18]; // 0x630
bool m_bIsHLTV; // 0x620 bool m_bIsHLTV; // 0x648
[[maybe_unused]] std::uint8_t pad_0x621[0x3]; // 0x621 [[maybe_unused]] std::uint8_t pad_0x649[0x3]; // 0x649
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnConnectionStateChanged" // metadata: MNetworkChangeCallback "OnConnectionStateChanged"
client::PlayerConnectedState m_iConnected; // 0x624 client::PlayerConnectedState m_iConnected; // 0x64c
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnPlayerControllerNameChanged" // metadata: MNetworkChangeCallback "OnPlayerControllerNameChanged"
char m_iszPlayerName[128]; // 0x628 char m_iszPlayerName[128]; // 0x650
[[maybe_unused]] std::uint8_t pad_0x6a8[0x8]; // 0x6a8 [[maybe_unused]] std::uint8_t pad_0x6d0[0x8]; // 0x6d0
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkEncoder "fixed64" // metadata: MNetworkEncoder "fixed64"
// metadata: MNetworkChangeCallback "OnSteamIDChanged" // metadata: MNetworkChangeCallback "OnSteamIDChanged"
uint64_t m_steamID; // 0x6b0 uint64_t m_steamID; // 0x6d8
bool m_bIsLocalPlayerController; // 0x6b8 bool m_bIsLocalPlayerController; // 0x6e0
[[maybe_unused]] std::uint8_t pad_0x6b9[0x3]; // 0x6b9 [[maybe_unused]] std::uint8_t pad_0x6e1[0x3]; // 0x6e1
// metadata: MNetworkEnable // metadata: MNetworkEnable
uint32_t m_iDesiredFOV; // 0x6bc uint32_t m_iDesiredFOV; // 0x6e4
[[maybe_unused]] std::uint8_t pad_0x6c0[0x18]; [[maybe_unused]] std::uint8_t pad_0x6e8[0x18];
// Static fields: // Static fields:
static bool &Get_sm_bRunningPredictedClientStringCommands() {return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBasePlayerController")->GetStaticFields()[0]->m_pInstance);}; static bool &Get_sm_bRunningPredictedClientStringCommands() {return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBasePlayerController")->GetStaticFields()[0]->m_pInstance);};
@ -102,10 +101,10 @@ namespace source2sdk::client
// bool is_hltv; // 0x7fffffff // bool is_hltv; // 0x7fffffff
// const char * playername; // 0x7fffffff // const char * playername; // 0x7fffffff
// bool reserving; // 0x7fffffff // bool reserving; // 0x7fffffff
// void m_pCurrentCommand; // 0x6a8 // void m_pCurrentCommand; // 0x6d0
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBasePlayerController because it is not a standard-layout class // Cannot assert offsets of fields in CBasePlayerController because it is not a standard-layout class
static_assert(sizeof(CBasePlayerController) == 0x6d8); static_assert(sizeof(CBasePlayerController) == 0x700);
}; };

View File

@ -17,7 +17,7 @@ namespace source2sdk::client
// Has Trivial Constructor // Has Trivial Constructor
// Has Trivial Destructor // Has Trivial Destructor
// //
// static metadata: MPulseProvideFeatureTag "PulseEntities" // static metadata: MPulseProvideFeatureTag "1"
// static metadata: MPulseLibraryBindings // static metadata: MPulseLibraryBindings
#pragma pack(push, 1) #pragma pack(push, 1)
class CBasePlayerControllerAPI class CBasePlayerControllerAPI

View File

@ -19,7 +19,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x240 // Size: 0x338
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// //
@ -31,110 +31,102 @@ namespace source2sdk::client
[[maybe_unused]] std::uint8_t pad_0x00[0x10]; // 0x0 [[maybe_unused]] std::uint8_t pad_0x00[0x10]; // 0x0
// metadata: MPropertyDescription "The name of the weapon entity to spawn for this NPC weapon." // metadata: MPropertyDescription "The name of the weapon entity to spawn for this NPC weapon."
CUtlString m_szClassName; // 0x10 CUtlString m_szClassName; // 0x10
// metadata: MPropertyStartGroup "Visuals"
// metadata: MPropertyDescription "Model used on the ground or held by an entity" // metadata: MPropertyDescription "Model used on the ground or held by an entity"
// metadata: MPropertyGroupName "Visuals"
// m_szWorldModel has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_szWorldModel has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeCModel>> m_szWorldModel; // CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeCModel>> m_szWorldModel;
char m_szWorldModel[0xe0]; // 0x18 char m_szWorldModel[0xe0]; // 0x18
// metadata: MPropertyDescription "Model used by the tools only to populate comboboxes for things like animgraph parameter pickers"
// m_sToolsOnlyOwnerModelName has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeCModel>> m_sToolsOnlyOwnerModelName;
char m_sToolsOnlyOwnerModelName[0xe0]; // 0xf8
// metadata: MPropertyDescription "Was the weapon was built right-handed?" // metadata: MPropertyDescription "Was the weapon was built right-handed?"
// metadata: MPropertyGroupName "Visuals" bool m_bBuiltRightHanded; // 0x1d8
bool m_bBuiltRightHanded; // 0xf8
// metadata: MPropertyDescription "Allows flipping the model, regardless of whether it is built left or right handed" // metadata: MPropertyDescription "Allows flipping the model, regardless of whether it is built left or right handed"
// metadata: MPropertyGroupName "Visuals" bool m_bAllowFlipping; // 0x1d9
bool m_bAllowFlipping; // 0xf9 [[maybe_unused]] std::uint8_t pad_0x1da[0x6]; // 0x1da
[[maybe_unused]] std::uint8_t pad_0xfa[0x6]; // 0xfa
// metadata: MPropertyGroupName "Visuals"
// metadata: MPropertyDescription "Attachment to fire bullets from" // metadata: MPropertyDescription "Attachment to fire bullets from"
// metadata: MPropertyAttributeEditor "VDataModelAttachment( m_szWorldModel )" // metadata: MPropertyAttributeEditor "VDataModelAttachment( m_szWorldModel )"
CUtlString m_sMuzzleAttachment; // 0x100 CAttachmentNameSymbolWithStorage m_sMuzzleAttachment; // 0x1e0
// metadata: MPropertyDescription "Effect when firing this weapon" // metadata: MPropertyDescription "Effect when firing this weapon"
// metadata: MPropertyGroupName "Visuals"
// m_szMuzzleFlashParticle has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_szMuzzleFlashParticle has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_szMuzzleFlashParticle; // CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_szMuzzleFlashParticle;
char m_szMuzzleFlashParticle[0xe0]; // 0x108 char m_szMuzzleFlashParticle[0xe0]; // 0x200
client::ItemFlagTypes_t m_iFlags; // 0x1e8 // metadata: MPropertyStartGroup "Behavior"
// metadata: MPropertyDescription "Should both primary and secondary attacks be cooled down together (so cooling down primary attack would cooldown both primary + secondary attacks)?"
bool m_bLinkedCooldowns; // 0x2e0
client::ItemFlagTypes_t m_iFlags; // 0x2e1
// metadata: MPropertyStartGroup "Ammo"
// metadata: MPropertyAttributeEditor "VDataChoice( scripts/ammo.vdata )" // metadata: MPropertyAttributeEditor "VDataChoice( scripts/ammo.vdata )"
// metadata: MPropertyGroupName "Ammo"
// metadata: MPropertyCustomFGDType "string" // metadata: MPropertyCustomFGDType "string"
client::AmmoIndex_t m_nPrimaryAmmoType; // 0x1e9 client::AmmoIndex_t m_nPrimaryAmmoType; // 0x2e2
// metadata: MPropertyAttributeEditor "VDataChoice( scripts/ammo.vdata )" // metadata: MPropertyAttributeEditor "VDataChoice( scripts/ammo.vdata )"
// metadata: MPropertyGroupName "Ammo"
// metadata: MPropertyCustomFGDType "string" // metadata: MPropertyCustomFGDType "string"
client::AmmoIndex_t m_nSecondaryAmmoType; // 0x1ea client::AmmoIndex_t m_nSecondaryAmmoType; // 0x2e3
[[maybe_unused]] std::uint8_t pad_0x1eb[0x1]; // 0x1eb
// metadata: MPropertyFriendlyName "Primary Clip Size" // metadata: MPropertyFriendlyName "Primary Clip Size"
// metadata: MPropertyDescription "How many bullets this gun can fire before it reloads (0 if no clip)" // metadata: MPropertyDescription "How many bullets this gun can fire before it reloads (0 if no clip)"
// metadata: MPropertyAttributeRange "0 255" // metadata: MPropertyAttributeRange "0 255"
// metadata: MPropertyGroupName "Ammo" int32_t m_iMaxClip1; // 0x2e4
int32_t m_iMaxClip1; // 0x1ec
// metadata: MPropertyFriendlyName "Secondary Clip Size" // metadata: MPropertyFriendlyName "Secondary Clip Size"
// metadata: MPropertyDescription "How many secondary bullets this gun can fire before it reloads (0 if no clip)" // metadata: MPropertyDescription "How many secondary bullets this gun can fire before it reloads (0 if no clip)"
// metadata: MPropertyGroupName "Ammo"
// metadata: MPropertyAttributeRange "0 255" // metadata: MPropertyAttributeRange "0 255"
int32_t m_iMaxClip2; // 0x1f0 int32_t m_iMaxClip2; // 0x2e8
// metadata: MPropertyDescription "Primary Initial Clip (-1 means use clip size)" // metadata: MPropertyDescription "Primary Initial Clip (-1 means use clip size)"
// metadata: MPropertyGroupName "Ammo"
// metadata: MPropertyAttributeRange "-1 255" // metadata: MPropertyAttributeRange "-1 255"
int32_t m_iDefaultClip1; // 0x1f4 int32_t m_iDefaultClip1; // 0x2ec
// metadata: MPropertyDescription "Secondary Initial Clip (-1 means use clip size)" // metadata: MPropertyDescription "Secondary Initial Clip (-1 means use clip size)"
// metadata: MPropertyGroupName "Ammo"
// metadata: MPropertyAttributeRange "-1 255" // metadata: MPropertyAttributeRange "-1 255"
int32_t m_iDefaultClip2; // 0x1f8 int32_t m_iDefaultClip2; // 0x2f0
// metadata: MPropertyDescription "Indicates whether to treat reserve ammo as clips (reloads) instead of raw bullets"
bool m_bReserveAmmoAsClips; // 0x2f4
[[maybe_unused]] std::uint8_t pad_0x2f5[0x3]; // 0x2f5
// metadata: MPropertyStartGroup "UI"
// metadata: MPropertyDescription "This value used to determine this weapon's importance in autoselection" // metadata: MPropertyDescription "This value used to determine this weapon's importance in autoselection"
// metadata: MPropertyGroupName "UI" int32_t m_iWeight; // 0x2f8
int32_t m_iWeight; // 0x1fc
// metadata: MPropertyFriendlyName "Safe To Auto-Switch To" // metadata: MPropertyFriendlyName "Safe To Auto-Switch To"
// metadata: MPropertyDescription "Whether this weapon is safe to automatically switch to (should be false for eg. explosives that can the player may accidentally hurt themselves with)" // metadata: MPropertyDescription "Whether this weapon is safe to automatically switch to (should be false for eg. explosives that can the player may accidentally hurt themselves with)"
// metadata: MPropertyGroupName "UI" bool m_bAutoSwitchTo; // 0x2fc
bool m_bAutoSwitchTo; // 0x200
// metadata: MPropertyFriendlyName "Safe To Auto-Switch Away From" // metadata: MPropertyFriendlyName "Safe To Auto-Switch Away From"
// metadata: MPropertyGroupName "UI" bool m_bAutoSwitchFrom; // 0x2fd
bool m_bAutoSwitchFrom; // 0x201 [[maybe_unused]] std::uint8_t pad_0x2fe[0x2]; // 0x2fe
[[maybe_unused]] std::uint8_t pad_0x202[0x2]; // 0x202 client::RumbleEffect_t m_iRumbleEffect; // 0x300
// metadata: MPropertyGroupName "UI"
client::RumbleEffect_t m_iRumbleEffect; // 0x204
// metadata: MPropertyDescription "Should both primary and secondary attacks be cooled down together (so cooling down primary attack would cooldown both primary + secondary attacks)?"
bool m_bLinkedCooldowns; // 0x208
// metadata: MPropertyGroupName "Ammo"
// metadata: MPropertyDescription "Indicates whether to treat reserve ammo as clips (reloads) instead of raw bullets"
bool m_bReserveAmmoAsClips; // 0x209
[[maybe_unused]] std::uint8_t pad_0x20a[0x6]; // 0x20a
// m_aShootSounds has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlOrderedMap<client::WeaponSound_t,CSoundEventName> m_aShootSounds;
char m_aShootSounds[0x28]; // 0x210
// metadata: MPropertyFriendlyName "HUD Bucket" // metadata: MPropertyFriendlyName "HUD Bucket"
// metadata: MPropertyDescription "Which 'column' to display this weapon in the HUD" // metadata: MPropertyDescription "Which 'column' to display this weapon in the HUD"
// metadata: MPropertyGroupName "UI" int32_t m_iSlot; // 0x304
int32_t m_iSlot; // 0x238
// metadata: MPropertyFriendlyName "HUD Bucket Position" // metadata: MPropertyFriendlyName "HUD Bucket Position"
// metadata: MPropertyDescription "Which 'row' to display this weapon in the HUD" // metadata: MPropertyDescription "Which 'row' to display this weapon in the HUD"
// metadata: MPropertyGroupName "UI" int32_t m_iPosition; // 0x308
int32_t m_iPosition; // 0x23c [[maybe_unused]] std::uint8_t pad_0x30c[0x4]; // 0x30c
// metadata: MPropertyStartGroup "Sounds"
// m_aShootSounds has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlOrderedMap<client::WeaponSound_t,CSoundEventName> m_aShootSounds;
char m_aShootSounds[0x28]; // 0x310
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CBasePlayerWeaponVData, m_szClassName) == 0x10); static_assert(offsetof(CBasePlayerWeaponVData, m_szClassName) == 0x10);
static_assert(offsetof(CBasePlayerWeaponVData, m_szWorldModel) == 0x18); static_assert(offsetof(CBasePlayerWeaponVData, m_szWorldModel) == 0x18);
static_assert(offsetof(CBasePlayerWeaponVData, m_bBuiltRightHanded) == 0xf8); static_assert(offsetof(CBasePlayerWeaponVData, m_sToolsOnlyOwnerModelName) == 0xf8);
static_assert(offsetof(CBasePlayerWeaponVData, m_bAllowFlipping) == 0xf9); static_assert(offsetof(CBasePlayerWeaponVData, m_bBuiltRightHanded) == 0x1d8);
static_assert(offsetof(CBasePlayerWeaponVData, m_sMuzzleAttachment) == 0x100); static_assert(offsetof(CBasePlayerWeaponVData, m_bAllowFlipping) == 0x1d9);
static_assert(offsetof(CBasePlayerWeaponVData, m_szMuzzleFlashParticle) == 0x108); static_assert(offsetof(CBasePlayerWeaponVData, m_sMuzzleAttachment) == 0x1e0);
static_assert(offsetof(CBasePlayerWeaponVData, m_iFlags) == 0x1e8); static_assert(offsetof(CBasePlayerWeaponVData, m_szMuzzleFlashParticle) == 0x200);
static_assert(offsetof(CBasePlayerWeaponVData, m_nPrimaryAmmoType) == 0x1e9); static_assert(offsetof(CBasePlayerWeaponVData, m_bLinkedCooldowns) == 0x2e0);
static_assert(offsetof(CBasePlayerWeaponVData, m_nSecondaryAmmoType) == 0x1ea); static_assert(offsetof(CBasePlayerWeaponVData, m_iFlags) == 0x2e1);
static_assert(offsetof(CBasePlayerWeaponVData, m_iMaxClip1) == 0x1ec); static_assert(offsetof(CBasePlayerWeaponVData, m_nPrimaryAmmoType) == 0x2e2);
static_assert(offsetof(CBasePlayerWeaponVData, m_iMaxClip2) == 0x1f0); static_assert(offsetof(CBasePlayerWeaponVData, m_nSecondaryAmmoType) == 0x2e3);
static_assert(offsetof(CBasePlayerWeaponVData, m_iDefaultClip1) == 0x1f4); static_assert(offsetof(CBasePlayerWeaponVData, m_iMaxClip1) == 0x2e4);
static_assert(offsetof(CBasePlayerWeaponVData, m_iDefaultClip2) == 0x1f8); static_assert(offsetof(CBasePlayerWeaponVData, m_iMaxClip2) == 0x2e8);
static_assert(offsetof(CBasePlayerWeaponVData, m_iWeight) == 0x1fc); static_assert(offsetof(CBasePlayerWeaponVData, m_iDefaultClip1) == 0x2ec);
static_assert(offsetof(CBasePlayerWeaponVData, m_bAutoSwitchTo) == 0x200); static_assert(offsetof(CBasePlayerWeaponVData, m_iDefaultClip2) == 0x2f0);
static_assert(offsetof(CBasePlayerWeaponVData, m_bAutoSwitchFrom) == 0x201); static_assert(offsetof(CBasePlayerWeaponVData, m_bReserveAmmoAsClips) == 0x2f4);
static_assert(offsetof(CBasePlayerWeaponVData, m_iRumbleEffect) == 0x204); static_assert(offsetof(CBasePlayerWeaponVData, m_iWeight) == 0x2f8);
static_assert(offsetof(CBasePlayerWeaponVData, m_bLinkedCooldowns) == 0x208); static_assert(offsetof(CBasePlayerWeaponVData, m_bAutoSwitchTo) == 0x2fc);
static_assert(offsetof(CBasePlayerWeaponVData, m_bReserveAmmoAsClips) == 0x209); static_assert(offsetof(CBasePlayerWeaponVData, m_bAutoSwitchFrom) == 0x2fd);
static_assert(offsetof(CBasePlayerWeaponVData, m_aShootSounds) == 0x210); static_assert(offsetof(CBasePlayerWeaponVData, m_iRumbleEffect) == 0x300);
static_assert(offsetof(CBasePlayerWeaponVData, m_iSlot) == 0x238); static_assert(offsetof(CBasePlayerWeaponVData, m_iSlot) == 0x304);
static_assert(offsetof(CBasePlayerWeaponVData, m_iPosition) == 0x23c); static_assert(offsetof(CBasePlayerWeaponVData, m_iPosition) == 0x308);
static_assert(offsetof(CBasePlayerWeaponVData, m_aShootSounds) == 0x310);
static_assert(sizeof(CBasePlayerWeaponVData) == 0x240); static_assert(sizeof(CBasePlayerWeaponVData) == 0x338);
}; };

View File

@ -14,21 +14,20 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x840 // Size: 0x888
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CBaseProp : public client::CBaseAnimatingActivity class CBaseProp : public client::CBaseAnimatingActivity
{ {
public: public:
bool m_bModelOverrodeBlockLOS; // 0x800 bool m_bModelOverrodeBlockLOS; // 0x848
[[maybe_unused]] std::uint8_t pad_0x801[0x3]; // 0x801 [[maybe_unused]] std::uint8_t pad_0x849[0x3]; // 0x849
int32_t m_iShapeType; // 0x804 int32_t m_iShapeType; // 0x84c
bool m_bConformToCollisionBounds; // 0x808 bool m_bConformToCollisionBounds; // 0x850
[[maybe_unused]] std::uint8_t pad_0x809[0x3]; // 0x809 [[maybe_unused]] std::uint8_t pad_0x851[0x3]; // 0x851
matrix3x4_t m_mPreferredCatchTransform; // 0x80c matrix3x4_t m_mPreferredCatchTransform; // 0x854
[[maybe_unused]] std::uint8_t pad_0x83c[0x4]; [[maybe_unused]] std::uint8_t pad_0x884[0x4];
// Datamap fields: // Datamap fields:
// void health; // 0x7fffffff // void health; // 0x7fffffff
@ -37,5 +36,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBaseProp because it is not a standard-layout class // Cannot assert offsets of fields in CBaseProp because it is not a standard-layout class
static_assert(sizeof(CBaseProp) == 0x840); static_assert(sizeof(CBaseProp) == 0x888);
}; };

View File

@ -15,11 +15,10 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x590 // Size: 0x5d0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "TrackedStatNetworkData_t m_vecTrackedStats" // static metadata: MNetworkVarNames "TrackedStatNetworkData_t m_vecTrackedStats"
#pragma pack(push, 1) #pragma pack(push, 1)
@ -30,11 +29,11 @@ namespace source2sdk::client
// metadata: MNetworkChangeCallback "OnTrackedStatsChanged" // metadata: MNetworkChangeCallback "OnTrackedStatsChanged"
// m_vecTrackedStats has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecTrackedStats has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// C_UtlVectorEmbeddedNetworkVar<client::TrackedStatNetworkData_t> m_vecTrackedStats; // C_UtlVectorEmbeddedNetworkVar<client::TrackedStatNetworkData_t> m_vecTrackedStats;
char m_vecTrackedStats[0x50]; // 0x538 char m_vecTrackedStats[0x68]; // 0x560
[[maybe_unused]] std::uint8_t pad_0x588[0x8]; [[maybe_unused]] std::uint8_t pad_0x5c8[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBaseTrackedStatsEntity because it is not a standard-layout class // Cannot assert offsets of fields in CBaseTrackedStatsEntity because it is not a standard-layout class
static_assert(sizeof(CBaseTrackedStatsEntity) == 0x590); static_assert(sizeof(CBaseTrackedStatsEntity) == 0x5d0);
}; };

View File

@ -21,21 +21,18 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x50 // Size: 0x78
// Has VTable // Has VTable
// Construct disallowed // Construct disallowed
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CBodyComponent : public entity2::CEntityComponent class CBodyComponent : public entity2::CEntityComponent
{ {
public: public:
// metadata: MNetworkDisable
client::CGameSceneNode* m_pSceneNode; // 0x8 client::CGameSceneNode* m_pSceneNode; // 0x8
[[maybe_unused]] std::uint8_t pad_0x10[0x10]; // 0x10 [[maybe_unused]] std::uint8_t pad_0x10[0x38]; // 0x10
// metadata: MNetworkDisable
// metadata: MNetworkChangeAccessorFieldPathIndex // metadata: MNetworkChangeAccessorFieldPathIndex
entity2::CNetworkVarChainer __m_pChainEntity; // 0x20 entity2::CNetworkVarChainer __m_pChainEntity; // 0x48
[[maybe_unused]] std::uint8_t pad_0x48[0x8]; [[maybe_unused]] std::uint8_t pad_0x70[0x8];
// Static fields: // Static fields:
static entity2::EntComponentInfo_t &Get_s_EntComponentInfo() {return *reinterpret_cast<entity2::EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponent")->GetStaticFields()[0]->m_pInstance);}; static entity2::EntComponentInfo_t &Get_s_EntComponentInfo() {return *reinterpret_cast<entity2::EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponent")->GetStaticFields()[0]->m_pInstance);};
@ -44,5 +41,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBodyComponent because it is not a standard-layout class // Cannot assert offsets of fields in CBodyComponent because it is not a standard-layout class
static_assert(sizeof(CBodyComponent) == 0x50); static_assert(sizeof(CBodyComponent) == 0x78);
}; };

View File

@ -16,10 +16,9 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: unknown // Alignment: unknown
// Standard-layout class: false // Standard-layout class: false
// Size: 0x840 // Size: 0x8a0
// Has VTable // Has VTable
// Construct disallowed // Construct disallowed
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "CBaseAnimGraphController m_animationController" // static metadata: MNetworkVarNames "CBaseAnimGraphController m_animationController"
#pragma pack(push, 1) #pragma pack(push, 1)
@ -27,8 +26,7 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::CBaseAnimGraphController m_animationController; // 0x470 client::CBaseAnimGraphController m_animationController; // 0x4d0
[[maybe_unused]] std::uint8_t pad_0x838[0x8];
// Static fields: // Static fields:
static entity2::EntComponentInfo_t &Get_s_EntComponentInfo() {return *reinterpret_cast<entity2::EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentBaseAnimGraph")->GetStaticFields()[0]->m_pInstance);}; static entity2::EntComponentInfo_t &Get_s_EntComponentInfo() {return *reinterpret_cast<entity2::EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentBaseAnimGraph")->GetStaticFields()[0]->m_pInstance);};
@ -37,5 +35,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBodyComponentBaseAnimGraph because it is not a standard-layout class // Cannot assert offsets of fields in CBodyComponentBaseAnimGraph because it is not a standard-layout class
static_assert(sizeof(CBodyComponentBaseAnimGraph) == 0x840); static_assert(sizeof(CBodyComponentBaseAnimGraph) == 0x8a0);
}; };

View File

@ -15,10 +15,9 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: unknown // Alignment: unknown
// Standard-layout class: false // Standard-layout class: false
// Size: 0x470 // Size: 0x4d0
// Has VTable // Has VTable
// Construct disallowed // Construct disallowed
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CBodyComponentBaseModelEntity : public client::CBodyComponentSkeletonInstance class CBodyComponentBaseModelEntity : public client::CBodyComponentSkeletonInstance
{ {
@ -30,5 +29,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CBodyComponentBaseModelEntity) == 0x470); static_assert(sizeof(CBodyComponentBaseModelEntity) == 0x4d0);
}; };

View File

@ -16,18 +16,18 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: unknown // Alignment: unknown
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b0 // Size: 0x1e0
// Has VTable // Has VTable
// Construct disallowed // Construct disallowed
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "CGameSceneNode m_sceneNode" // static metadata: MNetworkVarNames "CGameSceneNode m_sceneNode"
#pragma pack(push, 1) #pragma pack(push, 1)
class CBodyComponentPoint : public client::CBodyComponent class CBodyComponentPoint : public client::CBodyComponent
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x78[0x8]; // 0x78
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::CGameSceneNode m_sceneNode; // 0x50 client::CGameSceneNode m_sceneNode; // 0x80
// Static fields: // Static fields:
static entity2::EntComponentInfo_t &Get_s_EntComponentInfo() {return *reinterpret_cast<entity2::EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentPoint")->GetStaticFields()[0]->m_pInstance);}; static entity2::EntComponentInfo_t &Get_s_EntComponentInfo() {return *reinterpret_cast<entity2::EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentPoint")->GetStaticFields()[0]->m_pInstance);};
@ -36,5 +36,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBodyComponentPoint because it is not a standard-layout class // Cannot assert offsets of fields in CBodyComponentPoint because it is not a standard-layout class
static_assert(sizeof(CBodyComponentPoint) == 0x1b0); static_assert(sizeof(CBodyComponentPoint) == 0x1e0);
}; };

View File

@ -16,18 +16,18 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: unknown // Alignment: unknown
// Standard-layout class: false // Standard-layout class: false
// Size: 0x470 // Size: 0x4d0
// Has VTable // Has VTable
// Construct disallowed // Construct disallowed
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "CSkeletonInstance m_skeletonInstance" // static metadata: MNetworkVarNames "CSkeletonInstance m_skeletonInstance"
#pragma pack(push, 1) #pragma pack(push, 1)
class CBodyComponentSkeletonInstance : public client::CBodyComponent class CBodyComponentSkeletonInstance : public client::CBodyComponent
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x78[0x8]; // 0x78
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::CSkeletonInstance m_skeletonInstance; // 0x50 client::CSkeletonInstance m_skeletonInstance; // 0x80
// Static fields: // Static fields:
static entity2::EntComponentInfo_t &Get_s_EntComponentInfo() {return *reinterpret_cast<entity2::EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentSkeletonInstance")->GetStaticFields()[0]->m_pInstance);}; static entity2::EntComponentInfo_t &Get_s_EntComponentInfo() {return *reinterpret_cast<entity2::EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentSkeletonInstance")->GetStaticFields()[0]->m_pInstance);};
@ -36,5 +36,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CBodyComponentSkeletonInstance because it is not a standard-layout class // Cannot assert offsets of fields in CBodyComponentSkeletonInstance because it is not a standard-layout class
static_assert(sizeof(CBodyComponentSkeletonInstance) == 0x470); static_assert(sizeof(CBodyComponentSkeletonInstance) == 0x4d0);
}; };

View File

@ -11,25 +11,42 @@
namespace source2sdk::client namespace source2sdk::client
{ {
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: 0x4 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x20 // Size: 0x100
// Has VTable // Has VTable
// Has Trivial Destructor
#pragma pack(push, 1) #pragma pack(push, 1)
class CBuoyancyHelper class CBuoyancyHelper
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x00[0x18]; // 0x0 [[maybe_unused]] std::uint8_t pad_0x00[0x18]; // 0x0
float m_flFluidDensity; // 0x18 CUtlStringToken m_nFluidType; // 0x18
[[maybe_unused]] std::uint8_t pad_0x1c[0x4]; float m_flFluidDensity; // 0x1c
// m_vecFractionOfWheelSubmergedForWheelFriction has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<float> m_vecFractionOfWheelSubmergedForWheelFriction;
char m_vecFractionOfWheelSubmergedForWheelFriction[0x18]; // 0x20
// m_vecWheelFrictionScales has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<float> m_vecWheelFrictionScales;
char m_vecWheelFrictionScales[0x18]; // 0x38
// m_vecFractionOfWheelSubmergedForWheelDrag has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<float> m_vecFractionOfWheelSubmergedForWheelDrag;
char m_vecFractionOfWheelSubmergedForWheelDrag[0x18]; // 0x50
// m_vecWheelDrag has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<float> m_vecWheelDrag;
char m_vecWheelDrag[0x18]; // 0x68
[[maybe_unused]] std::uint8_t pad_0x80[0x80];
// Datamap fields: // Datamap fields:
// void m_pController; // 0x8 // void m_pController; // 0x8
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CBuoyancyHelper, m_flFluidDensity) == 0x18); static_assert(offsetof(CBuoyancyHelper, m_nFluidType) == 0x18);
static_assert(offsetof(CBuoyancyHelper, m_flFluidDensity) == 0x1c);
static_assert(offsetof(CBuoyancyHelper, m_vecFractionOfWheelSubmergedForWheelFriction) == 0x20);
static_assert(offsetof(CBuoyancyHelper, m_vecWheelFrictionScales) == 0x38);
static_assert(offsetof(CBuoyancyHelper, m_vecFractionOfWheelSubmergedForWheelDrag) == 0x50);
static_assert(offsetof(CBuoyancyHelper, m_vecWheelDrag) == 0x68);
static_assert(sizeof(CBuoyancyHelper) == 0x20); static_assert(sizeof(CBuoyancyHelper) == 0x100);
}; };

View File

@ -14,10 +14,9 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x5a0 // Size: 0x5c8
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "string_t m_iszStackName" // static metadata: MNetworkVarNames "string_t m_iszStackName"
// static metadata: MNetworkVarNames "string_t m_iszOperatorName" // static metadata: MNetworkVarNames "string_t m_iszOperatorName"
@ -31,27 +30,27 @@ namespace source2sdk::client
class CCitadelSoundOpvarSetOBB : public client::C_BaseEntity class CCitadelSoundOpvarSetOBB : public client::C_BaseEntity
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x538[0x18]; // 0x538 [[maybe_unused]] std::uint8_t pad_0x560[0x18]; // 0x560
// metadata: MNetworkEnable // metadata: MNetworkEnable
CUtlSymbolLarge m_iszStackName; // 0x550 CUtlSymbolLarge m_iszStackName; // 0x578
// metadata: MNetworkEnable // metadata: MNetworkEnable
CUtlSymbolLarge m_iszOperatorName; // 0x558 CUtlSymbolLarge m_iszOperatorName; // 0x580
// metadata: MNetworkEnable // metadata: MNetworkEnable
CUtlSymbolLarge m_iszOpvarName; // 0x560 CUtlSymbolLarge m_iszOpvarName; // 0x588
// metadata: MNetworkEnable // metadata: MNetworkEnable
Vector m_vDistanceInnerMins; // 0x568 Vector m_vDistanceInnerMins; // 0x590
// metadata: MNetworkEnable // metadata: MNetworkEnable
Vector m_vDistanceInnerMaxs; // 0x574 Vector m_vDistanceInnerMaxs; // 0x59c
// metadata: MNetworkEnable // metadata: MNetworkEnable
Vector m_vDistanceOuterMins; // 0x580 Vector m_vDistanceOuterMins; // 0x5a8
// metadata: MNetworkEnable // metadata: MNetworkEnable
Vector m_vDistanceOuterMaxs; // 0x58c Vector m_vDistanceOuterMaxs; // 0x5b4
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_nAABBDirection; // 0x598 int32_t m_nAABBDirection; // 0x5c0
[[maybe_unused]] std::uint8_t pad_0x59c[0x4]; [[maybe_unused]] std::uint8_t pad_0x5c4[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CCitadelSoundOpvarSetOBB because it is not a standard-layout class // Cannot assert offsets of fields in CCitadelSoundOpvarSetOBB because it is not a standard-layout class
static_assert(sizeof(CCitadelSoundOpvarSetOBB) == 0x5a0); static_assert(sizeof(CCitadelSoundOpvarSetOBB) == 0x5c8);
}; };

View File

@ -18,7 +18,6 @@ namespace source2sdk::client
// Standard-layout class: true // Standard-layout class: true
// Size: 0xb0 // Size: 0xb0
// Has VTable // Has VTable
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "VPhysicsCollisionAttribute_t m_collisionAttribute" // static metadata: MNetworkVarNames "VPhysicsCollisionAttribute_t m_collisionAttribute"
// static metadata: MNetworkVarNames "Vector m_vecMins" // static metadata: MNetworkVarNames "Vector m_vecMins"

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x180 // Size: 0x198
// Has VTable // Has VTable
// MNetworkNoBase // MNetworkNoBase
// //
@ -30,12 +30,12 @@ namespace source2sdk::client
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_CustomShopItems has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_CustomShopItems has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// C_UtlVectorEmbeddedNetworkVar<client::CDOTACustomShopItemInfo> m_CustomShopItems; // C_UtlVectorEmbeddedNetworkVar<client::CDOTACustomShopItemInfo> m_CustomShopItems;
char m_CustomShopItems[0x50]; // 0x130 char m_CustomShopItems[0x68]; // 0x130
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CDOTACustomShopInfo, m_CustomShopName) == 0x30); static_assert(offsetof(CDOTACustomShopInfo, m_CustomShopName) == 0x30);
static_assert(offsetof(CDOTACustomShopInfo, m_CustomShopItems) == 0x130); static_assert(offsetof(CDOTACustomShopInfo, m_CustomShopItems) == 0x130);
static_assert(sizeof(CDOTACustomShopInfo) == 0x180); static_assert(sizeof(CDOTACustomShopInfo) == 0x198);
}; };

View File

@ -14,11 +14,10 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x5d8 // Size: 0x600
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CDOTAEmptyAbility : public client::C_DOTABaseAbility class CDOTAEmptyAbility : public client::C_DOTABaseAbility
{ {
@ -27,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTAEmptyAbility) == 0x5d8); static_assert(sizeof(CDOTAEmptyAbility) == 0x600);
}; };

View File

@ -16,11 +16,10 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x5b0 // Size: 0x5f0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "bool m_bVotingClosed" // static metadata: MNetworkVarNames "bool m_bVotingClosed"
// static metadata: MNetworkVarNames "bool m_bAllPredictionsFinished" // static metadata: MNetworkVarNames "bool m_bAllPredictionsFinished"
@ -31,24 +30,24 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bVotingClosed; // 0x538 bool m_bVotingClosed; // 0x560
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnAllPredictionsFinished" // metadata: MNetworkChangeCallback "OnAllPredictionsFinished"
bool m_bAllPredictionsFinished; // 0x539 bool m_bAllPredictionsFinished; // 0x561
[[maybe_unused]] std::uint8_t pad_0x53a[0x6]; // 0x53a [[maybe_unused]] std::uint8_t pad_0x562[0x6]; // 0x562
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_vecPredictions has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecPredictions has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// C_UtlVectorEmbeddedNetworkVar<client::InGamePredictionData_t> m_vecPredictions; // C_UtlVectorEmbeddedNetworkVar<client::InGamePredictionData_t> m_vecPredictions;
char m_vecPredictions[0x50]; // 0x540 char m_vecPredictions[0x68]; // 0x568
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::LeagueID_t m_nLeagueID; // 0x590 client::LeagueID_t m_nLeagueID; // 0x5d0
[[maybe_unused]] std::uint8_t pad_0x594[0x4]; // 0x594 [[maybe_unused]] std::uint8_t pad_0x5d4[0x4]; // 0x5d4
// m_vecPrevPredictions has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecPrevPredictions has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::InGamePredictionData_t> m_vecPrevPredictions; // CUtlVector<client::InGamePredictionData_t> m_vecPrevPredictions;
char m_vecPrevPredictions[0x18]; // 0x598 char m_vecPrevPredictions[0x18]; // 0x5d8
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTAInGamePredictionState because it is not a standard-layout class // Cannot assert offsets of fields in CDOTAInGamePredictionState because it is not a standard-layout class
static_assert(sizeof(CDOTAInGamePredictionState) == 0x5b0); static_assert(sizeof(CDOTAInGamePredictionState) == 0x5f0);
}; };

View File

@ -0,0 +1,105 @@
#pragma once
#include "source2sdk/client/CDOTAMinesweeperPlayerDefinition.hpp"
#include "source2sdk/client/CDOTAMinesweeperStageDefinition.hpp"
#include "source2sdk/resourcesystem/InfoForResourceTypeIParticleSystemDefinition.hpp"
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0x768
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
class CDOTAMinesweeperGameDefinition
{
public:
client::CDOTAMinesweeperPlayerDefinition m_player; // 0x0
// m_vecStages has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAMinesweeperStageDefinition> m_vecStages;
char m_vecStages[0x18]; // 0x8
float m_flTimeLimit; // 0x20
int32_t m_nIllusionManaCost; // 0x24
int32_t m_nStageProgressionTimerIncrease; // 0x28
[[maybe_unused]] std::uint8_t pad_0x2c[0x4]; // 0x2c
// m_dustEffect has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_dustEffect;
char m_dustEffect[0xe0]; // 0x30
// m_grassEffect has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_grassEffect;
char m_grassEffect[0xe0]; // 0x110
// m_explosionEffect has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_explosionEffect;
char m_explosionEffect[0xe0]; // 0x1f0
// m_manaPotEffect has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_manaPotEffect;
char m_manaPotEffect[0xe0]; // 0x2d0
// m_timerIncreaseEffect has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_timerIncreaseEffect;
char m_timerIncreaseEffect[0xe0]; // 0x3b0
// m_illusionEffect has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_illusionEffect;
char m_illusionEffect[0xe0]; // 0x490
// m_lostManaPotEffect has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_lostManaPotEffect;
char m_lostManaPotEffect[0xe0]; // 0x570
// m_lostTimerIncreaseEffect has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CResourceNameTyped<CWeakHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition>> m_lostTimerIncreaseEffect;
char m_lostTimerIncreaseEffect[0xe0]; // 0x650
int32_t m_nManaPotRestoration; // 0x730
int32_t m_nMaxConcurrentManaPots; // 0x734
int32_t m_nManaPotExpireClicks; // 0x738
int32_t m_nManaPotChance; // 0x73c
float m_flTimeExtension; // 0x740
int32_t m_nMaxConcurrentTimerIncreases; // 0x744
int32_t m_nTimerIncreaseExpireClicks; // 0x748
int32_t m_nTimerIncreaseChance; // 0x74c
int32_t m_nScorePerCellRevealed; // 0x750
int32_t m_nScorePerStageCleared; // 0x754
int32_t m_nScorePerSecondsRemaining; // 0x758
int32_t m_nFailedChordClickTimes; // 0x75c
int32_t m_flFailedChordClickCooldown; // 0x760
[[maybe_unused]] std::uint8_t pad_0x764[0x4];
};
#pragma pack(pop)
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_player) == 0x0);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_vecStages) == 0x8);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_flTimeLimit) == 0x20);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nIllusionManaCost) == 0x24);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nStageProgressionTimerIncrease) == 0x28);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_dustEffect) == 0x30);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_grassEffect) == 0x110);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_explosionEffect) == 0x1f0);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_manaPotEffect) == 0x2d0);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_timerIncreaseEffect) == 0x3b0);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_illusionEffect) == 0x490);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_lostManaPotEffect) == 0x570);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_lostTimerIncreaseEffect) == 0x650);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nManaPotRestoration) == 0x730);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nMaxConcurrentManaPots) == 0x734);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nManaPotExpireClicks) == 0x738);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nManaPotChance) == 0x73c);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_flTimeExtension) == 0x740);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nMaxConcurrentTimerIncreases) == 0x744);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nTimerIncreaseExpireClicks) == 0x748);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nTimerIncreaseChance) == 0x74c);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nScorePerCellRevealed) == 0x750);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nScorePerStageCleared) == 0x754);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nScorePerSecondsRemaining) == 0x758);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_nFailedChordClickTimes) == 0x75c);
static_assert(offsetof(CDOTAMinesweeperGameDefinition, m_flFailedChordClickCooldown) == 0x760);
static_assert(sizeof(CDOTAMinesweeperGameDefinition) == 0x768);
};

View File

@ -0,0 +1,35 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x4
// Alignment: 0x4
// Standard-layout class: true
// Size: 0x8
// Has Trivial Destructor
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
class CDOTAMinesweeperPlayerDefinition
{
public:
int32_t m_nInitialHealth; // 0x0
int32_t m_nInitialMana; // 0x4
};
#pragma pack(pop)
static_assert(offsetof(CDOTAMinesweeperPlayerDefinition, m_nInitialHealth) == 0x0);
static_assert(offsetof(CDOTAMinesweeperPlayerDefinition, m_nInitialMana) == 0x4);
static_assert(sizeof(CDOTAMinesweeperPlayerDefinition) == 0x8);
};

View File

@ -0,0 +1,38 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x4
// Alignment: 0x4
// Standard-layout class: true
// Size: 0xc
// Has Trivial Constructor
// Has Trivial Destructor
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
class CDOTAMinesweeperStageDefinition
{
public:
int32_t m_nBoardRows; // 0x0
int32_t m_nBoardCols; // 0x4
int32_t m_nMines; // 0x8
};
#pragma pack(pop)
static_assert(offsetof(CDOTAMinesweeperStageDefinition, m_nBoardRows) == 0x0);
static_assert(offsetof(CDOTAMinesweeperStageDefinition, m_nBoardCols) == 0x4);
static_assert(offsetof(CDOTAMinesweeperStageDefinition, m_nMines) == 0x8);
static_assert(sizeof(CDOTAMinesweeperStageDefinition) == 0xc);
};

View File

@ -0,0 +1,32 @@
#pragma once
#include "source2sdk/source2gen.hpp"
#include <cstddef>
#include <cstdint>
// /////////////////////////////////////////////////////////////
// Module: client
// Created using source2gen - github.com/neverlosecc/source2gen
// /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
// Registered alignment: 0x8
// Alignment: 0x8
// Standard-layout class: true
// Size: 0x8
// Construct allowed
//
// static metadata: MGetKV3ClassDefaults
// static metadata: MVDataRoot
#pragma pack(push, 1)
class CDOTAMinesweeperStageProgressionChoice
{
public:
CUtlString m_strLocText; // 0x0
};
#pragma pack(pop)
static_assert(offsetof(CDOTAMinesweeperStageProgressionChoice, m_strLocText) == 0x0);
static_assert(sizeof(CDOTAMinesweeperStageProgressionChoice) == 0x8);
};

View File

@ -61,7 +61,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x358 // Size: 0x370
// Construct allowed // Construct allowed
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -89,61 +89,63 @@ namespace source2sdk::client
[[maybe_unused]] std::uint8_t pad_0x3c[0x4]; // 0x3c [[maybe_unused]] std::uint8_t pad_0x3c[0x4]; // 0x3c
CUtlString m_sMapVisualsXmlPath; // 0x40 CUtlString m_sMapVisualsXmlPath; // 0x40
// metadata: MPropertyDescription // metadata: MPropertyDescription
client::OverworldNodeID_t m_unStartNodeID; // 0x48 // m_vecStartNodeIds has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::OverworldNodeID_t> m_vecStartNodeIds;
char m_vecStartNodeIds[0x18]; // 0x48
// metadata: MPropertyDescription // metadata: MPropertyDescription
client::OverworldNodeID_t m_unEndNodeID; // 0x4a client::OverworldNodeID_t m_unEndNodeID; // 0x60
[[maybe_unused]] std::uint8_t pad_0x4c[0x4]; // 0x4c [[maybe_unused]] std::uint8_t pad_0x62[0x6]; // 0x62
// metadata: MPropertyDescription "Name/key of the Visual Novel associated with this map." // metadata: MPropertyDescription "Name/key of the Visual Novel associated with this map."
CUtlString m_sVisualNovelName; // 0x50 CUtlString m_sVisualNovelName; // 0x68
// metadata: MPropertyDescription "Prefix to combine with tokent names to give their loc strings." // metadata: MPropertyDescription "Prefix to combine with tokent names to give their loc strings."
CUtlString m_sTokenLocStringPrefix; // 0x58 CUtlString m_sTokenLocStringPrefix; // 0x70
// metadata: MPropertyDescription "Act number loc string, e.g. Act I." // metadata: MPropertyDescription "Act number loc string, e.g. Act I."
CUtlString m_sActNumberLocString; // 0x60 CUtlString m_sActNumberLocString; // 0x78
// metadata: MPropertyDescription "Act title loc string, e.g. The Eyrie." // metadata: MPropertyDescription "Act title loc string, e.g. The Eyrie."
CUtlString m_sActTitleLocString; // 0x68 CUtlString m_sActTitleLocString; // 0x80
// metadata: MPropertyDescription // metadata: MPropertyDescription
client::item_definition_index_t m_unPremiumItemDef; // 0x70 client::item_definition_index_t m_unPremiumItemDef; // 0x88
// metadata: MPropertyDescription // metadata: MPropertyDescription
client::item_definition_index_t m_unFullCompletionItemDef; // 0x74 client::item_definition_index_t m_unFullCompletionItemDef; // 0x8c
// metadata: MPropertyDescription "ID of the scrap token rewarded for playing matches." // metadata: MPropertyDescription "ID of the scrap token rewarded for playing matches."
client::OverworldTokenID_t m_unScrapTokenID; // 0x78 client::OverworldTokenID_t m_unScrapTokenID; // 0x90
[[maybe_unused]] std::uint8_t pad_0x79[0x7]; // 0x79 [[maybe_unused]] std::uint8_t pad_0x91[0x7]; // 0x91
// m_vecEventActionTriggers has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecEventActionTriggers has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAEventActionTrigger> m_vecEventActionTriggers; // CUtlVector<client::CDOTAEventActionTrigger> m_vecEventActionTriggers;
char m_vecEventActionTriggers[0x18]; // 0x80 char m_vecEventActionTriggers[0x18]; // 0x98
// m_vecEventActionGrantAndClaimPairTriggers has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecEventActionGrantAndClaimPairTriggers has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAEventActionGrantAndClaimPairTrigger> m_vecEventActionGrantAndClaimPairTriggers; // CUtlVector<client::CDOTAEventActionGrantAndClaimPairTrigger> m_vecEventActionGrantAndClaimPairTriggers;
char m_vecEventActionGrantAndClaimPairTriggers[0x18]; // 0x98 char m_vecEventActionGrantAndClaimPairTriggers[0x18]; // 0xb0
// m_vecPathColorRules has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecPathColorRules has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAOverworldPathColorRule> m_vecPathColorRules; // CUtlVector<client::CDOTAOverworldPathColorRule> m_vecPathColorRules;
char m_vecPathColorRules[0x18]; // 0xb0 char m_vecPathColorRules[0x18]; // 0xc8
[[maybe_unused]] std::uint8_t pad_0xc8[0x140]; // 0xc8 [[maybe_unused]] std::uint8_t pad_0xe0[0x140]; // 0xe0
// m_vecTokenTypes has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecTokenTypes has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAOverworldToken*> m_vecTokenTypes; // CUtlVector<client::CDOTAOverworldToken*> m_vecTokenTypes;
char m_vecTokenTypes[0x18]; // 0x208 char m_vecTokenTypes[0x18]; // 0x220
[[maybe_unused]] std::uint8_t pad_0x220[0x18]; // 0x220 [[maybe_unused]] std::uint8_t pad_0x238[0x18]; // 0x238
// m_vecHeroRewards has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecHeroRewards has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAOverworldHeroReward*> m_vecHeroRewards; // CUtlVector<client::CDOTAOverworldHeroReward*> m_vecHeroRewards;
char m_vecHeroRewards[0x18]; // 0x238 char m_vecHeroRewards[0x18]; // 0x250
// m_vecNodes has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecNodes has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAOverworldNode*> m_vecNodes; // CUtlVector<client::CDOTAOverworldNode*> m_vecNodes;
char m_vecNodes[0x18]; // 0x250 char m_vecNodes[0x18]; // 0x268
// m_vecPaths has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecPaths has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAOverworldPath*> m_vecPaths; // CUtlVector<client::CDOTAOverworldPath*> m_vecPaths;
char m_vecPaths[0x18]; // 0x268 char m_vecPaths[0x18]; // 0x280
// m_vecEncounters has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecEncounters has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAOverworldEncounter*> m_vecEncounters; // CUtlVector<client::CDOTAOverworldEncounter*> m_vecEncounters;
char m_vecEncounters[0x18]; // 0x280 char m_vecEncounters[0x18]; // 0x298
// m_vecHeroes has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecHeroes has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAOverworldHero*> m_vecHeroes; // CUtlVector<client::CDOTAOverworldHero*> m_vecHeroes;
char m_vecHeroes[0x18]; // 0x298 char m_vecHeroes[0x18]; // 0x2b0
// m_vecCharacters has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecCharacters has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAOverworldCharacter*> m_vecCharacters; // CUtlVector<client::CDOTAOverworldCharacter*> m_vecCharacters;
char m_vecCharacters[0x18]; // 0x2b0 char m_vecCharacters[0x18]; // 0x2c8
// m_vecClickables has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecClickables has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::CDOTAOverworldClickable*> m_vecClickables; // CUtlVector<client::CDOTAOverworldClickable*> m_vecClickables;
char m_vecClickables[0x18]; // 0x2c8 char m_vecClickables[0x18]; // 0x2e0
[[maybe_unused]] std::uint8_t pad_0x2e0[0x78]; [[maybe_unused]] std::uint8_t pad_0x2f8[0x78];
}; };
#pragma pack(pop) #pragma pack(pop)
@ -157,26 +159,26 @@ namespace source2sdk::client
static_assert(offsetof(CDOTAOverworldDefinition, m_unMapWidth) == 0x34); static_assert(offsetof(CDOTAOverworldDefinition, m_unMapWidth) == 0x34);
static_assert(offsetof(CDOTAOverworldDefinition, m_unMapHeight) == 0x38); static_assert(offsetof(CDOTAOverworldDefinition, m_unMapHeight) == 0x38);
static_assert(offsetof(CDOTAOverworldDefinition, m_sMapVisualsXmlPath) == 0x40); static_assert(offsetof(CDOTAOverworldDefinition, m_sMapVisualsXmlPath) == 0x40);
static_assert(offsetof(CDOTAOverworldDefinition, m_unStartNodeID) == 0x48); static_assert(offsetof(CDOTAOverworldDefinition, m_vecStartNodeIds) == 0x48);
static_assert(offsetof(CDOTAOverworldDefinition, m_unEndNodeID) == 0x4a); static_assert(offsetof(CDOTAOverworldDefinition, m_unEndNodeID) == 0x60);
static_assert(offsetof(CDOTAOverworldDefinition, m_sVisualNovelName) == 0x50); static_assert(offsetof(CDOTAOverworldDefinition, m_sVisualNovelName) == 0x68);
static_assert(offsetof(CDOTAOverworldDefinition, m_sTokenLocStringPrefix) == 0x58); static_assert(offsetof(CDOTAOverworldDefinition, m_sTokenLocStringPrefix) == 0x70);
static_assert(offsetof(CDOTAOverworldDefinition, m_sActNumberLocString) == 0x60); static_assert(offsetof(CDOTAOverworldDefinition, m_sActNumberLocString) == 0x78);
static_assert(offsetof(CDOTAOverworldDefinition, m_sActTitleLocString) == 0x68); static_assert(offsetof(CDOTAOverworldDefinition, m_sActTitleLocString) == 0x80);
static_assert(offsetof(CDOTAOverworldDefinition, m_unPremiumItemDef) == 0x70); static_assert(offsetof(CDOTAOverworldDefinition, m_unPremiumItemDef) == 0x88);
static_assert(offsetof(CDOTAOverworldDefinition, m_unFullCompletionItemDef) == 0x74); static_assert(offsetof(CDOTAOverworldDefinition, m_unFullCompletionItemDef) == 0x8c);
static_assert(offsetof(CDOTAOverworldDefinition, m_unScrapTokenID) == 0x78); static_assert(offsetof(CDOTAOverworldDefinition, m_unScrapTokenID) == 0x90);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecEventActionTriggers) == 0x80); static_assert(offsetof(CDOTAOverworldDefinition, m_vecEventActionTriggers) == 0x98);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecEventActionGrantAndClaimPairTriggers) == 0x98); static_assert(offsetof(CDOTAOverworldDefinition, m_vecEventActionGrantAndClaimPairTriggers) == 0xb0);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecPathColorRules) == 0xb0); static_assert(offsetof(CDOTAOverworldDefinition, m_vecPathColorRules) == 0xc8);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecTokenTypes) == 0x208); static_assert(offsetof(CDOTAOverworldDefinition, m_vecTokenTypes) == 0x220);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecHeroRewards) == 0x238); static_assert(offsetof(CDOTAOverworldDefinition, m_vecHeroRewards) == 0x250);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecNodes) == 0x250); static_assert(offsetof(CDOTAOverworldDefinition, m_vecNodes) == 0x268);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecPaths) == 0x268); static_assert(offsetof(CDOTAOverworldDefinition, m_vecPaths) == 0x280);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecEncounters) == 0x280); static_assert(offsetof(CDOTAOverworldDefinition, m_vecEncounters) == 0x298);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecHeroes) == 0x298); static_assert(offsetof(CDOTAOverworldDefinition, m_vecHeroes) == 0x2b0);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecCharacters) == 0x2b0); static_assert(offsetof(CDOTAOverworldDefinition, m_vecCharacters) == 0x2c8);
static_assert(offsetof(CDOTAOverworldDefinition, m_vecClickables) == 0x2c8); static_assert(offsetof(CDOTAOverworldDefinition, m_vecClickables) == 0x2e0);
static_assert(sizeof(CDOTAOverworldDefinition) == 0x358); static_assert(sizeof(CDOTAOverworldDefinition) == 0x370);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: true // Standard-layout class: true
// Size: 0x40 // Size: 0x50
// Construct allowed // Construct allowed
// //
// static metadata: MGetKV3ClassDefaults // static metadata: MGetKV3ClassDefaults
@ -31,26 +31,30 @@ namespace source2sdk::client
client::OverworldNodeID_t m_unNodeStart; // 0x2 client::OverworldNodeID_t m_unNodeStart; // 0x2
// metadata: MPropertyDescription // metadata: MPropertyDescription
client::OverworldNodeID_t m_unNodeEnd; // 0x4 client::OverworldNodeID_t m_unNodeEnd; // 0x4
[[maybe_unused]] std::uint8_t pad_0x06[0x2]; // 0x6
// metadata: MPropertyDescription "An event action used to determine."
CUtlString m_strPathHiddenUntilEventAction; // 0x8
// metadata: MPropertyDescription // metadata: MPropertyDescription
uint8_t m_unCost; // 0x6 uint8_t m_unCost; // 0x10
[[maybe_unused]] std::uint8_t pad_0x07[0x19]; // 0x7 [[maybe_unused]] std::uint8_t pad_0x11[0x1f]; // 0x11
// metadata: MPropertyAttributeRange "-1 1" // metadata: MPropertyAttributeRange "-1 1"
// metadata: MPropertyDescription "0: line, +: curve to the 'right' from node 1 to node 2, -: curve left" // metadata: MPropertyDescription "0: line, +: curve to the 'right' from node 1 to node 2, -: curve left"
float m_flCircleInvRadius; // 0x20 float m_flCircleInvRadius; // 0x30
[[maybe_unused]] std::uint8_t pad_0x24[0x4]; // 0x24 [[maybe_unused]] std::uint8_t pad_0x34[0x4]; // 0x34
// metadata: MPropertyDescription // metadata: MPropertyDescription
// m_vecRequiredTokenNames has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecRequiredTokenNames has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CUtlString> m_vecRequiredTokenNames; // CUtlVector<CUtlString> m_vecRequiredTokenNames;
char m_vecRequiredTokenNames[0x18]; // 0x28 char m_vecRequiredTokenNames[0x18]; // 0x38
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(offsetof(CDOTAOverworldPath, m_unID) == 0x0); static_assert(offsetof(CDOTAOverworldPath, m_unID) == 0x0);
static_assert(offsetof(CDOTAOverworldPath, m_unNodeStart) == 0x2); static_assert(offsetof(CDOTAOverworldPath, m_unNodeStart) == 0x2);
static_assert(offsetof(CDOTAOverworldPath, m_unNodeEnd) == 0x4); static_assert(offsetof(CDOTAOverworldPath, m_unNodeEnd) == 0x4);
static_assert(offsetof(CDOTAOverworldPath, m_unCost) == 0x6); static_assert(offsetof(CDOTAOverworldPath, m_strPathHiddenUntilEventAction) == 0x8);
static_assert(offsetof(CDOTAOverworldPath, m_flCircleInvRadius) == 0x20); static_assert(offsetof(CDOTAOverworldPath, m_unCost) == 0x10);
static_assert(offsetof(CDOTAOverworldPath, m_vecRequiredTokenNames) == 0x28); static_assert(offsetof(CDOTAOverworldPath, m_flCircleInvRadius) == 0x30);
static_assert(offsetof(CDOTAOverworldPath, m_vecRequiredTokenNames) == 0x38);
static_assert(sizeof(CDOTAOverworldPath) == 0x40); static_assert(sizeof(CDOTAOverworldPath) == 0x50);
}; };

View File

@ -14,11 +14,10 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xb60 // Size: 0xba8
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkUserGroupProxy "CDOTAPlayerPawn" // static metadata: MNetworkUserGroupProxy "CDOTAPlayerPawn"
// static metadata: MNetworkExcludeByName "m_angRotation" // static metadata: MNetworkExcludeByName "m_angRotation"
@ -41,10 +40,10 @@ namespace source2sdk::client
{ {
public: public:
// Datamap fields: // Datamap fields:
// CDOTAPlayer_CameraServices m_pCameraServices; // 0xa48 // CDOTAPlayer_CameraServices m_pCameraServices; // 0xa90
// CDOTAPlayer_MovementServices m_pMovementServices; // 0xa50 // CDOTAPlayer_MovementServices m_pMovementServices; // 0xa98
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTAPlayerPawn) == 0xb60); static_assert(sizeof(CDOTAPlayerPawn) == 0xba8);
}; };

View File

@ -16,7 +16,6 @@ namespace source2sdk::client
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1f8 // Size: 0x1f8
// Has VTable // Has VTable
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CDOTAPlayer_CameraServices : public client::CPlayer_CameraServices class CDOTAPlayer_CameraServices : public client::CPlayer_CameraServices
{ {

View File

@ -16,7 +16,6 @@ namespace source2sdk::client
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1d8 // Size: 0x1d8
// Has VTable // Has VTable
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CDOTAPlayer_MovementServices : public client::CPlayer_MovementServices class CDOTAPlayer_MovementServices : public client::CPlayer_MovementServices
{ {

View File

@ -14,20 +14,19 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xab8 // Size: 0xb00
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CDOTAPropArenaOfBloodWarrior : public client::C_DynamicProp class CDOTAPropArenaOfBloodWarrior : public client::C_DynamicProp
{ {
public: public:
bool m_bDying; // 0xab0 bool m_bDying; // 0xaf8
[[maybe_unused]] std::uint8_t pad_0xab1[0x7]; [[maybe_unused]] std::uint8_t pad_0xaf9[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTAPropArenaOfBloodWarrior because it is not a standard-layout class // Cannot assert offsets of fields in CDOTAPropArenaOfBloodWarrior because it is not a standard-layout class
static_assert(sizeof(CDOTAPropArenaOfBloodWarrior) == 0xab8); static_assert(sizeof(CDOTAPropArenaOfBloodWarrior) == 0xb00);
}; };

View File

@ -16,29 +16,28 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xb10 // Size: 0xb58
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "bool m_bUseAvatar" // static metadata: MNetworkVarNames "bool m_bUseAvatar"
#pragma pack(push, 1) #pragma pack(push, 1)
class CDOTAPropConsumableBanner : public client::C_DynamicProp class CDOTAPropConsumableBanner : public client::C_DynamicProp
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0xab0[0x48]; // 0xab0 [[maybe_unused]] std::uint8_t pad_0xaf8[0x48]; // 0xaf8
client::PlayerID_t m_nPlayerID; // 0xaf8 client::PlayerID_t m_nPlayerID; // 0xb40
[[maybe_unused]] std::uint8_t pad_0xafc[0x4]; // 0xafc [[maybe_unused]] std::uint8_t pad_0xb44[0x4]; // 0xb44
// m_hAvatarTexture has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hAvatarTexture has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeCTextureBase> m_hAvatarTexture; // CStrongHandle<resourcesystem::InfoForResourceTypeCTextureBase> m_hAvatarTexture;
char m_hAvatarTexture[0x8]; // 0xb00 char m_hAvatarTexture[0x8]; // 0xb48
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bUseAvatar; // 0xb08 bool m_bUseAvatar; // 0xb50
[[maybe_unused]] std::uint8_t pad_0xb09[0x7]; [[maybe_unused]] std::uint8_t pad_0xb51[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTAPropConsumableBanner because it is not a standard-layout class // Cannot assert offsets of fields in CDOTAPropConsumableBanner because it is not a standard-layout class
static_assert(sizeof(CDOTAPropConsumableBanner) == 0xb10); static_assert(sizeof(CDOTAPropConsumableBanner) == 0xb58);
}; };

View File

@ -14,11 +14,10 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0xb10 // Size: 0xb58
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable
// //
// static metadata: MNetworkVarNames "int m_nPlayerID" // static metadata: MNetworkVarNames "int m_nPlayerID"
#pragma pack(push, 1) #pragma pack(push, 1)
@ -26,11 +25,11 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_nPlayerID; // 0xb08 int32_t m_nPlayerID; // 0xb50
[[maybe_unused]] std::uint8_t pad_0xb0c[0x4]; [[maybe_unused]] std::uint8_t pad_0xb54[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTAPropPlusPlayerGuildBanner because it is not a standard-layout class // Cannot assert offsets of fields in CDOTAPropPlusPlayerGuildBanner because it is not a standard-layout class
static_assert(sizeof(CDOTAPropPlusPlayerGuildBanner) == 0xb10); static_assert(sizeof(CDOTAPropPlusPlayerGuildBanner) == 0xb58);
}; };

View File

@ -14,11 +14,10 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x5d8 // Size: 0x600
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CDOTA_Ability_Abaddon_AphoticShield : public client::C_DOTABaseAbility class CDOTA_Ability_Abaddon_AphoticShield : public client::C_DOTABaseAbility
{ {
@ -27,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Ability_Abaddon_AphoticShield) == 0x5d8); static_assert(sizeof(CDOTA_Ability_Abaddon_AphoticShield) == 0x600);
}; };

View File

@ -14,11 +14,10 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x5d8 // Size: 0x600
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CDOTA_Ability_Abaddon_BorrowedTime : public client::C_DOTABaseAbility class CDOTA_Ability_Abaddon_BorrowedTime : public client::C_DOTABaseAbility
{ {
@ -27,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Ability_Abaddon_BorrowedTime) == 0x5d8); static_assert(sizeof(CDOTA_Ability_Abaddon_BorrowedTime) == 0x600);
}; };

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