07.11.2023

This commit is contained in:
Konstantin 'cpz' L. 2024-11-07 22:43:48 +03:00
parent 125d020806
commit cef5650f51
260 changed files with 1235 additions and 1165 deletions

View File

@ -27,7 +27,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18e8 // Size: 0x18f0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -46,45 +46,45 @@ namespace source2sdk::client
class CDOTA_BaseNPC_AghsFort_Watch_Tower : public client::C_DOTA_BaseNPC_Building class CDOTA_BaseNPC_AghsFort_Watch_Tower : public client::C_DOTA_BaseNPC_Building
{ {
public: public:
int32_t m_nOptionNumber; // 0x1870 int32_t m_nOptionNumber; // 0x1878
float m_flMovePlayersRadius; // 0x1874 float m_flMovePlayersRadius; // 0x187c
client::CDOTA_BaseNPC_AghsFort_Watch_Tower__ExitDirection_t m_nExitDirection; // 0x1878 client::CDOTA_BaseNPC_AghsFort_Watch_Tower__ExitDirection_t m_nExitDirection; // 0x1880
Vector m_vExitLocation; // 0x187c Vector m_vExitLocation; // 0x1884
int32_t m_nPathSelectedID; // 0x1888 int32_t m_nPathSelectedID; // 0x1890
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_nEncounterType; // 0x188c int32_t m_nEncounterType; // 0x1894
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bIsEliteEncounter; // 0x1890 bool m_bIsEliteEncounter; // 0x1898
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bIsAscensionLevelPicker; // 0x1891 bool m_bIsAscensionLevelPicker; // 0x1899
[[maybe_unused]] std::uint8_t pad_0x1892[0x6]; // 0x1892 [[maybe_unused]] std::uint8_t pad_0x189a[0x6]; // 0x189a
// metadata: MNetworkEnable // metadata: MNetworkEnable
CUtlSymbolLarge m_strEncounterName; // 0x1898 CUtlSymbolLarge m_strEncounterName; // 0x18a0
// metadata: MNetworkEnable // metadata: MNetworkEnable
CUtlSymbolLarge m_strAscensionAbilities; // 0x18a0 CUtlSymbolLarge m_strAscensionAbilities; // 0x18a8
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_hEffigy has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hEffigy has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_BaseEntity> m_hEffigy; // CHandle<client::C_BaseEntity> m_hEffigy;
char m_hEffigy[0x4]; // 0x18a8 char m_hEffigy[0x4]; // 0x18b0
float m_flYaw; // 0x18ac float m_flYaw; // 0x18b4
float m_flStartTime; // 0x18b0 float m_flStartTime; // 0x18b8
entity2::GameTime_t m_flCursorEnterTime; // 0x18b4 entity2::GameTime_t m_flCursorEnterTime; // 0x18bc
bool m_bShowingTooltip; // 0x18b8 bool m_bShowingTooltip; // 0x18c0
[[maybe_unused]] std::uint8_t pad_0x18b9[0x1b]; // 0x18b9 [[maybe_unused]] std::uint8_t pad_0x18c1[0x1b]; // 0x18c1
float m_flLastUpdateTime; // 0x18d4 float m_flLastUpdateTime; // 0x18dc
client::ParticleIndex_t m_nChannellingParticle; // 0x18d8 client::ParticleIndex_t m_nChannellingParticle; // 0x18e0
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_hRoomGate has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hRoomGate has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::CBaseAnimatingActivity> m_hRoomGate; // CHandle<client::CBaseAnimatingActivity> m_hRoomGate;
char m_hRoomGate[0x4]; // 0x18dc char m_hRoomGate[0x4]; // 0x18e4
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bIsBeingChanneled; // 0x18e0 bool m_bIsBeingChanneled; // 0x18e8
[[maybe_unused]] std::uint8_t pad_0x18e1[0x3]; // 0x18e1 [[maybe_unused]] std::uint8_t pad_0x18e9[0x3]; // 0x18e9
// metadata: MNetworkEnable // metadata: MNetworkEnable
float m_flGoalCaptureProgress; // 0x18e4 float m_flGoalCaptureProgress; // 0x18ec
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_BaseNPC_AghsFort_Watch_Tower because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_BaseNPC_AghsFort_Watch_Tower because it is not a standard-layout class
static_assert(sizeof(CDOTA_BaseNPC_AghsFort_Watch_Tower) == 0x18e8); static_assert(sizeof(CDOTA_BaseNPC_AghsFort_Watch_Tower) == 0x18f0);
}; };

View File

@ -19,7 +19,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1878 // Size: 0x1880
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -28,13 +28,13 @@ namespace source2sdk::client
class CDOTA_BaseNPC_CustomEffigy : public client::C_DOTA_BaseNPC_Building class CDOTA_BaseNPC_CustomEffigy : public client::C_DOTA_BaseNPC_Building
{ {
public: public:
uint32_t m_unStatusEffectIndex; // 0x1870 uint32_t m_unStatusEffectIndex; // 0x1878
// m_hPedestal has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hPedestal has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_BaseEntity> m_hPedestal; // CHandle<client::C_BaseEntity> m_hPedestal;
char m_hPedestal[0x4]; // 0x1874 char m_hPedestal[0x4]; // 0x187c
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_BaseNPC_CustomEffigy because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_BaseNPC_CustomEffigy because it is not a standard-layout class
static_assert(sizeof(CDOTA_BaseNPC_CustomEffigy) == 0x1878); static_assert(sizeof(CDOTA_BaseNPC_CustomEffigy) == 0x1880);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1878 // Size: 0x1880
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -23,11 +23,11 @@ namespace source2sdk::client
class CDOTA_BaseNPC_Effigy_AghsFort : public client::C_DOTA_BaseNPC_Building class CDOTA_BaseNPC_Effigy_AghsFort : public client::C_DOTA_BaseNPC_Building
{ {
public: public:
uint32_t m_unStatusEffectIndex; // 0x1870 uint32_t m_unStatusEffectIndex; // 0x1878
[[maybe_unused]] std::uint8_t pad_0x1874[0x4]; [[maybe_unused]] std::uint8_t pad_0x187c[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_BaseNPC_Effigy_AghsFort because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_BaseNPC_Effigy_AghsFort because it is not a standard-layout class
static_assert(sizeof(CDOTA_BaseNPC_Effigy_AghsFort) == 0x1878); static_assert(sizeof(CDOTA_BaseNPC_Effigy_AghsFort) == 0x1880);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_BaseNPC_JungleVarmint) == 0x1800); static_assert(sizeof(CDOTA_BaseNPC_JungleVarmint) == 0x1808);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1808 // Size: 0x1810
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -24,8 +24,8 @@ namespace source2sdk::client
class CDOTA_BaseNPC_Phantom_Assassin_GroundDagger : public client::C_DOTA_BaseNPC_Additive class CDOTA_BaseNPC_Phantom_Assassin_GroundDagger : public client::C_DOTA_BaseNPC_Additive
{ {
public: public:
client::ParticleIndex_t m_nFXIndex; // 0x1800 client::ParticleIndex_t m_nFXIndex; // 0x1808
[[maybe_unused]] std::uint8_t pad_0x1804[0x4]; [[maybe_unused]] std::uint8_t pad_0x180c[0x4];
// Static fields: // Static fields:
static char* &Get_PARTICLE_SPAWN() {return *reinterpret_cast<char**>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CDOTA_BaseNPC_Phantom_Assassin_GroundDagger")->GetStaticFields()[0]->m_pInstance);}; static char* &Get_PARTICLE_SPAWN() {return *reinterpret_cast<char**>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CDOTA_BaseNPC_Phantom_Assassin_GroundDagger")->GetStaticFields()[0]->m_pInstance);};
@ -33,5 +33,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_BaseNPC_Phantom_Assassin_GroundDagger because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_BaseNPC_Phantom_Assassin_GroundDagger because it is not a standard-layout class
static_assert(sizeof(CDOTA_BaseNPC_Phantom_Assassin_GroundDagger) == 0x1808); static_assert(sizeof(CDOTA_BaseNPC_Phantom_Assassin_GroundDagger) == 0x1810);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_BaseNPC_Seasonal_CNY_Balloon) == 0x1800); static_assert(sizeof(CDOTA_BaseNPC_Seasonal_CNY_Balloon) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_BaseNPC_Seasonal_Dragon) == 0x1800); static_assert(sizeof(CDOTA_BaseNPC_Seasonal_Dragon) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_BaseNPC_Seasonal_Penguin) == 0x1800); static_assert(sizeof(CDOTA_BaseNPC_Seasonal_Penguin) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_BaseNPC_Seasonal_TI11_Balloon) == 0x1800); static_assert(sizeof(CDOTA_BaseNPC_Seasonal_TI11_Balloon) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_BaseNPC_Seasonal_TI11_Balloon_Dire) == 0x1800); static_assert(sizeof(CDOTA_BaseNPC_Seasonal_TI11_Balloon_Dire) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_BaseNPC_Seasonal_TI9_Balloon) == 0x1800); static_assert(sizeof(CDOTA_BaseNPC_Seasonal_TI9_Balloon) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_BaseNPC_Seasonal_TI9_Drums) == 0x1800); static_assert(sizeof(CDOTA_BaseNPC_Seasonal_TI9_Drums) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_BaseNPC_Seasonal_TI9_Monkey) == 0x1800); static_assert(sizeof(CDOTA_BaseNPC_Seasonal_TI9_Monkey) == 0x1808);
}; };

View File

@ -24,11 +24,11 @@ namespace source2sdk::client
int32_t bonus_strength; // 0x16e8 int32_t bonus_strength; // 0x16e8
int32_t bonus_agility; // 0x16ec int32_t bonus_agility; // 0x16ec
int32_t bonus_intellect; // 0x16f0 int32_t bonus_intellect; // 0x16f0
int32_t clock_time; // 0x16f4 float bonus_health_regen; // 0x16f4
float bonus_health_regen; // 0x16f8 int32_t bonus_damage; // 0x16f8
int32_t bonus_damage; // 0x16fc int32_t bonus_slow_resistance; // 0x16fc
int32_t bonus_slow_resistance; // 0x1700 int32_t bonus_health; // 0x1700
int32_t bonus_health; // 0x1704 [[maybe_unused]] std::uint8_t pad_0x1704[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: unknown // Alignment: unknown
// Standard-layout class: false // Standard-layout class: false
// Size: 0x16f0 // Size: 0x16f8
// Has VTable // Has VTable
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
@ -23,10 +23,12 @@ namespace source2sdk::client
{ {
public: public:
int32_t movement_speed_buff_rate; // 0x16e8 int32_t movement_speed_buff_rate; // 0x16e8
client::ParticleIndex_t m_nFXIndex; // 0x16ec float slow_resist; // 0x16ec
client::ParticleIndex_t m_nFXIndex; // 0x16f0
[[maybe_unused]] std::uint8_t pad_0x16f4[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_Modifier_Item_Disperser_Movespeed_Buff because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_Modifier_Item_Disperser_Movespeed_Buff because it is not a standard-layout class
static_assert(sizeof(CDOTA_Modifier_Item_Disperser_Movespeed_Buff) == 0x16f0); static_assert(sizeof(CDOTA_Modifier_Item_Disperser_Movespeed_Buff) == 0x16f8);
}; };

View File

@ -26,7 +26,7 @@ namespace source2sdk::client
int32_t bonus_intellect; // 0x16f0 int32_t bonus_intellect; // 0x16f0
float bonus_mana_regen; // 0x16f4 float bonus_mana_regen; // 0x16f4
int32_t bonus_max_mana_percentage; // 0x16f8 int32_t bonus_max_mana_percentage; // 0x16f8
int32_t clock_time; // 0x16fc [[maybe_unused]] std::uint8_t pad_0x16fc[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -25,8 +25,8 @@ namespace source2sdk::client
int32_t bonus_agility; // 0x16ec int32_t bonus_agility; // 0x16ec
int32_t bonus_intellect; // 0x16f0 int32_t bonus_intellect; // 0x16f0
int32_t bonus_attack_speed; // 0x16f4 int32_t bonus_attack_speed; // 0x16f4
int32_t clock_time; // 0x16f8 float bonus_armor; // 0x16f8
float bonus_armor; // 0x16fc [[maybe_unused]] std::uint8_t pad_0x16fc[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: unknown // Alignment: unknown
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1710 // Size: 0x1708
// Has VTable // Has VTable
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
@ -30,11 +30,9 @@ namespace source2sdk::client
int32_t evasion; // 0x16fc int32_t evasion; // 0x16fc
int32_t m_iTotalAmount; // 0x1700 int32_t m_iTotalAmount; // 0x1700
int32_t ally_pct; // 0x1704 int32_t ally_pct; // 0x1704
int32_t day_vision_multiplier; // 0x1708
[[maybe_unused]] std::uint8_t pad_0x170c[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_Modifier_Mirana_SolarFlare because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_Modifier_Mirana_SolarFlare because it is not a standard-layout class
static_assert(sizeof(CDOTA_Modifier_Mirana_SolarFlare) == 0x1710); static_assert(sizeof(CDOTA_Modifier_Mirana_SolarFlare) == 0x1708);
}; };

View File

@ -0,0 +1,29 @@
#pragma once
#include "source2sdk/client/CDOTA_Buff.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: unknown
// Standard-layout class: false
// Size: 0x16e8
// Has VTable
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1)
class CDOTA_Modifier_Mirana_Starfall_Protection : public client::CDOTA_Buff
{
public:
// No schema binary for binding
};
#pragma pack(pop)
static_assert(sizeof(CDOTA_Modifier_Mirana_Starfall_Protection) == 0x16e8);
};

View File

@ -9,30 +9,33 @@
// Created using source2gen - github.com/neverlosecc/source2gen // Created using source2gen - github.com/neverlosecc/source2gen
// ///////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////
namespace source2sdk::client
{
class C_DOTA_Ability_Lone_Druid_Bear_Necessities;
};
namespace source2sdk::client namespace source2sdk::client
{ {
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: unknown // Alignment: unknown
// Standard-layout class: false // Standard-layout class: false
// Size: 0x16f0 // Size: 0x1718
// Has VTable // Has VTable
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CDOTA_Modifier_Spirit_Bear_Necessities : public client::CDOTA_Buff class CDOTA_Modifier_Spirit_Bear_Necessities : public client::CDOTA_Buff
{ {
public: public:
// m_hAbilityBearNecessities has a template type with potentially unknown template parameters. You can try uncommenting the field below. float bonus_int; // 0x16e8
// CHandle<client::C_DOTA_Ability_Lone_Druid_Bear_Necessities> m_hAbilityBearNecessities; float bonus_str; // 0x16ec
char m_hAbilityBearNecessities[0x4]; // 0x16e8 float bonus_agi; // 0x16f0
int32_t item_slots; // 0x16ec int32_t bonus_attack_speed; // 0x16f4
int32_t bonus_attack_damage; // 0x16f8
float bonus_health_regen; // 0x16fc
float bonus_health_regen_percent; // 0x1700
float bonus_mana_regen; // 0x1704
int32_t bonus_health; // 0x1708
int32_t bonus_mana; // 0x170c
float bonus_evasion; // 0x1710
int32_t item_slots; // 0x1714
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_Modifier_Spirit_Bear_Necessities because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_Modifier_Spirit_Bear_Necessities because it is not a standard-layout class
static_assert(sizeof(CDOTA_Modifier_Spirit_Bear_Necessities) == 0x16f0); static_assert(sizeof(CDOTA_Modifier_Spirit_Bear_Necessities) == 0x1718);
}; };

View File

@ -23,8 +23,8 @@ namespace source2sdk::client
public: public:
float attack_slow; // 0x16e8 float attack_slow; // 0x16e8
float movement_slow_max; // 0x16ec float movement_slow_max; // 0x16ec
float debuff_radius; // 0x16f0 float movement_slow_min; // 0x16f0
[[maybe_unused]] std::uint8_t pad_0x16f4[0x4]; float debuff_radius; // 0x16f4
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -14,16 +14,18 @@ namespace source2sdk::client
// Registered alignment: unknown // Registered alignment: unknown
// Alignment: unknown // Alignment: unknown
// Standard-layout class: false // Standard-layout class: false
// Size: 0x16f8 // Size: 0x1700
// Has VTable // Has VTable
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
#pragma pack(push, 1) #pragma pack(push, 1)
class CDOTA_Modifier_Windrunner_Windrun_Invis : public client::CDOTA_Modifier_Invisible class CDOTA_Modifier_Windrunner_Windrun_Invis : public client::CDOTA_Modifier_Invisible
{ {
public: public:
// No schema binary for binding bool m_bDispellable; // 0x16f8
[[maybe_unused]] std::uint8_t pad_0x16f9[0x7];
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Modifier_Windrunner_Windrun_Invis) == 0x16f8); // Cannot assert offsets of fields in CDOTA_Modifier_Windrunner_Windrun_Invis because it is not a standard-layout class
static_assert(sizeof(CDOTA_Modifier_Windrunner_Windrun_Invis) == 0x1700);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Muerta_Revenant) == 0x1800); static_assert(sizeof(CDOTA_Muerta_Revenant) == 0x1808);
}; };

View File

@ -19,7 +19,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1818 // Size: 0x1820
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -27,14 +27,14 @@ namespace source2sdk::client
class CDOTA_NPC_Observer_Ward : public client::C_DOTA_BaseNPC_Additive class CDOTA_NPC_Observer_Ward : public client::C_DOTA_BaseNPC_Additive
{ {
public: public:
int32_t m_iDuration; // 0x1800 int32_t m_iDuration; // 0x1808
[[maybe_unused]] std::uint8_t pad_0x1804[0x4]; // 0x1804 [[maybe_unused]] std::uint8_t pad_0x180c[0x4]; // 0x180c
particleslib::CNewParticleEffect* m_pVisionRangeFX; // 0x1808 particleslib::CNewParticleEffect* m_pVisionRangeFX; // 0x1810
int32_t m_nPreviewViewer; // 0x1810 int32_t m_nPreviewViewer; // 0x1818
[[maybe_unused]] std::uint8_t pad_0x1814[0x4]; [[maybe_unused]] std::uint8_t pad_0x181c[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_NPC_Observer_Ward because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_NPC_Observer_Ward because it is not a standard-layout class
static_assert(sizeof(CDOTA_NPC_Observer_Ward) == 0x1818); static_assert(sizeof(CDOTA_NPC_Observer_Ward) == 0x1820);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1820 // Size: 0x1828
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -22,11 +22,11 @@ namespace source2sdk::client
class CDOTA_NPC_Observer_Ward_TrueSight : public client::CDOTA_NPC_Observer_Ward class CDOTA_NPC_Observer_Ward_TrueSight : public client::CDOTA_NPC_Observer_Ward
{ {
public: public:
float m_flTrueSight; // 0x1818 float m_flTrueSight; // 0x1820
CEntityHandle m_hAbilityEntity; // 0x181c CEntityHandle m_hAbilityEntity; // 0x1824
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_NPC_Observer_Ward_TrueSight because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_NPC_Observer_Ward_TrueSight because it is not a standard-layout class
static_assert(sizeof(CDOTA_NPC_Observer_Ward_TrueSight) == 0x1820); static_assert(sizeof(CDOTA_NPC_Observer_Ward_TrueSight) == 0x1828);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1810 // Size: 0x1818
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_AghsFort_Creature_DragonKnight) == 0x1810); static_assert(sizeof(CDOTA_Unit_AghsFort_Creature_DragonKnight) == 0x1818);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_AghsFort_SpectralTusk_Tombstone) == 0x1800); static_assert(sizeof(CDOTA_Unit_AghsFort_SpectralTusk_Tombstone) == 0x1808);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1830 // Size: 0x1838
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -24,11 +24,11 @@ namespace source2sdk::client
class CDOTA_Unit_Announcer : public client::C_DOTA_BaseNPC class CDOTA_Unit_Announcer : public client::C_DOTA_BaseNPC
{ {
public: public:
client::CAnnouncerDescriptor m_currentAnnouncer; // 0x1800 client::CAnnouncerDescriptor m_currentAnnouncer; // 0x1808
[[maybe_unused]] std::uint8_t pad_0x1828[0x8]; [[maybe_unused]] std::uint8_t pad_0x1830[0x8];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_Unit_Announcer because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_Unit_Announcer because it is not a standard-layout class
static_assert(sizeof(CDOTA_Unit_Announcer) == 0x1830); static_assert(sizeof(CDOTA_Unit_Announcer) == 0x1838);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1830 // Size: 0x1838
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Announcer_Killing_Spree) == 0x1830); static_assert(sizeof(CDOTA_Unit_Announcer_Killing_Spree) == 0x1838);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_CustomGameAnnouncer) == 0x1800); static_assert(sizeof(CDOTA_Unit_CustomGameAnnouncer) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_CustomGameAnnouncerAghanim) == 0x1800); static_assert(sizeof(CDOTA_Unit_CustomGameAnnouncerAghanim) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Elder_Titan_AncestralSpirit) == 0x1800); static_assert(sizeof(CDOTA_Unit_Elder_Titan_AncestralSpirit) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Grimstroke_InkCreature) == 0x1800); static_assert(sizeof(CDOTA_Unit_Grimstroke_InkCreature) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_Abaddon) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_Abaddon) == 0x1b90);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b90 // Size: 0x1b98
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -24,11 +24,11 @@ namespace source2sdk::client
class CDOTA_Unit_Hero_AbyssalUnderlord : public client::C_DOTA_BaseNPC_Hero class CDOTA_Unit_Hero_AbyssalUnderlord : public client::C_DOTA_BaseNPC_Hero
{ {
public: public:
client::ParticleIndex_t m_iRangeFX; // 0x1b88 client::ParticleIndex_t m_iRangeFX; // 0x1b90
[[maybe_unused]] std::uint8_t pad_0x1b8c[0x4]; [[maybe_unused]] std::uint8_t pad_0x1b94[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_Unit_Hero_AbyssalUnderlord because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_Unit_Hero_AbyssalUnderlord because it is not a standard-layout class
static_assert(sizeof(CDOTA_Unit_Hero_AbyssalUnderlord) == 0x1b90); static_assert(sizeof(CDOTA_Unit_Hero_AbyssalUnderlord) == 0x1b98);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_Alchemist) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_Alchemist) == 0x1b90);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_AncientApparition) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_AncientApparition) == 0x1b90);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b98 // Size: 0x1ba0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -24,10 +24,10 @@ namespace source2sdk::client
class CDOTA_Unit_Hero_ArcWarden : public client::C_DOTA_BaseNPC_Hero class CDOTA_Unit_Hero_ArcWarden : public client::C_DOTA_BaseNPC_Hero
{ {
public: public:
client::ParticleIndex_t m_nTalkFXIndex; // 0x1b88 client::ParticleIndex_t m_nTalkFXIndex; // 0x1b90
client::ParticleIndex_t m_nFXDeath; // 0x1b8c client::ParticleIndex_t m_nFXDeath; // 0x1b94
client::ParticleIndex_t m_nTempestFX; // 0x1b90 client::ParticleIndex_t m_nTempestFX; // 0x1b98
[[maybe_unused]] std::uint8_t pad_0x1b94[0x4]; [[maybe_unused]] std::uint8_t pad_0x1b9c[0x4];
// Static fields: // Static fields:
static CUtlStringToken &Get_s_NormalFacet() {return *reinterpret_cast<CUtlStringToken*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CDOTA_Unit_Hero_ArcWarden")->GetStaticFields()[0]->m_pInstance);}; static CUtlStringToken &Get_s_NormalFacet() {return *reinterpret_cast<CUtlStringToken*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CDOTA_Unit_Hero_ArcWarden")->GetStaticFields()[0]->m_pInstance);};
@ -36,5 +36,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_Unit_Hero_ArcWarden because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_Unit_Hero_ArcWarden because it is not a standard-layout class
static_assert(sizeof(CDOTA_Unit_Hero_ArcWarden) == 0x1b98); static_assert(sizeof(CDOTA_Unit_Hero_ArcWarden) == 0x1ba0);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_Centaur) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_Centaur) == 0x1b90);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b90 // Size: 0x1b98
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -26,11 +26,11 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_nAttackState; // 0x1b88 int32_t m_nAttackState; // 0x1b90
[[maybe_unused]] std::uint8_t pad_0x1b8c[0x4]; [[maybe_unused]] std::uint8_t pad_0x1b94[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_Unit_Hero_Dawnbreaker because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_Unit_Hero_Dawnbreaker because it is not a standard-layout class
static_assert(sizeof(CDOTA_Unit_Hero_Dawnbreaker) == 0x1b90); static_assert(sizeof(CDOTA_Unit_Hero_Dawnbreaker) == 0x1b98);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_Elder_Titan) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_Elder_Titan) == 0x1b90);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b90 // Size: 0x1b98
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -24,11 +24,11 @@ namespace source2sdk::client
class CDOTA_Unit_Hero_Grimstroke : public client::C_DOTA_BaseNPC_Hero class CDOTA_Unit_Hero_Grimstroke : public client::C_DOTA_BaseNPC_Hero
{ {
public: public:
client::ParticleIndex_t m_nFXDeath; // 0x1b88 client::ParticleIndex_t m_nFXDeath; // 0x1b90
[[maybe_unused]] std::uint8_t pad_0x1b8c[0x4]; [[maybe_unused]] std::uint8_t pad_0x1b94[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in CDOTA_Unit_Hero_Grimstroke because it is not a standard-layout class // Cannot assert offsets of fields in CDOTA_Unit_Hero_Grimstroke because it is not a standard-layout class
static_assert(sizeof(CDOTA_Unit_Hero_Grimstroke) == 0x1b90); static_assert(sizeof(CDOTA_Unit_Hero_Grimstroke) == 0x1b98);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_Gyrocopter) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_Gyrocopter) == 0x1b90);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_Marci) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_Marci) == 0x1b90);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_Mars) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_Mars) == 0x1b90);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_PrimalBeast) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_PrimalBeast) == 0x1b90);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_Ringmaster) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_Ringmaster) == 0x1b90);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_Snapfire) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_Snapfire) == 0x1b90);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CDOTA_Unit_Hero_Void_Spirit) == 0x1b88); static_assert(sizeof(CDOTA_Unit_Hero_Void_Spirit) == 0x1b90);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CIngameEvent_MuertaReleaseSpring2023_DummyModifierHolder) == 0x1800); static_assert(sizeof(CIngameEvent_MuertaReleaseSpring2023_DummyModifierHolder) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1808 // Size: 0x1810
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(CODTA_Unit_Warlock_Imp) == 0x1808); static_assert(sizeof(CODTA_Unit_Warlock_Imp) == 0x1810);
}; };

View File

@ -14,53 +14,18 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x608 // Size: 0x5d8
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
//
// static metadata: MNetworkVarNames "float bonus_int"
// static metadata: MNetworkVarNames "float bonus_str"
// static metadata: MNetworkVarNames "float bonus_agi"
// static metadata: MNetworkVarNames "float bonus_attack_speed"
// static metadata: MNetworkVarNames "float bonus_attack_damage"
// static metadata: MNetworkVarNames "float bonus_health_regen"
// static metadata: MNetworkVarNames "float bonus_health_regen_percent"
// static metadata: MNetworkVarNames "float bonus_mana_regen"
// static metadata: MNetworkVarNames "float bonus_health"
// static metadata: MNetworkVarNames "float bonus_mana"
// static metadata: MNetworkVarNames "float bonus_evasion"
#pragma pack(push, 1) #pragma pack(push, 1)
class C_DOTA_Ability_Lone_Druid_Bear_Necessities : public client::C_DOTABaseAbility class C_DOTA_Ability_Lone_Druid_Bear_Necessities : public client::C_DOTABaseAbility
{ {
public: public:
// metadata: MNetworkEnable // No schema binary for binding
float bonus_int; // 0x5d8
// metadata: MNetworkEnable
float bonus_str; // 0x5dc
// metadata: MNetworkEnable
float bonus_agi; // 0x5e0
// metadata: MNetworkEnable
float bonus_attack_speed; // 0x5e4
// metadata: MNetworkEnable
float bonus_attack_damage; // 0x5e8
// metadata: MNetworkEnable
float bonus_health_regen; // 0x5ec
// metadata: MNetworkEnable
float bonus_health_regen_percent; // 0x5f0
// metadata: MNetworkEnable
float bonus_mana_regen; // 0x5f4
// metadata: MNetworkEnable
float bonus_health; // 0x5f8
// metadata: MNetworkEnable
float bonus_mana; // 0x5fc
// metadata: MNetworkEnable
float bonus_evasion; // 0x600
[[maybe_unused]] std::uint8_t pad_0x604[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_Ability_Lone_Druid_Bear_Necessities because it is not a standard-layout class static_assert(sizeof(C_DOTA_Ability_Lone_Druid_Bear_Necessities) == 0x5d8);
static_assert(sizeof(C_DOTA_Ability_Lone_Druid_Bear_Necessities) == 0x608);
}; };

View File

@ -0,0 +1,31 @@
#pragma once
#include "source2sdk/client/C_DOTABaseAbility.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: 0x5d8
// Has VTable
// Construct allowed
// MClassHasEntityLimitedDataDesc
// MNetworkAssumeNotNetworkable
#pragma pack(push, 1)
class C_DOTA_Ability_Special_Bonus_HP_Regen_3 : public client::C_DOTABaseAbility
{
public:
// No schema binary for binding
};
#pragma pack(pop)
static_assert(sizeof(C_DOTA_Ability_Special_Bonus_HP_Regen_3) == 0x5d8);
};

View File

@ -45,7 +45,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -120,6 +120,8 @@ namespace source2sdk::client
// static metadata: MNetworkVarNames "int m_iDamageMin" // static metadata: MNetworkVarNames "int m_iDamageMin"
// static metadata: MNetworkVarNames "int m_iDamageMax" // static metadata: MNetworkVarNames "int m_iDamageMax"
// static metadata: MNetworkVarNames "int m_iDamageBonus" // static metadata: MNetworkVarNames "int m_iDamageBonus"
// static metadata: MNetworkVarNames "int m_iBaseDamageMin"
// static metadata: MNetworkVarNames "int m_iBaseDamageMax"
// static metadata: MNetworkVarNames "int m_iTaggedAsVisibleByTeam" // static metadata: MNetworkVarNames "int m_iTaggedAsVisibleByTeam"
// static metadata: MNetworkVarNames "CDOTA_ModifierManager m_ModifierManager" // static metadata: MNetworkVarNames "CDOTA_ModifierManager m_ModifierManager"
// static metadata: MNetworkVarNames "CDOTA_UnitInventory m_Inventory" // static metadata: MNetworkVarNames "CDOTA_UnitInventory m_Inventory"
@ -312,229 +314,233 @@ namespace source2sdk::client
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iDamageBonus; // 0xc28 int32_t m_iDamageBonus; // 0xc28
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iBaseDamageMin; // 0xc2c
// metadata: MNetworkEnable
int32_t m_iBaseDamageMax; // 0xc30
// metadata: MNetworkEnable
// metadata: MNetworkPriority "32" // metadata: MNetworkPriority "32"
int32_t m_iTaggedAsVisibleByTeam; // 0xc2c int32_t m_iTaggedAsVisibleByTeam; // 0xc34
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::CDOTA_ModifierManager m_ModifierManager; // 0xc30 client::CDOTA_ModifierManager m_ModifierManager; // 0xc38
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::C_DOTA_UnitInventory m_Inventory; // 0xf50 client::C_DOTA_UnitInventory m_Inventory; // 0xf58
[[maybe_unused]] std::uint8_t pad_0x1020[0x8]; // 0x1020 [[maybe_unused]] std::uint8_t pad_0x1028[0x8]; // 0x1028
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnUnitStateChanged" // metadata: MNetworkChangeCallback "OnUnitStateChanged"
// metadata: MNetworkPriority "32" // metadata: MNetworkPriority "32"
uint64_t m_nUnitState64; // 0x1028 uint64_t m_nUnitState64; // 0x1030
[[maybe_unused]] std::uint8_t pad_0x1030[0x8]; // 0x1030 [[maybe_unused]] std::uint8_t pad_0x1038[0x8]; // 0x1038
uint64_t m_nUnitDebuffState; // 0x1038 uint64_t m_nUnitDebuffState; // 0x1040
bool m_bHasInventory; // 0x1040 bool m_bHasInventory; // 0x1048
[[maybe_unused]] std::uint8_t pad_0x1041[0x3]; // 0x1041 [[maybe_unused]] std::uint8_t pad_0x1049[0x3]; // 0x1049
int32_t m_iAcquisitionRange; // 0x1044 int32_t m_iAcquisitionRange; // 0x104c
int32_t m_FoWViewID; // 0x1048 int32_t m_FoWViewID; // 0x1050
int32_t m_iPrevHealthPct; // 0x104c int32_t m_iPrevHealthPct; // 0x1054
int32_t m_iPrevLifeState; // 0x1050 int32_t m_iPrevLifeState; // 0x1058
int32_t m_iPrevTeam; // 0x1054 int32_t m_iPrevTeam; // 0x105c
bool m_bPrevProvidesVision; // 0x1058 bool m_bPrevProvidesVision; // 0x1060
[[maybe_unused]] std::uint8_t pad_0x1059[0x7]; // 0x1059 [[maybe_unused]] std::uint8_t pad_0x1061[0x7]; // 0x1061
uint64_t m_nPrevControllableMask; // 0x1060 uint64_t m_nPrevControllableMask; // 0x1068
[[maybe_unused]] std::uint8_t pad_0x1068[0x8]; // 0x1068 [[maybe_unused]] std::uint8_t pad_0x1070[0x8]; // 0x1070
client::CountdownTimer m_TagTime; // 0x1070 client::CountdownTimer m_TagTime; // 0x1078
client::CountdownTimer m_ClickedTime; // 0x1088 client::CountdownTimer m_ClickedTime; // 0x1090
entity2::GameTime_t m_flIdleRunPoseStartTime[2]; // 0x10a0 entity2::GameTime_t m_flIdleRunPoseStartTime[2]; // 0x10a8
float m_flIdleRunPoseDuration[2]; // 0x10a8 float m_flIdleRunPoseDuration[2]; // 0x10b0
bool m_bAnimationTransitionActive; // 0x10b0 bool m_bAnimationTransitionActive; // 0x10b8
[[maybe_unused]] std::uint8_t pad_0x10b1[0x3]; // 0x10b1 [[maybe_unused]] std::uint8_t pad_0x10b9[0x3]; // 0x10b9
int32_t m_nAnimationTransitionPoseParameters[2]; // 0x10b4 int32_t m_nAnimationTransitionPoseParameters[2]; // 0x10bc
int32_t m_nAnimationTransitionInjuredPoseParameters[2]; // 0x10bc int32_t m_nAnimationTransitionInjuredPoseParameters[2]; // 0x10c4
int32_t m_nAnimationTransitionAggressivePoseParameters[2]; // 0x10c4 int32_t m_nAnimationTransitionAggressivePoseParameters[2]; // 0x10cc
[[maybe_unused]] std::uint8_t pad_0x10cc[0x5c]; // 0x10cc [[maybe_unused]] std::uint8_t pad_0x10d4[0x5c]; // 0x10d4
entity2::GameTime_t m_flTimeSinceLastAbilityNag; // 0x1128 entity2::GameTime_t m_flTimeSinceLastAbilityNag; // 0x1130
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkPriority "32" // metadata: MNetworkPriority "32"
int32_t m_iAttackCapabilities; // 0x112c int32_t m_iAttackCapabilities; // 0x1134
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkPriority "32" // metadata: MNetworkPriority "32"
int32_t m_iSpecialAbility; // 0x1130 int32_t m_iSpecialAbility; // 0x1138
int32_t m_iMoveCapabilities; // 0x1134 int32_t m_iMoveCapabilities; // 0x113c
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::PlayerID_t m_nPlayerOwnerID; // 0x1138 client::PlayerID_t m_nPlayerOwnerID; // 0x1140
// metadata: MNetworkEnable // metadata: MNetworkEnable
entity2::GameTime_t m_flLastDamageTime; // 0x113c entity2::GameTime_t m_flLastDamageTime; // 0x1144
// metadata: MNetworkEnable // metadata: MNetworkEnable
entity2::GameTime_t m_flLastAttackTime; // 0x1140 entity2::GameTime_t m_flLastAttackTime; // 0x1148
[[maybe_unused]] std::uint8_t pad_0x1144[0x4]; // 0x1144 [[maybe_unused]] std::uint8_t pad_0x114c[0x4]; // 0x114c
CUtlSymbolLarge m_iszMinimapIcon; // 0x1148 CUtlSymbolLarge m_iszMinimapIcon; // 0x1150
[[maybe_unused]] std::uint8_t pad_0x1150[0x8]; // 0x1150 [[maybe_unused]] std::uint8_t pad_0x1158[0x8]; // 0x1158
float m_flMinimapIconSize; // 0x1158 float m_flMinimapIconSize; // 0x1160
bool m_bMinimapDisableTint; // 0x115c bool m_bMinimapDisableTint; // 0x1164
bool m_bMinimapDisableRotation; // 0x115d bool m_bMinimapDisableRotation; // 0x1165
Color m_colorHeroGlow; // 0x115e Color m_colorHeroGlow; // 0x1166
[[maybe_unused]] std::uint8_t pad_0x1162[0x2]; // 0x1162 [[maybe_unused]] std::uint8_t pad_0x116a[0x2]; // 0x116a
int32_t m_iNearShopMask; // 0x1164 int32_t m_iNearShopMask; // 0x116c
int32_t m_nPoseParameterTurn; // 0x1168 int32_t m_nPoseParameterTurn; // 0x1170
int32_t m_nPoseParameterRun; // 0x116c int32_t m_nPoseParameterRun; // 0x1174
float m_flLean; // 0x1170 float m_flLean; // 0x1178
float m_flRun; // 0x1174 float m_flRun; // 0x117c
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkPriority "32" // metadata: MNetworkPriority "32"
int32_t m_anglediff; // 0x1178 int32_t m_anglediff; // 0x1180
bool m_bInfoKeyActive; // 0x117c bool m_bInfoKeyActive; // 0x1184
bool m_bNewUpdateAssetModifiersNetworked; // 0x117d bool m_bNewUpdateAssetModifiersNetworked; // 0x1185
[[maybe_unused]] std::uint8_t pad_0x117e[0x2]; // 0x117e
entity2::GameTick_t m_nAssetModifiersLastUpdatedTick; // 0x1180
bool m_bSuppressGlow; // 0x1184
bool m_bWasSinking; // 0x1185
[[maybe_unused]] std::uint8_t pad_0x1186[0x2]; // 0x1186 [[maybe_unused]] std::uint8_t pad_0x1186[0x2]; // 0x1186
float m_flRangeDisplayDist; // 0x1188 entity2::GameTick_t m_nAssetModifiersLastUpdatedTick; // 0x1188
[[maybe_unused]] std::uint8_t pad_0x118c[0x1e4]; // 0x118c bool m_bSuppressGlow; // 0x118c
CUtlSymbolLarge m_szDefaultIdle; // 0x1370 bool m_bWasSinking; // 0x118d
CUtlSymbolLarge m_szDefaultRareIdle; // 0x1378 [[maybe_unused]] std::uint8_t pad_0x118e[0x2]; // 0x118e
client::CountdownTimer m_damagetimer; // 0x1380 float m_flRangeDisplayDist; // 0x1190
Vector m_vRenderOrigin; // 0x1398 [[maybe_unused]] std::uint8_t pad_0x1194[0x1e4]; // 0x1194
float m_fZDelta; // 0x13a4 CUtlSymbolLarge m_szDefaultIdle; // 0x1378
CUtlSymbolLarge m_szDefaultRareIdle; // 0x1380
client::CountdownTimer m_damagetimer; // 0x1388
Vector m_vRenderOrigin; // 0x13a0
float m_fZDelta; // 0x13ac
// metadata: MNetworkEnable // metadata: MNetworkEnable
entity2::GameTime_t m_flDeathTime; // 0x13a8 entity2::GameTime_t m_flDeathTime; // 0x13b0
bool m_bBaseStatsChanged; // 0x13ac bool m_bBaseStatsChanged; // 0x13b4
bool m_bNeedsSoundEmitterRefresh; // 0x13ad bool m_bNeedsSoundEmitterRefresh; // 0x13b5
[[maybe_unused]] std::uint8_t pad_0x13ae[0x2]; // 0x13ae [[maybe_unused]] std::uint8_t pad_0x13b6[0x2]; // 0x13b6
// metadata: MNetworkEnable // metadata: MNetworkEnable
float m_flPhysicalArmorValue; // 0x13b0 float m_flPhysicalArmorValue; // 0x13b8
// metadata: MNetworkEnable // metadata: MNetworkEnable
float m_flMagicalResistanceValue; // 0x13b4 float m_flMagicalResistanceValue; // 0x13bc
int32_t m_nPrevSequenceParity; // 0x13b8 int32_t m_nPrevSequenceParity; // 0x13c0
[[maybe_unused]] std::uint8_t pad_0x13bc[0xa4]; // 0x13bc [[maybe_unused]] std::uint8_t pad_0x13c4[0xa4]; // 0x13c4
float m_flPrevInvisLevel; // 0x1460 float m_flPrevInvisLevel; // 0x1468
[[maybe_unused]] std::uint8_t pad_0x1464[0x4]; // 0x1464 [[maybe_unused]] std::uint8_t pad_0x146c[0x4]; // 0x146c
// m_nOriginalModelIndex has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_nOriginalModelIndex has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeCModel> m_nOriginalModelIndex; // CStrongHandle<resourcesystem::InfoForResourceTypeCModel> m_nOriginalModelIndex;
char m_nOriginalModelIndex[0x8]; // 0x1468 char m_nOriginalModelIndex[0x8]; // 0x1470
// m_nClientOriginalModelIndex has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_nClientOriginalModelIndex has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeCModel> m_nClientOriginalModelIndex; // CStrongHandle<resourcesystem::InfoForResourceTypeCModel> m_nClientOriginalModelIndex;
char m_nClientOriginalModelIndex[0x8]; // 0x1470 char m_nClientOriginalModelIndex[0x8]; // 0x1478
// m_nClientReplacementModelIndex has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_nClientReplacementModelIndex has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeCModel> m_nClientReplacementModelIndex; // CStrongHandle<resourcesystem::InfoForResourceTypeCModel> m_nClientReplacementModelIndex;
char m_nClientReplacementModelIndex[0x8]; // 0x1478 char m_nClientReplacementModelIndex[0x8]; // 0x1480
bool m_bClientReplacementModelNeedsRebuild; // 0x1480 bool m_bClientReplacementModelNeedsRebuild; // 0x1488
[[maybe_unused]] std::uint8_t pad_0x1481[0x3]; // 0x1481 [[maybe_unused]] std::uint8_t pad_0x1489[0x3]; // 0x1489
int32_t m_nClientReplacementModelReloadCount; // 0x1484 int32_t m_nClientReplacementModelReloadCount; // 0x148c
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnUnitModelVariantChanged" // metadata: MNetworkChangeCallback "OnUnitModelVariantChanged"
int8_t m_nUnitModelVariant; // 0x1488 int8_t m_nUnitModelVariant; // 0x1490
int8_t m_nUnitModelVariantCount; // 0x1489 int8_t m_nUnitModelVariantCount; // 0x1491
[[maybe_unused]] std::uint8_t pad_0x148a[0x2]; // 0x148a [[maybe_unused]] std::uint8_t pad_0x1492[0x2]; // 0x1492
int32_t m_iPrevSequence; // 0x148c int32_t m_iPrevSequence; // 0x1494
char* m_pLastWeatherEffectName; // 0x1490 char* m_pLastWeatherEffectName; // 0x1498
[[maybe_unused]] std::uint8_t pad_0x1498[0x8]; // 0x1498 [[maybe_unused]] std::uint8_t pad_0x14a0[0x8]; // 0x14a0
client::CountdownTimer m_VoiceBackgroundSoundTimer; // 0x14a0 client::CountdownTimer m_VoiceBackgroundSoundTimer; // 0x14a8
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bIsWaitingToSpawn; // 0x14b8 bool m_bIsWaitingToSpawn; // 0x14c0
[[maybe_unused]] std::uint8_t pad_0x14b9[0x7]; // 0x14b9 [[maybe_unused]] std::uint8_t pad_0x14c1[0x7]; // 0x14c1
// metadata: MNetworkEnable // metadata: MNetworkEnable
int64_t m_nTotalDamageTaken; // 0x14c0 int64_t m_nTotalDamageTaken; // 0x14c8
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkBitCount "18" // metadata: MNetworkBitCount "18"
// metadata: MNetworkMinValue "-100,000000" // metadata: MNetworkMinValue "-100,000000"
// metadata: MNetworkMaxValue "1000,000000" // metadata: MNetworkMaxValue "1000,000000"
// metadata: MNetworkChangeCallback "OnManaRegenChanged" // metadata: MNetworkChangeCallback "OnManaRegenChanged"
float m_flManaRegen; // 0x14c8 float m_flManaRegen; // 0x14d0
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkBitCount "18" // metadata: MNetworkBitCount "18"
// metadata: MNetworkMinValue "-100,000000" // metadata: MNetworkMinValue "-100,000000"
// metadata: MNetworkMaxValue "1000,000000" // metadata: MNetworkMaxValue "1000,000000"
// metadata: MNetworkChangeCallback "OnHealthRegenChanged" // metadata: MNetworkChangeCallback "OnHealthRegenChanged"
float m_flHealthRegen; // 0x14cc float m_flHealthRegen; // 0x14d4
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bIsMoving; // 0x14d0 bool m_bIsMoving; // 0x14d8
[[maybe_unused]] std::uint8_t pad_0x14d1[0x3]; // 0x14d1 [[maybe_unused]] std::uint8_t pad_0x14d9[0x3]; // 0x14d9
// metadata: MNetworkEnable // metadata: MNetworkEnable
float m_fRevealRadius; // 0x14d4 float m_fRevealRadius; // 0x14dc
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bCanUseWards; // 0x14d8 bool m_bCanUseWards; // 0x14e0
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bCanUseAllItems; // 0x14d9 bool m_bCanUseAllItems; // 0x14e1
[[maybe_unused]] std::uint8_t pad_0x14da[0x2]; // 0x14da [[maybe_unused]] std::uint8_t pad_0x14e2[0x2]; // 0x14e2
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iXPBounty; // 0x14dc int32_t m_iXPBounty; // 0x14e4
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iXPBountyExtra; // 0x14e0 int32_t m_iXPBountyExtra; // 0x14e8
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iGoldBountyMin; // 0x14e4 int32_t m_iGoldBountyMin; // 0x14ec
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iGoldBountyMax; // 0x14e8 int32_t m_iGoldBountyMax; // 0x14f0
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_hOwnerNPC has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hOwnerNPC has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_BaseEntity> m_hOwnerNPC; // CHandle<client::C_BaseEntity> m_hOwnerNPC;
char m_hOwnerNPC[0x4]; // 0x14ec char m_hOwnerNPC[0x4]; // 0x14f4
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_hGoalEntity has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hGoalEntity has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_BaseEntity> m_hGoalEntity; // CHandle<client::C_BaseEntity> m_hGoalEntity;
char m_hGoalEntity[0x4]; // 0x14f0 char m_hGoalEntity[0x4]; // 0x14f8
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_hNeutralSpawner has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hNeutralSpawner has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_DOTA_NeutralSpawner> m_hNeutralSpawner; // CHandle<client::C_DOTA_NeutralSpawner> m_hNeutralSpawner;
char m_hNeutralSpawner[0x4]; // 0x14f4 char m_hNeutralSpawner[0x4]; // 0x14fc
// m_hClientOverrideMaterial has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hClientOverrideMaterial has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeIMaterial2> m_hClientOverrideMaterial; // CStrongHandle<resourcesystem::InfoForResourceTypeIMaterial2> m_hClientOverrideMaterial;
char m_hClientOverrideMaterial[0x8]; // 0x14f8 char m_hClientOverrideMaterial[0x8]; // 0x1500
bool m_bCombinerMaterialOverrideListChanged; // 0x1500 bool m_bCombinerMaterialOverrideListChanged; // 0x1508
[[maybe_unused]] std::uint8_t pad_0x1501[0x3]; // 0x1501 [[maybe_unused]] std::uint8_t pad_0x1509[0x3]; // 0x1509
int32_t m_nBaseModelMeshCount; // 0x1504 int32_t m_nBaseModelMeshCount; // 0x150c
// m_combinerMaterialOverrideList has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_combinerMaterialOverrideList has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CStrongHandleCopyable<resourcesystem::InfoForResourceTypeIMaterial2>> m_combinerMaterialOverrideList; // CUtlVector<CStrongHandleCopyable<resourcesystem::InfoForResourceTypeIMaterial2>> m_combinerMaterialOverrideList;
char m_combinerMaterialOverrideList[0x18]; // 0x1508 char m_combinerMaterialOverrideList[0x18]; // 0x1510
int8_t m_nArcanaLevel; // 0x1520 int8_t m_nArcanaLevel; // 0x1528
int8_t m_nDefaultArcanaLevel; // 0x1521 int8_t m_nDefaultArcanaLevel; // 0x1529
Color m_defaultColorGemColor; // 0x1522 Color m_defaultColorGemColor; // 0x152a
[[maybe_unused]] std::uint8_t pad_0x1526[0x1a]; // 0x1526 [[maybe_unused]] std::uint8_t pad_0x152e[0x1a]; // 0x152e
bool m_bHasBuiltWearableSpawnList; // 0x1540 bool m_bHasBuiltWearableSpawnList; // 0x1548
bool m_bHasCostume; // 0x1541 bool m_bHasCostume; // 0x1549
bool m_bRecreateParticleSystemsOnModifiersChange; // 0x1542 bool m_bRecreateParticleSystemsOnModifiersChange; // 0x154a
[[maybe_unused]] std::uint8_t pad_0x1543[0x19]; // 0x1543 [[maybe_unused]] std::uint8_t pad_0x154b[0x19]; // 0x154b
float m_flAdditionalSinkDelay; // 0x155c float m_flAdditionalSinkDelay; // 0x1564
[[maybe_unused]] std::uint8_t pad_0x1560[0xe0]; // 0x1560 [[maybe_unused]] std::uint8_t pad_0x1568[0xe0]; // 0x1568
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkPriority "32" // metadata: MNetworkPriority "32"
int32_t m_NetworkActivity; // 0x1640 int32_t m_NetworkActivity; // 0x1648
int32_t m_PrevNetworkActivity; // 0x1644 int32_t m_PrevNetworkActivity; // 0x164c
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkPriority "32" // metadata: MNetworkPriority "32"
int32_t m_NetworkSequenceIndex; // 0x1648 int32_t m_NetworkSequenceIndex; // 0x1650
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bShouldDoFlyHeightVisual; // 0x164c bool m_bShouldDoFlyHeightVisual; // 0x1654
[[maybe_unused]] std::uint8_t pad_0x164d[0x3]; // 0x164d [[maybe_unused]] std::uint8_t pad_0x1655[0x3]; // 0x1655
// metadata: MNetworkEnable // metadata: MNetworkEnable
float m_flStartSequenceCycle; // 0x1650 float m_flStartSequenceCycle; // 0x1658
[[maybe_unused]] std::uint8_t pad_0x1654[0x4]; // 0x1654 [[maybe_unused]] std::uint8_t pad_0x165c[0x4]; // 0x165c
// m_ActivityModifiers has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_ActivityModifiers has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CUtlSymbol> m_ActivityModifiers; // CUtlVector<CUtlSymbol> m_ActivityModifiers;
char m_ActivityModifiers[0x18]; // 0x1658 char m_ActivityModifiers[0x18]; // 0x1660
// m_hBackgroundSceneEnt has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hBackgroundSceneEnt has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_SceneEntity> m_hBackgroundSceneEnt; // CHandle<client::C_SceneEntity> m_hBackgroundSceneEnt;
char m_hBackgroundSceneEnt[0x4]; // 0x1670 char m_hBackgroundSceneEnt[0x4]; // 0x1678
// m_hSpeakingSceneEnt has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hSpeakingSceneEnt has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_SceneEntity> m_hSpeakingSceneEnt; // CHandle<client::C_SceneEntity> m_hSpeakingSceneEnt;
char m_hSpeakingSceneEnt[0x4]; // 0x1674 char m_hSpeakingSceneEnt[0x4]; // 0x167c
[[maybe_unused]] std::uint8_t pad_0x1678[0x10]; // 0x1678 [[maybe_unused]] std::uint8_t pad_0x1680[0x10]; // 0x1680
// m_hOldWearables has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hOldWearables has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CHandle<client::C_EconWearable>> m_hOldWearables; // CUtlVector<CHandle<client::C_EconWearable>> m_hOldWearables;
char m_hOldWearables[0x18]; // 0x1688 char m_hOldWearables[0x18]; // 0x1690
// m_hOldWearableSkins has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hOldWearableSkins has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CUtlStringToken> m_hOldWearableSkins; // CUtlVector<CUtlStringToken> m_hOldWearableSkins;
char m_hOldWearableSkins[0x18]; // 0x16a0 char m_hOldWearableSkins[0x18]; // 0x16a8
// metadata: MNetworkEnable // metadata: MNetworkEnable
char m_CustomHealthLabel[256]; // 0x16b8 char m_CustomHealthLabel[256]; // 0x16c0
// metadata: MNetworkEnable // metadata: MNetworkEnable
Color m_CustomHealthLabelColor; // 0x17b8 Color m_CustomHealthLabelColor; // 0x17c0
client::item_definition_index_t m_nWearableDefIndex; // 0x17bc client::item_definition_index_t m_nWearableDefIndex; // 0x17c4
[[maybe_unused]] std::uint8_t pad_0x17c0[0x1]; // 0x17c0 [[maybe_unused]] std::uint8_t pad_0x17c8[0x1]; // 0x17c8
Color m_gibTintColor; // 0x17c1 Color m_gibTintColor; // 0x17c9
bool m_bForceMaterialCombine; // 0x17c5 bool m_bForceMaterialCombine; // 0x17cd
bool m_bShouldDrawParticlesWhileHidden; // 0x17c6 bool m_bShouldDrawParticlesWhileHidden; // 0x17ce
bool m_bIsClientThinkPending; // 0x17c7 bool m_bIsClientThinkPending; // 0x17cf
bool m_bActivityModifiersDirty; // 0x17c8 bool m_bActivityModifiersDirty; // 0x17d0
bool m_bUnitModelVariantChanged; // 0x17c9 bool m_bUnitModelVariantChanged; // 0x17d1
bool m_bWearablesAreTaunting; // 0x17ca bool m_bWearablesAreTaunting; // 0x17d2
[[maybe_unused]] std::uint8_t pad_0x17cb[0x15]; // 0x17cb [[maybe_unused]] std::uint8_t pad_0x17d3[0x15]; // 0x17d3
bool m_bShowCannotBeDisabledIcon; // 0x17e0 bool m_bShowCannotBeDisabledIcon; // 0x17e8
[[maybe_unused]] std::uint8_t pad_0x17e1[0x1f]; [[maybe_unused]] std::uint8_t pad_0x17e9[0x1f];
// Datamap fields: // Datamap fields:
// int32_t InputSetStyleOverride; // 0x0 // int32_t InputSetStyleOverride; // 0x0
@ -548,5 +554,5 @@ namespace source2sdk::client
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC) == 0x1800); static_assert(sizeof(C_DOTA_BaseNPC) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -26,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Additive) == 0x1800); static_assert(sizeof(C_DOTA_BaseNPC_Additive) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1870 // Size: 0x1878
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -26,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Barracks) == 0x1870); static_assert(sizeof(C_DOTA_BaseNPC_Barracks) == 0x1878);
}; };

View File

@ -19,7 +19,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1870 // Size: 0x1878
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -35,45 +35,45 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iDamageLevel; // 0x1800 int32_t m_iDamageLevel; // 0x1808
client::ParticleIndex_t m_nAmbientFXIndex; // 0x1804 client::ParticleIndex_t m_nAmbientFXIndex; // 0x180c
client::ParticleIndex_t m_nTPFXIndex; // 0x1808 client::ParticleIndex_t m_nTPFXIndex; // 0x1810
client::ParticleIndex_t m_nStatusFXIndex; // 0x180c client::ParticleIndex_t m_nStatusFXIndex; // 0x1814
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_nFXIndex has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_nFXIndex has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition> m_nFXIndex; // CStrongHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition> m_nFXIndex;
char m_nFXIndex[0x8]; // 0x1810 char m_nFXIndex[0x8]; // 0x1818
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_nFXIndexDestruction has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_nFXIndexDestruction has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition> m_nFXIndexDestruction; // CStrongHandle<resourcesystem::InfoForResourceTypeIParticleSystemDefinition> m_nFXIndexDestruction;
char m_nFXIndexDestruction[0x8]; // 0x1818 char m_nFXIndexDestruction[0x8]; // 0x1820
// metadata: MNetworkEnable // metadata: MNetworkEnable
QAngle m_angInitialAngles; // 0x1820 QAngle m_angInitialAngles; // 0x1828
// metadata: MNetworkEnable // metadata: MNetworkEnable
animationsystem::HSequence m_hHeroStatueSequence; // 0x182c animationsystem::HSequence m_hHeroStatueSequence; // 0x1834
// metadata: MNetworkEnable // metadata: MNetworkEnable
animationsystem::HSequence m_hConstantLayerSequence; // 0x1830 animationsystem::HSequence m_hConstantLayerSequence; // 0x1838
// metadata: MNetworkEnable // metadata: MNetworkEnable
float m_fHeroStatueCycle; // 0x1834 float m_fHeroStatueCycle; // 0x183c
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iHeroStatueStatusEffectIndex; // 0x1838 int32_t m_iHeroStatueStatusEffectIndex; // 0x1840
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bHeroStatue; // 0x183c bool m_bHeroStatue; // 0x1844
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bBattleCup; // 0x183d bool m_bBattleCup; // 0x1845
// metadata: MNetworkEnable // metadata: MNetworkEnable
char m_HeroStatueInscription[32]; // 0x183e char m_HeroStatueInscription[32]; // 0x1846
[[maybe_unused]] std::uint8_t pad_0x185e[0x2]; // 0x185e [[maybe_unused]] std::uint8_t pad_0x1866[0x2]; // 0x1866
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::PlayerID_t m_iHeroStatueOwnerPlayerID; // 0x1860 client::PlayerID_t m_iHeroStatueOwnerPlayerID; // 0x1868
// metadata: MNetworkEnable // metadata: MNetworkEnable
Color m_ParticleTintColor; // 0x1864 Color m_ParticleTintColor; // 0x186c
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::FowCustomTeams_t m_nFoWTeam; // 0x1868 client::FowCustomTeams_t m_nFoWTeam; // 0x1870
[[maybe_unused]] std::uint8_t pad_0x186c[0x4]; [[maybe_unused]] std::uint8_t pad_0x1874[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Building because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Building because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Building) == 0x1870); static_assert(sizeof(C_DOTA_BaseNPC_Building) == 0x1878);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Clinkz_Skeleton_Army) == 0x1800); static_assert(sizeof(C_DOTA_BaseNPC_Clinkz_Skeleton_Army) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1810 // Size: 0x1818
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,13 +27,13 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bIsCurrentlyChanneling; // 0x1808 bool m_bIsCurrentlyChanneling; // 0x1810
[[maybe_unused]] std::uint8_t pad_0x1809[0x3]; // 0x1809 [[maybe_unused]] std::uint8_t pad_0x1811[0x3]; // 0x1811
// metadata: MNetworkEnable // metadata: MNetworkEnable
float m_flChannelCycle; // 0x180c float m_flChannelCycle; // 0x1814
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Creature because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Creature because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Creature) == 0x1810); static_assert(sizeof(C_DOTA_BaseNPC_Creature) == 0x1818);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1808 // Size: 0x1810
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -25,11 +25,11 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
float m_flAim; // 0x1800 float m_flAim; // 0x1808
[[maybe_unused]] std::uint8_t pad_0x1804[0x4]; [[maybe_unused]] std::uint8_t pad_0x180c[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Creep because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Creep because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Creep) == 0x1808); static_assert(sizeof(C_DOTA_BaseNPC_Creep) == 0x1810);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1810 // Size: 0x1818
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -53,11 +53,11 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::FowCustomTeams_t m_nFoWTeam; // 0x1808 client::FowCustomTeams_t m_nFoWTeam; // 0x1810
[[maybe_unused]] std::uint8_t pad_0x180c[0x4]; [[maybe_unused]] std::uint8_t pad_0x1814[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Creep_Lane because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Creep_Lane because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Creep_Lane) == 0x1810); static_assert(sizeof(C_DOTA_BaseNPC_Creep_Lane) == 0x1818);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1810 // Size: 0x1818
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -22,10 +22,10 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_Creep_Neutral : public client::C_DOTA_BaseNPC_Creep class C_DOTA_BaseNPC_Creep_Neutral : public client::C_DOTA_BaseNPC_Creep
{ {
public: public:
CUtlString m_sDisplayName; // 0x1808 CUtlString m_sDisplayName; // 0x1810
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Creep_Neutral because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Creep_Neutral because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Creep_Neutral) == 0x1810); static_assert(sizeof(C_DOTA_BaseNPC_Creep_Neutral) == 0x1818);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1810 // Size: 0x1818
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -26,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Creep_Siege) == 0x1810); static_assert(sizeof(C_DOTA_BaseNPC_Creep_Siege) == 0x1818);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1808 // Size: 0x1810
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -26,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Creep_Talking) == 0x1808); static_assert(sizeof(C_DOTA_BaseNPC_Creep_Talking) == 0x1810);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1870 // Size: 0x1878
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Effigy_BattleCup) == 0x1870); static_assert(sizeof(C_DOTA_BaseNPC_Effigy_BattleCup) == 0x1878);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1870 // Size: 0x1878
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Effigy_Statue) == 0x1870); static_assert(sizeof(C_DOTA_BaseNPC_Effigy_Statue) == 0x1878);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1870 // Size: 0x1878
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -26,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Filler) == 0x1870); static_assert(sizeof(C_DOTA_BaseNPC_Filler) == 0x1878);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1870 // Size: 0x1878
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Fort) == 0x1870); static_assert(sizeof(C_DOTA_BaseNPC_Fort) == 0x1878);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1878 // Size: 0x1880
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -23,11 +23,11 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_HallofFame : public client::C_DOTA_BaseNPC_Building class C_DOTA_BaseNPC_HallofFame : public client::C_DOTA_BaseNPC_Building
{ {
public: public:
int32_t m_HallofFame; // 0x1870 int32_t m_HallofFame; // 0x1878
[[maybe_unused]] std::uint8_t pad_0x1874[0x4]; [[maybe_unused]] std::uint8_t pad_0x187c[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_HallofFame because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_HallofFame because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_HallofFame) == 0x1878); static_assert(sizeof(C_DOTA_BaseNPC_HallofFame) == 0x1880);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1878 // Size: 0x1880
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -24,11 +24,11 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_Healer : public client::C_DOTA_BaseNPC_Building class C_DOTA_BaseNPC_Healer : public client::C_DOTA_BaseNPC_Building
{ {
public: public:
client::ParticleIndex_t m_iRangeFX; // 0x1870 client::ParticleIndex_t m_iRangeFX; // 0x1878
[[maybe_unused]] std::uint8_t pad_0x1874[0x4]; [[maybe_unused]] std::uint8_t pad_0x187c[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Healer because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Healer because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Healer) == 0x1878); static_assert(sizeof(C_DOTA_BaseNPC_Healer) == 0x1880);
}; };

View File

@ -26,7 +26,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1b88 // Size: 0x1b90
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -58,103 +58,103 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_Hero : public client::C_DOTA_BaseNPC_Additive class C_DOTA_BaseNPC_Hero : public client::C_DOTA_BaseNPC_Additive
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x1800[0x8]; // 0x1800 [[maybe_unused]] std::uint8_t pad_0x1808[0x8]; // 0x1808
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkPriority "32" // metadata: MNetworkPriority "32"
int32_t m_iCurrentXP; // 0x1808 int32_t m_iCurrentXP; // 0x1810
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnAbilityPointsChanged" // metadata: MNetworkChangeCallback "OnAbilityPointsChanged"
int32_t m_iAbilityPoints; // 0x180c int32_t m_iAbilityPoints; // 0x1814
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iTotalAbilityPoints; // 0x1810 int32_t m_iTotalAbilityPoints; // 0x1818
// metadata: MNetworkEnable // metadata: MNetworkEnable
entity2::GameTime_t m_flRespawnTime; // 0x1814 entity2::GameTime_t m_flRespawnTime; // 0x181c
// metadata: MNetworkEnable // metadata: MNetworkEnable
float m_flRespawnTimePenalty; // 0x1818 float m_flRespawnTimePenalty; // 0x1820
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnBaseStatChanged" // metadata: MNetworkChangeCallback "OnBaseStatChanged"
float m_flStrength; // 0x181c float m_flStrength; // 0x1824
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnBaseStatChanged" // metadata: MNetworkChangeCallback "OnBaseStatChanged"
float m_flAgility; // 0x1820 float m_flAgility; // 0x1828
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnBaseStatChanged" // metadata: MNetworkChangeCallback "OnBaseStatChanged"
float m_flIntellect; // 0x1824 float m_flIntellect; // 0x182c
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnBaseStatChanged" // metadata: MNetworkChangeCallback "OnBaseStatChanged"
float m_flStrengthTotal; // 0x1828 float m_flStrengthTotal; // 0x1830
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnBaseStatChanged" // metadata: MNetworkChangeCallback "OnBaseStatChanged"
float m_flAgilityTotal; // 0x182c float m_flAgilityTotal; // 0x1834
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkChangeCallback "OnBaseStatChanged" // metadata: MNetworkChangeCallback "OnBaseStatChanged"
float m_flIntellectTotal; // 0x1830 float m_flIntellectTotal; // 0x1838
[[maybe_unused]] std::uint8_t pad_0x1834[0x4]; // 0x1834 [[maybe_unused]] std::uint8_t pad_0x183c[0x4]; // 0x183c
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_hFacetAbilities has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hFacetAbilities has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// C_NetworkUtlVectorBase<CHandle<client::C_BaseEntity>> m_hFacetAbilities; // C_NetworkUtlVectorBase<CHandle<client::C_BaseEntity>> m_hFacetAbilities;
char m_hFacetAbilities[0x18]; // 0x1838 char m_hFacetAbilities[0x18]; // 0x1840
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iRecentDamage; // 0x1850 int32_t m_iRecentDamage; // 0x1858
float m_fPainFactor; // 0x1854 float m_fPainFactor; // 0x185c
float m_fTargetPainFactor; // 0x1858 float m_fTargetPainFactor; // 0x1860
bool m_bLifeState; // 0x185c bool m_bLifeState; // 0x1864
bool m_bFirstSpawn; // 0x185d bool m_bFirstSpawn; // 0x1865
[[maybe_unused]] std::uint8_t pad_0x185e[0x2]; // 0x185e [[maybe_unused]] std::uint8_t pad_0x1866[0x2]; // 0x1866
client::ParticleIndex_t m_nFXStunIndex; // 0x1860 client::ParticleIndex_t m_nFXStunIndex; // 0x1868
client::ParticleIndex_t m_nFXSilenceIndex; // 0x1864 client::ParticleIndex_t m_nFXSilenceIndex; // 0x186c
client::ParticleIndex_t m_nFXDeathIndex; // 0x1868 client::ParticleIndex_t m_nFXDeathIndex; // 0x1870
[[maybe_unused]] std::uint8_t pad_0x186c[0x24]; // 0x186c [[maybe_unused]] std::uint8_t pad_0x1874[0x24]; // 0x1874
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::PlayerID_t m_iPlayerID; // 0x1890 client::PlayerID_t m_iPlayerID; // 0x1898
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::HeroFacetID_t m_iHeroFacetID; // 0x1894 client::HeroFacetID_t m_iHeroFacetID; // 0x189c
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_hReplicatingOtherHeroModel has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hReplicatingOtherHeroModel has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_DOTA_BaseNPC_Hero> m_hReplicatingOtherHeroModel; // CHandle<client::C_DOTA_BaseNPC_Hero> m_hReplicatingOtherHeroModel;
char m_hReplicatingOtherHeroModel[0x4]; // 0x1898 char m_hReplicatingOtherHeroModel[0x4]; // 0x18a0
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bReincarnating; // 0x189c bool m_bReincarnating; // 0x18a4
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bCustomKillEffect; // 0x189d bool m_bCustomKillEffect; // 0x18a5
[[maybe_unused]] std::uint8_t pad_0x189e[0x2]; // 0x189e [[maybe_unused]] std::uint8_t pad_0x18a6[0x2]; // 0x18a6
// metadata: MNetworkEnable // metadata: MNetworkEnable
entity2::GameTime_t m_flSpawnedAt; // 0x18a0 entity2::GameTime_t m_flSpawnedAt; // 0x18a8
// metadata: MNetworkEnable // metadata: MNetworkEnable
bool m_bScriptDisableRespawns; // 0x18a4 bool m_bScriptDisableRespawns; // 0x18ac
[[maybe_unused]] std::uint8_t pad_0x18a5[0x3]; // 0x18a5 [[maybe_unused]] std::uint8_t pad_0x18ad[0x3]; // 0x18ad
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_iPrimaryAttribute; // 0x18a8 int32_t m_iPrimaryAttribute; // 0x18b0
int32_t m_nLastDrawnHealth; // 0x18ac int32_t m_nLastDrawnHealth; // 0x18b4
float m_flHurtAmount; // 0x18b0 float m_flHurtAmount; // 0x18b8
entity2::GameTime_t m_flLastHurtTime; // 0x18b4 entity2::GameTime_t m_flLastHurtTime; // 0x18bc
float m_flHurtDecayRate; // 0x18b8 float m_flHurtDecayRate; // 0x18c0
entity2::GameTime_t m_flLastHealTime; // 0x18bc entity2::GameTime_t m_flLastHealTime; // 0x18c4
entity2::GameTime_t m_flLastTreeShakeTime; // 0x18c0 entity2::GameTime_t m_flLastTreeShakeTime; // 0x18c8
[[maybe_unused]] std::uint8_t pad_0x18c4[0x4]; // 0x18c4 [[maybe_unused]] std::uint8_t pad_0x18cc[0x4]; // 0x18cc
client::CountdownTimer m_CenterOnHeroCooldownTimer; // 0x18c8 client::CountdownTimer m_CenterOnHeroCooldownTimer; // 0x18d0
[[maybe_unused]] std::uint8_t pad_0x18e0[0x208]; // 0x18e0 [[maybe_unused]] std::uint8_t pad_0x18e8[0x208]; // 0x18e8
// m_CombinedModels has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_CombinedModels has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeCModel> m_CombinedModels[4]; // CStrongHandle<resourcesystem::InfoForResourceTypeCModel> m_CombinedModels[4];
char m_CombinedModels[0x20]; // 0x1ae8 char m_CombinedModels[0x20]; // 0x1af0
int32_t m_nCurrentCombinedModelIndex; // 0x1b08 int32_t m_nCurrentCombinedModelIndex; // 0x1b10
int32_t m_nPendingCombinedModelIndex; // 0x1b0c int32_t m_nPendingCombinedModelIndex; // 0x1b14
client::HeroID_t m_iHeroID; // 0x1b10 client::HeroID_t m_iHeroID; // 0x1b18
float m_flCheckLegacyItemsAt; // 0x1b14 float m_flCheckLegacyItemsAt; // 0x1b1c
bool m_bDisplayAdditionalHeroes; // 0x1b18 bool m_bDisplayAdditionalHeroes; // 0x1b20
[[maybe_unused]] std::uint8_t pad_0x1b19[0xf]; // 0x1b19 [[maybe_unused]] std::uint8_t pad_0x1b21[0xf]; // 0x1b21
// m_CombinedParticleModels has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_CombinedParticleModels has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CStrongHandle<resourcesystem::InfoForResourceTypeCModel> m_CombinedParticleModels[4]; // CStrongHandle<resourcesystem::InfoForResourceTypeCModel> m_CombinedParticleModels[4];
char m_CombinedParticleModels[0x20]; // 0x1b28 char m_CombinedParticleModels[0x20]; // 0x1b30
// m_vecAttachedParticleIndeces has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecAttachedParticleIndeces has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::ParticleIndex_t> m_vecAttachedParticleIndeces; // CUtlVector<client::ParticleIndex_t> m_vecAttachedParticleIndeces;
char m_vecAttachedParticleIndeces[0x18]; // 0x1b48 char m_vecAttachedParticleIndeces[0x18]; // 0x1b50
// m_hPets has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hPets has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CHandle<client::C_BaseEntity>> m_hPets; // CUtlVector<CHandle<client::C_BaseEntity>> m_hPets;
char m_hPets[0x18]; // 0x1b60 char m_hPets[0x18]; // 0x1b68
client::ParticleIndex_t m_nKillStreakFX; // 0x1b78 client::ParticleIndex_t m_nKillStreakFX; // 0x1b80
int32_t m_nKillStreakFXTier; // 0x1b7c int32_t m_nKillStreakFXTier; // 0x1b84
// start of bitfield block at 0x1b80 // start of bitfield block at 0x1b88
uint16_t m_bBuybackDisabled: 1; uint16_t m_bBuybackDisabled: 1;
uint16_t m_bWasFrozen: 1; uint16_t m_bWasFrozen: 1;
uint16_t m_bUpdateClientsideWearables: 1; uint16_t m_bUpdateClientsideWearables: 1;
@ -166,10 +166,10 @@ namespace source2sdk::client
uint16_t m_bResetVisibility: 1; uint16_t m_bResetVisibility: 1;
uint16_t m_bStoredVisibility: 1; uint16_t m_bStoredVisibility: 1;
// end of bitfield block // 10 bits // end of bitfield block // 10 bits
[[maybe_unused]] std::uint8_t pad_0x1b82[0x6]; [[maybe_unused]] std::uint8_t pad_0x1b8a[0x6];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Hero because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Hero because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Hero) == 0x1b88); static_assert(sizeof(C_DOTA_BaseNPC_Hero) == 0x1b90);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18e8 // Size: 0x18f0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -24,11 +24,11 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_HoldoutTower : public client::C_DOTA_BaseNPC_Tower class C_DOTA_BaseNPC_HoldoutTower : public client::C_DOTA_BaseNPC_Tower
{ {
public: public:
client::DOTA_HOLDOUT_TOWER_TYPE m_iTowerType; // 0x18e0 client::DOTA_HOLDOUT_TOWER_TYPE m_iTowerType; // 0x18e8
[[maybe_unused]] std::uint8_t pad_0x18e4[0x4]; [[maybe_unused]] std::uint8_t pad_0x18ec[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_HoldoutTower because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_HoldoutTower because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_HoldoutTower) == 0x18e8); static_assert(sizeof(C_DOTA_BaseNPC_HoldoutTower) == 0x18f0);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18e8 // Size: 0x18f0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -26,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_HoldoutTower_HeavySlow) == 0x18e8); static_assert(sizeof(C_DOTA_BaseNPC_HoldoutTower_HeavySlow) == 0x18f0);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18e8 // Size: 0x18f0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -26,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_HoldoutTower_LightFast) == 0x18e8); static_assert(sizeof(C_DOTA_BaseNPC_HoldoutTower_LightFast) == 0x18f0);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18e8 // Size: 0x18f0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -26,5 +26,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_HoldoutTower_ReduceSpeed) == 0x18e8); static_assert(sizeof(C_DOTA_BaseNPC_HoldoutTower_ReduceSpeed) == 0x18f0);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1808 // Size: 0x1810
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Invoker_Forged_Spirit) == 0x1808); static_assert(sizeof(C_DOTA_BaseNPC_Invoker_Forged_Spirit) == 0x1810);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1870 // Size: 0x1878
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_MangoTree) == 0x1870); static_assert(sizeof(C_DOTA_BaseNPC_MangoTree) == 0x1878);
}; };

View File

@ -20,7 +20,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18b8 // Size: 0x18c0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -29,19 +29,19 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_NeutralItemStash : public client::C_DOTA_BaseNPC_Building class C_DOTA_BaseNPC_NeutralItemStash : public client::C_DOTA_BaseNPC_Building
{ {
public: public:
[[maybe_unused]] std::uint8_t pad_0x1870[0x10]; // 0x1870 [[maybe_unused]] std::uint8_t pad_0x1878[0x10]; // 0x1878
// m_vecNewItemFX has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecNewItemFX has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<client::ParticleIndex_t> m_vecNewItemFX; // CUtlVector<client::ParticleIndex_t> m_vecNewItemFX;
char m_vecNewItemFX[0x18]; // 0x1880 char m_vecNewItemFX[0x18]; // 0x1888
bool m_bHasFoundProps; // 0x1898 bool m_bHasFoundProps; // 0x18a0
bool m_bDidHaveNewItems; // 0x1899 bool m_bDidHaveNewItems; // 0x18a1
[[maybe_unused]] std::uint8_t pad_0x189a[0x6]; // 0x189a [[maybe_unused]] std::uint8_t pad_0x18a2[0x6]; // 0x18a2
// m_vecProps has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_vecProps has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CUtlVector<CHandle<client::C_DynamicPropClientside>> m_vecProps; // CUtlVector<CHandle<client::C_DynamicPropClientside>> m_vecProps;
char m_vecProps[0x18]; // 0x18a0 char m_vecProps[0x18]; // 0x18a8
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_NeutralItemStash because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_NeutralItemStash because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_NeutralItemStash) == 0x18b8); static_assert(sizeof(C_DOTA_BaseNPC_NeutralItemStash) == 0x18c0);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1870 // Size: 0x1878
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Promo) == 0x1870); static_assert(sizeof(C_DOTA_BaseNPC_Promo) == 0x1878);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1808 // Size: 0x1810
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -26,13 +26,13 @@ namespace source2sdk::client
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkAlias "m_hHeroStatueSequence" // metadata: MNetworkAlias "m_hHeroStatueSequence"
animationsystem::HSequence m_hObsoleteHeroStatueSequence; // 0x1800 animationsystem::HSequence m_hObsoleteHeroStatueSequence; // 0x1808
// metadata: MNetworkEnable // metadata: MNetworkEnable
// metadata: MNetworkAlias "m_hConstantLayerSequence" // metadata: MNetworkAlias "m_hConstantLayerSequence"
animationsystem::HSequence m_hObsoleteConstantLayerSequence; // 0x1804 animationsystem::HSequence m_hObsoleteConstantLayerSequence; // 0x180c
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_RotatableBuilding because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_RotatableBuilding because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_RotatableBuilding) == 0x1808); static_assert(sizeof(C_DOTA_BaseNPC_RotatableBuilding) == 0x1810);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18e8 // Size: 0x18f0
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MNetworkAssumeNotNetworkable // MNetworkAssumeNotNetworkable
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_SDKTower) == 0x18e8); static_assert(sizeof(C_DOTA_BaseNPC_SDKTower) == 0x18f0);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Seasonal_Snowman) == 0x1800); static_assert(sizeof(C_DOTA_BaseNPC_Seasonal_Snowman) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1810 // Size: 0x1818
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -23,11 +23,11 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_ShadowShaman_SerpentWard : public client::C_DOTA_BaseNPC_Additive class C_DOTA_BaseNPC_ShadowShaman_SerpentWard : public client::C_DOTA_BaseNPC_Additive
{ {
public: public:
QAngle m_angle; // 0x1800 QAngle m_angle; // 0x1808
int32_t m_iPoseParameterAim; // 0x180c int32_t m_iPoseParameterAim; // 0x1814
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_ShadowShaman_SerpentWard because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_ShadowShaman_SerpentWard because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_ShadowShaman_SerpentWard) == 0x1810); static_assert(sizeof(C_DOTA_BaseNPC_ShadowShaman_SerpentWard) == 0x1818);
}; };

View File

@ -16,7 +16,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18b0 // Size: 0x18b8
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -28,15 +28,15 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
client::DOTA_SHOP_TYPE m_ShopType; // 0x1870 client::DOTA_SHOP_TYPE m_ShopType; // 0x1878
[[maybe_unused]] std::uint8_t pad_0x1874[0x24]; // 0x1874 [[maybe_unused]] std::uint8_t pad_0x187c[0x24]; // 0x187c
client::ParticleIndex_t m_nShopFX; // 0x1898 client::ParticleIndex_t m_nShopFX; // 0x18a0
Vector m_vShopFXOrigin; // 0x189c Vector m_vShopFXOrigin; // 0x18a4
float m_flLastSpeech; // 0x18a8 float m_flLastSpeech; // 0x18b0
[[maybe_unused]] std::uint8_t pad_0x18ac[0x4]; [[maybe_unused]] std::uint8_t pad_0x18b4[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Shop because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Shop because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Shop) == 0x18b0); static_assert(sizeof(C_DOTA_BaseNPC_Shop) == 0x18b8);
}; };

View File

@ -21,7 +21,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x18e0 // Size: 0x18e8
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -33,39 +33,39 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_Tower : public client::C_DOTA_BaseNPC_Building class C_DOTA_BaseNPC_Tower : public client::C_DOTA_BaseNPC_Building
{ {
public: public:
client::ParticleIndex_t m_nAltHeldRangeFX; // 0x1870 client::ParticleIndex_t m_nAltHeldRangeFX; // 0x1878
bool m_bWasInRange; // 0x1874 bool m_bWasInRange; // 0x187c
[[maybe_unused]] std::uint8_t pad_0x1875[0x3]; // 0x1875 [[maybe_unused]] std::uint8_t pad_0x187d[0x3]; // 0x187d
client::ParticleIndex_t m_iRangeFX; // 0x1878 client::ParticleIndex_t m_iRangeFX; // 0x1880
client::ParticleIndex_t m_iPulseFX; // 0x187c client::ParticleIndex_t m_iPulseFX; // 0x1884
uint8_t m_unTowerTier; // 0x1880 uint8_t m_unTowerTier; // 0x1888
[[maybe_unused]] std::uint8_t pad_0x1881[0x3]; // 0x1881 [[maybe_unused]] std::uint8_t pad_0x1889[0x3]; // 0x1889
float m_fTowerAggroDangerAmount; // 0x1884 float m_fTowerAggroDangerAmount; // 0x188c
float m_flControlledUnitInRangeAmount; // 0x1888 float m_flControlledUnitInRangeAmount; // 0x1890
float m_flControlledUnitTargettedAmount; // 0x188c float m_flControlledUnitTargettedAmount; // 0x1894
client::ParticleIndex_t m_iAnticipationFX; // 0x1890 client::ParticleIndex_t m_iAnticipationFX; // 0x1898
[[maybe_unused]] std::uint8_t pad_0x1894[0x4]; // 0x1894 [[maybe_unused]] std::uint8_t pad_0x189c[0x4]; // 0x189c
CUtlSymbolLarge m_szAnticipationFXName; // 0x1898 CUtlSymbolLarge m_szAnticipationFXName; // 0x18a0
// m_hPrevTowerAttackTarget has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hPrevTowerAttackTarget has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_BaseEntity> m_hPrevTowerAttackTarget; // CHandle<client::C_BaseEntity> m_hPrevTowerAttackTarget;
char m_hPrevTowerAttackTarget[0x4]; // 0x18a0 char m_hPrevTowerAttackTarget[0x4]; // 0x18a8
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_hTowerAttackTarget has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hTowerAttackTarget has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_BaseEntity> m_hTowerAttackTarget; // CHandle<client::C_BaseEntity> m_hTowerAttackTarget;
char m_hTowerAttackTarget[0x4]; // 0x18a4 char m_hTowerAttackTarget[0x4]; // 0x18ac
// metadata: MNetworkEnable // metadata: MNetworkEnable
// m_hTowerHighFiveTarget has a template type with potentially unknown template parameters. You can try uncommenting the field below. // m_hTowerHighFiveTarget has a template type with potentially unknown template parameters. You can try uncommenting the field below.
// CHandle<client::C_BaseEntity> m_hTowerHighFiveTarget; // CHandle<client::C_BaseEntity> m_hTowerHighFiveTarget;
char m_hTowerHighFiveTarget[0x4]; // 0x18a8 char m_hTowerHighFiveTarget[0x4]; // 0x18b0
int32_t m_iPoseParameterAim; // 0x18ac int32_t m_iPoseParameterAim; // 0x18b4
QAngle m_angDefaultCustomTowerAngle; // 0x18b0 QAngle m_angDefaultCustomTowerAngle; // 0x18b8
float m_flLastAimYaw; // 0x18bc float m_flLastAimYaw; // 0x18c4
bool m_bClientSideCustomTower; // 0x18c0 bool m_bClientSideCustomTower; // 0x18c8
[[maybe_unused]] std::uint8_t pad_0x18c1[0x7]; // 0x18c1 [[maybe_unused]] std::uint8_t pad_0x18c9[0x7]; // 0x18c9
client::CountdownTimer m_IdleRareAnimationTime; // 0x18c8 client::CountdownTimer m_IdleRareAnimationTime; // 0x18d0
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Tower because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Tower because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Tower) == 0x18e0); static_assert(sizeof(C_DOTA_BaseNPC_Tower) == 0x18e8);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1810 // Size: 0x1818
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Trap_Ward) == 0x1810); static_assert(sizeof(C_DOTA_BaseNPC_Trap_Ward) == 0x1818);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1810 // Size: 0x1818
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -23,11 +23,11 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_Tusk_Sigil : public client::C_DOTA_BaseNPC_Additive class C_DOTA_BaseNPC_Tusk_Sigil : public client::C_DOTA_BaseNPC_Additive
{ {
public: public:
QAngle m_angInitialAngles; // 0x1800 QAngle m_angInitialAngles; // 0x1808
[[maybe_unused]] std::uint8_t pad_0x180c[0x4]; [[maybe_unused]] std::uint8_t pad_0x1814[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Tusk_Sigil because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Tusk_Sigil because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Tusk_Sigil) == 0x1810); static_assert(sizeof(C_DOTA_BaseNPC_Tusk_Sigil) == 0x1818);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1818 // Size: 0x1820
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -23,14 +23,14 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_Venomancer_PlagueWard : public client::C_DOTA_BaseNPC_Additive class C_DOTA_BaseNPC_Venomancer_PlagueWard : public client::C_DOTA_BaseNPC_Additive
{ {
public: public:
bool m_bIsMovable; // 0x1800 bool m_bIsMovable; // 0x1808
[[maybe_unused]] std::uint8_t pad_0x1801[0x3]; // 0x1801 [[maybe_unused]] std::uint8_t pad_0x1809[0x3]; // 0x1809
QAngle m_angle; // 0x1804 QAngle m_angle; // 0x180c
int32_t m_iPoseParameterAim; // 0x1810 int32_t m_iPoseParameterAim; // 0x1818
[[maybe_unused]] std::uint8_t pad_0x1814[0x4]; [[maybe_unused]] std::uint8_t pad_0x181c[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Venomancer_PlagueWard because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Venomancer_PlagueWard because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Venomancer_PlagueWard) == 0x1818); static_assert(sizeof(C_DOTA_BaseNPC_Venomancer_PlagueWard) == 0x1820);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1808 // Size: 0x1810
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_BaseNPC_Warlock_Golem) == 0x1808); static_assert(sizeof(C_DOTA_BaseNPC_Warlock_Golem) == 0x1810);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1888 // Size: 0x1890
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,15 +27,15 @@ namespace source2sdk::client
class C_DOTA_BaseNPC_Watch_Tower : public client::C_DOTA_BaseNPC_Building class C_DOTA_BaseNPC_Watch_Tower : public client::C_DOTA_BaseNPC_Building
{ {
public: public:
client::ParticleIndex_t m_iRangeFX; // 0x1870 client::ParticleIndex_t m_iRangeFX; // 0x1878
[[maybe_unused]] std::uint8_t pad_0x1874[0x4]; // 0x1874 [[maybe_unused]] std::uint8_t pad_0x187c[0x4]; // 0x187c
// metadata: MNetworkEnable // metadata: MNetworkEnable
CUtlSymbolLarge m_szOutpostName; // 0x1878 CUtlSymbolLarge m_szOutpostName; // 0x1880
// metadata: MNetworkEnable // metadata: MNetworkEnable
CUtlSymbolLarge m_szInteractAbilityName; // 0x1880 CUtlSymbolLarge m_szInteractAbilityName; // 0x1888
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_BaseNPC_Watch_Tower because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_BaseNPC_Watch_Tower because it is not a standard-layout class
static_assert(sizeof(C_DOTA_BaseNPC_Watch_Tower) == 0x1888); static_assert(sizeof(C_DOTA_BaseNPC_Watch_Tower) == 0x1890);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_DarkWillow_Creature) == 0x1800); static_assert(sizeof(C_DOTA_DarkWillow_Creature) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_NPC_BaseBlocker) == 0x1800); static_assert(sizeof(C_DOTA_NPC_BaseBlocker) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_NPC_BroodmotherStickyWeb) == 0x1800); static_assert(sizeof(C_DOTA_NPC_BroodmotherStickyWeb) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_NPC_DataDriven) == 0x1800); static_assert(sizeof(C_DOTA_NPC_DataDriven) == 0x1808);
}; };

View File

@ -20,7 +20,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1890 // Size: 0x1898
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -32,15 +32,15 @@ namespace source2sdk::client
{ {
public: public:
// metadata: MNetworkEnable // metadata: MNetworkEnable
CUtlSymbolLarge m_szInteractAbilityName; // 0x1870 CUtlSymbolLarge m_szInteractAbilityName; // 0x1878
particleslib::CNewParticleEffect* m_pVisionRangeFX; // 0x1878 particleslib::CNewParticleEffect* m_pVisionRangeFX; // 0x1880
client::ParticleIndex_t m_iFxIndex; // 0x1880 client::ParticleIndex_t m_iFxIndex; // 0x1888
int32_t m_nPreviewViewer; // 0x1884 int32_t m_nPreviewViewer; // 0x188c
int32_t m_nTeamNumberShown; // 0x1888 int32_t m_nTeamNumberShown; // 0x1890
[[maybe_unused]] std::uint8_t pad_0x188c[0x4]; [[maybe_unused]] std::uint8_t pad_0x1894[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_NPC_Lantern because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_NPC_Lantern because it is not a standard-layout class
static_assert(sizeof(C_DOTA_NPC_Lantern) == 0x1890); static_assert(sizeof(C_DOTA_NPC_Lantern) == 0x1898);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_NPC_Lich_Ice_Spire) == 0x1800); static_assert(sizeof(C_DOTA_NPC_Lich_Ice_Spire) == 0x1808);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1808 // Size: 0x1810
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -24,11 +24,11 @@ namespace source2sdk::client
class C_DOTA_NPC_TechiesMines : public client::C_DOTA_BaseNPC_Additive class C_DOTA_NPC_TechiesMines : public client::C_DOTA_BaseNPC_Additive
{ {
public: public:
client::ParticleIndex_t m_iRangeFX; // 0x1800 client::ParticleIndex_t m_iRangeFX; // 0x1808
[[maybe_unused]] std::uint8_t pad_0x1804[0x4]; [[maybe_unused]] std::uint8_t pad_0x180c[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_NPC_TechiesMines because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_NPC_TechiesMines because it is not a standard-layout class
static_assert(sizeof(C_DOTA_NPC_TechiesMines) == 0x1808); static_assert(sizeof(C_DOTA_NPC_TechiesMines) == 0x1810);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_NPC_Techies_Minefield_Sign) == 0x1800); static_assert(sizeof(C_DOTA_NPC_Techies_Minefield_Sign) == 0x1808);
}; };

View File

@ -14,7 +14,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1800 // Size: 0x1808
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,5 +27,5 @@ namespace source2sdk::client
}; };
#pragma pack(pop) #pragma pack(pop)
static_assert(sizeof(C_DOTA_NPC_Treant_EyesInTheForest) == 0x1800); static_assert(sizeof(C_DOTA_NPC_Treant_EyesInTheForest) == 0x1808);
}; };

View File

@ -15,7 +15,7 @@ namespace source2sdk::client
// Registered alignment: 0x8 // Registered alignment: 0x8
// Alignment: 0x8 // Alignment: 0x8
// Standard-layout class: false // Standard-layout class: false
// Size: 0x1810 // Size: 0x1818
// Has VTable // Has VTable
// Construct allowed // Construct allowed
// MClassHasEntityLimitedDataDesc // MClassHasEntityLimitedDataDesc
@ -27,15 +27,15 @@ namespace source2sdk::client
class C_DOTA_NPC_WitchDoctor_Ward : public client::C_DOTA_BaseNPC_Additive class C_DOTA_NPC_WitchDoctor_Ward : public client::C_DOTA_BaseNPC_Additive
{ {
public: public:
client::ParticleIndex_t m_nFXSkullIndex; // 0x1800 client::ParticleIndex_t m_nFXSkullIndex; // 0x1808
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_nTargetType; // 0x1804 int32_t m_nTargetType; // 0x180c
// metadata: MNetworkEnable // metadata: MNetworkEnable
int32_t m_nTargetFlags; // 0x1808 int32_t m_nTargetFlags; // 0x1810
[[maybe_unused]] std::uint8_t pad_0x180c[0x4]; [[maybe_unused]] std::uint8_t pad_0x1814[0x4];
}; };
#pragma pack(pop) #pragma pack(pop)
// Cannot assert offsets of fields in C_DOTA_NPC_WitchDoctor_Ward because it is not a standard-layout class // Cannot assert offsets of fields in C_DOTA_NPC_WitchDoctor_Ward because it is not a standard-layout class
static_assert(sizeof(C_DOTA_NPC_WitchDoctor_Ward) == 0x1810); static_assert(sizeof(C_DOTA_NPC_WitchDoctor_Ward) == 0x1818);
}; };

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