diff --git a/sdk/!GlobalTypes.hpp b/sdk/!GlobalTypes.hpp index e45061c0..bd2dc39f 100644 --- a/sdk/!GlobalTypes.hpp +++ b/sdk/!GlobalTypes.hpp @@ -4,8 +4,8 @@ // ///////////////////////////////////////////////////////////// // Binary: !GlobalTypes -// Classes count: 1267 -// Enums count: 308 +// Classes count: 1292 +// Enums count: 307 // Created using source2gen - github.com/neverlosecc/source2gen // ///////////////////////////////////////////////////////////// @@ -420,11 +420,12 @@ enum class VelocityMetricMode : uint8_t }; // Alignment: 4 -// Size: 0x2 +// Size: 0x3 enum class VPhysXJoint_t__Flags_t : uint32_t { JOINT_FLAGS_NONE = 0x0, JOINT_FLAGS_BODY1_FIXED = 0x1, + JOINT_FLAGS_USE_BLOCK_SOLVER = 0x2, }; // Alignment: 4 @@ -810,13 +811,12 @@ enum class ModelBoneFlexComponent_t : uint32_t }; // Alignment: 4 -// Size: 0x9 +// Size: 0x8 enum class MeshDrawPrimitiveFlags_t : uint32_t { MESH_DRAW_FLAGS_NONE = 0x0, MESH_DRAW_FLAGS_USE_SHADOW_FAST_PATH = 0x1, MESH_DRAW_FLAGS_USE_COMPRESSED_NORMAL_TANGENT = 0x2, - MESH_DRAW_FLAGS_USE_COMPRESSED_NORMAL_TANGENT_V2 = 0x4, MESH_DRAW_INPUT_LAYOUT_IS_NOT_MATCHED_TO_MATERIAL = 0x8, MESH_DRAW_FLAGS_USE_COMPRESSED_PER_VERTEX_LIGHTING = 0x10, MESH_DRAW_FLAGS_USE_UNCOMPRESSED_PER_VERTEX_LIGHTING = 0x20, @@ -1086,75 +1086,6 @@ enum class JointMotion_t : uint32_t JOINT_MOTION_COUNT = 0x2, }; -// Alignment: 2 -// Size: 0x24 -enum class PulseInstructionCode_t : uint16_t -{ - INVALID = 0x0, - IMMEDIATE_HALT = 0x1, - RETURN_VOID = 0x2, - RETURN_VALUE = 0x3, - NOP = 0x4, - JUMP = 0x5, - JUMP_COND = 0x6, - CHUNK_LEAP = 0x7, - CHUNK_LEAP_COND = 0x8, - PULSE_CALL_SYNC = 0x9, - PULSE_CALL_ASYNC_FIRE = 0xa, - CELL_INVOKE = 0xb, - LIBRARY_INVOKE = 0xc, - SET_VAR_REG_BOOL = 0xd, - SET_VAR_REG_INT = 0xe, - SET_VAR_REG_FLOAT = 0xf, - SET_VAR_REG_STR = 0x10, - SET_VAR_REG_EHANDLE = 0x11, - SET_VAR_REG_SNDEVT_GUID = 0x12, - SET_VAR_REG_VEC3 = 0x13, - GET_VAR_REG_BOOL = 0x14, - GET_VAR_REG_INT = 0x15, - GET_VAR_REG_FLOAT = 0x16, - GET_VAR_REG_STR = 0x17, - GET_VAR_REG_EHANDLE = 0x18, - GET_VAR_REG_SNDEVT_GUID = 0x19, - GET_VAR_REG_VEC3 = 0x1a, - SET_REGISTER_LIT_BOOL = 0x1b, - SET_REGISTER_LIT_INT = 0x1c, - SET_REGISTER_LIT_FLOAT = 0x1d, - SET_REGISTER_LIT_STR = 0x1e, - SET_REGISTER_LIT_INVAL_EHANDLE = 0x1f, - SET_REGISTER_LIT_INVAL_SNDEVT_GUID = 0x20, - SET_REGISTER_LIT_VEC3 = 0x21, - SET_REGISTER_DOMAIN_VALUE = 0x22, - COUNT = 0x23, -}; - -// Alignment: 4 -// Size: 0xd -enum class PulseValueType_t : uint32_t -{ - PVAL_INVALID = 0xffffffffffffffff, - PVAL_BOOL = 0x0, - PVAL_INT = 0x1, - PVAL_FLOAT = 0x2, - PVAL_STRING = 0x3, - PVAL_VEC3 = 0x4, - PVAL_TRANSFORM = 0x5, - PVAL_EHANDLE = 0x6, - PVAL_RESOURCE = 0x7, - PVAL_SNDEVT_GUID = 0x8, - PVAL_CURSOR_FLOW = 0x9, - PVAL_ANY = 0xa, - PVAL_COUNT = 0xb, -}; - -// Alignment: 4 -// Size: 0x2 -enum class PulseMethodCallMode_t : uint32_t -{ - SYNC_WAIT_FOR_COMPLETION = 0x0, - ASYNC_FIRE_AND_FORGET = 0x1, -}; - // Alignment: 4 // Size: 0x2 enum class SosGroupType_t : uint32_t @@ -1173,12 +1104,13 @@ enum class VMixSubgraphSwitchInterpolationType_t : uint32_t }; // Alignment: 4 -// Size: 0x3 +// Size: 0x4 enum class ActionType_t : uint32_t { SOS_ACTION_NONE = 0x0, SOS_ACTION_LIMITER = 0x1, SOS_ACTION_TIME_LIMIT = 0x2, + SOS_ACTION_SET_SOUNDEVENT_PARAM = 0x3, }; // Alignment: 1 @@ -1376,6 +1308,105 @@ enum class ObjectTypeFlags_t : uint32_t OBJECT_TYPE_STATIC_CUBE_MAP = 0x8000, }; +// Alignment: 2 +// Size: 0x41 +enum class PulseInstructionCode_t : uint16_t +{ + INVALID = 0x0, + IMMEDIATE_HALT = 0x1, + RETURN_VOID = 0x2, + RETURN_VALUE = 0x3, + NOP = 0x4, + JUMP = 0x5, + JUMP_COND = 0x6, + CHUNK_LEAP = 0x7, + CHUNK_LEAP_COND = 0x8, + PULSE_CALL_SYNC = 0x9, + PULSE_CALL_ASYNC_FIRE = 0xa, + CELL_INVOKE = 0xb, + LIBRARY_INVOKE = 0xc, + TARGET_INVOKE = 0xd, + SET_VAR = 0xe, + GET_VAR = 0xf, + SET_REGISTER_LIT_BOOL = 0x10, + SET_REGISTER_LIT_INT = 0x11, + SET_REGISTER_LIT_FLOAT = 0x12, + SET_REGISTER_LIT_STR = 0x13, + SET_REGISTER_LIT_INVAL_EHANDLE = 0x14, + SET_REGISTER_LIT_INVAL_SNDEVT_GUID = 0x15, + SET_REGISTER_LIT_VEC3 = 0x16, + SET_REGISTER_DOMAIN_VALUE = 0x17, + COPY = 0x18, + NOT = 0x19, + NEGATE = 0x1a, + ADD = 0x1b, + SUB = 0x1c, + MUL = 0x1d, + DIV = 0x1e, + MOD = 0x1f, + LT = 0x20, + LTE = 0x21, + EQ = 0x22, + NE = 0x23, + AND = 0x24, + OR = 0x25, + CONVERT_VALUE = 0x26, + LAST_SERIALIZED_CODE = 0x27, + NEGATE_INT = 0x28, + NEGATE_FLOAT = 0x29, + ADD_INT = 0x2a, + ADD_FLOAT = 0x2b, + ADD_STRING = 0x2c, + SUB_INT = 0x2d, + SUB_FLOAT = 0x2e, + MUL_INT = 0x2f, + MUL_FLOAT = 0x30, + DIV_INT = 0x31, + DIV_FLOAT = 0x32, + MOD_INT = 0x33, + MOD_FLOAT = 0x34, + LT_INT = 0x35, + LT_FLOAT = 0x36, + LTE_INT = 0x37, + LTE_FLOAT = 0x38, + EQ_BOOL = 0x39, + EQ_INT = 0x3a, + EQ_FLOAT = 0x3b, + EQ_STRING = 0x3c, + NE_BOOL = 0x3d, + NE_INT = 0x3e, + NE_FLOAT = 0x3f, + NE_STRING = 0x40, +}; + +// Alignment: 4 +// Size: 0xe +enum class PulseValueType_t : uint32_t +{ + PVAL_INVALID = 0xffffffffffffffff, + PVAL_BOOL = 0x0, + PVAL_INT = 0x1, + PVAL_FLOAT = 0x2, + PVAL_STRING = 0x3, + PVAL_VEC3 = 0x4, + PVAL_TRANSFORM = 0x5, + PVAL_EHANDLE = 0x6, + PVAL_RESOURCE = 0x7, + PVAL_SNDEVT_GUID = 0x8, + PVAL_SCHEMA_PTR = 0x9, + PVAL_CURSOR_FLOW = 0xa, + PVAL_ANY = 0xb, + PVAL_COUNT = 0xc, +}; + +// Alignment: 4 +// Size: 0x2 +enum class PulseMethodCallMode_t : uint32_t +{ + SYNC_WAIT_FOR_COMPLETION = 0x0, + ASYNC_FIRE_AND_FORGET = 0x1, +}; + // Alignment: 4 // Size: 0x2 enum class TextureRepetitionMode_t : uint32_t @@ -2013,7 +2044,7 @@ enum class ParticlePostProcessPriorityGroup_t : uint32_t }; // Alignment: 4 -// Size: 0x16 +// Size: 0x18 enum class ParticleFloatType_t : uint32_t { PF_TYPE_INVALID = 0xffffffffffffffff, @@ -2027,17 +2058,19 @@ enum class ParticleFloatType_t : uint32_t PF_TYPE_CONTROL_POINT_CHANGE_AGE = 0x7, PF_TYPE_CONTROL_POINT_SPEED = 0x8, PF_TYPE_PARTICLE_DETAIL_LEVEL = 0x9, - PF_TYPE_RENDERER_CAMERA_DISTANCE = 0xa, - PF_TYPE_RENDERER_CAMERA_DOT_PRODUCT = 0xb, - PF_TYPE_PARTICLE_NOISE = 0xc, - PF_TYPE_PARTICLE_AGE = 0xd, - PF_TYPE_PARTICLE_AGE_NORMALIZED = 0xe, - PF_TYPE_PARTICLE_FLOAT = 0xf, - PF_TYPE_PARTICLE_VECTOR_COMPONENT = 0x10, - PF_TYPE_PARTICLE_SPEED = 0x11, - PF_TYPE_PARTICLE_NUMBER = 0x12, - PF_TYPE_PARTICLE_NUMBER_NORMALIZED = 0x13, - PF_TYPE_COUNT = 0x14, + PF_TYPE_CONCURRENT_DEF_COUNT = 0xa, + PF_TYPE_CLOSEST_CAMERA_DISTANCE = 0xb, + PF_TYPE_RENDERER_CAMERA_DISTANCE = 0xc, + PF_TYPE_RENDERER_CAMERA_DOT_PRODUCT = 0xd, + PF_TYPE_PARTICLE_NOISE = 0xe, + PF_TYPE_PARTICLE_AGE = 0xf, + PF_TYPE_PARTICLE_AGE_NORMALIZED = 0x10, + PF_TYPE_PARTICLE_FLOAT = 0x11, + PF_TYPE_PARTICLE_VECTOR_COMPONENT = 0x12, + PF_TYPE_PARTICLE_SPEED = 0x13, + PF_TYPE_PARTICLE_NUMBER = 0x14, + PF_TYPE_PARTICLE_NUMBER_NORMALIZED = 0x15, + PF_TYPE_COUNT = 0x16, }; // Alignment: 4 @@ -2291,13 +2324,13 @@ enum class TakeDamageFlags_t : uint32_t }; // Alignment: 4 -// Size: 0x16 +// Size: 0x18 enum class WeaponSound_t : uint32_t { WEAPON_SOUND_EMPTY = 0x0, WEAPON_SOUND_SECONDARY_EMPTY = 0x1, WEAPON_SOUND_SINGLE = 0x2, - WEAPON_SOUND_DOUBLE = 0x3, + WEAPON_SOUND_SECONDARY_ATTACK = 0x3, WEAPON_SOUND_RELOAD = 0x4, WEAPON_SOUND_MELEE_MISS = 0x5, WEAPON_SOUND_MELEE_HIT = 0x6, @@ -2307,19 +2340,21 @@ enum class WeaponSound_t : uint32_t WEAPON_SOUND_SPECIAL2 = 0xa, WEAPON_SOUND_SPECIAL3 = 0xb, WEAPON_SOUND_NEARLYEMPTY = 0xc, - WEAPON_SOUND_IMPACT1 = 0xd, + WEAPON_SOUND_IMPACT = 0xd, WEAPON_SOUND_REFLECT = 0xe, - WEAPON_SOUND_SINGLE_ACCURATE = 0xf, - WEAPON_SOUND_ZOOM_IN = 0x10, - WEAPON_SOUND_ZOOM_OUT = 0x11, - WEAPON_SOUND_MOUSE_PRESSED = 0x12, - WEAPON_SOUND_DROP = 0x13, - WEAPON_SOUND_RADIO_USE = 0x14, - WEAPON_SOUND_NUM_TYPES = 0x15, + WEAPON_SOUND_SECONDARY_IMPACT = 0xf, + WEAPON_SOUND_SECONDARY_REFLECT = 0x10, + WEAPON_SOUND_SINGLE_ACCURATE = 0x11, + WEAPON_SOUND_ZOOM_IN = 0x12, + WEAPON_SOUND_ZOOM_OUT = 0x13, + WEAPON_SOUND_MOUSE_PRESSED = 0x14, + WEAPON_SOUND_DROP = 0x15, + WEAPON_SOUND_RADIO_USE = 0x16, + WEAPON_SOUND_NUM_TYPES = 0x17, }; // Alignment: 1 -// Size: 0x7 +// Size: 0x8 enum class EKillTypes_t : uint8_t { KILL_NONE = 0x0, @@ -2328,7 +2363,8 @@ enum class EKillTypes_t : uint8_t KILL_BLAST = 0x3, KILL_BURN = 0x4, KILL_SLASH = 0x5, - KILLTYPE_COUNT = 0x6, + KILL_SHOCK = 0x6, + KILLTYPE_COUNT = 0x7, }; // Alignment: 4 @@ -2779,85 +2815,6 @@ enum class ValueRemapperRatchetType_t : uint32_t RatchetType_EachEngage = 0x1, }; -// Alignment: 4 -// Size: 0x49 -enum class loadout_positions_t : uint32_t -{ - LOADOUT_POSITION_INVALID = 0xffffffffffffffff, - LOADOUT_POSITION_MELEE = 0x0, - LOADOUT_POSITION_C4 = 0x1, - LOADOUT_POSITION_FIRST_AUTO_BUY_WEAPON = 0x0, - LOADOUT_POSITION_LAST_AUTO_BUY_WEAPON = 0x1, - LOADOUT_POSITION_SECONDARY0 = 0x2, - LOADOUT_POSITION_SECONDARY1 = 0x3, - LOADOUT_POSITION_SECONDARY2 = 0x4, - LOADOUT_POSITION_SECONDARY3 = 0x5, - LOADOUT_POSITION_SECONDARY4 = 0x6, - LOADOUT_POSITION_SECONDARY5 = 0x7, - LOADOUT_POSITION_SMG0 = 0x8, - LOADOUT_POSITION_SMG1 = 0x9, - LOADOUT_POSITION_SMG2 = 0xa, - LOADOUT_POSITION_SMG3 = 0xb, - LOADOUT_POSITION_SMG4 = 0xc, - LOADOUT_POSITION_SMG5 = 0xd, - LOADOUT_POSITION_RIFLE0 = 0xe, - LOADOUT_POSITION_RIFLE1 = 0xf, - LOADOUT_POSITION_RIFLE2 = 0x10, - LOADOUT_POSITION_RIFLE3 = 0x11, - LOADOUT_POSITION_RIFLE4 = 0x12, - LOADOUT_POSITION_RIFLE5 = 0x13, - LOADOUT_POSITION_HEAVY0 = 0x14, - LOADOUT_POSITION_HEAVY1 = 0x15, - LOADOUT_POSITION_HEAVY2 = 0x16, - LOADOUT_POSITION_HEAVY3 = 0x17, - LOADOUT_POSITION_HEAVY4 = 0x18, - LOADOUT_POSITION_HEAVY5 = 0x19, - LOADOUT_POSITION_FIRST_WHEEL_WEAPON = 0x2, - LOADOUT_POSITION_LAST_WHEEL_WEAPON = 0x19, - LOADOUT_POSITION_FIRST_PRIMARY_WEAPON = 0x8, - LOADOUT_POSITION_LAST_PRIMARY_WEAPON = 0x19, - LOADOUT_POSITION_FIRST_WHEEL_GRENADE = 0x1a, - LOADOUT_POSITION_GRENADE0 = 0x1a, - LOADOUT_POSITION_GRENADE1 = 0x1b, - LOADOUT_POSITION_GRENADE2 = 0x1c, - LOADOUT_POSITION_GRENADE3 = 0x1d, - LOADOUT_POSITION_GRENADE4 = 0x1e, - LOADOUT_POSITION_GRENADE5 = 0x1f, - LOADOUT_POSITION_LAST_WHEEL_GRENADE = 0x1f, - LOADOUT_POSITION_EQUIPMENT0 = 0x20, - LOADOUT_POSITION_EQUIPMENT1 = 0x21, - LOADOUT_POSITION_EQUIPMENT2 = 0x22, - LOADOUT_POSITION_EQUIPMENT3 = 0x23, - LOADOUT_POSITION_EQUIPMENT4 = 0x24, - LOADOUT_POSITION_EQUIPMENT5 = 0x25, - LOADOUT_POSITION_FIRST_WHEEL_EQUIPMENT = 0x20, - LOADOUT_POSITION_LAST_WHEEL_EQUIPMENT = 0x25, - LOADOUT_POSITION_CLOTHING_CUSTOMPLAYER = 0x26, - LOADOUT_POSITION_PET = 0x27, - LOADOUT_POSITION_CLOTHING_FACEMASK = 0x28, - LOADOUT_POSITION_CLOTHING_HANDS = 0x29, - LOADOUT_POSITION_FIRST_COSMETIC = 0x29, - LOADOUT_POSITION_LAST_COSMETIC = 0x29, - LOADOUT_POSITION_CLOTHING_EYEWEAR = 0x2a, - LOADOUT_POSITION_CLOTHING_HAT = 0x2b, - LOADOUT_POSITION_CLOTHING_LOWERBODY = 0x2c, - LOADOUT_POSITION_CLOTHING_TORSO = 0x2d, - LOADOUT_POSITION_CLOTHING_APPEARANCE = 0x2e, - LOADOUT_POSITION_MISC0 = 0x2f, - LOADOUT_POSITION_MISC1 = 0x30, - LOADOUT_POSITION_MISC2 = 0x31, - LOADOUT_POSITION_MISC3 = 0x32, - LOADOUT_POSITION_MISC4 = 0x33, - LOADOUT_POSITION_MISC5 = 0x34, - LOADOUT_POSITION_MISC6 = 0x35, - LOADOUT_POSITION_MUSICKIT = 0x36, - LOADOUT_POSITION_FLAIR0 = 0x37, - LOADOUT_POSITION_SPRAY0 = 0x38, - LOADOUT_POSITION_FIRST_ALL_CHARACTER = 0x36, - LOADOUT_POSITION_LAST_ALL_CHARACTER = 0x38, - LOADOUT_POSITION_COUNT = 0x39, -}; - // Alignment: 4 // Size: 0x3 enum class TrackOrientationType_t : uint32_t @@ -3093,15 +3050,16 @@ enum class WorldTextPanelVerticalAlign_t : uint32_t }; // Alignment: 1 -// Size: 0x6 +// Size: 0x7 enum class WaterLevel_t : uint8_t { WL_NotInWater = 0x0, WL_Feet = 0x1, - WL_Waist = 0x2, - WL_Chest = 0x3, - WL_FullyUnderwater = 0x4, - WL_Count = 0x5, + WL_Knees = 0x2, + WL_Waist = 0x3, + WL_Chest = 0x4, + WL_FullyUnderwater = 0x5, + WL_Count = 0x6, }; // Alignment: 4 @@ -3329,6 +3287,85 @@ enum class NavAttributeEnum : uint32_t NAV_ATTR_LAST_INDEX = 0x1f, }; +// Alignment: 4 +// Size: 0x49 +enum class loadout_slot_t : uint32_t +{ + LOADOUT_SLOT_INVALID = 0xffffffffffffffff, + LOADOUT_SLOT_MELEE = 0x0, + LOADOUT_SLOT_C4 = 0x1, + LOADOUT_SLOT_FIRST_AUTO_BUY_WEAPON = 0x0, + LOADOUT_SLOT_LAST_AUTO_BUY_WEAPON = 0x1, + LOADOUT_SLOT_SECONDARY0 = 0x2, + LOADOUT_SLOT_SECONDARY1 = 0x3, + LOADOUT_SLOT_SECONDARY2 = 0x4, + LOADOUT_SLOT_SECONDARY3 = 0x5, + LOADOUT_SLOT_SECONDARY4 = 0x6, + LOADOUT_SLOT_SECONDARY5 = 0x7, + LOADOUT_SLOT_SMG0 = 0x8, + LOADOUT_SLOT_SMG1 = 0x9, + LOADOUT_SLOT_SMG2 = 0xa, + LOADOUT_SLOT_SMG3 = 0xb, + LOADOUT_SLOT_SMG4 = 0xc, + LOADOUT_SLOT_SMG5 = 0xd, + LOADOUT_SLOT_RIFLE0 = 0xe, + LOADOUT_SLOT_RIFLE1 = 0xf, + LOADOUT_SLOT_RIFLE2 = 0x10, + LOADOUT_SLOT_RIFLE3 = 0x11, + LOADOUT_SLOT_RIFLE4 = 0x12, + LOADOUT_SLOT_RIFLE5 = 0x13, + LOADOUT_SLOT_HEAVY0 = 0x14, + LOADOUT_SLOT_HEAVY1 = 0x15, + LOADOUT_SLOT_HEAVY2 = 0x16, + LOADOUT_SLOT_HEAVY3 = 0x17, + LOADOUT_SLOT_HEAVY4 = 0x18, + LOADOUT_SLOT_HEAVY5 = 0x19, + LOADOUT_SLOT_FIRST_WHEEL_WEAPON = 0x2, + LOADOUT_SLOT_LAST_WHEEL_WEAPON = 0x19, + LOADOUT_SLOT_FIRST_PRIMARY_WEAPON = 0x8, + LOADOUT_SLOT_LAST_PRIMARY_WEAPON = 0x19, + LOADOUT_SLOT_FIRST_WHEEL_GRENADE = 0x1a, + LOADOUT_SLOT_GRENADE0 = 0x1a, + LOADOUT_SLOT_GRENADE1 = 0x1b, + LOADOUT_SLOT_GRENADE2 = 0x1c, + LOADOUT_SLOT_GRENADE3 = 0x1d, + LOADOUT_SLOT_GRENADE4 = 0x1e, + LOADOUT_SLOT_GRENADE5 = 0x1f, + LOADOUT_SLOT_LAST_WHEEL_GRENADE = 0x1f, + LOADOUT_SLOT_EQUIPMENT0 = 0x20, + LOADOUT_SLOT_EQUIPMENT1 = 0x21, + LOADOUT_SLOT_EQUIPMENT2 = 0x22, + LOADOUT_SLOT_EQUIPMENT3 = 0x23, + LOADOUT_SLOT_EQUIPMENT4 = 0x24, + LOADOUT_SLOT_EQUIPMENT5 = 0x25, + LOADOUT_SLOT_FIRST_WHEEL_EQUIPMENT = 0x20, + LOADOUT_SLOT_LAST_WHEEL_EQUIPMENT = 0x25, + LOADOUT_SLOT_CLOTHING_CUSTOMPLAYER = 0x26, + LOADOUT_SLOT_PET = 0x27, + LOADOUT_SLOT_CLOTHING_FACEMASK = 0x28, + LOADOUT_SLOT_CLOTHING_HANDS = 0x29, + LOADOUT_SLOT_FIRST_COSMETIC = 0x29, + LOADOUT_SLOT_LAST_COSMETIC = 0x29, + LOADOUT_SLOT_CLOTHING_EYEWEAR = 0x2a, + LOADOUT_SLOT_CLOTHING_HAT = 0x2b, + LOADOUT_SLOT_CLOTHING_LOWERBODY = 0x2c, + LOADOUT_SLOT_CLOTHING_TORSO = 0x2d, + LOADOUT_SLOT_CLOTHING_APPEARANCE = 0x2e, + LOADOUT_SLOT_MISC0 = 0x2f, + LOADOUT_SLOT_MISC1 = 0x30, + LOADOUT_SLOT_MISC2 = 0x31, + LOADOUT_SLOT_MISC3 = 0x32, + LOADOUT_SLOT_MISC4 = 0x33, + LOADOUT_SLOT_MISC5 = 0x34, + LOADOUT_SLOT_MISC6 = 0x35, + LOADOUT_SLOT_MUSICKIT = 0x36, + LOADOUT_SLOT_FLAIR0 = 0x37, + LOADOUT_SLOT_SPRAY0 = 0x38, + LOADOUT_SLOT_FIRST_ALL_CHARACTER = 0x36, + LOADOUT_SLOT_LAST_ALL_CHARACTER = 0x38, + LOADOUT_SLOT_COUNT = 0x39, +}; + // Alignment: 4 // Size: 0x8 enum class TOGGLE_STATE : uint32_t @@ -3570,7 +3607,7 @@ enum class filter_t : uint32_t }; // Alignment: 4 -// Size: 0x9 +// Size: 0xc enum class Class_T : uint32_t { CLASS_NONE = 0x0, @@ -3580,8 +3617,11 @@ enum class Class_T : uint32_t CLASS_DZ_SPAWN_CHOPPER = 0x4, CLASS_BOMB = 0x5, CLASS_FOOT_CONTACT_SHADOW = 0x6, - CLASS_WEAPON_VIEWMODEL = 0x7, - NUM_CLASSIFY_CLASSES = 0x8, + CLASS_WEAPON = 0x7, + CLASS_WATER_SPLASHER = 0x8, + CLASS_WEAPON_VIEWMODEL = 0x9, + CLASS_DOOR = 0xa, + NUM_CLASSIFY_CLASSES = 0xb, }; // Alignment: 4 @@ -3672,16 +3712,6 @@ enum class CSWeaponMode : uint32_t WeaponMode_MAX = 0x2, }; -// Alignment: 4 -// Size: 0x4 -enum class WorldTextAttachmentType_t : uint32_t -{ - ATTACHED_NONE = 0x0, - ATTACHED_ENTITY = 0x1, - ATTACHED_ENTITY_LARGE = 0x2, - ATTACHED_HAND_SPECIFIED_IN_EVENT = 0x3, -}; - // Alignment: 4 // Size: 0x5 enum class LifeState_t : uint32_t @@ -3839,13 +3869,14 @@ enum class Explosions : uint32_t }; // Alignment: 4 -// Size: 0x4 +// Size: 0x5 enum class StanceType_t : uint32_t { STANCE_CURRENT = 0xffffffffffffffff, STANCE_DEFAULT = 0x0, STANCE_CROUCHING = 0x1, - NUM_STANCES = 0x2, + STANCE_PRONE = 0x2, + NUM_STANCES = 0x3, }; // Alignment: 4 @@ -3961,11 +3992,16 @@ enum class CompositeMaterialInputContainerSourceType_t : uint32_t }; // Alignment: 4 -// Size: 0x2 +// Size: 0x7 enum class CompositeMaterialInputTextureType_t : uint32_t { INPUT_TEXTURE_TYPE_DEFAULT = 0x0, INPUT_TEXTURE_TYPE_NORMALMAP = 0x1, + INPUT_TEXTURE_TYPE_COLOR = 0x2, + INPUT_TEXTURE_TYPE_MASKS = 0x3, + INPUT_TEXTURE_TYPE_ROUGHNESS = 0x4, + INPUT_TEXTURE_TYPE_PEARLESCENCE_MASK = 0x5, + INPUT_TEXTURE_TYPE_AO = 0x6, }; // Alignment: 4 @@ -4079,6 +4115,13 @@ struct constraint_breakableparams_t; struct RnMesh_t; struct RnSphere_t; struct RnCapsule_t; +struct VMixFilterDesc_t; +struct CSosGroupMatchPattern; +struct CSosGroupBranchPattern; +struct SceneViewId_t; +struct VoxelVisBlockOffset_t; +struct WorldBuilderParams_t; +struct BakedLightingInfo_t; struct CPulse_OutflowConnection; struct PulseRuntimeChunkIndex_t; struct PulseRegisterMap_t; @@ -4088,15 +4131,10 @@ struct PulseRuntimeCellIndex_t; struct PulseRuntimeVarIndex_t; struct PulseRuntimeInvokeIndex_t; struct PulseRuntimeCallInfoIndex_t; +struct PulseTestEHandle_t; +struct CPulseGraphInstance_TestDomain; struct CPulse_ResumePoint; struct PulseRuntimeOutputIndex_t; -struct VMixFilterDesc_t; -struct CSosGroupMatchPattern; -struct CSosGroupBranchPattern; -struct SceneViewId_t; -struct VoxelVisBlockOffset_t; -struct WorldBuilderParams_t; -struct BakedLightingInfo_t; struct ParticleAttributeIndex_t; struct CParticleCollectionVecInput; struct CPerParticleFloatInput; @@ -4141,7 +4179,6 @@ struct CSkeletonInstance; struct CNetworkVarChainer; struct CSkillFloat; struct ParticleIndex_t; -struct ragdoll_t; struct CompositeMaterialInputLooseVariable_t; struct C_FireSmoke; struct CDecalInfo; @@ -4161,12 +4198,17 @@ struct ResourceId_t { public: uint64_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("ResourceId_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 1 // Size: 0x10 class CExampleSchemaVData_PolymorphicBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: int32_t m_nBase; // 0x8 }; @@ -4229,24 +4271,30 @@ public: // Size: 0x1 class InfoForResourceTypeCResourceManifestInternal { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCDOTAPatchNotesList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCEntityLump { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 2 @@ -4264,16 +4312,20 @@ public: // Size: 0x1 class InfoForResourceTypeCSequenceGroupData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIParticleSystemDefinition { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -4282,38 +4334,49 @@ struct FuseVariableIndex_t { public: uint16_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("FuseVariableIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCTextureBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCDOTANovelsList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCModel { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCVDataResource { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -4322,62 +4385,79 @@ struct FuseFunctionIndex_t { public: uint16_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("FuseFunctionIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIPulseGraphDef { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCPanoramaDynamicImages { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIVectorGraphic { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIMaterial2 { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCAnimData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCVMixListResource { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCCompositeMaterialKit { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 4 @@ -4395,80 +4475,110 @@ public: // Size: 0x1 class InfoForResourceTypeCSmartProp { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCCSGOEconItem { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCWorldNode { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCPanoramaStyle { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCDACGameDefsData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCVSoundEventScriptList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCAnimationGroup { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 struct InfoForResourceTypeVSound_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 struct InfoForResourceTypeTestResource_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available +}; + +// Alignment: 0 +// Size: 0x1 +class InfoForResourceTypeCTypeScriptResource +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 +public: + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCPanoramaLayout { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 4 @@ -4486,8 +4596,10 @@ public: // Size: 0x1 class InfoForResourceTypeIParticleSnapshot { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 6 @@ -4507,8 +4619,10 @@ public: // Size: 0x1 class InfoForResourceTypeCPostProcessingResource { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 2 @@ -4524,24 +4638,30 @@ public: // Size: 0x1 struct InfoForResourceTypeProceduralTestResource_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 struct InfoForResourceTypeWorld_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCPhysAggregateData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -4557,16 +4677,20 @@ public: // Size: 0x1 class InfoForResourceTypeCVoxelVisibility { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCRenderMesh { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 6 @@ -4582,18 +4706,32 @@ public: CUtlHashtable< CUtlStringToken, int32 > m_functionMap; // 0x88 }; +// Alignment: 0 +// Size: 0x1 +class InfoForResourceTypeCJavaScriptResource +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 +public: + // No members available +}; + // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIAnimGraphModelBinding { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 5 // Size: 0x20 struct FunctionInfo_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlString m_name; // 0x8 CUtlStringToken m_nameToken; // 0x10 @@ -4616,24 +4754,20 @@ public: // Size: 0x1 struct InfoForResourceTypeManifestTestResource_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned -}; - -// Alignment: 0 -// Size: 0x1 -class InfoForResourceTypeCPanoramaTypeScript -{ -public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCVPhysXSurfacePropertiesList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 2 @@ -4649,48 +4783,50 @@ public: // Size: 0x1 class InfoForResourceTypeCVSoundStackScriptList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned -}; - -// Alignment: 0 -// Size: 0x1 -class InfoForResourceTypeCPanoramaScript -{ -public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCChoreoSceneFileData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCMorphSetData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCDotaItemDefinitionResource { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCResponseRulesList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 7 @@ -4730,6 +4866,8 @@ public: // Size: 0x28 struct EngineLoopState_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: int32_t m_nPlatWindowWidth; // 0x18 int32_t m_nPlatWindowHeight; // 0x1c @@ -4785,8 +4923,10 @@ public: // Size: 0x8 class CEmptyEntityInstance { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 0 @@ -4809,8 +4949,10 @@ public: // Size: 0x10 struct EntOutput_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: - uint8_t __pad0000[0x10]; // Autoaligned + // No members available }; // Alignment: 8 @@ -4878,16 +5020,20 @@ public: // Size: 0x1 struct EventModInitialized_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class CVariantDefaultAllocator { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 4 @@ -4905,8 +5051,10 @@ public: // Size: 0x1 struct EventSplitScreenStateChanged_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 @@ -4921,16 +5069,20 @@ public: // Size: 0x1 struct EventClientProcessNetworking_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x8 class IHandleEntity { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 0 @@ -5011,8 +5163,10 @@ public: // Size: 0x1 struct EventClientPredictionPostNetupdate_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -5064,8 +5218,10 @@ public: // Size: 0x30 struct EntInput_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: - uint8_t __pad0000[0x30]; // Autoaligned + // No members available }; // Alignment: 0 @@ -5080,14 +5236,18 @@ public: // Size: 0x8 class CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 4 // Size: 0x28 class CEntityComponentHelper { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: uint32_t m_flags; // 0x8 private: @@ -5133,6 +5293,8 @@ public: // Size: 0x28 class CEntityIOOutput { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CVariantBase< CVariantDefaultAllocator > m_Value; // 0x18 }; @@ -5335,6 +5497,8 @@ public: // Size: 0x28 class CNetworkVarChainer { +private: + [[maybe_unused]] uint8_t __pad0000[0x20]; // 0x0 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -5345,6 +5509,8 @@ public: // Size: 0x38 class CAnimTagManagerUpdater { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CUtlVector< CSmartPtr< CAnimTagBase > > m_tags; // 0x18 }; @@ -5353,6 +5519,8 @@ public: // Size: 0x48 class CModelConfigElement { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlString m_ElementName; // 0x8 CUtlVector< CModelConfigElement* > m_NestedElements; // 0x10 @@ -5388,6 +5556,8 @@ public: // Size: 0x10 class CAnimUpdateNodeRef { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: int32_t m_nodeIndex; // 0x8 }; @@ -5433,6 +5603,9 @@ struct AttachmentHandle_t { public: uint8_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("AttachmentHandle_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 6 @@ -5455,6 +5628,8 @@ public: // Size: 0x58 class CAnimUpdateNodeBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CAnimNodePath m_nodePath; // 0x18 CUtlString m_name; // 0x48 @@ -5492,6 +5667,8 @@ public: // Size: 0x70 class CAnimData { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CBufferString m_name; // 0x10 CUtlVector< CAnimDesc > m_animArray; // 0x20 @@ -5503,18 +5680,12 @@ public: CUtlVector< CAnimFrameSegment > m_segmentArray; // 0x58 }; -// Alignment: 4 -// Size: 0x30 -class CAnimComponentUpdater +// Alignment: 1 +// Size: 0x4 +class AnimComponentID { public: - CUtlString m_name; // 0x18 - AnimComponentID m_id; // 0x20 -private: - [[maybe_unused]] uint8_t __pad0020[0x4]; // 0x20 -public: - AnimNodeNetworkMode m_networkMode; // 0x24 - bool m_bStartEnabled; // 0x28 + uint32_t m_id; // 0x0 }; // Alignment: 2 @@ -5577,29 +5748,20 @@ public: float m_flOcclusionFactor; // 0x1c }; -// Alignment: 4 -// Size: 0x30 -class CAnimTagBase +// Alignment: 1 +// Size: 0x4 +class AnimTagID { public: - // MPropertyFriendlyName "Name" - // MPropertySortPriority "100" - CUtlString m_name; // 0x18 - // MPropertyHideField - CUtlString m_group; // 0x20 - // MPropertyHideField - AnimTagID m_tagID; // 0x28 -private: - [[maybe_unused]] uint8_t __pad0028[0x4]; // 0x28 -public: - // MPropertyHideField - bool m_bIsReferenced; // 0x2c + uint32_t m_id; // 0x0 }; // Alignment: 2 // Size: 0x20 class CAnimMotorUpdaterBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlString m_name; // 0x10 bool m_bDefault; // 0x18 @@ -5609,8 +5771,10 @@ public: // Size: 0x28 class CBoneConstraintBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: - uint8_t __pad0000[0x28]; // Autoaligned + // No members available }; // Alignment: 1 @@ -5622,17 +5786,31 @@ public: }; // Alignment: 1 -// Size: 0x38 -class CAnimScriptComponentUpdater : public CAnimComponentUpdater +// Size: 0x4 +class AnimScriptHandle { public: - AnimScriptHandle m_hScript; // 0x30 + uint32_t m_id; // 0x0 +}; + +// Alignment: 5 +// Size: 0x80 +class CAnimAttachment +{ +public: + Quaternion m_influenceRotations[3]; // 0x0 + VectorAligned m_influenceOffsets[3]; // 0x30 + int32_t m_influenceIndices[3]; // 0x60 + float m_influenceWeights[3]; // 0x6c + uint8_t m_numInfluences; // 0x78 }; // Alignment: 2 // Size: 0x10 class CAnimInputDamping { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MPropertyFriendlyName "Speed Function" DampingSpeedFunction m_speedFunction; // 0x8 @@ -5640,15 +5818,6 @@ public: float m_fSpeedScale; // 0xc }; -// Alignment: 2 -// Size: 0x2 -class CAnimParamHandle -{ -public: - AnimParamType_t m_type; // 0x0 - uint8_t m_index; // 0x1 -}; - // Alignment: 5 // Size: 0x78 struct VPhysics2ShapeDef_t @@ -5661,38 +5830,13 @@ public: CUtlVector< uint16 > m_CollisionAttributeIndices; // 0x60 }; -// Alignment: 15 -// Size: 0x160 -struct TwoBoneIKSettings_t +// Alignment: 2 +// Size: 0x2 +class CAnimParamHandle { public: - IkEndEffectorType m_endEffectorType; // 0x0 - CAnimAttachment m_endEffectorAttachment; // 0x10 - IkTargetType m_targetType; // 0x90 -private: - [[maybe_unused]] uint8_t __pad0094[0xc]; // 0x94 -public: - CAnimAttachment m_targetAttachment; // 0xa0 -private: - [[maybe_unused]] uint8_t __pad0094[0x8c]; // 0x94 -public: - int32_t m_targetBoneIndex; // 0x120 - CAnimParamHandle m_hPositionParam; // 0x124 - CAnimParamHandle m_hRotationParam; // 0x126 - bool m_bAlwaysUseFallbackHinge; // 0x128 -private: - [[maybe_unused]] uint8_t __pad0129[0x7]; // 0x129 -public: - VectorAligned m_vLsFallbackHingeAxis; // 0x130 - int32_t m_nFixedBoneIndex; // 0x140 - int32_t m_nMiddleBoneIndex; // 0x144 - int32_t m_nEndBoneIndex; // 0x148 - bool m_bMatchTargetOrientation; // 0x14c - bool m_bConstrainTwist; // 0x14d -private: - [[maybe_unused]] uint8_t __pad014e[0x2]; // 0x14e -public: - float m_flMaxTwist; // 0x150 + AnimParamType_t m_type; // 0x0 + uint8_t m_index; // 0x1 }; // Alignment: 2 @@ -5704,13 +5848,12 @@ public: Vector m_vecSize; // 0xc }; -// Alignment: 2 -// Size: 0x28 -class CMotionNode +// Alignment: 1 +// Size: 0x4 +class AnimNodeID { public: - CUtlString m_name; // 0x18 - AnimNodeID m_id; // 0x20 + uint32_t m_id; // 0x0 }; // Alignment: 3 @@ -5746,12 +5889,11 @@ public: }; // Alignment: 1 -// Size: 0x10 -struct IKBoneNameAndIndex_t +// Size: 0x4 +class AnimParamID { public: - // MPropertyAttributeChoiceName "Bone" - CUtlString m_Name; // 0x0 + uint32_t m_id; // 0x0 }; // Alignment: 2 @@ -5814,33 +5956,50 @@ public: CUtlVector< AnimationDecodeDebugDumpElement_t > m_elems; // 0x8 }; -// Alignment: 2 -// Size: 0x58 -class CBodyGroupAnimTag : public CAnimTagBase +// Alignment: 1 +// Size: 0x10 +struct IKBoneNameAndIndex_t { public: - // MPropertyFriendlyName "Priority" - int32_t m_nPriority; // 0x38 + // MPropertyAttributeChoiceName "Bone" + CUtlString m_Name; // 0x0 +}; + +// Alignment: 4 +// Size: 0x30 +class CAnimTagBase +{ private: - [[maybe_unused]] uint8_t __pad003c[0x4]; // 0x3c + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: - // MPropertyFriendlyName "Body Group Settings" - CUtlVector< CBodyGroupSetting > m_bodyGroupSettings; // 0x40 + // MPropertyFriendlyName "Name" + // MPropertySortPriority "100" + CGlobalSymbol m_name; // 0x18 + // MPropertyHideField + CGlobalSymbol m_group; // 0x20 + // MPropertyHideField + AnimTagID m_tagID; // 0x28 + // MPropertyHideField + bool m_bIsReferenced; // 0x2c }; // Alignment: 2 -// Size: 0x48 -class CMotionNodeBlend1D : public CMotionNode +// Size: 0x28 +class CMotionNode { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: - CUtlVector< MotionBlendItem > m_blendItems; // 0x28 - int32_t m_nParamIndex; // 0x40 + CUtlString m_name; // 0x18 + AnimNodeID m_id; // 0x20 }; // Alignment: 6 // Size: 0x50 class CRagdollAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Pose Control" AnimPoseControl m_nPoseControl; // 0x38 @@ -5860,54 +6019,37 @@ public: bool m_bDestroy; // 0x4c }; -// Alignment: 12 -// Size: 0x78 +// Alignment: 6 +// Size: 0x50 class CAnimParameterBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: // MPropertyFriendlyName "Name" // MPropertySortPriority "100" - CAnimGraphSymbolWithStorage m_name; // 0x18 + CGlobalSymbol m_name; // 0x18 // MPropertyHideField - CUtlString m_group; // 0x38 + CUtlString m_group; // 0x20 // MPropertyHideField - AnimParamID m_id; // 0x40 + AnimParamID m_id; // 0x28 private: - [[maybe_unused]] uint8_t __pad0040[0x18]; // 0x40 + [[maybe_unused]] uint8_t __pad002c[0x14]; // 0x2c public: // MPropertyHideField // MPropertyAttrChangeCallback - CUtlString m_componentName; // 0x58 + CUtlString m_componentName; // 0x40 private: - [[maybe_unused]] uint8_t __pad0060[0x4]; // 0x60 + [[maybe_unused]] uint8_t __pad0048[0x4]; // 0x48 public: - // MPropertyFriendlyName "Preview Button" - AnimParamButton_t m_previewButton; // 0x64 - // MPropertyFriendlyName "Force Latest Value" - bool m_bUseMostRecentValue; // 0x68 - // MPropertyFriendlyName "Auto Reset" - bool m_bAutoReset; // 0x69 -private: - [[maybe_unused]] uint8_t __pad006a[0x2]; // 0x6a -public: - // MPropertyFriendlyName "Network" - AnimParamNetworkSetting m_eNetworkSetting; // 0x6c - // MPropertyFriendlyName "Game Writable" - // MPropertyGroupName "+Permissions" - // MPropertyAttrStateCallback - bool m_bGameWritable; // 0x70 - // MPropertyFriendlyName "Graph Writable" - // MPropertyGroupName "+Permissions" - // MPropertyAttrStateCallback - bool m_bGraphWritable; // 0x71 // MPropertyHideField - bool m_bIsReferenced; // 0x72 + bool m_bNetworkingRequested; // 0x4c // MPropertyHideField - bool m_bNetworkingRequested; // 0x73 + bool m_bIsReferenced; // 0x4d }; // Alignment: 0 -// Size: 0x38 +// Size: 0x30 class CStringAnimTag : public CAnimTagBase { public: @@ -5930,20 +6072,60 @@ public: CUtlVector< CFootTrajectory > m_trajectories; // 0x0 }; +// Alignment: 8 +// Size: 0xd0 +struct AimMatrixOpFixedSettings_t +{ +public: + CAnimAttachment m_attachment; // 0x0 + CAnimInputDamping m_damping; // 0x80 + CPoseHandle m_poseCacheHandles[10]; // 0x90 + AimMatrixBlendMode m_eBlendMode; // 0xb8 + float m_fAngleIncrement; // 0xbc + int32_t m_nSequenceMaxFrame; // 0xc0 + int32_t m_nBoneMaskIndex; // 0xc4 + bool m_bTargetIsPosition; // 0xc8 +}; + // Alignment: 1 // Size: 0x30 class CAnimGraphSettingsManager { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CUtlVector< CSmartPtr< CAnimGraphSettingsGroup > > m_settingsGroups; // 0x18 }; -// Alignment: 1 -// Size: 0x1e0 -class CTwoBoneIKUpdateNode : public CUnaryUpdateNode +// Alignment: 15 +// Size: 0x160 +struct TwoBoneIKSettings_t { public: - TwoBoneIKSettings_t m_opFixedData; // 0x70 + IkEndEffectorType m_endEffectorType; // 0x0 + CAnimAttachment m_endEffectorAttachment; // 0x10 + IkTargetType m_targetType; // 0x90 +private: + [[maybe_unused]] uint8_t __pad0094[0xc]; // 0x94 +public: + CAnimAttachment m_targetAttachment; // 0xa0 + int32_t m_targetBoneIndex; // 0x120 + CAnimParamHandle m_hPositionParam; // 0x124 + CAnimParamHandle m_hRotationParam; // 0x126 + bool m_bAlwaysUseFallbackHinge; // 0x128 +private: + [[maybe_unused]] uint8_t __pad0129[0x7]; // 0x129 +public: + VectorAligned m_vLsFallbackHingeAxis; // 0x130 + int32_t m_nFixedBoneIndex; // 0x140 + int32_t m_nMiddleBoneIndex; // 0x144 + int32_t m_nEndBoneIndex; // 0x148 + bool m_bMatchTargetOrientation; // 0x14c + bool m_bConstrainTwist; // 0x14d +private: + [[maybe_unused]] uint8_t __pad014e[0x2]; // 0x14e +public: + float m_flMaxTwist; // 0x150 }; // Alignment: 2 @@ -6032,6 +6214,8 @@ public: // Size: 0xa0 class CMoverUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: CAnimInputDamping m_damping; // 0x70 AnimValueSource m_facingTarget; // 0x80 @@ -6064,23 +6248,12 @@ public: CUtlVector< CConstraintTarget > m_targets; // 0x58 }; -// Alignment: 8 -// Size: 0x48 -class CStateUpdateData +// Alignment: 1 +// Size: 0x4 +class AnimStateID { public: - CUtlString m_name; // 0x0 - AnimScriptHandle m_hScript; // 0x8 - CUtlVector< int32 > m_transitionIndices; // 0x10 - CUtlVector< CStateActionUpdater > m_actions; // 0x28 - AnimStateID m_stateID; // 0x40 - struct - { - uint8_t m_bIsStartState: 1; - uint8_t m_bIsEndState: 1; - uint8_t m_bIsPassthrough: 1; - uint8_t __pad0: 3; // Autoaligned - }; // 6 bits + uint32_t m_id; // 0x0 }; // Alignment: 2 @@ -6167,6 +6340,8 @@ public: // Size: 0x50 class CMotionMetricEvaluator { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CUtlVector< float32 > m_means; // 0x18 CUtlVector< float32 > m_standardDeviations; // 0x30 @@ -6182,10 +6357,23 @@ public: // No members available }; +// Alignment: 4 +// Size: 0x60 +class CBoneConstraintDotToMorph : public CBoneConstraintBase +{ +public: + CUtlString m_sBoneName; // 0x28 + CUtlString m_sTargetBoneName; // 0x30 + CUtlString m_sMorphChannelName; // 0x38 + float m_flRemap[4]; // 0x40 +}; + // Alignment: 3 // Size: 0x40 class CAnimationGraphVisualizerPrimitiveBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CAnimationGraphVisualizerPrimitiveType m_Type; // 0x8 AnimNodeID m_OwningAnimNodePaths[11]; // 0xc @@ -6282,19 +6470,27 @@ public: StateActionBehavior m_eBehavior; // 0x8 }; -// Alignment: 4 -// Size: 0x88 -class CFloatAnimParameter : public CAnimParameterBase +// Alignment: 6 +// Size: 0x60 +class CConcreteAnimParameter : public CAnimParameterBase { public: - // MPropertyFriendlyName "Default Value" - float m_fDefaultValue; // 0x78 - // MPropertyFriendlyName "Min Value" - float m_fMinValue; // 0x7c - // MPropertyFriendlyName "Max Value" - float m_fMaxValue; // 0x80 - // MPropertyFriendlyName "Interpolate" - bool m_bInterpolate; // 0x84 + // MPropertyFriendlyName "Preview Button" + AnimParamButton_t m_previewButton; // 0x50 + // MPropertyFriendlyName "Network" + AnimParamNetworkSetting m_eNetworkSetting; // 0x54 + // MPropertyFriendlyName "Force Latest Value" + bool m_bUseMostRecentValue; // 0x58 + // MPropertyFriendlyName "Auto Reset" + bool m_bAutoReset; // 0x59 + // MPropertyFriendlyName "Game Writable" + // MPropertyGroupName "+Permissions" + // MPropertyAttrStateCallback + bool m_bGameWritable; // 0x5a + // MPropertyFriendlyName "Graph Writable" + // MPropertyGroupName "+Permissions" + // MPropertyAttrStateCallback + bool m_bGraphWritable; // 0x5b }; // Alignment: 5 @@ -6330,6 +6526,8 @@ public: // Size: 0x28 class CAnimGraphModelBinding { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlString m_modelName; // 0x8 CSmartPtr< CAnimUpdateSharedData > m_pSharedData; // 0x10 @@ -6339,6 +6537,8 @@ public: // Size: 0x100 class CAnimUpdateSharedData { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVector< CSmartPtr< CAnimUpdateNodeBase > > m_nodes; // 0x10 CUtlHashtable< CAnimNodePath, int32 > m_nodeIndexMap; // 0x28 @@ -6374,6 +6574,8 @@ public: // Size: 0x30 class CStaticPoseCache { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVector< CCachedPose > m_poses; // 0x10 int32_t m_nBoneCount; // 0x28 @@ -6386,6 +6588,9 @@ class HSequence { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("HSequence")->m_static_fields[0]->m_instance);}; }; // Alignment: 1 @@ -6431,6 +6636,8 @@ public: // Size: 0x88 class CDirectPlaybackUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x4]; // 0x68 public: bool m_bFinishEarly; // 0x6c bool m_bResetOnFinish; // 0x6d @@ -6557,6 +6764,8 @@ public: // Size: 0xd0 class CAnimSkeleton { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVector< CTransform > m_localSpaceTransforms; // 0x10 CUtlVector< CTransform > m_modelSpaceTransforms; // 0x28 @@ -6572,6 +6781,8 @@ public: // Size: 0x1e0 class CRenderMesh { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVectorFixedGrowable< CSceneObjectData > m_sceneObjects; // 0x10 CUtlVector< CBaseConstraint* > m_constraints; // 0xa0 @@ -6657,6 +6868,8 @@ public: Vector m_vOffset; // 0x0 float m_flRotationOffset; // 0xc float m_flProgression; // 0x10 + + // Static fields: static CFootTrajectory &Get_Identity(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CFootTrajectory")->m_static_fields[0]->m_instance);}; }; @@ -6696,14 +6909,18 @@ public: // Size: 0x18 class CAnimActionUpdater { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: - uint8_t __pad0000[0x18]; // Autoaligned + // No members available }; // Alignment: 7 // Size: 0x130 class CAnimationGroup { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: uint32_t m_nFlags; // 0x10 private: @@ -6727,6 +6944,8 @@ public: // Size: 0x88 class CTurnHelperUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x4]; // 0x68 public: AnimValueSource m_facingTarget; // 0x6c float m_turnStartTimeOffset; // 0x70 @@ -6743,6 +6962,8 @@ public: // Size: 0x50 class CAudioAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Sound Event" // MPropertyAttributeEditor "SoundPicker()" @@ -6856,7 +7077,7 @@ public: struct { uint8_t m_bDisabled: 1; - uint8_t __pad1: 1; // Autoaligned + uint8_t __pad0: 1; }; // 2 bits }; @@ -6906,6 +7127,8 @@ public: // Size: 0x50 class CClothSettingsAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Stiffness" // MPropertyAttributeRange "0 1" @@ -6938,6 +7161,8 @@ public: // Size: 0x98 class CMorphSetData { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: int32_t m_nWidth; // 0x10 int32_t m_nHeight; // 0x14 @@ -6989,6 +7214,8 @@ public: // Size: 0xa8 class CBoneMaskUpdateNode : public CBinaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0088[0x4]; // 0x88 public: int32_t m_nWeightListIndex; // 0x8c float m_flRootMotionBlend; // 0x90 @@ -7032,6 +7259,15 @@ public: // No members available }; +// Alignment: 2 +// Size: 0x60 +class CVirtualAnimParameter : public CAnimParameterBase +{ +public: + CUtlString m_expressionString; // 0x50 + AnimParamType_t m_eParamType; // 0x58 +}; + // Alignment: 1 // Size: 0x4 class CCycleBase @@ -7070,16 +7306,10 @@ public: // MPropertyAttributeChoiceName "VectorParameter" // MPropertyAttrStateCallback AnimParamID m_AnimgraphParameterNamePosition; // 0x18 -private: - [[maybe_unused]] uint8_t __pad0018[0x4]; // 0x18 -public: // MPropertyFriendlyName "Animgraph Orientation Parameter" // MPropertyAttributeChoiceName "QuaternionParameter" // MPropertyAttrStateCallback AnimParamID m_AnimgraphParameterNameOrientation; // 0x1c -private: - [[maybe_unused]] uint8_t __pad0018[0x8]; // 0x18 -public: // MPropertyFriendlyName "Target Coords" // MPropertyAttrStateCallback IKTargetCoordinateSystem m_TargetCoordSystem; // 0x20 @@ -7099,33 +7329,48 @@ public: CUtlString m_SourceFilename; // 0x28 }; -// Alignment: 8 -// Size: 0xd0 -struct AimMatrixOpFixedSettings_t +// Alignment: 13 +// Size: 0xa8 +class CFollowPathUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x4]; // 0x68 public: - CAnimAttachment m_attachment; // 0x0 - CAnimInputDamping m_damping; // 0x80 - CPoseHandle m_poseCacheHandles[10]; // 0x90 - AimMatrixBlendMode m_eBlendMode; // 0xb8 - float m_fAngleIncrement; // 0xbc - int32_t m_nSequenceMaxFrame; // 0xc0 - int32_t m_nBoneMaskIndex; // 0xc4 - bool m_bTargetIsPosition; // 0xc8 + float m_flBlendOutTime; // 0x6c + bool m_bBlockNonPathMovement; // 0x70 + bool m_bStopFeetAtGoal; // 0x71 + bool m_bScaleSpeed; // 0x72 +private: + [[maybe_unused]] uint8_t __pad0073[0x1]; // 0x73 +public: + float m_flScale; // 0x74 + float m_flMinAngle; // 0x78 + float m_flMaxAngle; // 0x7c + float m_flSpeedScaleBlending; // 0x80 +private: + [[maybe_unused]] uint8_t __pad0084[0x4]; // 0x84 +public: + CAnimInputDamping m_turnDamping; // 0x88 + AnimValueSource m_facingTarget; // 0x98 + CAnimParamHandle m_hParam; // 0x9c +private: + [[maybe_unused]] uint8_t __pad009e[0x2]; // 0x9e +public: + float m_flTurnToFaceOffset; // 0xa0 + bool m_bTurnToFace; // 0xa4 }; -// Alignment: 7 -// Size: 0x48 -class CSlopeComponentUpdater : public CAnimComponentUpdater +// Alignment: 4 +// Size: 0x30 +class CAnimComponentUpdater { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: - float m_flTraceDistance; // 0x34 - CAnimParamHandle m_hSlopeAngle; // 0x38 - CAnimParamHandle m_hSlopeAngleFront; // 0x3a - CAnimParamHandle m_hSlopeAngleSide; // 0x3c - CAnimParamHandle m_hSlopeHeading; // 0x3e - CAnimParamHandle m_hSlopeNormal; // 0x40 - CAnimParamHandle m_hSlopeNormal_WorldSpace; // 0x42 + CUtlString m_name; // 0x18 + AnimComponentID m_id; // 0x20 + AnimNodeNetworkMode m_networkMode; // 0x24 + bool m_bStartEnabled; // 0x28 }; // Alignment: 4 @@ -7142,6 +7387,22 @@ public: CUtlBinaryBlock m_container; // 0x10 }; +// Alignment: 2 +// Size: 0x58 +class CBodyGroupAnimTag : public CAnimTagBase +{ +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 +public: + // MPropertyFriendlyName "Priority" + int32_t m_nPriority; // 0x38 +private: + [[maybe_unused]] uint8_t __pad003c[0x4]; // 0x3c +public: + // MPropertyFriendlyName "Body Group Settings" + CUtlVector< CBodyGroupSetting > m_bodyGroupSettings; // 0x40 +}; + // Alignment: 6 // Size: 0x50 class CVrSkeletalInputSettings @@ -7156,23 +7417,27 @@ public: }; // Alignment: 2 -// Size: 0xd0 -class CEnumAnimParameter : public CAnimParameterBase +// Size: 0xb8 +class CEnumAnimParameter : public CConcreteAnimParameter { +private: + [[maybe_unused]] uint8_t __pad0060[0x8]; // 0x60 public: // MPropertyFriendlyName "Default Value" - uint8_t m_defaultValue; // 0x80 + uint8_t m_defaultValue; // 0x68 private: - [[maybe_unused]] uint8_t __pad0081[0x7]; // 0x81 + [[maybe_unused]] uint8_t __pad0069[0x7]; // 0x69 public: // MPropertyFriendlyName "Values" - CUtlVector< CUtlString > m_enumOptions; // 0x88 + CUtlVector< CUtlString > m_enumOptions; // 0x70 }; // Alignment: 4 // Size: 0x58 class CFootstepLandedAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Footstep Type" FootstepLandedFootSoundType_t m_FootstepType; // 0x38 @@ -7198,7 +7463,7 @@ public: struct { uint8_t m_bExclusiveRootMotion: 1; - uint8_t __pad2: 1; // Autoaligned + uint8_t __pad1: 1; }; // 2 bits }; @@ -7286,6 +7551,8 @@ public: // Size: 0x98 class CAddUpdateNode : public CBinaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0088[0x4]; // 0x88 public: BinaryNodeChildOption m_footMotionTiming; // 0x8c bool m_bApplyToFootMotion; // 0x90 @@ -7352,6 +7619,8 @@ public: // Size: 0x90 class CAnimReplayFrame { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVector< CUtlBinaryBlock > m_inputDataBlocks; // 0x10 CUtlBinaryBlock m_instanceData; // 0x28 @@ -7416,6 +7685,8 @@ public: // Size: 0x100 class CAnimParameterManagerUpdater { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CUtlVector< CSmartPtr< CAnimParameterBase > > m_parameters; // 0x18 CUtlHashtable< AnimParamID, int32 > m_idToIndexMap; // 0x30 @@ -7443,6 +7714,8 @@ public: // Size: 0x150 class CLookAtUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: LookAtOpFixedSettings_t m_opFixedSettings; // 0x70 private: @@ -7496,10 +7769,20 @@ public: int32_t m_Data; // 0x4 }; +// Alignment: 1 +// Size: 0x38 +class CAnimScriptComponentUpdater : public CAnimComponentUpdater +{ +public: + AnimScriptHandle m_hScript; // 0x30 +}; + // Alignment: 5 // Size: 0x38 class CAnimEventDefinition { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: int32_t m_nFrame; // 0x8 float m_flCycle; // 0xc @@ -7522,6 +7805,8 @@ public: // Size: 0x160 class CAimMatrixUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: AimMatrixOpFixedSettings_t m_opFixedSettings; // 0x70 private: @@ -7541,6 +7826,8 @@ public: // Size: 0x58 class CAnimStateMachineUpdater { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlVector< CStateUpdateData > m_states; // 0x8 CUtlVector< CTransitionUpdateData > m_transitions; // 0x20 @@ -7554,6 +7841,8 @@ public: // Size: 0x138 class CSequenceGroupData { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CBufferString m_sName; // 0x10 uint32_t m_nFlags; // 0x20 @@ -7597,20 +7886,22 @@ public: }; // Alignment: 2 -// Size: 0xa0 -class CQuaternionAnimParameter : public CAnimParameterBase +// Size: 0x80 +class CQuaternionAnimParameter : public CConcreteAnimParameter { public: // MPropertyFriendlyName "Default Value" - Quaternion m_defaultValue; // 0x80 + Quaternion m_defaultValue; // 0x60 // MPropertyFriendlyName "Interpolate" - bool m_bInterpolate; // 0x90 + bool m_bInterpolate; // 0x70 }; // Alignment: 9 // Size: 0x48 class CVRInputComponentUpdater : public CAnimComponentUpdater { +private: + [[maybe_unused]] uint8_t __pad0030[0x4]; // 0x30 public: CAnimParamHandle m_FingerCurl_Thumb; // 0x34 CAnimParamHandle m_FingerCurl_Index; // 0x36 @@ -7627,6 +7918,8 @@ public: // Size: 0xd0 class CBlendUpdateNode : public CAnimUpdateNodeBase { +private: + [[maybe_unused]] uint8_t __pad0058[0x8]; // 0x58 public: CUtlVector< CAnimUpdateNodeRef > m_children; // 0x60 CUtlVector< uint8 > m_sortedOrder; // 0x78 @@ -7674,6 +7967,8 @@ public: // Size: 0x90 class CCycleControlClipUpdateNode : public CLeafUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x8]; // 0x58 public: CUtlVector< TagSpan_t > m_tags; // 0x60 private: @@ -7837,6 +8132,8 @@ public: // Size: 0xa8 class CSequenceUpdateNode : public CLeafUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x8]; // 0x58 public: CParamSpanUpdater m_paramSpans; // 0x60 CUtlVector< TagSpan_t > m_tags; // 0x78 @@ -8011,6 +8308,8 @@ public: // Size: 0x98 class CSubtractUpdateNode : public CBinaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0088[0x4]; // 0x88 public: BinaryNodeChildOption m_footMotionTiming; // 0x8c bool m_bApplyToFootMotion; // 0x90 @@ -8078,6 +8377,8 @@ public: // Size: 0x78 class CWayPointHelperUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x4]; // 0x68 public: float m_flStartCycle; // 0x6c float m_flEndCycle; // 0x70 @@ -8090,6 +8391,8 @@ public: // Size: 0xf8 class CStateMachineUpdateNode : public CAnimUpdateNodeBase { +private: + [[maybe_unused]] uint8_t __pad0058[0x10]; // 0x58 public: CAnimStateMachineUpdater m_stateMachine; // 0x68 CUtlVector< CStateNodeStateData > m_stateData; // 0xc0 @@ -8135,6 +8438,8 @@ public: // Size: 0x78 class CParticleAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertySuppressField CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_hParticleSystem; // 0x38 @@ -8186,6 +8491,8 @@ public: // Size: 0x58 class CMotionGraph { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CParamSpanUpdater m_paramSpans; // 0x10 CUtlVector< TagSpan_t > m_tags; // 0x28 @@ -8225,6 +8532,8 @@ public: // Size: 0xe8 class CLeanMatrixUpdateNode : public CLeafUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x4]; // 0x58 public: int32_t m_frameCorners[3][3]; // 0x5c CPoseHandle m_poses[9]; // 0x80 @@ -8262,6 +8571,8 @@ public: // Size: 0xf0 class CBlend2DUpdateNode : public CAnimUpdateNodeBase { +private: + [[maybe_unused]] uint8_t __pad0058[0x8]; // 0x58 public: CUtlVector< BlendItem_t > m_items; // 0x60 CUtlVector< TagSpan_t > m_tags; // 0x78 @@ -8329,7 +8640,7 @@ public: float m_flTraceRadius; // 0x3c }; -// Alignment: 6 +// Alignment: 7 // Size: 0xa0 class CRagdollComponentUpdater : public CAnimComponentUpdater { @@ -8340,6 +8651,7 @@ public: CUtlVector< WeightList > m_weightLists; // 0x78 float m_flSpringFrequencyMin; // 0x90 float m_flSpringFrequencyMax; // 0x94 + float m_flMaxStretch; // 0x98 }; // Alignment: 2 @@ -8355,6 +8667,8 @@ public: // Size: 0x60 class CConstraintTarget { +private: + [[maybe_unused]] uint8_t __pad0000[0x20]; // 0x0 public: Quaternion m_qOffset; // 0x20 Vector m_vOffset; // 0x30 @@ -8378,12 +8692,22 @@ public: VPhysXConstraintParams_t m_params; // 0x8 }; -// Alignment: 1 -// Size: 0x60 +// Alignment: 2 +// Size: 0x80 class CModelConfigElement_RandomPick : public CModelConfigElement { public: CUtlVector< CUtlString > m_Choices; // 0x48 + CUtlVector< float32 > m_ChoiceWeights; // 0x60 +}; + +// Alignment: 1 +// Size: 0x68 +class CBoolAnimParameter : public CConcreteAnimParameter +{ +public: + // MPropertyFriendlyName "Default Value" + bool m_bDefaultValue; // 0x60 }; // Alignment: 6 @@ -8560,28 +8884,27 @@ public: CUtlString m_keyValueText; // 0x50 }; -// Alignment: 14 +// Alignment: 13 // Size: 0x70 class CHitBox { public: - Vector m_vMinBounds; // 0x20 - Vector m_vMaxBounds; // 0x2c - CUtlString m_name; // 0x38 - CUtlString m_sSurfaceProperty; // 0x40 - CUtlString m_sBoneName; // 0x48 - float m_flShapeRadius; // 0x50 - uint32_t m_nBoneNameHash; // 0x54 - int32_t m_nGroupId; // 0x58 - Color m_cRenderColor; // 0x5c - uint16_t m_nHitBoxIndex; // 0x60 - uint8_t m_nShapeType; // 0x62 + CUtlString m_name; // 0x0 + CUtlString m_sSurfaceProperty; // 0x8 + CUtlString m_sBoneName; // 0x10 + Vector m_vMinBounds; // 0x18 + Vector m_vMaxBounds; // 0x24 + float m_flShapeRadius; // 0x30 + uint32_t m_nBoneNameHash; // 0x34 + int32_t m_nGroupId; // 0x38 + uint8_t m_nShapeType; // 0x3c + bool m_bTranslationOnly; // 0x3d private: - [[maybe_unused]] uint8_t __pad0063[0x1]; // 0x63 + [[maybe_unused]] uint8_t __pad003e[0x2]; // 0x3e public: - bool m_bTranslationOnly; // 0x64 - bool m_bVisible; // 0x65 - bool m_bSelected; // 0x66 + uint32_t m_CRC; // 0x40 + Color m_cRenderColor; // 0x44 + uint16_t m_nHitBoxIndex; // 0x48 }; // Alignment: 1 @@ -8658,6 +8981,8 @@ public: // Size: 0x40 class CFootFallAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Foot" FootFallTagFoot_t m_foot; // 0x38 @@ -8684,6 +9009,8 @@ public: // Size: 0xa8 class CFootAdjustmentUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: CUtlVector< HSequence > m_clips; // 0x70 CPoseHandle m_hBasePoseCacheHandle; // 0x88 @@ -8757,6 +9084,8 @@ public: // Size: 0x48 class CDampedPathAnimMotorUpdater : public CPathAnimMotorUpdaterBase { +private: + [[maybe_unused]] uint8_t __pad0028[0x4]; // 0x28 public: float m_flAnticipationTime; // 0x2c float m_flMinSpeedScale; // 0x30 @@ -8807,6 +9136,8 @@ public: // Size: 0x90 class CStopAtGoalUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x4]; // 0x68 public: float m_flOuterRadius; // 0x6c float m_flInnerRadius; // 0x70 @@ -8914,6 +9245,22 @@ public: CUtlString m_embeddedKeyvalues; // 0x130 }; +// Alignment: 7 +// Size: 0x48 +class CSlopeComponentUpdater : public CAnimComponentUpdater +{ +private: + [[maybe_unused]] uint8_t __pad0030[0x4]; // 0x30 +public: + float m_flTraceDistance; // 0x34 + CAnimParamHandle m_hSlopeAngle; // 0x38 + CAnimParamHandle m_hSlopeAngleFront; // 0x3a + CAnimParamHandle m_hSlopeAngleSide; // 0x3c + CAnimParamHandle m_hSlopeHeading; // 0x3e + CAnimParamHandle m_hSlopeNormal; // 0x40 + CAnimParamHandle m_hSlopeNormal_WorldSpace; // 0x42 +}; + // Alignment: 3 // Size: 0x28 class CModelConfig @@ -8994,7 +9341,7 @@ public: { uint8_t m_bReset: 1; uint8_t m_resetCycleOption: 3; - uint8_t __pad3: 4; // Autoaligned + uint8_t __pad2: 4; }; // 8 bits }; @@ -9093,6 +9440,8 @@ public: // Size: 0xc8 class CFootPinningUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: FootPinningPoseOpFixedData_t m_poseOpFixedData; // 0x70 FootPinningTimingSource m_eTimingSource; // 0xa0 @@ -9125,6 +9474,28 @@ public: CUtlVector< ModelBoneFlexDriverControl_t > m_controls; // 0x10 }; +// Alignment: 8 +// Size: 0x48 +class CStateUpdateData +{ +public: + CUtlString m_name; // 0x0 + AnimScriptHandle m_hScript; // 0x8 +private: + [[maybe_unused]] uint8_t __pad000c[0x4]; // 0xc +public: + CUtlVector< int32 > m_transitionIndices; // 0x10 + CUtlVector< CStateActionUpdater > m_actions; // 0x28 + AnimStateID m_stateID; // 0x40 + struct + { + uint8_t m_bIsStartState: 1; + uint8_t m_bIsEndState: 1; + uint8_t m_bIsPassthrough: 1; + uint8_t __pad3: 3; + }; // 6 bits +}; + // Alignment: 7 // Size: 0x1c class CSeqAutoLayer @@ -9175,14 +9546,18 @@ public: // Size: 0x20 class CAnimGraphSettingsGroup { +private: + [[maybe_unused]] uint8_t __pad0000[0x20]; // 0x0 public: - uint8_t __pad0000[0x20]; // Autoaligned + // No members available }; // Alignment: 8 // Size: 0x48 class CLookComponentUpdater : public CAnimComponentUpdater { +private: + [[maybe_unused]] uint8_t __pad0030[0x4]; // 0x30 public: CAnimParamHandle m_hLookHeading; // 0x34 CAnimParamHandle m_hLookHeadingVelocity; // 0x36 @@ -9194,10 +9569,21 @@ public: bool m_bNetworkLookTarget; // 0x42 }; +// Alignment: 2 +// Size: 0x48 +class CMotionNodeBlend1D : public CMotionNode +{ +public: + CUtlVector< MotionBlendItem > m_blendItems; // 0x28 + int32_t m_nParamIndex; // 0x40 +}; + // Alignment: 1 // Size: 0x110 class CFollowAttachmentUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: FollowAttachmentSettings_t m_opFixedData; // 0x70 }; @@ -9220,33 +9606,14 @@ public: CUtlVector< float32 > m_weights; // 0x8 }; -// Alignment: 13 -// Size: 0xa8 -class CFollowPathUpdateNode : public CUnaryUpdateNode +// Alignment: 1 +// Size: 0x1e0 +class CTwoBoneIKUpdateNode : public CUnaryUpdateNode { -public: - float m_flBlendOutTime; // 0x6c - bool m_bBlockNonPathMovement; // 0x70 - bool m_bStopFeetAtGoal; // 0x71 - bool m_bScaleSpeed; // 0x72 private: - [[maybe_unused]] uint8_t __pad0073[0x1]; // 0x73 + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: - float m_flScale; // 0x74 - float m_flMinAngle; // 0x78 - float m_flMaxAngle; // 0x7c - float m_flSpeedScaleBlending; // 0x80 -private: - [[maybe_unused]] uint8_t __pad0084[0x4]; // 0x84 -public: - CAnimInputDamping m_turnDamping; // 0x88 - AnimValueSource m_facingTarget; // 0x98 - CAnimParamHandle m_hParam; // 0x9c -private: - [[maybe_unused]] uint8_t __pad009e[0x2]; // 0x9e -public: - float m_flTurnToFaceOffset; // 0xa0 - bool m_bTurnToFace; // 0xa4 + TwoBoneIKSettings_t m_opFixedData; // 0x70 }; // Alignment: 1 @@ -9301,20 +9668,22 @@ public: }; // Alignment: 2 -// Size: 0x88 -class CVectorAnimParameter : public CAnimParameterBase +// Size: 0x70 +class CVectorAnimParameter : public CConcreteAnimParameter { public: // MPropertyFriendlyName "Default Value" - Vector m_defaultValue; // 0x78 + Vector m_defaultValue; // 0x60 // MPropertyFriendlyName "Interpolate" - bool m_bInterpolate; // 0x84 + bool m_bInterpolate; // 0x6c }; // Alignment: 5 // Size: 0x70 class CAnimGraphDebugReplay { +private: + [[maybe_unused]] uint8_t __pad0000[0x40]; // 0x0 public: CUtlString m_animGraphFileName; // 0x40 CUtlVector< CSmartPtr< CAnimReplayFrame > > m_frameList; // 0x48 @@ -9388,6 +9757,8 @@ public: // Size: 0x50 class CMaterialAttributeAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Attribute Name" CUtlString m_AttributeName; // 0x38 @@ -9560,6 +9931,8 @@ public: // Size: 0x1a0 class CAnimScriptManager { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVector< ScriptInfo_t > m_scriptInfo; // 0x10 }; @@ -9599,19 +9972,20 @@ public: int32_t m_nSampleCount; // 0x1c }; -// Alignment: 1 -// Size: 0x48 +// Alignment: 0 +// Size: 0x38 class CTaskStatusAnimTag : public CAnimTagBase { public: - // MPropertyHideField - CUtlString m_identifierString; // 0x38 + // No members available }; // Alignment: 4 // Size: 0x40 class CCachedPose { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlVector< CTransform > m_transforms; // 0x8 CUtlVector< float32 > m_morphWeights; // 0x20 @@ -9670,10 +10044,20 @@ public: CUtlVector< CUtlPair< CBufferString, float32 > > m_morphCtrlWeightArray; // 0x48 }; +// Alignment: 1 +// Size: 0x4 +class AnimNodeOutputID +{ +public: + uint32_t m_id; // 0x0 +}; + // Alignment: 8 // Size: 0xa8 class CDirectionalBlendUpdateNode : public CLeafUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x4]; // 0x58 public: HSequence m_hSequences[8]; // 0x5c private: @@ -9692,16 +10076,16 @@ public: }; // Alignment: 3 -// Size: 0x88 -class CIntAnimParameter : public CAnimParameterBase +// Size: 0x70 +class CIntAnimParameter : public CConcreteAnimParameter { public: // MPropertyFriendlyName "Default Value" - int32_t m_defaultValue; // 0x78 + int32_t m_defaultValue; // 0x60 // MPropertyFriendlyName "Min Value" - int32_t m_minValue; // 0x7c + int32_t m_minValue; // 0x64 // MPropertyFriendlyName "Max Value" - int32_t m_maxValue; // 0x80 + int32_t m_maxValue; // 0x68 }; // Alignment: 0 @@ -9738,19 +10122,27 @@ public: // Size: 0x40 class CSequenceFinishedAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Sequence" // MPropertyAttributeChoiceName "Sequence" CUtlString m_sequenceName; // 0x38 }; -// Alignment: 1 -// Size: 0x80 -class CBoolAnimParameter : public CAnimParameterBase +// Alignment: 4 +// Size: 0x70 +class CFloatAnimParameter : public CConcreteAnimParameter { public: // MPropertyFriendlyName "Default Value" - bool m_bDefaultValue; // 0x78 + float m_fDefaultValue; // 0x60 + // MPropertyFriendlyName "Min Value" + float m_fMinValue; // 0x64 + // MPropertyFriendlyName "Max Value" + float m_fMaxValue; // 0x68 + // MPropertyFriendlyName "Interpolate" + bool m_bInterpolate; // 0x6c }; // Alignment: 1 @@ -10015,18 +10407,6 @@ public: CRegionSVM* m_pRegionSVM; // 0xd0 }; -// Alignment: 5 -// Size: 0x18 -struct FeCollisionSphere_t -{ -public: - uint16_t nCtrlParent; // 0x0 - uint16_t nChildNode; // 0x2 - float m_flRFactor; // 0x4 - Vector m_vOrigin; // 0x8 - float flStickiness; // 0x14 -}; - // Alignment: 5 // Size: 0x1c struct FeTri_t @@ -10078,8 +10458,10 @@ public: // Size: 0x8 class IPhysicsPlayerController { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 3 @@ -10145,16 +10527,15 @@ public: float m_flOffset; // 0xc }; -// Alignment: 5 -// Size: 0xc +// Alignment: 4 +// Size: 0x8 struct FeRigidColliderIndices_t { public: uint16_t m_nTaperedCapsuleRigidIndex; // 0x0 uint16_t m_nSphereRigidIndex; // 0x2 uint16_t m_nBoxRigidIndex; // 0x4 - uint16_t m_nCollisionSphereIndex[2]; // 0x6 - uint16_t m_nCollisionPlaneIndex; // 0xa + uint16_t m_nCollisionPlaneIndex; // 0x6 }; // Alignment: 6 @@ -10490,7 +10871,7 @@ public: Vector m_vNormal; // 0xc }; -// Alignment: 8 +// Alignment: 9 // Size: 0xa0 struct RnMesh_t { @@ -10503,6 +10884,7 @@ public: CUtlVector< RnWing_t > m_Wings; // 0x60 CUtlVector< uint8 > m_Materials; // 0x78 Vector m_vOrthographicAreas; // 0x90 + bool m_bHasOpenEdges; // 0x9c }; // Alignment: 3 @@ -10736,8 +11118,8 @@ public: uint64_t m_nOldPointer; // 0xd0 }; -// Alignment: 100 -// Size: 0x600 +// Alignment: 98 +// Size: 0x5e8 struct PhysFeModelDesc_t { public: @@ -10757,12 +11139,11 @@ public: uint16_t m_nSimdQuadCount2; // 0x4e uint16_t m_nQuadCount1; // 0x50 uint16_t m_nQuadCount2; // 0x52 - uint16_t m_nCollisionSphereInclusiveCount; // 0x54 - uint16_t m_nTreeDepth; // 0x56 - uint16_t m_nNodeBaseJiggleboneDependsCount; // 0x58 - uint16_t m_nRopeCount; // 0x5a + uint16_t m_nTreeDepth; // 0x54 + uint16_t m_nNodeBaseJiggleboneDependsCount; // 0x56 + uint16_t m_nRopeCount; // 0x58 private: - [[maybe_unused]] uint8_t __pad005c[0x4]; // 0x5c + [[maybe_unused]] uint8_t __pad005a[0x6]; // 0x5a public: CUtlVector< uint16 > m_Ropes; // 0x60 CUtlVector< FeNodeBase_t > m_NodeBases; // 0x78 @@ -10779,71 +11160,70 @@ public: CUtlVector< FeCtrlOffset_t > m_CtrlOffsets; // 0x180 CUtlVector< FeCtrlOsOffset_t > m_CtrlOsOffsets; // 0x198 CUtlVector< FeFollowNode_t > m_FollowNodes; // 0x1b0 - CUtlVector< FeCollisionSphere_t > m_CollisionSpheres; // 0x1c8 - CUtlVector< FeCollisionPlane_t > m_CollisionPlanes; // 0x1e0 - CUtlVector< FeNodeIntegrator_t > m_NodeIntegrator; // 0x1f8 - CUtlVector< FeSpringIntegrator_t > m_SpringIntegrator; // 0x210 - CUtlVector< FeSimdSpringIntegrator_t > m_SimdSpringIntegrator; // 0x228 - CUtlVector< FeWorldCollisionParams_t > m_WorldCollisionParams; // 0x240 - CUtlVector< float32 > m_LegacyStretchForce; // 0x258 - CUtlVector< float32 > m_NodeCollisionRadii; // 0x270 - CUtlVector< float32 > m_DynNodeFriction; // 0x288 - CUtlVector< float32 > m_LocalRotation; // 0x2a0 - CUtlVector< float32 > m_LocalForce; // 0x2b8 - CUtlVector< FeTaperedCapsuleStretch_t > m_TaperedCapsuleStretches; // 0x2d0 - CUtlVector< FeTaperedCapsuleRigid_t > m_TaperedCapsuleRigids; // 0x2e8 - CUtlVector< FeSphereRigid_t > m_SphereRigids; // 0x300 - CUtlVector< uint16 > m_WorldCollisionNodes; // 0x318 - CUtlVector< uint16 > m_TreeParents; // 0x330 - CUtlVector< uint16 > m_TreeCollisionMasks; // 0x348 - CUtlVector< FeTreeChildren_t > m_TreeChildren; // 0x360 - CUtlVector< uint16 > m_FreeNodes; // 0x378 - CUtlVector< FeFitMatrix_t > m_FitMatrices; // 0x390 - CUtlVector< FeFitWeight_t > m_FitWeights; // 0x3a8 - CUtlVector< FeNodeReverseOffset_t > m_ReverseOffsets; // 0x3c0 - CUtlVector< FeAnimStrayRadius_t > m_AnimStrayRadii; // 0x3d8 - CUtlVector< FeSimdAnimStrayRadius_t > m_SimdAnimStrayRadii; // 0x3f0 - CUtlVector< FeKelagerBend2_t > m_KelagerBends; // 0x408 - CUtlVector< FeCtrlSoftOffset_t > m_CtrlSoftOffsets; // 0x420 - CUtlVector< CFeIndexedJiggleBone > m_JiggleBones; // 0x438 - CUtlVector< uint16 > m_SourceElems; // 0x450 - CUtlVector< uint32 > m_GoalDampedSpringIntegrators; // 0x468 - CUtlVector< FeTri_t > m_Tris; // 0x480 - uint16_t m_nTriCount1; // 0x498 - uint16_t m_nTriCount2; // 0x49a - uint8_t m_nReservedUint8; // 0x49c - uint8_t m_nExtraPressureIterations; // 0x49d - uint8_t m_nExtraGoalIterations; // 0x49e - uint8_t m_nExtraIterations; // 0x49f - CUtlVector< FeBoxRigid_t > m_BoxRigids; // 0x4a0 - CUtlVector< uint8 > m_DynNodeVertexSet; // 0x4b8 - CUtlVector< uint32 > m_VertexSetNames; // 0x4d0 - CUtlVector< FeRigidColliderIndices_t > m_RigidColliderPriorities; // 0x4e8 - CUtlVector< FeMorphLayerDepr_t > m_MorphLayers; // 0x500 - CUtlVector< uint8 > m_MorphSetData; // 0x518 - CUtlVector< FeVertexMapDesc_t > m_VertexMaps; // 0x530 - CUtlVector< uint8 > m_VertexMapValues; // 0x548 - CUtlVector< FeEffectDesc_t > m_Effects; // 0x560 - CUtlVector< FeCtrlOffset_t > m_LockToParent; // 0x578 - CUtlVector< uint16 > m_LockToGoal; // 0x590 - CUtlVector< FeNodeWindBase_t > m_DynNodeWindBases; // 0x5a8 - float m_flInternalPressure; // 0x5c0 - float m_flDefaultTimeDilation; // 0x5c4 - float m_flWindage; // 0x5c8 - float m_flWindDrag; // 0x5cc - float m_flDefaultSurfaceStretch; // 0x5d0 - float m_flDefaultThreadStretch; // 0x5d4 - float m_flDefaultGravityScale; // 0x5d8 - float m_flDefaultVelAirDrag; // 0x5dc - float m_flDefaultExpAirDrag; // 0x5e0 - float m_flDefaultVelQuadAirDrag; // 0x5e4 - float m_flDefaultExpQuadAirDrag; // 0x5e8 - float m_flRodVelocitySmoothRate; // 0x5ec - float m_flQuadVelocitySmoothRate; // 0x5f0 - float m_flAddWorldCollisionRadius; // 0x5f4 - float m_flDefaultVolumetricSolveAmount; // 0x5f8 - uint16_t m_nRodVelocitySmoothIterations; // 0x5fc - uint16_t m_nQuadVelocitySmoothIterations; // 0x5fe + CUtlVector< FeCollisionPlane_t > m_CollisionPlanes; // 0x1c8 + CUtlVector< FeNodeIntegrator_t > m_NodeIntegrator; // 0x1e0 + CUtlVector< FeSpringIntegrator_t > m_SpringIntegrator; // 0x1f8 + CUtlVector< FeSimdSpringIntegrator_t > m_SimdSpringIntegrator; // 0x210 + CUtlVector< FeWorldCollisionParams_t > m_WorldCollisionParams; // 0x228 + CUtlVector< float32 > m_LegacyStretchForce; // 0x240 + CUtlVector< float32 > m_NodeCollisionRadii; // 0x258 + CUtlVector< float32 > m_DynNodeFriction; // 0x270 + CUtlVector< float32 > m_LocalRotation; // 0x288 + CUtlVector< float32 > m_LocalForce; // 0x2a0 + CUtlVector< FeTaperedCapsuleStretch_t > m_TaperedCapsuleStretches; // 0x2b8 + CUtlVector< FeTaperedCapsuleRigid_t > m_TaperedCapsuleRigids; // 0x2d0 + CUtlVector< FeSphereRigid_t > m_SphereRigids; // 0x2e8 + CUtlVector< uint16 > m_WorldCollisionNodes; // 0x300 + CUtlVector< uint16 > m_TreeParents; // 0x318 + CUtlVector< uint16 > m_TreeCollisionMasks; // 0x330 + CUtlVector< FeTreeChildren_t > m_TreeChildren; // 0x348 + CUtlVector< uint16 > m_FreeNodes; // 0x360 + CUtlVector< FeFitMatrix_t > m_FitMatrices; // 0x378 + CUtlVector< FeFitWeight_t > m_FitWeights; // 0x390 + CUtlVector< FeNodeReverseOffset_t > m_ReverseOffsets; // 0x3a8 + CUtlVector< FeAnimStrayRadius_t > m_AnimStrayRadii; // 0x3c0 + CUtlVector< FeSimdAnimStrayRadius_t > m_SimdAnimStrayRadii; // 0x3d8 + CUtlVector< FeKelagerBend2_t > m_KelagerBends; // 0x3f0 + CUtlVector< FeCtrlSoftOffset_t > m_CtrlSoftOffsets; // 0x408 + CUtlVector< CFeIndexedJiggleBone > m_JiggleBones; // 0x420 + CUtlVector< uint16 > m_SourceElems; // 0x438 + CUtlVector< uint32 > m_GoalDampedSpringIntegrators; // 0x450 + CUtlVector< FeTri_t > m_Tris; // 0x468 + uint16_t m_nTriCount1; // 0x480 + uint16_t m_nTriCount2; // 0x482 + uint8_t m_nReservedUint8; // 0x484 + uint8_t m_nExtraPressureIterations; // 0x485 + uint8_t m_nExtraGoalIterations; // 0x486 + uint8_t m_nExtraIterations; // 0x487 + CUtlVector< FeBoxRigid_t > m_BoxRigids; // 0x488 + CUtlVector< uint8 > m_DynNodeVertexSet; // 0x4a0 + CUtlVector< uint32 > m_VertexSetNames; // 0x4b8 + CUtlVector< FeRigidColliderIndices_t > m_RigidColliderPriorities; // 0x4d0 + CUtlVector< FeMorphLayerDepr_t > m_MorphLayers; // 0x4e8 + CUtlVector< uint8 > m_MorphSetData; // 0x500 + CUtlVector< FeVertexMapDesc_t > m_VertexMaps; // 0x518 + CUtlVector< uint8 > m_VertexMapValues; // 0x530 + CUtlVector< FeEffectDesc_t > m_Effects; // 0x548 + CUtlVector< FeCtrlOffset_t > m_LockToParent; // 0x560 + CUtlVector< uint16 > m_LockToGoal; // 0x578 + CUtlVector< FeNodeWindBase_t > m_DynNodeWindBases; // 0x590 + float m_flInternalPressure; // 0x5a8 + float m_flDefaultTimeDilation; // 0x5ac + float m_flWindage; // 0x5b0 + float m_flWindDrag; // 0x5b4 + float m_flDefaultSurfaceStretch; // 0x5b8 + float m_flDefaultThreadStretch; // 0x5bc + float m_flDefaultGravityScale; // 0x5c0 + float m_flDefaultVelAirDrag; // 0x5c4 + float m_flDefaultExpAirDrag; // 0x5c8 + float m_flDefaultVelQuadAirDrag; // 0x5cc + float m_flDefaultExpQuadAirDrag; // 0x5d0 + float m_flRodVelocitySmoothRate; // 0x5d4 + float m_flQuadVelocitySmoothRate; // 0x5d8 + float m_flAddWorldCollisionRadius; // 0x5dc + float m_flDefaultVolumetricSolveAmount; // 0x5e0 + uint16_t m_nRodVelocitySmoothIterations; // 0x5e4 + uint16_t m_nQuadVelocitySmoothIterations; // 0x5e6 }; // Alignment: 1 @@ -10905,632 +11285,6 @@ public: float m_flLength; // 0x4 }; -// Alignment: 1 -// Size: 0x4 -struct PulseDocNodeID_t -{ -public: - int32_t m_Value; // 0x0 -}; - -// Alignment: 1 -// Size: 0x48 -class CPulseCell_Base -{ -public: - // MFgdFromSchemaCompletelySkipField - PulseDocNodeID_t m_nEditorNodeID; // 0x8 -}; - -// Alignment: 1 -// Size: 0x2 -struct PulseRuntimeStateOffset_t -{ -public: - uint16_t m_Value; // 0x0 -}; - -// Alignment: 3 -// Size: 0x50 -class CPulseRuntimeMethodArg -{ -public: - CKV3MemberNameWithStorage m_Name; // 0x0 - CUtlString m_Description; // 0x38 - CPulseValueFullType m_Type; // 0x40 -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_BaseFlow : public CPulseCell_Base -{ -public: - // No members available -}; - -// Alignment: 1 -// Size: 0x4 -struct PulseRuntimeChunkIndex_t -{ -public: - int32_t m_Value; // 0x0 -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Step_DebugLog : public CPulseCell_BaseFlow -{ -public: - // No members available -}; - -// Alignment: 3 -// Size: 0x10 -class CPulse_OutflowConnection -{ -public: - CUtlSymbolLarge m_SourceOutflowName; // 0x0 - PulseRuntimeChunkIndex_t m_nDestChunk; // 0x8 - int32_t m_nInstruction; // 0xc -}; - -// Alignment: 1 -// Size: 0x4 -struct PulseRuntimeCallInfoIndex_t -{ -public: - int32_t m_Value; // 0x0 -}; - -// Alignment: 2 -// Size: 0x20 -struct PulseRegisterMap_t -{ -public: - KeyValues3 m_Inparams; // 0x0 - KeyValues3 m_Outparams; // 0x10 -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Test_MultiInflow_NoDefault : public CPulseCell_BaseFlow -{ -public: - // No members available -}; - -// Alignment: 9 -// Size: 0xf8 -class CPulseGraphDef -{ -public: - CUtlSymbolLarge m_DomainIdentifier; // 0x8 - CUtlSymbolLarge m_ParentMapName; // 0x10 - CUtlVector< CPulse_Chunk* > m_Chunks; // 0x18 - CUtlVector< CPulseCell_Base* > m_Cells; // 0x30 - CUtlVector< CPulse_Variable > m_Vars; // 0x48 - CUtlVector< CPulse_PublicOutput > m_PublicOutputs; // 0x60 - CUtlVector< CPulse_InvokeBinding* > m_InvokeBindings; // 0x78 - CUtlVector< CPulse_CallInfo* > m_CallInfos; // 0x90 - CUtlVector< CPulse_OutputConnection* > m_OutputConnections; // 0xa8 -}; - -// Alignment: 2 -// Size: 0x70 -class CPulseCell_Outflow_IntSwitch : public CPulseCell_BaseFlow -{ -public: - CPulse_OutflowConnection m_DefaultCaseOutflow; // 0x48 - CUtlVector< CPulse_OutflowConnection > m_CaseOutflows; // 0x58 -}; - -// Alignment: 1 -// Size: 0x4 -struct PulseRuntimeCellIndex_t -{ -public: - int32_t m_Value; // 0x0 -}; - -// Alignment: 1 -// Size: 0x2 -struct PulseRuntimeRegisterIndex_t -{ -public: - int16_t m_Value; // 0x0 -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_BaseValue : public CPulseCell_Base -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Val_TestDomainGetEntityName : public CPulseCell_BaseValue -{ -public: - // No members available -}; - -// Alignment: 6 -// Size: 0x40 -class CPulse_CallInfo -{ -public: - CUtlSymbolLarge m_PortName; // 0x0 - PulseDocNodeID_t m_nEditorNodeID; // 0x8 -private: - [[maybe_unused]] uint8_t __pad000c[0x4]; // 0xc -public: - PulseRegisterMap_t m_RegisterMap; // 0x10 - PulseDocNodeID_t m_CallMethodID; // 0x30 - PulseRuntimeChunkIndex_t m_nSrcChunk; // 0x34 - int32_t m_nSrcInstruction; // 0x38 -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Step_TestDomainTracepoint : public CPulseCell_BaseFlow -{ -public: - // No members available -}; - -// Alignment: 2 -// Size: 0x70 -class CPulseCell_Inflow_BaseEntrypoint : public CPulseCell_BaseFlow -{ -public: - PulseRuntimeChunkIndex_t m_EntryChunk; // 0x48 -private: - [[maybe_unused]] uint8_t __pad004c[0x4]; // 0x4c -public: - PulseRegisterMap_t m_RegisterMap; // 0x50 -}; - -// Alignment: 0 -// Size: 0xd0 -class CBasePulseGraphInstance -{ -public: - uint8_t __pad0000[0xd0]; // Autoaligned -}; - -// Alignment: 1 -// Size: 0x50 -class CPulseCell_Step_TestDomainEntFire : public CPulseCell_BaseFlow -{ -public: - CUtlString m_Input; // 0x48 -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Step_TestDomainCreateFakeEntity : public CPulseCell_BaseFlow -{ -public: - // No members available -}; - -// Alignment: 1 -// Size: 0x4 -struct PulseRuntimeOutputIndex_t -{ -public: - int32_t m_Value; // 0x0 -}; - -// Alignment: 1 -// Size: 0x60 -class CPulseCell_Outflow_CycleShuffled : public CPulseCell_BaseFlow -{ -public: - CUtlVector< CPulse_OutflowConnection > m_Outputs; // 0x48 -}; - -// Alignment: 5 -// Size: 0x108 -class CPulseGraphInstance_TestDomain : public CBasePulseGraphInstance -{ -public: - bool m_bIsRunningUnitTests; // 0xd0 - bool m_bExplicitTimeStepping; // 0xd1 - bool m_bExpectingToDestroyWithYieldedCursors; // 0xd2 -private: - [[maybe_unused]] uint8_t __pad00d3[0x1]; // 0xd3 -public: - int32_t m_nNextValidateIndex; // 0xd4 - CUtlVector< CUtlString > m_Tracepoints; // 0xd8 - static double &Get_s_flExplicitCurTime(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CPulseGraphInstance_TestDomain")->m_static_fields[0]->m_instance);}; -}; - -// Alignment: 5 -// Size: 0xb0 -class CPulseCell_Inflow_Method : public CPulseCell_Inflow_BaseEntrypoint -{ -public: - CUtlSymbolLarge m_MethodName; // 0x70 - CUtlString m_Description; // 0x78 - bool m_bIsPublic; // 0x80 -private: - [[maybe_unused]] uint8_t __pad0081[0x7]; // 0x81 -public: - CPulseValueFullType m_ReturnType; // 0x88 - CUtlVector< CPulseRuntimeMethodArg > m_Args; // 0x98 -}; - -// Alignment: 5 -// Size: 0x38 -class CPulse_Variable -{ -public: - CUtlSymbolLarge m_Name; // 0x0 - CUtlString m_Description; // 0x8 - CPulseValueFullType m_Type; // 0x10 - KeyValues3 m_DefaultValue; // 0x20 -private: - [[maybe_unused]] uint8_t __pad0030[0x2]; // 0x30 -public: - bool m_bIsPublic; // 0x32 -}; - -// Alignment: 5 -// Size: 0x38 -class CPulse_InvokeBinding -{ -public: - PulseRegisterMap_t m_RegisterMap; // 0x0 - CUtlSymbolLarge m_FuncName; // 0x20 - PulseRuntimeCellIndex_t m_nCellIndex; // 0x28 - PulseRuntimeChunkIndex_t m_nSrcChunk; // 0x2c - int32_t m_nSrcInstruction; // 0x30 -}; - -// Alignment: 1 -// Size: 0x4 -struct PulseRuntimeInvokeIndex_t -{ -public: - int32_t m_Value; // 0x0 -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_BaseYieldingInflow : public CPulseCell_BaseFlow -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x1 -class CPulseTurtleGraphicsLib -{ -public: - uint8_t __pad0000[0x1]; // Autoaligned -}; - -// Alignment: 1 -// Size: 0x60 -class CPulseCell_Outflow_SimultaneousParallel : public CPulseCell_BaseFlow -{ -public: - CUtlVector< CPulse_OutflowConnection > m_Outputs; // 0x48 -}; - -// Alignment: 0 -// Size: 0xf0 -class CPulseGraphInstance_TurtleGraphics : public CBasePulseGraphInstance -{ -public: - // No members available -}; - -// Alignment: 2 -// Size: 0x68 -class CPulseCell_Step_CallExternalMethod : public CPulseCell_BaseFlow -{ -public: - CUtlSymbolLarge m_MethodName; // 0x48 - CUtlVector< CPulseRuntimeMethodArg > m_ExpectedArgs; // 0x50 -}; - -// Alignment: 4 -// Size: 0x20 -class CPulse_OutputConnection -{ -public: - CUtlSymbolLarge m_SourceOutput; // 0x0 - CUtlSymbolLarge m_TargetEntity; // 0x8 - CUtlSymbolLarge m_TargetInput; // 0x10 - CUtlSymbolLarge m_Param; // 0x18 -}; - -// Alignment: 2 -// Size: 0x10 -class CPulse_PublicOutput -{ -public: - CUtlSymbolLarge m_Name; // 0x0 - CUtlString m_Description; // 0x8 -}; - -// Alignment: 1 -// Size: 0x78 -class CPulseCell_Inflow_EventHandler : public CPulseCell_Inflow_BaseEntrypoint -{ -public: - CUtlSymbolLarge m_EventName; // 0x70 -}; - -// Alignment: 1 -// Size: 0x60 -class CPulseCell_Outflow_CycleRandom : public CPulseCell_BaseFlow -{ -public: - CUtlVector< CPulse_OutflowConnection > m_Outputs; // 0x48 -}; - -// Alignment: 0 -// Size: 0x10 -class CPulse_ResumePoint : public CPulse_OutflowConnection -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Value_RandomInt : public CPulseCell_BaseValue -{ -public: - // No members available -}; - -// Alignment: 2 -// Size: 0x28 -struct CPulseCell_Outflow_CycleShuffled__InstanceState_t -{ -public: - CUtlVectorFixedGrowable< uint8 > m_Shuffle; // 0x0 - int32_t m_nNextShuffle; // 0x20 -}; - -// Alignment: 1 -// Size: 0x4 -struct PulseTestEHandle_t -{ -public: - int32_t m_Value; // 0x0 -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Test_NoInflow : public CPulseCell_BaseFlow -{ -public: - // No members available -}; - -// Alignment: 2 -// Size: 0x70 -class CPulseCell_Outflow_StringSwitch : public CPulseCell_BaseFlow -{ -public: - CPulse_OutflowConnection m_DefaultCaseOutflow; // 0x48 - CUtlVector< CPulse_OutflowConnection > m_CaseOutflows; // 0x58 -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Test_MultiInflow_WithDefault : public CPulseCell_BaseFlow -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Value_TestValue50 : public CPulseCell_BaseValue -{ -public: - // No members available -}; - -// Alignment: 4 -// Size: 0x98 -class CPulseCell_Inflow_EntOutputHandler : public CPulseCell_Inflow_BaseEntrypoint -{ -public: - CUtlSymbolLarge m_SourceEntity; // 0x70 - CUtlSymbolLarge m_SourceOutput; // 0x78 - CUtlSymbolLarge m_TargetInput; // 0x80 - CPulseValueFullType m_ExpectedParamType; // 0x88 -}; - -// Alignment: 1 -// Size: 0x58 -class CPulseCell_Inflow_Wait : public CPulseCell_BaseYieldingInflow -{ -public: - CPulse_ResumePoint m_WakeResume; // 0x48 -}; - -// Alignment: 1 -// Size: 0x78 -class CPulseCell_Inflow_GraphHook : public CPulseCell_Inflow_BaseEntrypoint -{ -public: - CUtlSymbolLarge m_HookName; // 0x70 -}; - -// Alignment: 1 -// Size: 0x58 -class CPulseCell_Inflow_Yield : public CPulseCell_BaseYieldingInflow -{ -public: - CPulse_ResumePoint m_UnyieldResume; // 0x48 -}; - -// Alignment: 0 -// Size: 0x1 -class CPulseTestFuncs_DerivedDomain -{ -public: - uint8_t __pad0000[0x1]; // Autoaligned -}; - -// Alignment: 1 -// Size: 0x60 -class CPulseCell_Outflow_CycleOrdered : public CPulseCell_BaseFlow -{ -public: - CUtlVector< CPulse_OutflowConnection > m_Outputs; // 0x48 -}; - -// Alignment: 0 -// Size: 0x108 -class CPulseGraphInstance_TestDomain_Derived : public CPulseGraphInstance_TestDomain -{ -public: - // No members available -}; - -// Alignment: 2 -// Size: 0x68 -class CPulseCell_Outflow_TestRandomYesNo : public CPulseCell_BaseFlow -{ -public: - // MPropertyFriendlyName "Yes" - // MPropertyDescription "Randomly taken half of the time" - CPulse_OutflowConnection m_Yes; // 0x48 - // MPropertyFriendlyName "No" - // MPropertyDescription "Randomly taken half of the time" - CPulse_OutflowConnection m_No; // 0x58 -}; - -// Alignment: 5 -// Size: 0x58 -class CPulse_RegisterInfo -{ -public: - PulseRuntimeRegisterIndex_t m_nReg; // 0x0 - CPulseValueFullType m_Type; // 0x8 - CKV3MemberNameWithStorage m_OriginName; // 0x18 - int32_t m_nWrittenByInstruction; // 0x50 - int32_t m_nLastReadByInstruction; // 0x54 -}; - -// Alignment: 1 -// Size: 0x4 -struct CPulseCell_Outflow_CycleOrdered__InstanceState_t -{ -public: - int32_t m_nNextIndex; // 0x0 -}; - -// Alignment: 1 -// Size: 0x4 -struct PulseRuntimeVarIndex_t -{ -public: - int32_t m_Value; // 0x0 -}; - -// Alignment: 0 -// Size: 0x68 -class CPulseCell_Value_Expression : public CPulseCell_BaseValue -{ -public: - // No members available -}; - -// Alignment: 3 -// Size: 0x60 -class CPulse_Chunk -{ -public: - CUtlLeanVector< PGDInstruction_t > m_Instructions; // 0x0 - CUtlLeanVector< CPulse_RegisterInfo > m_Registers; // 0x10 - CUtlLeanVector< PulseDocNodeID_t > m_InstructionEditorIDs; // 0x20 -}; - -// Alignment: 1 -// Size: 0x4 -struct PulseRuntimeEntrypointIndex_t -{ -public: - int32_t m_Value; // 0x0 -}; - -// Alignment: 16 -// Size: 0x68 -struct PGDInstruction_t -{ -public: - PulseInstructionCode_t m_nCode; // 0x0 - PulseRuntimeVarIndex_t m_nVar; // 0x4 - PulseRuntimeRegisterIndex_t m_nReg0; // 0x8 - PulseRuntimeRegisterIndex_t m_nReg1; // 0xa - PulseRuntimeRegisterIndex_t m_nReg2; // 0xc -private: - [[maybe_unused]] uint8_t __pad000e[0x2]; // 0xe -public: - PulseRuntimeInvokeIndex_t m_nInvokeBindingIndex; // 0x10 - PulseRuntimeChunkIndex_t m_nChunk; // 0x14 - int32_t m_nDestInstruction; // 0x18 - PulseRuntimeCallInfoIndex_t m_nCallInfoIndex; // 0x1c - CUtlSymbolLarge m_Arg0Name; // 0x20 - CUtlSymbolLarge m_Arg1Name; // 0x28 - bool m_bLiteralBool; // 0x30 -private: - [[maybe_unused]] uint8_t __pad0031[0x3]; // 0x31 -public: - int32_t m_nLiteralInt; // 0x34 - float m_flLiteralFloat; // 0x38 -private: - [[maybe_unused]] uint8_t __pad003c[0x4]; // 0x3c -public: - CBufferString m_LiteralString; // 0x40 - Vector m_vLiteralVec3; // 0x50 -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Step_TestDomainDestroyFakeEntity : public CPulseCell_BaseFlow -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x1 -class CPulseTestFuncs_LibraryA -{ -public: - uint8_t __pad0000[0x1]; // Autoaligned -}; - -// Alignment: 0 -// Size: 0x48 -class CPulseCell_Val_TestDomainFindEntityByName : public CPulseCell_BaseValue -{ -public: - // No members available -}; - -// Alignment: 1 -// Size: 0x50 -class CPulseCell_Step_PublicOutput : public CPulseCell_BaseFlow -{ -public: - PulseRuntimeOutputIndex_t m_OutputIndex; // 0x48 -}; - // Alignment: 12 // Size: 0x30 struct VMixDynamicsDesc_t @@ -11622,6 +11376,8 @@ public: // Size: 0x18 class CSosGroupActionSchema { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MPropertyFriendlyName "Name" CUtlString m_name; // 0x8 @@ -11795,6 +11551,8 @@ public: // Size: 0x10 class CSosGroupBranchPattern { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MPropertyFriendlyName "Event Name" bool m_bMatchEventName; // 0x8 @@ -12077,6 +11835,26 @@ public: float m_flInterpolationTime; // 0x8 }; +// Alignment: 5 +// Size: 0x38 +class CSosGroupActionSetSoundeventParameterSchema : public CSosGroupActionSchema +{ +public: + // MPropertyFriendlyName "Max Count" + int32_t m_nMaxCount; // 0x18 + // MPropertyFriendlyName "Minimum Value" + float m_flMinValue; // 0x1c + // MPropertyFriendlyName "Maximum Value" + float m_flMaxValue; // 0x20 +private: + [[maybe_unused]] uint8_t __pad0024[0x4]; // 0x24 +public: + // MPropertyFriendlyName "Parameter Name" + CUtlString m_opvarName; // 0x28 + // MPropertyFriendlyName "Sort Type" + SosActionSortType_t m_nSortType; // 0x30 +}; + // Alignment: 1 // Size: 0x18 class CDSPPresetMixgroupModifierTable @@ -12205,6 +11983,8 @@ public: // Size: 0x40 struct EntityKeyValueData_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlVector< EntityIOConnectionData_t > m_connections; // 0x8 CUtlBinaryBlock m_keyValuesData; // 0x20 @@ -12287,14 +12067,18 @@ public: // Size: 0x1 struct InfoForResourceTypeVMapResourceData_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 13 // Size: 0xa0 class CVoxelVisibility { +private: + [[maybe_unused]] uint8_t __pad0000[0x40]; // 0x0 public: uint32_t m_nBaseClusterCount; // 0x40 uint32_t m_nPVSBytesPerCluster; // 0x44 @@ -12380,6 +12164,8 @@ public: // Size: 0x40 struct PermEntityLumpData_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlString m_name; // 0x8 CUtlString m_hammerUniqueId; // 0x10 @@ -12398,8 +12184,8 @@ public: CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCEntityLump > > m_entityLumps; // 0x68 }; -// Alignment: 7 -// Size: 0x70 +// Alignment: 8 +// Size: 0xa0 struct ClutterSceneObject_t { public: @@ -12409,18 +12195,24 @@ public: private: [[maybe_unused]] uint8_t __pad001e[0x2]; // 0x1e public: - CUtlVector< matrix3x4_t > m_transforms; // 0x20 - CUtlVector< Color > m_tintColorSrgb; // 0x38 - CUtlVector< ClutterTile_t > m_tiles; // 0x50 - CStrongHandle< InfoForResourceTypeCModel > m_renderableModel; // 0x68 + CUtlVector< Vector > m_instancePositions; // 0x20 +private: + [[maybe_unused]] uint8_t __pad0038[0x18]; // 0x38 +public: + CUtlVector< float32 > m_instanceScales; // 0x50 + CUtlVector< Color > m_instanceTintSrgb; // 0x68 + CUtlVector< ClutterTile_t > m_tiles; // 0x80 + CStrongHandle< InfoForResourceTypeCModel > m_renderableModel; // 0x98 }; // Alignment: 0 // Size: 0x1 struct VMapResourceData_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 7 @@ -12465,7 +12257,7 @@ struct ClutterTile_t public: uint32_t m_nFirstInstance; // 0x0 uint32_t m_nLastInstance; // 0x4 - AABB_t m_Bounds; // 0x8 + AABB_t m_BoundsWs; // 0x8 }; // Alignment: 4 @@ -12521,12 +12313,756 @@ public: CStrongHandle< InfoForResourceTypeCRenderMesh > m_renderable; // 0x88 }; +// Alignment: 0 +// Size: 0x188 +class CPulseExecCursor +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x188]; // 0x0 +public: + // No members available +}; + +// Alignment: 1 +// Size: 0x4 +struct PulseDocNodeID_t +{ +public: + int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseDocNodeID_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 1 +// Size: 0x48 +class CPulseCell_Base +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 +public: + // MFgdFromSchemaCompletelySkipField + PulseDocNodeID_t m_nEditorNodeID; // 0x8 +}; + +// Alignment: 1 +// Size: 0x2 +struct PulseRuntimeStateOffset_t +{ +public: + uint16_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseRuntimeStateOffset_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 3 +// Size: 0x50 +class CPulseRuntimeMethodArg +{ +public: + CKV3MemberNameWithStorage m_Name; // 0x0 + CUtlString m_Description; // 0x38 + CPulseValueFullType m_Type; // 0x40 +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_BaseFlow : public CPulseCell_Base +{ +public: + // No members available +}; + +// Alignment: 1 +// Size: 0x4 +struct PulseRuntimeChunkIndex_t +{ +public: + int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseRuntimeChunkIndex_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Step_DebugLog : public CPulseCell_BaseFlow +{ +public: + // No members available +}; + +// Alignment: 3 +// Size: 0x10 +class CPulse_OutflowConnection +{ +public: + CUtlSymbolLarge m_SourceOutflowName; // 0x0 + PulseRuntimeChunkIndex_t m_nDestChunk; // 0x8 + int32_t m_nInstruction; // 0xc +}; + +// Alignment: 2 +// Size: 0x68 +class CPulseCell_Outflow_TestExplicitYesNo : public CPulseCell_BaseFlow +{ +public: + // MPropertyFriendlyName "Yes" + CPulse_OutflowConnection m_Yes; // 0x48 + // MPropertyFriendlyName "No" + CPulse_OutflowConnection m_No; // 0x58 +}; + +// Alignment: 1 +// Size: 0x4 +struct PulseRuntimeCallInfoIndex_t +{ +public: + int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseRuntimeCallInfoIndex_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 2 +// Size: 0x20 +struct PulseRegisterMap_t +{ +public: + KeyValues3 m_Inparams; // 0x0 + KeyValues3 m_Outparams; // 0x10 +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Test_MultiInflow_NoDefault : public CPulseCell_BaseFlow +{ +public: + // No members available +}; + +// Alignment: 9 +// Size: 0xf8 +class CPulseGraphDef +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 +public: + CUtlSymbolLarge m_DomainIdentifier; // 0x8 + CUtlSymbolLarge m_ParentMapName; // 0x10 + CUtlVector< CPulse_Chunk* > m_Chunks; // 0x18 + CUtlVector< CPulseCell_Base* > m_Cells; // 0x30 + CUtlVector< CPulse_Variable > m_Vars; // 0x48 + CUtlVector< CPulse_PublicOutput > m_PublicOutputs; // 0x60 + CUtlVector< CPulse_InvokeBinding* > m_InvokeBindings; // 0x78 + CUtlVector< CPulse_CallInfo* > m_CallInfos; // 0x90 + CUtlVector< CPulse_OutputConnection* > m_OutputConnections; // 0xa8 +}; + +// Alignment: 2 +// Size: 0x70 +class CPulseCell_Outflow_IntSwitch : public CPulseCell_BaseFlow +{ +public: + CPulse_OutflowConnection m_DefaultCaseOutflow; // 0x48 + CUtlVector< CPulse_OutflowConnection > m_CaseOutflows; // 0x58 +}; + +// Alignment: 4 +// Size: 0x1a0 +class CPulseTurtleGraphicsCursor : public CPulseExecCursor +{ +public: + Color m_Color; // 0x188 + Vector2D m_vPos; // 0x18c + float m_flHeadingDeg; // 0x194 + bool m_bPenUp; // 0x198 +}; + +// Alignment: 1 +// Size: 0x4 +struct PulseRuntimeCellIndex_t +{ +public: + int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseRuntimeCellIndex_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 1 +// Size: 0x2 +struct PulseRuntimeRegisterIndex_t +{ +public: + int16_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseRuntimeRegisterIndex_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_BaseValue : public CPulseCell_Base +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Val_TestDomainGetEntityName : public CPulseCell_BaseValue +{ +public: + // No members available +}; + +// Alignment: 6 +// Size: 0x40 +class CPulse_CallInfo +{ +public: + CUtlSymbolLarge m_PortName; // 0x0 + PulseDocNodeID_t m_nEditorNodeID; // 0x8 +private: + [[maybe_unused]] uint8_t __pad000c[0x4]; // 0xc +public: + PulseRegisterMap_t m_RegisterMap; // 0x10 + PulseDocNodeID_t m_CallMethodID; // 0x30 + PulseRuntimeChunkIndex_t m_nSrcChunk; // 0x34 + int32_t m_nSrcInstruction; // 0x38 +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Step_TestDomainTracepoint : public CPulseCell_BaseFlow +{ +public: + // No members available +}; + +// Alignment: 2 +// Size: 0x70 +class CPulseCell_Inflow_BaseEntrypoint : public CPulseCell_BaseFlow +{ +public: + PulseRuntimeChunkIndex_t m_EntryChunk; // 0x48 +private: + [[maybe_unused]] uint8_t __pad004c[0x4]; // 0x4c +public: + PulseRegisterMap_t m_RegisterMap; // 0x50 +}; + +// Alignment: 0 +// Size: 0xd0 +class CBasePulseGraphInstance +{ +private: + [[maybe_unused]] uint8_t __pad0000[0xd0]; // 0x0 +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x1 +class CPulseMathlib +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 +public: + // No members available +}; + +// Alignment: 1 +// Size: 0x50 +class CPulseCell_Step_TestDomainEntFire : public CPulseCell_BaseFlow +{ +public: + CUtlString m_Input; // 0x48 +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Step_TestDomainCreateFakeEntity : public CPulseCell_BaseFlow +{ +public: + // No members available +}; + +// Alignment: 1 +// Size: 0x4 +struct PulseRuntimeOutputIndex_t +{ +public: + int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseRuntimeOutputIndex_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 1 +// Size: 0x60 +class CPulseCell_Outflow_CycleShuffled : public CPulseCell_BaseFlow +{ +public: + CUtlVector< CPulse_OutflowConnection > m_Outputs; // 0x48 +}; + +// Alignment: 6 +// Size: 0xf8 +class CPulseGraphInstance_TestDomain : public CBasePulseGraphInstance +{ +public: + bool m_bIsRunningUnitTests; // 0xd0 + bool m_bExplicitTimeStepping; // 0xd1 + bool m_bExpectingToDestroyWithYieldedCursors; // 0xd2 +private: + [[maybe_unused]] uint8_t __pad00d3[0x1]; // 0xd3 +public: + int32_t m_nNextValidateIndex; // 0xd4 + CUtlVector< CUtlString > m_Tracepoints; // 0xd8 + bool m_bTestYesOrNoPath; // 0xf0 + + // Static fields: + static double &Get_s_flExplicitCurTime(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CPulseGraphInstance_TestDomain")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 5 +// Size: 0xb0 +class CPulseCell_Inflow_Method : public CPulseCell_Inflow_BaseEntrypoint +{ +public: + CUtlSymbolLarge m_MethodName; // 0x70 + CUtlString m_Description; // 0x78 + bool m_bIsPublic; // 0x80 +private: + [[maybe_unused]] uint8_t __pad0081[0x7]; // 0x81 +public: + CPulseValueFullType m_ReturnType; // 0x88 + CUtlVector< CPulseRuntimeMethodArg > m_Args; // 0x98 +}; + +// Alignment: 5 +// Size: 0x38 +class CPulse_Variable +{ +public: + CUtlSymbolLarge m_Name; // 0x0 + CUtlString m_Description; // 0x8 + CPulseValueFullType m_Type; // 0x10 + KeyValues3 m_DefaultValue; // 0x20 +private: + [[maybe_unused]] uint8_t __pad0030[0x2]; // 0x30 +public: + bool m_bIsPublic; // 0x32 +}; + +// Alignment: 6 +// Size: 0x48 +class CPulse_InvokeBinding +{ +public: + PulseRegisterMap_t m_RegisterMap; // 0x0 + CUtlSymbolLarge m_FuncName; // 0x20 + PulseRuntimeCellIndex_t m_nCellIndex; // 0x28 +private: + [[maybe_unused]] uint8_t __pad002c[0x4]; // 0x2c +public: + CPulseValueFullType m_InstanceType; // 0x30 + PulseRuntimeChunkIndex_t m_nSrcChunk; // 0x40 + int32_t m_nSrcInstruction; // 0x44 +}; + +// Alignment: 1 +// Size: 0x4 +struct PulseRuntimeInvokeIndex_t +{ +public: + int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseRuntimeInvokeIndex_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_BaseYieldingInflow : public CPulseCell_BaseFlow +{ +public: + // No members available +}; + +// Alignment: 1 +// Size: 0x4 +struct PulseTestEHandle_t +{ +public: + int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseTestEHandle_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 1 +// Size: 0x60 +class CPulseCell_Outflow_SimultaneousParallel : public CPulseCell_BaseFlow +{ +public: + CUtlVector< CPulse_OutflowConnection > m_Outputs; // 0x48 +}; + +// Alignment: 0 +// Size: 0xf0 +class CPulseGraphInstance_TurtleGraphics : public CBasePulseGraphInstance +{ +public: + // No members available +}; + +// Alignment: 2 +// Size: 0x68 +class CPulseCell_Step_CallExternalMethod : public CPulseCell_BaseFlow +{ +public: + CUtlSymbolLarge m_MethodName; // 0x48 + CUtlVector< CPulseRuntimeMethodArg > m_ExpectedArgs; // 0x50 +}; + +// Alignment: 4 +// Size: 0x20 +class CPulse_OutputConnection +{ +public: + CUtlSymbolLarge m_SourceOutput; // 0x0 + CUtlSymbolLarge m_TargetEntity; // 0x8 + CUtlSymbolLarge m_TargetInput; // 0x10 + CUtlSymbolLarge m_Param; // 0x18 +}; + +// Alignment: 3 +// Size: 0x20 +class CPulse_PublicOutput +{ +public: + CUtlSymbolLarge m_Name; // 0x0 + CUtlString m_Description; // 0x8 + CPulseValueFullType m_ParamType; // 0x10 +}; + +// Alignment: 1 +// Size: 0x78 +class CPulseCell_Inflow_EventHandler : public CPulseCell_Inflow_BaseEntrypoint +{ +public: + CUtlSymbolLarge m_EventName; // 0x70 +}; + +// Alignment: 1 +// Size: 0x60 +class CPulseCell_Outflow_CycleRandom : public CPulseCell_BaseFlow +{ +public: + CUtlVector< CPulse_OutflowConnection > m_Outputs; // 0x48 +}; + +// Alignment: 0 +// Size: 0x10 +class CPulse_ResumePoint : public CPulse_OutflowConnection +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Value_RandomInt : public CPulseCell_BaseValue +{ +public: + // No members available +}; + +// Alignment: 2 +// Size: 0x28 +struct CPulseCell_Outflow_CycleShuffled__InstanceState_t +{ +public: + CUtlVectorFixedGrowable< uint8 > m_Shuffle; // 0x0 + int32_t m_nNextShuffle; // 0x20 +}; + +// Alignment: 7 +// Size: 0x30 +struct FakeEntity_t +{ +public: + PulseTestEHandle_t m_nHandle; // 0x0 + CUtlString m_Name; // 0x8 + CUtlString m_Class; // 0x10 + bool m_bDestroyed; // 0x18 +private: + [[maybe_unused]] uint8_t __pad0019[0x7]; // 0x19 +public: + CPulseGraphInstance_TestDomain* m_pAssociatedGraphInstance; // 0x20 + bool m_bFuncWasCalled; // 0x28 +private: + [[maybe_unused]] uint8_t __pad0029[0x3]; // 0x29 +public: + float m_fValue; // 0x2c +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Test_NoInflow : public CPulseCell_BaseFlow +{ +public: + // No members available +}; + +// Alignment: 2 +// Size: 0x70 +class CPulseCell_Outflow_StringSwitch : public CPulseCell_BaseFlow +{ +public: + CPulse_OutflowConnection m_DefaultCaseOutflow; // 0x48 + CUtlVector< CPulse_OutflowConnection > m_CaseOutflows; // 0x58 +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Test_MultiInflow_WithDefault : public CPulseCell_BaseFlow +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Value_TestValue50 : public CPulseCell_BaseValue +{ +public: + // No members available +}; + +// Alignment: 4 +// Size: 0x98 +class CPulseCell_Inflow_EntOutputHandler : public CPulseCell_Inflow_BaseEntrypoint +{ +public: + CUtlSymbolLarge m_SourceEntity; // 0x70 + CUtlSymbolLarge m_SourceOutput; // 0x78 + CUtlSymbolLarge m_TargetInput; // 0x80 + CPulseValueFullType m_ExpectedParamType; // 0x88 +}; + +// Alignment: 2 +// Size: 0x190 +class CTestDomainDerived_Cursor : public CPulseExecCursor +{ +public: + int32_t m_nCursorValueA; // 0x188 + int32_t m_nCursorValueB; // 0x18c +}; + +// Alignment: 1 +// Size: 0x58 +class CPulseCell_Inflow_Wait : public CPulseCell_BaseYieldingInflow +{ +public: + CPulse_ResumePoint m_WakeResume; // 0x48 +}; + +// Alignment: 1 +// Size: 0x78 +class CPulseCell_Inflow_GraphHook : public CPulseCell_Inflow_BaseEntrypoint +{ +public: + CUtlSymbolLarge m_HookName; // 0x70 +}; + +// Alignment: 1 +// Size: 0x58 +class CPulseCell_Inflow_Yield : public CPulseCell_BaseYieldingInflow +{ +public: + CPulse_ResumePoint m_UnyieldResume; // 0x48 +}; + +// Alignment: 0 +// Size: 0x1 +class CPulseTestFuncs_DerivedDomain +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 +public: + // No members available +}; + +// Alignment: 1 +// Size: 0x60 +class CPulseCell_Outflow_CycleOrdered : public CPulseCell_BaseFlow +{ +public: + CUtlVector< CPulse_OutflowConnection > m_Outputs; // 0x48 +}; + +// Alignment: 1 +// Size: 0x100 +class CPulseGraphInstance_TestDomain_Derived : public CPulseGraphInstance_TestDomain +{ +public: + int32_t m_nInstanceValueX; // 0xf8 +}; + +// Alignment: 2 +// Size: 0x68 +class CPulseCell_Outflow_TestRandomYesNo : public CPulseCell_BaseFlow +{ +public: + // MPropertyFriendlyName "Yes" + // MPropertyDescription "Randomly taken half of the time" + CPulse_OutflowConnection m_Yes; // 0x48 + // MPropertyFriendlyName "No" + // MPropertyDescription "Randomly taken half of the time" + CPulse_OutflowConnection m_No; // 0x58 +}; + +// Alignment: 5 +// Size: 0x58 +class CPulse_RegisterInfo +{ +public: + PulseRuntimeRegisterIndex_t m_nReg; // 0x0 + CPulseValueFullType m_Type; // 0x8 + CKV3MemberNameWithStorage m_OriginName; // 0x18 + int32_t m_nWrittenByInstruction; // 0x50 + int32_t m_nLastReadByInstruction; // 0x54 +}; + +// Alignment: 0 +// Size: 0x1 +class CPulseTestScriptLib +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 +public: + // No members available +}; + +// Alignment: 1 +// Size: 0x4 +struct CPulseCell_Outflow_CycleOrdered__InstanceState_t +{ +public: + int32_t m_nNextIndex; // 0x0 +}; + +// Alignment: 1 +// Size: 0x4 +struct PulseRuntimeVarIndex_t +{ +public: + int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseRuntimeVarIndex_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 3 +// Size: 0x60 +class CPulse_Chunk +{ +public: + CUtlLeanVector< PGDInstruction_t > m_Instructions; // 0x0 + CUtlLeanVector< CPulse_RegisterInfo > m_Registers; // 0x10 + CUtlLeanVector< PulseDocNodeID_t > m_InstructionEditorIDs; // 0x20 +}; + +// Alignment: 1 +// Size: 0x4 +struct PulseRuntimeEntrypointIndex_t +{ +public: + int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("PulseRuntimeEntrypointIndex_t")->m_static_fields[0]->m_instance);}; +}; + +// Alignment: 16 +// Size: 0x68 +struct PGDInstruction_t +{ +public: + PulseInstructionCode_t m_nCode; // 0x0 + PulseRuntimeVarIndex_t m_nVar; // 0x4 + PulseRuntimeRegisterIndex_t m_nReg0; // 0x8 + PulseRuntimeRegisterIndex_t m_nReg1; // 0xa + PulseRuntimeRegisterIndex_t m_nReg2; // 0xc +private: + [[maybe_unused]] uint8_t __pad000e[0x2]; // 0xe +public: + PulseRuntimeInvokeIndex_t m_nInvokeBindingIndex; // 0x10 + PulseRuntimeChunkIndex_t m_nChunk; // 0x14 + int32_t m_nDestInstruction; // 0x18 + PulseRuntimeCallInfoIndex_t m_nCallInfoIndex; // 0x1c + CUtlSymbolLarge m_Arg0Name; // 0x20 + CUtlSymbolLarge m_Arg1Name; // 0x28 + bool m_bLiteralBool; // 0x30 +private: + [[maybe_unused]] uint8_t __pad0031[0x3]; // 0x31 +public: + int32_t m_nLiteralInt; // 0x34 + float m_flLiteralFloat; // 0x38 +private: + [[maybe_unused]] uint8_t __pad003c[0x4]; // 0x3c +public: + CBufferString m_LiteralString; // 0x40 + Vector m_vLiteralVec3; // 0x50 +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Step_TestDomainDestroyFakeEntity : public CPulseCell_BaseFlow +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x1 +class CPulseTestFuncs_LibraryA +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x48 +class CPulseCell_Val_TestDomainFindEntityByName : public CPulseCell_BaseValue +{ +public: + // No members available +}; + +// Alignment: 1 +// Size: 0x50 +class CPulseCell_Step_PublicOutput : public CPulseCell_BaseFlow +{ +public: + PulseRuntimeOutputIndex_t m_OutputIndex; // 0x48 +}; + // Alignment: 0 // Size: 0x28 class CParticleProperty { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: - uint8_t __pad0000[0x28]; // Autoaligned + // No members available }; // Alignment: 1 @@ -12535,18 +13071,23 @@ struct ParticleAttributeIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("ParticleAttributeIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 0 // Size: 0x10 class CParticleInput { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: - uint8_t __pad0000[0x10]; // Autoaligned + // No members available }; -// Alignment: 44 -// Size: 0x150 +// Alignment: 45 +// Size: 0x158 class CParticleFloatInput : public CParticleInput { public: @@ -12590,32 +13131,33 @@ public: float m_flNoiseImgPreviewScale; // 0xcc bool m_bNoiseImgPreviewLive; // 0xd0 private: - [[maybe_unused]] uint8_t __pad00d1[0x8]; // 0xd1 + [[maybe_unused]] uint8_t __pad00d1[0xb]; // 0xd1 public: - bool m_bUseBoundsCenter; // 0xd9 + float m_flNoCameraFallback; // 0xdc + bool m_bUseBoundsCenter; // 0xe0 private: - [[maybe_unused]] uint8_t __pad00da[0x2]; // 0xda + [[maybe_unused]] uint8_t __pad00e1[0x3]; // 0xe1 public: - ParticleFloatInputMode_t m_nInputMode; // 0xdc - float m_flMultFactor; // 0xe0 - float m_flInput0; // 0xe4 - float m_flInput1; // 0xe8 - float m_flOutput0; // 0xec - float m_flOutput1; // 0xf0 - float m_flNotchedRangeMin; // 0xf4 - float m_flNotchedRangeMax; // 0xf8 - float m_flNotchedOutputOutside; // 0xfc - float m_flNotchedOutputInside; // 0x100 - ParticleFloatBiasType_t m_nBiasType; // 0x104 - float m_flBiasParameter; // 0x108 + ParticleFloatInputMode_t m_nInputMode; // 0xe4 + float m_flMultFactor; // 0xe8 + float m_flInput0; // 0xec + float m_flInput1; // 0xf0 + float m_flOutput0; // 0xf4 + float m_flOutput1; // 0xf8 + float m_flNotchedRangeMin; // 0xfc + float m_flNotchedRangeMax; // 0x100 + float m_flNotchedOutputOutside; // 0x104 + float m_flNotchedOutputInside; // 0x108 + ParticleFloatBiasType_t m_nBiasType; // 0x10c + float m_flBiasParameter; // 0x110 private: - [[maybe_unused]] uint8_t __pad010c[0x4]; // 0x10c + [[maybe_unused]] uint8_t __pad0114[0x4]; // 0x114 public: - CPiecewiseCurve m_Curve; // 0x110 + CPiecewiseCurve m_Curve; // 0x118 }; // Alignment: 0 -// Size: 0x150 +// Size: 0x158 class CParticleCollectionFloatInput : public CParticleFloatInput { public: @@ -12623,93 +13165,95 @@ public: }; // Alignment: 16 -// Size: 0x1b0 +// Size: 0x1c0 class CParticleFunction { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MPropertyFriendlyName "operator strength" // MPropertySortPriority "-100" CParticleCollectionFloatInput m_flOpStrength; // 0x8 // MPropertyFriendlyName "operator end cap state" // MPropertySortPriority "-100" - ParticleEndcapMode_t m_nOpEndCapState; // 0x158 + ParticleEndcapMode_t m_nOpEndCapState; // 0x160 // MPropertyStartGroup "Operator Fade" // MPropertyFriendlyName "operator start fadein" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpStartFadeInTime; // 0x15c + float m_flOpStartFadeInTime; // 0x164 // MPropertyFriendlyName "operator end fadein" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpEndFadeInTime; // 0x160 + float m_flOpEndFadeInTime; // 0x168 // MPropertyFriendlyName "operator start fadeout" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpStartFadeOutTime; // 0x164 + float m_flOpStartFadeOutTime; // 0x16c // MPropertyFriendlyName "operator end fadeout" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpEndFadeOutTime; // 0x168 + float m_flOpEndFadeOutTime; // 0x170 // MPropertyFriendlyName "operator fade oscillate" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpFadeOscillatePeriod; // 0x16c + float m_flOpFadeOscillatePeriod; // 0x174 // MPropertyFriendlyName "normalize fade times to endcap" // MParticleAdvancedField // MPropertySortPriority "-100" - bool m_bNormalizeToStopTime; // 0x170 + bool m_bNormalizeToStopTime; // 0x178 private: - [[maybe_unused]] uint8_t __pad0171[0x3]; // 0x171 + [[maybe_unused]] uint8_t __pad0179[0x3]; // 0x179 public: // MPropertyStartGroup "Operator Fade Time Offset" // MPropertyFriendlyName "operator fade time offset min" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpTimeOffsetMin; // 0x174 + float m_flOpTimeOffsetMin; // 0x17c // MPropertyFriendlyName "operator fade time offset max" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpTimeOffsetMax; // 0x178 + float m_flOpTimeOffsetMax; // 0x180 // MPropertyFriendlyName "operator fade time offset seed" // MParticleAdvancedField // MPropertySortPriority "-100" - int32_t m_nOpTimeOffsetSeed; // 0x17c + int32_t m_nOpTimeOffsetSeed; // 0x184 // MPropertyStartGroup "Operator Fade Timescale Modifiers" // MPropertyFriendlyName "operator fade time scale seed" // MParticleAdvancedField // MPropertySortPriority "-100" - int32_t m_nOpTimeScaleSeed; // 0x180 + int32_t m_nOpTimeScaleSeed; // 0x188 // MPropertyFriendlyName "operator fade time scale min" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpTimeScaleMin; // 0x184 + float m_flOpTimeScaleMin; // 0x18c // MPropertyFriendlyName "operator fade time scale max" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpTimeScaleMax; // 0x188 + float m_flOpTimeScaleMax; // 0x190 private: - [[maybe_unused]] uint8_t __pad018c[0x1]; // 0x18c + [[maybe_unused]] uint8_t __pad0194[0x2]; // 0x194 public: // MPropertyStartGroup // MPropertySuppressField - bool m_bDisableOperator; // 0x18d + bool m_bDisableOperator; // 0x196 private: - [[maybe_unused]] uint8_t __pad018e[0x2]; // 0x18e + [[maybe_unused]] uint8_t __pad0197[0x1]; // 0x197 public: // MPropertyFriendlyName "operator help and notes" // MParticleHelpField // MParticleAdvancedField // MPropertySortPriority "-100" - CUtlString m_Notes; // 0x190 + CUtlString m_Notes; // 0x198 }; // Alignment: 1 // Size: 0x1c0 class CParticleFunctionInitializer : public CParticleFunction { + // Collision detected(0x1b8->0x1c0), output may be wrong. public: - // MPropertyFriendlyName "Associated emitter Index" - int32_t m_nAssociatedEmitterIndex; // 0x1b0 + // Skipped field "m_nAssociatedEmitterIndex" @ 0x1b8 because of the struct collision }; // Alignment: 12 @@ -12749,7 +13293,7 @@ public: }; // Alignment: 23 -// Size: 0x638 +// Size: 0x658 class CParticleVecInput : public CParticleInput { public: @@ -12772,20 +13316,20 @@ public: Vector m_vCPRelativePosition; // 0x90 Vector m_vCPRelativeDir; // 0x9c CParticleFloatInput m_FloatComponentX; // 0xa8 - CParticleFloatInput m_FloatComponentY; // 0x1f8 - CParticleFloatInput m_FloatComponentZ; // 0x348 - CParticleFloatInput m_FloatInterp; // 0x498 - float m_flInterpInput0; // 0x5e8 - float m_flInterpInput1; // 0x5ec - Vector m_vInterpOutput0; // 0x5f0 - Vector m_vInterpOutput1; // 0x5fc - CColorGradient m_Gradient; // 0x608 - Vector m_vRandomMin; // 0x620 - Vector m_vRandomMax; // 0x62c + CParticleFloatInput m_FloatComponentY; // 0x200 + CParticleFloatInput m_FloatComponentZ; // 0x358 + CParticleFloatInput m_FloatInterp; // 0x4b0 + float m_flInterpInput0; // 0x608 + float m_flInterpInput1; // 0x60c + Vector m_vInterpOutput0; // 0x610 + Vector m_vInterpOutput1; // 0x61c + CColorGradient m_Gradient; // 0x628 + Vector m_vRandomMin; // 0x640 + Vector m_vRandomMax; // 0x64c }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class CParticleFunctionOperator : public CParticleFunction { public: @@ -12855,40 +13399,40 @@ public: }; // Alignment: 10 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_CycleScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "destination scalar field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nDestField; // 0x1b0 + ParticleAttributeIndex_t m_nDestField; // 0x1c0 // MPropertyFriendlyName "Value at start of cycle" - float m_flStartValue; // 0x1b4 + float m_flStartValue; // 0x1c4 // MPropertyFriendlyName "Value at end of cycle" - float m_flEndValue; // 0x1b8 + float m_flEndValue; // 0x1c8 // MPropertyFriendlyName "Cycle time" - float m_flCycleTime; // 0x1bc + float m_flCycleTime; // 0x1cc // MPropertyFriendlyName "Do not repeat cycle" - bool m_bDoNotRepeatCycle; // 0x1c0 + bool m_bDoNotRepeatCycle; // 0x1d0 // MPropertyFriendlyName "Synchronize particles" - bool m_bSynchronizeParticles; // 0x1c1 + bool m_bSynchronizeParticles; // 0x1d1 private: - [[maybe_unused]] uint8_t __pad01c2[0x2]; // 0x1c2 + [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 public: // MPropertyFriendlyName "Scale Start/End Control Point" - int32_t m_nCPScale; // 0x1c4 + int32_t m_nCPScale; // 0x1d4 // MPropertyFriendlyName "start scale control point field" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPFieldMin; // 0x1c8 + int32_t m_nCPFieldMin; // 0x1d8 // MPropertyFriendlyName "end scale control point field" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPFieldMax; // 0x1cc + int32_t m_nCPFieldMax; // 0x1dc // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1d0 + ParticleSetMethod_t m_nSetMethod; // 0x1e0 }; // Alignment: 0 -// Size: 0x150 +// Size: 0x158 class CPerParticleFloatInput : public CParticleFloatInput { public: @@ -12896,7 +13440,7 @@ public: }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class CParticleFunctionConstraint : public CParticleFunction { public: @@ -12907,46 +13451,46 @@ public: // Size: 0x200 class CParticleFunctionRenderer : public CParticleFunction { + // Collision detected(0x1b8->0x1c0), output may be wrong. public: - // MPropertySortPriority "-1" - CParticleVisibilityInputs VisibilityInputs; // 0x1b0 + // Skipped field "VisibilityInputs" @ 0x1b8 because of the struct collision // MPropertyStartGroup "Rendering filter" // MPropertyFriendlyName "I cannot be refracted through refracting objects like water" // MPropertySortPriority "-1" - bool m_bCannotBeRefracted; // 0x1f4 + bool m_bCannotBeRefracted; // 0x1fc // MPropertyFriendlyName "Skip rendering on mobile" // MPropertySortPriority "-1" - bool m_bSkipRenderingOnMobile; // 0x1f5 + bool m_bSkipRenderingOnMobile; // 0x1fd }; // Alignment: 8 -// Size: 0x470 +// Size: 0x490 class C_OP_SetPerChildControlPoint : public CParticleFunctionOperator { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1b0 + int32_t m_nChildGroupID; // 0x1c0 // MPropertyFriendlyName "control point to set" - int32_t m_nFirstControlPoint; // 0x1b4 + int32_t m_nFirstControlPoint; // 0x1c4 // MPropertyFriendlyName "# of children to set" - int32_t m_nNumControlPoints; // 0x1b8 + int32_t m_nNumControlPoints; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc public: // MPropertyFriendlyName "particle increment amount" - CParticleCollectionFloatInput m_nParticleIncrement; // 0x1c0 + CParticleCollectionFloatInput m_nParticleIncrement; // 0x1d0 // MPropertyFriendlyName "first particle to copy" - CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x310 + CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x328 // MPropertyFriendlyName "set orientation from velocity" - bool m_bSetOrientation; // 0x460 + bool m_bSetOrientation; // 0x480 private: - [[maybe_unused]] uint8_t __pad0461[0x3]; // 0x461 + [[maybe_unused]] uint8_t __pad0481[0x3]; // 0x481 public: // MPropertyFriendlyName "orientation vector" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOrientationField; // 0x464 + ParticleAttributeIndex_t m_nOrientationField; // 0x484 // MPropertyFriendlyName "set number of children based on particle count" - bool m_bNumBasedOnParticleCount; // 0x468 + bool m_bNumBasedOnParticleCount; // 0x488 }; // Alignment: 8 @@ -12971,7 +13515,7 @@ public: }; // Alignment: 0 -// Size: 0x150 +// Size: 0x158 class CParticleCollectionRendererFloatInput : public CParticleCollectionFloatInput { public: @@ -12996,7 +13540,7 @@ public: }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1d0 class CParticleFunctionForce : public CParticleFunction { public: @@ -13020,23 +13564,23 @@ public: }; // Alignment: 3 -// Size: 0x1d0 +// Size: 0x1e0 class CGeneralSpin : public CParticleFunctionOperator { public: // MPropertyFriendlyName "spin rate degrees" - int32_t m_nSpinRateDegrees; // 0x1b0 + int32_t m_nSpinRateDegrees; // 0x1c0 // MPropertyFriendlyName "spin rate min" - int32_t m_nSpinRateMinDegrees; // 0x1b4 + int32_t m_nSpinRateMinDegrees; // 0x1c4 private: - [[maybe_unused]] uint8_t __pad01b8[0x4]; // 0x1b8 + [[maybe_unused]] uint8_t __pad01c8[0x4]; // 0x1c8 public: // MPropertyFriendlyName "spin stop time" - float m_fSpinRateStopTime; // 0x1bc + float m_fSpinRateStopTime; // 0x1cc }; // Alignment: 0 -// Size: 0x638 +// Size: 0x658 class CParticleCollectionVecInput : public CParticleVecInput { public: @@ -13044,17 +13588,17 @@ public: }; // Alignment: 3 -// Size: 0x1d0 +// Size: 0x1f0 class C_OP_ParentVortices : public CParticleFunctionForce { public: // MPropertyFriendlyName "amount of force" - float m_flForceScale; // 0x1b0 + float m_flForceScale; // 0x1d0 // MPropertyFriendlyName "twist axis" // MVectorIsCoordinate - Vector m_vecTwistAxis; // 0x1b4 + Vector m_vecTwistAxis; // 0x1d4 // MPropertyFriendlyName "flip twist axis with yaw" - bool m_bFlipBasedOnYaw; // 0x1c0 + bool m_bFlipBasedOnYaw; // 0x1e0 }; // Alignment: 6 @@ -13071,25 +13615,25 @@ public: }; // Alignment: 3 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SetToCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "offset" - Vector m_vecOffset; // 0x1b4 + Vector m_vecOffset; // 0x1c4 // MPropertyFriendlyName "offset in local space" - bool m_bOffsetLocal; // 0x1c0 + bool m_bOffsetLocal; // 0x1d0 }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class CParticleFunctionPreEmission : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Run Only Once" - bool m_bRunOnce; // 0x1b0 + bool m_bRunOnce; // 0x1c0 }; // Alignment: 2 @@ -13101,79 +13645,81 @@ public: CPerParticleFloatInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x310 + ParticleAttributeIndex_t m_nOutputField; // 0x318 }; // Alignment: 7 -// Size: 0x700 +// Size: 0x730 class C_OP_RemapParticleCountToScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "input minimum" - CParticleCollectionFloatInput m_nInputMin; // 0x1b8 + CParticleCollectionFloatInput m_nInputMin; // 0x1c8 // MPropertyFriendlyName "input maximum" - CParticleCollectionFloatInput m_nInputMax; // 0x308 + CParticleCollectionFloatInput m_nInputMax; // 0x320 // MPropertyFriendlyName "output minimum" - CParticleCollectionFloatInput m_flOutputMin; // 0x458 + CParticleCollectionFloatInput m_flOutputMin; // 0x478 // MPropertyFriendlyName "output maximum" - CParticleCollectionFloatInput m_flOutputMax; // 0x5a8 + CParticleCollectionFloatInput m_flOutputMax; // 0x5d0 // MPropertyFriendlyName - bool m_bActiveRange; // 0x6f8 + bool m_bActiveRange; // 0x728 private: - [[maybe_unused]] uint8_t __pad06f9[0x3]; // 0x6f9 + [[maybe_unused]] uint8_t __pad0729[0x3]; // 0x729 public: // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x6fc + ParticleSetMethod_t m_nSetMethod; // 0x72c }; // Alignment: 0 // Size: 0x10 class IParticleCollection { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: - uint8_t __pad0000[0x10]; // Autoaligned + // No members available }; // Alignment: 7 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_VectorNoise : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "output minimum" // MVectorIsSometimesCoordinate - Vector m_vecOutputMin; // 0x1b4 + Vector m_vecOutputMin; // 0x1c4 // MPropertyFriendlyName "output maximum" // MVectorIsSometimesCoordinate - Vector m_vecOutputMax; // 0x1c0 + Vector m_vecOutputMax; // 0x1d0 // MPropertyFriendlyName "noise coordinate scale" - float m_fl4NoiseScale; // 0x1cc + float m_fl4NoiseScale; // 0x1dc // MPropertyFriendlyName "additive" - bool m_bAdditive; // 0x1d0 + bool m_bAdditive; // 0x1e0 // MPropertyFriendlyName "offset instead of accelerate position" - bool m_bOffset; // 0x1d1 + bool m_bOffset; // 0x1e1 private: - [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 + [[maybe_unused]] uint8_t __pad01e2[0x2]; // 0x1e2 public: // MPropertyFriendlyName "Noise animation time scale" - float m_flNoiseAnimationTimeScale; // 0x1d4 + float m_flNoiseAnimationTimeScale; // 0x1e4 }; // Alignment: 1 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_ForceControlPointStub : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point" - int32_t m_ControlPoint; // 0x1c0 + int32_t m_ControlPoint; // 0x1d0 }; // Alignment: 6 @@ -13190,42 +13736,42 @@ public: // MPropertyFriendlyName "warp amount" CPerParticleFloatInput m_InputValue; // 0x1d8 // MPropertyFriendlyName "previous position scale" - float m_flPrevPosScale; // 0x328 + float m_flPrevPosScale; // 0x330 // MPropertyFriendlyName "warp scale control point number" - int32_t m_nScaleControlPointNumber; // 0x32c + int32_t m_nScaleControlPointNumber; // 0x334 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x330 + int32_t m_nControlPointNumber; // 0x338 }; // Alignment: 5 -// Size: 0x700 +// Size: 0x730 class C_OP_RopeSpringConstraint : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "slack" - CParticleCollectionFloatInput m_flRestLength; // 0x1b0 + CParticleCollectionFloatInput m_flRestLength; // 0x1c0 // MPropertyFriendlyName "minimum segment length %" - CParticleCollectionFloatInput m_flMinDistance; // 0x300 + CParticleCollectionFloatInput m_flMinDistance; // 0x318 // MPropertyFriendlyName "maximum segment length %" - CParticleCollectionFloatInput m_flMaxDistance; // 0x450 + CParticleCollectionFloatInput m_flMaxDistance; // 0x470 // MPropertyFriendlyName "scale factor for spring correction" - float m_flAdjustmentScale; // 0x5a0 + float m_flAdjustmentScale; // 0x5c8 private: - [[maybe_unused]] uint8_t __pad05a4[0x4]; // 0x5a4 + [[maybe_unused]] uint8_t __pad05cc[0x4]; // 0x5cc public: // MPropertyFriendlyName "manual resting spacing" - CParticleCollectionFloatInput m_flInitialRestingLength; // 0x5a8 + CParticleCollectionFloatInput m_flInitialRestingLength; // 0x5d0 }; // Alignment: 2 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SetControlPointOrientationToCPVelocity : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point input for velocity" - int32_t m_nCPInput; // 0x1c0 + int32_t m_nCPInput; // 0x1d0 // MPropertyFriendlyName "control point output for orientation" - int32_t m_nCPOutput; // 0x1c4 + int32_t m_nCPOutput; // 0x1d4 }; // Alignment: 7 @@ -13254,13 +13800,13 @@ public: // Size: 0x1c0 class CParticleFunctionEmitter : public CParticleFunction { + // Collision detected(0x1b8->0x1c0), output may be wrong. public: - // MPropertyFriendlyName "Emitter Index" - int32_t m_nEmitterIndex; // 0x1b0 + // Skipped field "m_nEmitterIndex" @ 0x1b8 because of the struct collision }; // Alignment: 0 -// Size: 0x638 +// Size: 0x658 class CPerParticleVecInput : public CParticleVecInput { public: @@ -13268,29 +13814,29 @@ public: }; // Alignment: 7 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_RemapSpeed : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1b4 + float m_flInputMin; // 0x1c4 // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1b8 + float m_flInputMax; // 0x1c8 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1bc + float m_flOutputMin; // 0x1cc // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c0 + float m_flOutputMax; // 0x1d0 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1c4 + ParticleSetMethod_t m_nSetMethod; // 0x1d4 // MPropertyFriendlyName "ignore delta time" - bool m_bIgnoreDelta; // 0x1c8 + bool m_bIgnoreDelta; // 0x1d8 }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class C_OP_WorldCollideConstraint : public CParticleFunctionConstraint { public: @@ -13328,8 +13874,8 @@ public: bool m_bLocalSpace; // 0x1cc }; -// Alignment: 15 -// Size: 0x58 +// Alignment: 16 +// Size: 0x68 struct ParticlePreviewState_t { public: @@ -13351,54 +13897,65 @@ public: bool m_bShouldDrawAttachmentNames; // 0x52 bool m_bShouldDrawControlPointAxes; // 0x53 bool m_bAnimationNonLooping; // 0x54 +private: + [[maybe_unused]] uint8_t __pad0055[0x3]; // 0x55 +public: + Vector m_vecPreviewGravity; // 0x58 }; -// Alignment: 6 -// Size: 0x1e0 +// Alignment: 8 +// Size: 0x1f0 class C_OP_RemapDensityToVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Radius scale for particle influence" - float m_flRadiusScale; // 0x1b0 + float m_flRadiusScale; // 0x1c0 // MPropertyFriendlyName "Output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "Density value to map to min value" - float m_flDensityMin; // 0x1b8 + float m_flDensityMin; // 0x1c8 // MPropertyFriendlyName "Density value to map to max value" - float m_flDensityMax; // 0x1bc + float m_flDensityMax; // 0x1cc // MPropertyFriendlyName "Output minimum" - Vector m_vecOutputMin; // 0x1c0 + Vector m_vecOutputMin; // 0x1d0 // MPropertyFriendlyName "Output maximum" - Vector m_vecOutputMax; // 0x1cc + Vector m_vecOutputMax; // 0x1dc + // MPropertyFriendlyName "Use parent density instead of ours" + bool m_bUseParentDensity; // 0x1e8 +private: + [[maybe_unused]] uint8_t __pad01e9[0x3]; // 0x1e9 +public: + // MPropertyFriendlyName "Resolution to use for creating a voxel grid" + int32_t m_nVoxelGridResolution; // 0x1ec }; // Alignment: 7 -// Size: 0x1f0 +// Size: 0x210 class C_OP_ForceBasedOnDistanceToPlane : public CParticleFunctionForce { public: // MPropertyFriendlyName "min distance from plane" - float m_flMinDist; // 0x1b0 + float m_flMinDist; // 0x1d0 // MPropertyFriendlyName "force at min distance" // MVectorIsCoordinate - Vector m_vecForceAtMinDist; // 0x1b4 + Vector m_vecForceAtMinDist; // 0x1d4 // MPropertyFriendlyName "max distance from plane" - float m_flMaxDist; // 0x1c0 + float m_flMaxDist; // 0x1e0 // MPropertyFriendlyName "force at max distance" // MVectorIsCoordinate - Vector m_vecForceAtMaxDist; // 0x1c4 + Vector m_vecForceAtMaxDist; // 0x1e4 // MPropertyFriendlyName "plane normal" // MVectorIsCoordinate - Vector m_vecPlaneNormal; // 0x1d0 + Vector m_vecPlaneNormal; // 0x1f0 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1dc + int32_t m_nControlPointNumber; // 0x1fc // MPropertyFriendlyName "exponent" - float m_flExponent; // 0x1e0 + float m_flExponent; // 0x200 }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class C_OP_EndCapDecay : public CParticleFunctionOperator { public: @@ -13406,7 +13963,7 @@ public: }; // Alignment: 15 -// Size: 0x910 +// Size: 0x930 class C_INIT_DistanceToCPInit : public CParticleFunctionInitializer { public: @@ -13419,57 +13976,65 @@ public: // MPropertyFriendlyName "distance minimum" CPerParticleFloatInput m_flInputMin; // 0x1c8 // MPropertyFriendlyName "distance maximum" - CPerParticleFloatInput m_flInputMax; // 0x318 + CPerParticleFloatInput m_flInputMax; // 0x320 // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x468 + CPerParticleFloatInput m_flOutputMin; // 0x478 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x5b8 + CPerParticleFloatInput m_flOutputMax; // 0x5d0 // MPropertyFriendlyName "control point" - int32_t m_nStartCP; // 0x708 + int32_t m_nStartCP; // 0x728 // MPropertyFriendlyName "ensure line of sight" - bool m_bLOS; // 0x70c + bool m_bLOS; // 0x72c // MPropertyFriendlyName "LOS collision group" - char m_CollisionGroupName[128]; // 0x70d + char m_CollisionGroupName[128]; // 0x72d private: - [[maybe_unused]] uint8_t __pad078d[0x3]; // 0x78d + [[maybe_unused]] uint8_t __pad07ad[0x3]; // 0x7ad public: // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x790 + ParticleTraceSet_t m_nTraceSet; // 0x7b0 private: - [[maybe_unused]] uint8_t __pad0794[0x4]; // 0x794 + [[maybe_unused]] uint8_t __pad07b4[0x4]; // 0x7b4 public: // MPropertyFriendlyName "Maximum Trace Length" - CPerParticleFloatInput m_flMaxTraceLength; // 0x798 + CPerParticleFloatInput m_flMaxTraceLength; // 0x7b8 // MPropertyFriendlyName "LOS Failure Scalar" - float m_flLOSScale; // 0x8e8 + float m_flLOSScale; // 0x910 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x8ec + ParticleSetMethod_t m_nSetMethod; // 0x914 // MPropertyFriendlyName "only active within specified distance" - bool m_bActiveRange; // 0x8f0 + bool m_bActiveRange; // 0x918 private: - [[maybe_unused]] uint8_t __pad08f1[0x3]; // 0x8f1 + [[maybe_unused]] uint8_t __pad0919[0x3]; // 0x919 public: // MPropertyFriendlyName "distance component scale" - Vector m_vecDistanceScale; // 0x8f4 + Vector m_vecDistanceScale; // 0x91c // MPropertyFriendlyName "remap bias" - float m_flRemapBias; // 0x900 + float m_flRemapBias; // 0x928 }; -// Alignment: 3 -// Size: 0x320 +// Alignment: 6 +// Size: 0x340 class C_OP_EnableChildrenFromParentParticleCount : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1c0 + int32_t m_nChildGroupID; // 0x1d0 // MPropertyFriendlyName "first child to enable" - int32_t m_nFirstChild; // 0x1c4 + int32_t m_nFirstChild; // 0x1d4 // MPropertyFriendlyName "max # of children to enable (-1 for max particle count)" - CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x1c8 + CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x1d8 + // MPropertyFriendlyName "remove children when particle count lowers" + bool m_bDisableChildren; // 0x330 + // MPropertyFriendlyName "play endcap when children are removed" + // MPropertySuppressExpr "!m_bDisableChildren" + bool m_bPlayEndcapOnStop; // 0x331 + // MPropertyFriendlyName "destroy particles immediately when child is removed" + // MPropertySuppressExpr "!m_bDisableChildren" + bool m_bDestroyImmediately; // 0x332 }; // Alignment: 7 -// Size: 0xd90 +// Size: 0xdd0 class C_OP_RenderLightBeam : public CParticleFunctionRenderer { public: @@ -13477,24 +14042,24 @@ public: CParticleCollectionVecInput m_vColorBlend; // 0x200 // MPropertyFriendlyName "Color Blend Type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0x838 + ParticleColorBlendType_t m_nColorBlendType; // 0x858 private: - [[maybe_unused]] uint8_t __pad083c[0x4]; // 0x83c + [[maybe_unused]] uint8_t __pad085c[0x4]; // 0x85c public: // MPropertyFriendlyName "Lumens Per Meter" - CParticleCollectionFloatInput m_flBrightnessLumensPerMeter; // 0x840 + CParticleCollectionFloatInput m_flBrightnessLumensPerMeter; // 0x860 // MPropertyFriendlyName "Shadows" // MPropertySuppressExpr "mod == csgo" - bool m_bCastShadows; // 0x990 + bool m_bCastShadows; // 0x9b8 private: - [[maybe_unused]] uint8_t __pad0991[0x7]; // 0x991 + [[maybe_unused]] uint8_t __pad09b9[0x7]; // 0x9b9 public: // MPropertyFriendlyName "Skirt" - CParticleCollectionFloatInput m_flSkirt; // 0x998 + CParticleCollectionFloatInput m_flSkirt; // 0x9c0 // MPropertyFriendlyName "Range" - CParticleCollectionFloatInput m_flRange; // 0xae8 + CParticleCollectionFloatInput m_flRange; // 0xb18 // MPropertyFriendlyName "Thickness" - CParticleCollectionFloatInput m_flThickness; // 0xc38 + CParticleCollectionFloatInput m_flThickness; // 0xc70 }; // Alignment: 3 @@ -13512,25 +14077,25 @@ public: }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_MovementRigidAttachToCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "scale control point number" - int32_t m_nScaleControlPoint; // 0x1b4 + int32_t m_nScaleControlPoint; // 0x1c4 // MPropertyFriendlyName "scale control point field" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nScaleCPField; // 0x1b8 + int32_t m_nScaleCPField; // 0x1c8 // MPropertyFriendlyName "cache attribute to read from" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput; // 0x1bc + ParticleAttributeIndex_t m_nFieldInput; // 0x1cc // MPropertyFriendlyName "attribute to write to" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1d0 // MPropertyFriendlyName "local space" - bool m_bOffsetLocal; // 0x1c4 + bool m_bOffsetLocal; // 0x1d4 }; // Alignment: 9 @@ -13559,22 +14124,22 @@ public: }; // Alignment: 4 -// Size: 0x1f0 +// Size: 0x200 class C_OP_RampScalarLinearSimple : public CParticleFunctionOperator { public: // MPropertyFriendlyName "ramp rate" - float m_Rate; // 0x1b0 + float m_Rate; // 0x1c0 // MPropertyFriendlyName "start time" - float m_flStartTime; // 0x1b4 + float m_flStartTime; // 0x1c4 // MPropertyFriendlyName "end time" - float m_flEndTime; // 0x1b8 + float m_flEndTime; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x24]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x24]; // 0x1cc public: // MPropertyFriendlyName "ramp field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1e0 + ParticleAttributeIndex_t m_nField; // 0x1f0 }; // Alignment: 5 @@ -13611,10 +14176,30 @@ public: bool m_bModelFromRenderer; // 0x208 }; +// Alignment: 5 +// Size: 0x340 +class C_OP_SetGravityToCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "control point to sample gravity" + int32_t m_nCPInput; // 0x1d0 + // MPropertyFriendlyName "output control point" + int32_t m_nCPOutput; // 0x1d4 + // MPropertyFriendlyName "gravity scale" + CParticleCollectionFloatInput m_flScale; // 0x1d8 + // MPropertyFriendlyName "set orientation" + bool m_bSetOrientation; // 0x330 + // MPropertyFriendlyName "set gravity orientation to Z Down (instead of X)" + // MPropertySuppressExpr "!m_bSetOrientation" + bool m_bSetZDown; // 0x331 +}; + // Alignment: 10 // Size: 0x210 class C_INIT_RandomColor : public CParticleFunctionInitializer { +private: + [[maybe_unused]] uint8_t __pad01c0[0x1c]; // 0x1c0 public: // MPropertyFriendlyName "color1" Color m_ColorMin; // 0x1dc @@ -13640,21 +14225,21 @@ public: }; // Alignment: 4 -// Size: 0x330 +// Size: 0x350 class C_OP_LerpToOtherAttribute : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x1b0 + CPerParticleFloatInput m_flInterpolation; // 0x1c0 // MPropertyFriendlyName "input attribute from" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldInputFrom; // 0x300 + ParticleAttributeIndex_t m_nFieldInputFrom; // 0x318 // MPropertyFriendlyName "input attribute to" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldInput; // 0x304 + ParticleAttributeIndex_t m_nFieldInput; // 0x31c // MPropertyFriendlyName "output attribute" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldOutput; // 0x308 + ParticleAttributeIndex_t m_nFieldOutput; // 0x320 }; // Alignment: 5 @@ -13682,24 +14267,24 @@ public: }; // Alignment: 5 -// Size: 0x480 +// Size: 0x4a0 class C_OP_SetAttributeToScalarExpression : public CParticleFunctionOperator { public: // MPropertyFriendlyName "expression" - ScalarExpressionType_t m_nExpression; // 0x1b0 + ScalarExpressionType_t m_nExpression; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "input 1" - CPerParticleFloatInput m_flInput1; // 0x1b8 + CPerParticleFloatInput m_flInput1; // 0x1c8 // MPropertyFriendlyName "input 2" - CPerParticleFloatInput m_flInput2; // 0x308 + CPerParticleFloatInput m_flInput2; // 0x320 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x458 + ParticleAttributeIndex_t m_nOutputField; // 0x478 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x45c + ParticleSetMethod_t m_nSetMethod; // 0x47c }; // Alignment: 3 @@ -13716,7 +14301,7 @@ public: }; // Alignment: 1 -// Size: 0x800 +// Size: 0x820 class C_INIT_ScaleVelocity : public CParticleFunctionInitializer { public: @@ -13726,42 +14311,42 @@ public: }; // Alignment: 7 -// Size: 0x210 +// Size: 0x220 class C_OP_RemapNamedModelElementEndCap : public CParticleFunctionOperator { public: - CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x1b0 + CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x1c0 // MPropertyFriendlyName "input names" - CUtlVector< CUtlString > m_inNames; // 0x1b8 + CUtlVector< CUtlString > m_inNames; // 0x1c8 // MPropertyFriendlyName "output names" - CUtlVector< CUtlString > m_outNames; // 0x1d0 + CUtlVector< CUtlString > m_outNames; // 0x1e0 // MPropertyFriendlyName "fallback names when the input doesn't match" - CUtlVector< CUtlString > m_fallbackNames; // 0x1e8 + CUtlVector< CUtlString > m_fallbackNames; // 0x1f8 // MPropertyFriendlyName "model from renderer" - bool m_bModelFromRenderer; // 0x200 + bool m_bModelFromRenderer; // 0x210 private: - [[maybe_unused]] uint8_t __pad0201[0x3]; // 0x201 + [[maybe_unused]] uint8_t __pad0211[0x3]; // 0x211 public: // MPropertyFriendlyName "input field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x204 + ParticleAttributeIndex_t m_nFieldInput; // 0x214 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x208 + ParticleAttributeIndex_t m_nFieldOutput; // 0x218 }; // Alignment: 2 -// Size: 0x310 +// Size: 0x330 class C_OP_CPVelocityForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "control point" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "velocity scale" - CPerParticleFloatInput m_flScale; // 0x1b8 + CPerParticleFloatInput m_flScale; // 0x1d8 }; // Alignment: 7 @@ -13786,26 +14371,26 @@ public: }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_LockPoints : public CParticleFunctionOperator { public: // MPropertyFriendlyName "min column/particle index to affect" - int32_t m_nMinCol; // 0x1b0 + int32_t m_nMinCol; // 0x1c0 // MPropertyFriendlyName "max column/particle index to affect" - int32_t m_nMaxCol; // 0x1b4 + int32_t m_nMaxCol; // 0x1c4 // MPropertyFriendlyName "min row/particle index to affect" - int32_t m_nMinRow; // 0x1b8 + int32_t m_nMinRow; // 0x1c8 // MPropertyFriendlyName "max row/particle index to affect" - int32_t m_nMaxRow; // 0x1bc + int32_t m_nMaxRow; // 0x1cc // MPropertyFriendlyName "control point to lock to" - int32_t m_nControlPoint; // 0x1c0 + int32_t m_nControlPoint; // 0x1d0 // MPropertyFriendlyName "amount of current position to preserve" - float m_flBlendValue; // 0x1c4 + float m_flBlendValue; // 0x1d4 }; // Alignment: 4 -// Size: 0x320 +// Size: 0x330 class C_INIT_CreateFromCPs : public CParticleFunctionInitializer { public: @@ -13824,28 +14409,28 @@ public: }; // Alignment: 7 -// Size: 0x470 +// Size: 0x490 class C_OP_PlanarConstraint : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "plane point" // MVectorIsCoordinate - Vector m_PointOnPlane; // 0x1b0 + Vector m_PointOnPlane; // 0x1c0 // MPropertyFriendlyName "plane normal" - Vector m_PlaneNormal; // 0x1bc + Vector m_PlaneNormal; // 0x1cc // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1c8 + int32_t m_nControlPointNumber; // 0x1d8 // MPropertyFriendlyName "global origin" - bool m_bGlobalOrigin; // 0x1cc + bool m_bGlobalOrigin; // 0x1dc // MPropertyFriendlyName "global normal" - bool m_bGlobalNormal; // 0x1cd + bool m_bGlobalNormal; // 0x1dd private: - [[maybe_unused]] uint8_t __pad01ce[0x2]; // 0x1ce + [[maybe_unused]] uint8_t __pad01de[0x2]; // 0x1de public: // MPropertyFriendlyName "radius scale" - CPerParticleFloatInput m_flRadiusScale; // 0x1d0 + CPerParticleFloatInput m_flRadiusScale; // 0x1e0 // MPropertyFriendlyName "falloff distance from control point" - CParticleCollectionFloatInput m_flMaximumDistanceToCP; // 0x320 + CParticleCollectionFloatInput m_flMaximumDistanceToCP; // 0x338 }; // Alignment: 2 @@ -13860,20 +14445,20 @@ public: }; // Alignment: 5 -// Size: 0x5c0 +// Size: 0x5e0 class C_OP_SelectivelyEnableChildren : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "group ID to affect" - CParticleCollectionFloatInput m_nChildGroupID; // 0x1c0 + CParticleCollectionFloatInput m_nChildGroupID; // 0x1d0 // MPropertyFriendlyName "first child to enable" - CParticleCollectionFloatInput m_nFirstChild; // 0x310 + CParticleCollectionFloatInput m_nFirstChild; // 0x328 // MPropertyFriendlyName "# of children to enable" - CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x460 + CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x480 // MPropertyFriendlyName "play endcap when children are removed" - bool m_bPlayEndcapOnStop; // 0x5b0 + bool m_bPlayEndcapOnStop; // 0x5d8 // MPropertyFriendlyName "destroy particles immediately when child is removed" - bool m_bDestroyImmediately; // 0x5b1 + bool m_bDestroyImmediately; // 0x5d9 }; // Alignment: 4 @@ -14010,206 +14595,206 @@ public: }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_RadiusDecay : public CParticleFunctionOperator { public: // MPropertyFriendlyName "minimum radius" - float m_flMinRadius; // 0x1b0 + float m_flMinRadius; // 0x1c0 }; // Alignment: 14 -// Size: 0x1a40 +// Size: 0x1ac0 class C_INIT_CreateWithinSphereTransform : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "distance min" CPerParticleFloatInput m_fRadiusMin; // 0x1c0 // MPropertyFriendlyName "distance max" - CPerParticleFloatInput m_fRadiusMax; // 0x310 + CPerParticleFloatInput m_fRadiusMax; // 0x318 // MPropertyFriendlyName "distance bias" // MVectorIsCoordinate - CPerParticleVecInput m_vecDistanceBias; // 0x460 + CPerParticleVecInput m_vecDistanceBias; // 0x470 // MPropertyFriendlyName "distance bias absolute value" // MVectorIsCoordinate - Vector m_vecDistanceBiasAbs; // 0xa98 + Vector m_vecDistanceBiasAbs; // 0xac8 private: - [[maybe_unused]] uint8_t __pad0aa4[0x4]; // 0xaa4 + [[maybe_unused]] uint8_t __pad0ad4[0x4]; // 0xad4 public: // MPropertyFriendlyName "input position transform" - CParticleTransformInput m_TransformInput; // 0xaa8 + CParticleTransformInput m_TransformInput; // 0xad8 // MPropertyFriendlyName "speed min" - CPerParticleFloatInput m_fSpeedMin; // 0xb10 + CPerParticleFloatInput m_fSpeedMin; // 0xb40 // MPropertyFriendlyName "speed max" - CPerParticleFloatInput m_fSpeedMax; // 0xc60 + CPerParticleFloatInput m_fSpeedMax; // 0xc98 // MPropertyFriendlyName "speed random exponent" - float m_fSpeedRandExp; // 0xdb0 + float m_fSpeedRandExp; // 0xdf0 // MPropertyFriendlyName "bias in local system" - bool m_bLocalCoords; // 0xdb4 + bool m_bLocalCoords; // 0xdf4 private: - [[maybe_unused]] uint8_t __pad0db5[0x3]; // 0xdb5 + [[maybe_unused]] uint8_t __pad0df5[0x3]; // 0xdf5 public: // MPropertyFriendlyName "randomly distribution growth time" - float m_flEndCPGrowthTime; // 0xdb8 + float m_flEndCPGrowthTime; // 0xdf8 private: - [[maybe_unused]] uint8_t __pad0dbc[0x4]; // 0xdbc + [[maybe_unused]] uint8_t __pad0dfc[0x4]; // 0xdfc public: // MPropertyFriendlyName "speed in local coordinate system min" // MVectorIsCoordinate - CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0xdc0 + CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0xe00 // MPropertyFriendlyName "speed in local coordinate system max" // MVectorIsCoordinate - CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0x13f8 + CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0x1458 // MPropertyFriendlyName "Output vector" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1a30 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1ab0 // MPropertyFriendlyName "Velocity vector" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldVelocity; // 0x1a34 + ParticleAttributeIndex_t m_nFieldVelocity; // 0x1ab4 }; // Alignment: 7 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SnapshotSkinToBones : public CParticleFunctionOperator { public: // MPropertyFriendlyName "rotate normals" - bool m_bTransformNormals; // 0x1b0 + bool m_bTransformNormals; // 0x1c0 // MPropertyFriendlyName "scale radii" - bool m_bTransformRadii; // 0x1b1 + bool m_bTransformRadii; // 0x1c1 private: - [[maybe_unused]] uint8_t __pad01b2[0x2]; // 0x1b2 + [[maybe_unused]] uint8_t __pad01c2[0x2]; // 0x1c2 public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b4 + int32_t m_nControlPointNumber; // 0x1c4 // MPropertyFriendlyName "lifetime fade start" - float m_flLifeTimeFadeStart; // 0x1b8 + float m_flLifeTimeFadeStart; // 0x1c8 // MPropertyFriendlyName "lifetime fade end" - float m_flLifeTimeFadeEnd; // 0x1bc + float m_flLifeTimeFadeEnd; // 0x1cc // MPropertyFriendlyName "instant jump threshold" - float m_flJumpThreshold; // 0x1c0 + float m_flJumpThreshold; // 0x1d0 // MPropertyFriendlyName "previous position scale" - float m_flPrevPosScale; // 0x1c4 + float m_flPrevPosScale; // 0x1d4 }; // Alignment: 9 -// Size: 0x260 +// Size: 0x270 class C_OP_SetCPOrientationToGroundNormal : public CParticleFunctionOperator { public: // MPropertyFriendlyName "interpolation rate" - float m_flInterpRate; // 0x1b0 + float m_flInterpRate; // 0x1c0 // MPropertyFriendlyName "max trace length" - float m_flMaxTraceLength; // 0x1b4 + float m_flMaxTraceLength; // 0x1c4 // MPropertyFriendlyName "CP movement tolerance" - float m_flTolerance; // 0x1b8 + float m_flTolerance; // 0x1c8 // MPropertyFriendlyName "trace offset" - float m_flTraceOffset; // 0x1bc + float m_flTraceOffset; // 0x1cc // MPropertyFriendlyName "collision group" - char m_CollisionGroupName[128]; // 0x1c0 + char m_CollisionGroupName[128]; // 0x1d0 // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x240 + ParticleTraceSet_t m_nTraceSet; // 0x250 // MPropertyFriendlyName "CP to trace from" - int32_t m_nInputCP; // 0x244 + int32_t m_nInputCP; // 0x254 // MPropertyFriendlyName "CP to set" - int32_t m_nOutputCP; // 0x248 + int32_t m_nOutputCP; // 0x258 private: - [[maybe_unused]] uint8_t __pad024c[0xc]; // 0x24c + [[maybe_unused]] uint8_t __pad025c[0xc]; // 0x25c public: // MPropertyFriendlyName "include water" - bool m_bIncludeWater; // 0x258 + bool m_bIncludeWater; // 0x268 }; // Alignment: 4 -// Size: 0x1d0 +// Size: 0x1f0 class C_OP_TimeVaryingForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "time to start transition" - float m_flStartLerpTime; // 0x1b0 + float m_flStartLerpTime; // 0x1d0 // MPropertyFriendlyName "starting force" // MVectorIsCoordinate - Vector m_StartingForce; // 0x1b4 + Vector m_StartingForce; // 0x1d4 // MPropertyFriendlyName "time to end transition" - float m_flEndLerpTime; // 0x1c0 + float m_flEndLerpTime; // 0x1e0 // MPropertyFriendlyName "ending force" // MVectorIsCoordinate - Vector m_EndingForce; // 0x1c4 + Vector m_EndingForce; // 0x1e4 }; // Alignment: 16 -// Size: 0x950 +// Size: 0x988 struct TextureControls_t { public: // MPropertyFriendlyName "horizontal texture scale" CParticleCollectionRendererFloatInput m_flFinalTextureScaleU; // 0x0 // MPropertyFriendlyName "vertical texture scale" - CParticleCollectionRendererFloatInput m_flFinalTextureScaleV; // 0x150 + CParticleCollectionRendererFloatInput m_flFinalTextureScaleV; // 0x158 // MPropertyFriendlyName "horizontal texture offset" - CParticleCollectionRendererFloatInput m_flFinalTextureOffsetU; // 0x2a0 + CParticleCollectionRendererFloatInput m_flFinalTextureOffsetU; // 0x2b0 // MPropertyFriendlyName "vertical texture offset" - CParticleCollectionRendererFloatInput m_flFinalTextureOffsetV; // 0x3f0 + CParticleCollectionRendererFloatInput m_flFinalTextureOffsetV; // 0x408 // MPropertyFriendlyName "texture rotation / animation rate scale" - CParticleCollectionRendererFloatInput m_flFinalTextureUVRotation; // 0x540 + CParticleCollectionRendererFloatInput m_flFinalTextureUVRotation; // 0x560 // MPropertyFriendlyName "Infinite Zoom Scale" - CParticleCollectionRendererFloatInput m_flZoomScale; // 0x690 + CParticleCollectionRendererFloatInput m_flZoomScale; // 0x6b8 // MPropertyFriendlyName "Distortion Amount" - CParticleCollectionRendererFloatInput m_flDistortion; // 0x7e0 + CParticleCollectionRendererFloatInput m_flDistortion; // 0x810 // MPropertyFriendlyName "Randomize Initial Offset" - bool m_bRandomizeOffsets; // 0x930 + bool m_bRandomizeOffsets; // 0x968 // MPropertyFriendlyName "Clamp UVs" - bool m_bClampUVs; // 0x931 + bool m_bClampUVs; // 0x969 private: - [[maybe_unused]] uint8_t __pad0932[0x2]; // 0x932 + [[maybe_unused]] uint8_t __pad096a[0x2]; // 0x96a public: // MPropertyFriendlyName "per-particle scalar for blend" - SpriteCardPerParticleScale_t m_nPerParticleBlend; // 0x934 + SpriteCardPerParticleScale_t m_nPerParticleBlend; // 0x96c // MPropertyFriendlyName "per-particle scalar for scale" - SpriteCardPerParticleScale_t m_nPerParticleScale; // 0x938 + SpriteCardPerParticleScale_t m_nPerParticleScale; // 0x970 // MPropertyFriendlyName "per-particle scalar for horizontal offset" - SpriteCardPerParticleScale_t m_nPerParticleOffsetU; // 0x93c + SpriteCardPerParticleScale_t m_nPerParticleOffsetU; // 0x974 // MPropertyFriendlyName "per-particle scalar for vertical offset" - SpriteCardPerParticleScale_t m_nPerParticleOffsetV; // 0x940 + SpriteCardPerParticleScale_t m_nPerParticleOffsetV; // 0x978 // MPropertyFriendlyName "per-particle scalar for rotation" - SpriteCardPerParticleScale_t m_nPerParticleRotation; // 0x944 + SpriteCardPerParticleScale_t m_nPerParticleRotation; // 0x97c // MPropertyFriendlyName "per-particle scalar for zoom" - SpriteCardPerParticleScale_t m_nPerParticleZoom; // 0x948 + SpriteCardPerParticleScale_t m_nPerParticleZoom; // 0x980 // MPropertyFriendlyName "per-particle scalar for distortion" - SpriteCardPerParticleScale_t m_nPerParticleDistortion; // 0x94c + SpriteCardPerParticleScale_t m_nPerParticleDistortion; // 0x984 }; // Alignment: 3 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SetControlPointFieldToWater : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "source CP" - int32_t m_nSourceCP; // 0x1c0 + int32_t m_nSourceCP; // 0x1d0 // MPropertyFriendlyName "dest CP" - int32_t m_nDestCP; // 0x1c4 + int32_t m_nDestCP; // 0x1d4 // MPropertyFriendlyName "dest control point component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPField; // 0x1c8 + int32_t m_nCPField; // 0x1d8 }; // Alignment: 5 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_LerpVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "value to lerp to" // MVectorIsSometimesCoordinate - Vector m_vecOutput; // 0x1b4 + Vector m_vecOutput; // 0x1c4 // MPropertyFriendlyName "start time" - float m_flStartTime; // 0x1c0 + float m_flStartTime; // 0x1d0 // MPropertyFriendlyName "end time" - float m_flEndTime; // 0x1c4 + float m_flEndTime; // 0x1d4 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1c8 + ParticleSetMethod_t m_nSetMethod; // 0x1d8 }; // Alignment: 5 @@ -14258,35 +14843,35 @@ public: }; // Alignment: 4 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_HSVShiftToCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "Target color control point number" - int32_t m_nColorCP; // 0x1c0 + int32_t m_nColorCP; // 0x1d0 // MPropertyFriendlyName "Color Gem Enable control point number" - int32_t m_nColorGemEnableCP; // 0x1c4 + int32_t m_nColorGemEnableCP; // 0x1d4 // MPropertyFriendlyName "output control point number" - int32_t m_nOutputCP; // 0x1c8 + int32_t m_nOutputCP; // 0x1d8 // MPropertyFriendlyName "Default HSV Color" - Color m_DefaultHSVColor; // 0x1cc + Color m_DefaultHSVColor; // 0x1dc }; // Alignment: 5 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_RemapBoundingVolumetoCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c0 + int32_t m_nOutControlPointNumber; // 0x1d0 // MPropertyFriendlyName "input volume minimum in cubic units" - float m_flInputMin; // 0x1c4 + float m_flInputMin; // 0x1d4 // MPropertyFriendlyName "input volume maximum in cubic units" - float m_flInputMax; // 0x1c8 + float m_flInputMax; // 0x1d8 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1cc + float m_flOutputMin; // 0x1dc // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1d0 + float m_flOutputMax; // 0x1e0 }; // Alignment: 9 @@ -14319,27 +14904,27 @@ public: }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_FadeIn : public CParticleFunctionOperator { public: // MPropertyFriendlyName "fade in time min" - float m_flFadeInTimeMin; // 0x1b0 + float m_flFadeInTimeMin; // 0x1c0 // MPropertyFriendlyName "fade in time max" - float m_flFadeInTimeMax; // 0x1b4 + float m_flFadeInTimeMax; // 0x1c4 // MPropertyFriendlyName "fade in time exponent" - float m_flFadeInTimeExp; // 0x1b8 + float m_flFadeInTimeExp; // 0x1c8 // MPropertyFriendlyName "proportional 0/1" - bool m_bProportional; // 0x1bc + bool m_bProportional; // 0x1cc }; // Alignment: 1 -// Size: 0x310 +// Size: 0x330 class C_OP_SetSimulationRate : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "simulation timescale" - CParticleCollectionFloatInput m_flSimulationScale; // 0x1c0 + CParticleCollectionFloatInput m_flSimulationScale; // 0x1d0 }; // Alignment: 3 @@ -14356,222 +14941,229 @@ public: float m_flRotOffset; // 0x1c8 }; -// Alignment: 6 -// Size: 0x1700 +// Alignment: 7 +// Size: 0x1df0 class C_OP_CurlNoiseForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "noise type" - ParticleDirectionNoiseType_t m_nNoiseType; // 0x1b0 + ParticleDirectionNoiseType_t m_nNoiseType; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "noise frequency" // MVectorIsCoordinate - CPerParticleVecInput m_vecNoiseFreq; // 0x1b8 + CPerParticleVecInput m_vecNoiseFreq; // 0x1d8 // MPropertyFriendlyName "noise amplitude" // MVectorIsCoordinate - CPerParticleVecInput m_vecNoiseScale; // 0x7f0 + CPerParticleVecInput m_vecNoiseScale; // 0x830 + // MPropertyFriendlyName "offset" + // MVectorIsCoordinate + CPerParticleVecInput m_vecOffset; // 0xe88 // MPropertyFriendlyName "offset rate" // MVectorIsCoordinate - CPerParticleVecInput m_vecOffsetRate; // 0xe28 + CPerParticleVecInput m_vecOffsetRate; // 0x14e0 // MPropertyFriendlyName "worley seed" - CPerParticleFloatInput m_flWorleySeed; // 0x1460 + CPerParticleFloatInput m_flWorleySeed; // 0x1b38 // MPropertyFriendlyName "worley jitter" - CPerParticleFloatInput m_flWorleyJitter; // 0x15b0 + CPerParticleFloatInput m_flWorleyJitter; // 0x1c90 }; // Alignment: 0 // Size: 0x8 class IControlPointEditorData { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 4 -// Size: 0x950 +// Size: 0x990 class C_OP_SetControlPointRotation : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "rotation axis" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecRotAxis; // 0x1c0 + CParticleCollectionVecInput m_vecRotAxis; // 0x1d0 // MPropertyFriendlyName "rotation rate" - CParticleCollectionFloatInput m_flRotRate; // 0x7f8 + CParticleCollectionFloatInput m_flRotRate; // 0x828 // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0x948 + int32_t m_nCP; // 0x980 // MPropertyFriendlyName "local space control point" - int32_t m_nLocalCP; // 0x94c + int32_t m_nLocalCP; // 0x984 }; // Alignment: 10 -// Size: 0x1f0 +// Size: 0x200 class C_OP_RemapCPtoCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "input control point number" - int32_t m_nInputControlPoint; // 0x1c0 + int32_t m_nInputControlPoint; // 0x1d0 // MPropertyFriendlyName "output control point number" - int32_t m_nOutputControlPoint; // 0x1c4 + int32_t m_nOutputControlPoint; // 0x1d4 // MPropertyFriendlyName "input field" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nInputField; // 0x1c8 + int32_t m_nInputField; // 0x1d8 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutputField; // 0x1cc + int32_t m_nOutputField; // 0x1dc // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1d0 + float m_flInputMin; // 0x1e0 // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1d4 + float m_flInputMax; // 0x1e4 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1d8 + float m_flOutputMin; // 0x1e8 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1dc + float m_flOutputMax; // 0x1ec // MPropertyFriendlyName "use the derivative" - bool m_bDerivative; // 0x1e0 + bool m_bDerivative; // 0x1f0 private: - [[maybe_unused]] uint8_t __pad01e1[0x3]; // 0x1e1 + [[maybe_unused]] uint8_t __pad01f1[0x3]; // 0x1f1 public: // MPropertyFriendlyName "interpolation" - float m_flInterpRate; // 0x1e4 + float m_flInterpRate; // 0x1f4 }; // Alignment: 11 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_RemapDotProductToScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "first input control point" - int32_t m_nInputCP1; // 0x1b0 + int32_t m_nInputCP1; // 0x1c0 // MPropertyFriendlyName "second input control point" - int32_t m_nInputCP2; // 0x1b4 + int32_t m_nInputCP2; // 0x1c4 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b8 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c8 // MPropertyFriendlyName "input minimum (-1 to 1)" - float m_flInputMin; // 0x1bc - // MPropertyFriendlyName "input maximum (-1 to 1)" - float m_flInputMax; // 0x1c0 - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c4 - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c8 - // MPropertyFriendlyName "use particle velocity for first input" - bool m_bUseParticleVelocity; // 0x1cc -private: - [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd -public: - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1d0 - // MPropertyFriendlyName "only active within specified input range" - bool m_bActiveRange; // 0x1d4 - // MPropertyFriendlyName "use particle normal for first input" - bool m_bUseParticleNormal; // 0x1d5 -}; - -// Alignment: 7 -// Size: 0x1e0 -class C_OP_RemapAverageScalarValuetoCP : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutVectorField; // 0x1c4 - // MPropertyFriendlyName "scalar field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1c8 - // MPropertyFriendlyName "input volume minimum" float m_flInputMin; // 0x1cc - // MPropertyFriendlyName "input volume maximum" + // MPropertyFriendlyName "input maximum (-1 to 1)" float m_flInputMax; // 0x1d0 // MPropertyFriendlyName "output minimum" float m_flOutputMin; // 0x1d4 // MPropertyFriendlyName "output maximum" float m_flOutputMax; // 0x1d8 + // MPropertyFriendlyName "use particle velocity for first input" + bool m_bUseParticleVelocity; // 0x1dc +private: + [[maybe_unused]] uint8_t __pad01dd[0x3]; // 0x1dd +public: + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x1e0 + // MPropertyFriendlyName "only active within specified input range" + bool m_bActiveRange; // 0x1e4 + // MPropertyFriendlyName "use particle normal for first input" + bool m_bUseParticleNormal; // 0x1e5 }; -// Alignment: 2 -// Size: 0x1d0 +// Alignment: 7 +// Size: 0x1f0 +class C_OP_RemapAverageScalarValuetoCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "output control point" + int32_t m_nOutControlPointNumber; // 0x1d0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "vector_component" + int32_t m_nOutVectorField; // 0x1d4 + // MPropertyFriendlyName "scalar field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nField; // 0x1d8 + // MPropertyFriendlyName "input volume minimum" + float m_flInputMin; // 0x1dc + // MPropertyFriendlyName "input volume maximum" + float m_flInputMax; // 0x1e0 + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1e4 + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1e8 +}; + +// Alignment: 3 +// Size: 0x1f0 class C_OP_SetControlPointToCenter : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point number to set" - int32_t m_nCP1; // 0x1c0 + int32_t m_nCP1; // 0x1d0 // MPropertyFriendlyName "center offset" // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1c4 + Vector m_vecCP1Pos; // 0x1d4 + // MPropertyFriendlyName "set parent" + ParticleParentSetMode_t m_nSetParent; // 0x1e0 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_RemapControlPointOrientationToRotation : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0x1b0 + int32_t m_nCP; // 0x1c0 // MPropertyFriendlyName "rotation field" // MPropertyAttributeChoiceName "particlefield_rotation" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "offset rotation" - float m_flOffsetRot; // 0x1b8 + float m_flOffsetRot; // 0x1c8 // MPropertyFriendlyName "control point axis" // MPropertyAttributeChoiceName "vector_component" // MVectorIsSometimesCoordinate - int32_t m_nComponent; // 0x1bc + int32_t m_nComponent; // 0x1cc }; // Alignment: 15 -// Size: 0xe30 +// Size: 0xe80 class C_OP_DistanceToTransform : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "distance minimum" - CPerParticleFloatInput m_flInputMin; // 0x1b8 + CPerParticleFloatInput m_flInputMin; // 0x1c8 // MPropertyFriendlyName "distance maximum" - CPerParticleFloatInput m_flInputMax; // 0x308 + CPerParticleFloatInput m_flInputMax; // 0x320 // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x458 + CPerParticleFloatInput m_flOutputMin; // 0x478 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x5a8 + CPerParticleFloatInput m_flOutputMax; // 0x5d0 // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformStart; // 0x6f8 + CParticleTransformInput m_TransformStart; // 0x728 // MPropertyFriendlyName "ensure line of sight" - bool m_bLOS; // 0x760 + bool m_bLOS; // 0x790 // MPropertyFriendlyName "LOS collision group" - char m_CollisionGroupName[128]; // 0x761 + char m_CollisionGroupName[128]; // 0x791 private: - [[maybe_unused]] uint8_t __pad07e1[0x3]; // 0x7e1 + [[maybe_unused]] uint8_t __pad0811[0x3]; // 0x811 public: // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x7e4 + ParticleTraceSet_t m_nTraceSet; // 0x814 // MPropertyFriendlyName "maximum trace length" - float m_flMaxTraceLength; // 0x7e8 + float m_flMaxTraceLength; // 0x818 // MPropertyFriendlyName "LOS Failure Scalar" - float m_flLOSScale; // 0x7ec + float m_flLOSScale; // 0x81c // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x7f0 + ParticleSetMethod_t m_nSetMethod; // 0x820 // MPropertyFriendlyName "only active within specified distance" - bool m_bActiveRange; // 0x7f4 + bool m_bActiveRange; // 0x824 // MPropertyFriendlyName "output is additive" - bool m_bAdditive; // 0x7f5 + bool m_bAdditive; // 0x825 private: - [[maybe_unused]] uint8_t __pad07f6[0x2]; // 0x7f6 + [[maybe_unused]] uint8_t __pad0826[0x2]; // 0x826 public: // MPropertyFriendlyName "component scale" - CPerParticleVecInput m_vecComponentScale; // 0x7f8 + CPerParticleVecInput m_vecComponentScale; // 0x828 }; // Alignment: 29 -// Size: 0x1320 +// Size: 0x1380 class C_OP_RenderStandardLight : public CParticleFunctionRenderer { public: @@ -14583,99 +15175,99 @@ public: // MPropertyFriendlyName "color blend" CParticleCollectionVecInput m_vecColorScale; // 0x208 // MPropertyFriendlyName "color blend type" - ParticleColorBlendType_t m_nColorBlendType; // 0x840 + ParticleColorBlendType_t m_nColorBlendType; // 0x860 private: - [[maybe_unused]] uint8_t __pad0844[0x4]; // 0x844 + [[maybe_unused]] uint8_t __pad0864[0x4]; // 0x864 public: // MPropertyFriendlyName "intensity" - CParticleCollectionFloatInput m_flIntensity; // 0x848 + CParticleCollectionFloatInput m_flIntensity; // 0x868 // MPropertyFriendlyName "cast shadows" // MPropertySuppressExpr "m_nLightType == PARTICLE_LIGHT_TYPE_FX" - bool m_bCastShadows; // 0x998 + bool m_bCastShadows; // 0x9c0 private: - [[maybe_unused]] uint8_t __pad0999[0x7]; // 0x999 + [[maybe_unused]] uint8_t __pad09c1[0x7]; // 0x9c1 public: // MPropertyFriendlyName "inner cone angle" // MPropertySuppressExpr "m_nLightType != PARTICLE_LIGHT_TYPE_SPOT" - CParticleCollectionFloatInput m_flTheta; // 0x9a0 + CParticleCollectionFloatInput m_flTheta; // 0x9c8 // MPropertyFriendlyName "outer cone angle" // MPropertySuppressExpr "m_nLightType != PARTICLE_LIGHT_TYPE_SPOT" - CParticleCollectionFloatInput m_flPhi; // 0xaf0 + CParticleCollectionFloatInput m_flPhi; // 0xb20 // MPropertyFriendlyName "light radius multiplier" - CParticleCollectionFloatInput m_flRadiusMultiplier; // 0xc40 + CParticleCollectionFloatInput m_flRadiusMultiplier; // 0xc78 // MPropertyFriendlyName "attenuation type" - StandardLightingAttenuationStyle_t m_nAttenuationStyle; // 0xd90 + StandardLightingAttenuationStyle_t m_nAttenuationStyle; // 0xdd0 private: - [[maybe_unused]] uint8_t __pad0d94[0x4]; // 0xd94 + [[maybe_unused]] uint8_t __pad0dd4[0x4]; // 0xdd4 public: // MPropertyFriendlyName "falloff linearity" // MPropertySuppressExpr "m_nAttenuationStyle == LIGHT_STYLE_NEW || ( m_nAttenuationStyle == LIGHT_STYLE_OLD && m_nLightType == PARTICLE_LIGHT_TYPE_FX )" - CParticleCollectionFloatInput m_flFalloffLinearity; // 0xd98 + CParticleCollectionFloatInput m_flFalloffLinearity; // 0xdd8 // MPropertyFriendlyName "falloff fifty percent" // MPropertySuppressExpr "m_nAttenuationStyle == LIGHT_STYLE_OLD" - CParticleCollectionFloatInput m_flFiftyPercentFalloff; // 0xee8 + CParticleCollectionFloatInput m_flFiftyPercentFalloff; // 0xf30 // MPropertyFriendlyName "falloff zero percent" // MPropertySuppressExpr "m_nAttenuationStyle == LIGHT_STYLE_OLD" - CParticleCollectionFloatInput m_flZeroPercentFalloff; // 0x1038 + CParticleCollectionFloatInput m_flZeroPercentFalloff; // 0x1088 // MPropertyFriendlyName "render diffuse" // MPropertySuppressExpr "m_nLightType == PARTICLE_LIGHT_TYPE_FX" - bool m_bRenderDiffuse; // 0x1188 + bool m_bRenderDiffuse; // 0x11e0 // MPropertyFriendlyName "render specular" // MPropertySuppressExpr "m_nLightType == PARTICLE_LIGHT_TYPE_FX" - bool m_bRenderSpecular; // 0x1189 + bool m_bRenderSpecular; // 0x11e1 private: - [[maybe_unused]] uint8_t __pad118a[0x6]; // 0x118a + [[maybe_unused]] uint8_t __pad11e2[0x6]; // 0x11e2 public: // MPropertyFriendlyName "light cookie string" - CUtlString m_lightCookie; // 0x1190 + CUtlString m_lightCookie; // 0x11e8 // MPropertyFriendlyName "light priority" - int32_t m_nPriority; // 0x1198 + int32_t m_nPriority; // 0x11f0 // MPropertyFriendlyName "fog lighting mode" // MPropertySuppressExpr "m_nLightType == PARTICLE_LIGHT_TYPE_FX" - ParticleLightFogLightingMode_t m_nFogLightingMode; // 0x119c + ParticleLightFogLightingMode_t m_nFogLightingMode; // 0x11f4 // MPropertyFriendlyName "fog contribution" // MPropertySuppressExpr "m_nLightType == PARTICLE_LIGHT_TYPE_FX" - CParticleCollectionRendererFloatInput m_flFogContribution; // 0x11a0 + CParticleCollectionRendererFloatInput m_flFogContribution; // 0x11f8 // MPropertyFriendlyName "capsule behavior" - ParticleLightBehaviorChoiceList_t m_nCapsuleLightBehavior; // 0x12f0 + ParticleLightBehaviorChoiceList_t m_nCapsuleLightBehavior; // 0x1350 // MPropertyStartGroup "Capsule Light Controls" // MPropertyFriendlyName "capsule length" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_TRAILS" - float m_flCapsuleLength; // 0x12f4 + float m_flCapsuleLength; // 0x1354 // MPropertyFriendlyName "reverse point order" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_TRAILS" - bool m_bReverseOrder; // 0x12f8 + bool m_bReverseOrder; // 0x1358 // MPropertyFriendlyName "Closed loop" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_TRAILS" - bool m_bClosedLoop; // 0x12f9 + bool m_bClosedLoop; // 0x1359 private: - [[maybe_unused]] uint8_t __pad12fa[0x2]; // 0x12fa + [[maybe_unused]] uint8_t __pad135a[0x2]; // 0x135a public: // MPropertyFriendlyName "Anchor point source" // MPropertyAttributeChoiceName "particlefield_vector" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - ParticleAttributeIndex_t m_nPrevPntSource; // 0x12fc + ParticleAttributeIndex_t m_nPrevPntSource; // 0x135c // MPropertyFriendlyName "max length" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - float m_flMaxLength; // 0x1300 + float m_flMaxLength; // 0x1360 // MPropertyFriendlyName "min length" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - float m_flMinLength; // 0x1304 + float m_flMinLength; // 0x1364 // MPropertyFriendlyName "ignore delta time" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - bool m_bIgnoreDT; // 0x1308 + bool m_bIgnoreDT; // 0x1368 private: - [[maybe_unused]] uint8_t __pad1309[0x3]; // 0x1309 + [[maybe_unused]] uint8_t __pad1369[0x3]; // 0x1369 public: // MPropertyFriendlyName "constrain radius to no more than this times the length" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - float m_flConstrainRadiusToLengthRatio; // 0x130c + float m_flConstrainRadiusToLengthRatio; // 0x136c // MPropertyFriendlyName "amount to scale trail length by" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - float m_flLengthScale; // 0x1310 + float m_flLengthScale; // 0x1370 // MPropertyFriendlyName "how long before a trail grows to its full length" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - float m_flLengthFadeInTime; // 0x1314 + float m_flLengthFadeInTime; // 0x1374 }; // Alignment: 2 @@ -14688,17 +15280,17 @@ public: }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1e0 class C_OP_WindForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "force to apply" // MVectorIsCoordinate - Vector m_vForce; // 0x1b0 + Vector m_vForce; // 0x1d0 }; // Alignment: 2 -// Size: 0x158 +// Size: 0x160 struct FloatInputMaterialVariable_t { public: @@ -14712,8 +15304,10 @@ public: // Size: 0x8 class IParticleSystemDefinition { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 11 @@ -14773,22 +15367,22 @@ public: }; // Alignment: 3 -// Size: 0xe30 +// Size: 0xe80 class C_OP_ClampVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "output minimum" // MVectorIsSometimesCoordinate - CPerParticleVecInput m_vecOutputMin; // 0x1b8 + CPerParticleVecInput m_vecOutputMin; // 0x1c8 // MPropertyFriendlyName "output maximum" // MVectorIsSometimesCoordinate - CPerParticleVecInput m_vecOutputMax; // 0x7f0 + CPerParticleVecInput m_vecOutputMax; // 0x820 }; // Alignment: 0 @@ -14826,7 +15420,7 @@ public: }; // Alignment: 0 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SpinYaw : public CGeneralSpin { public: @@ -14834,20 +15428,20 @@ public: }; // Alignment: 3 -// Size: 0x320 +// Size: 0x330 class C_OP_StopAfterCPDuration : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "duration at which to stop" - CParticleCollectionFloatInput m_flDuration; // 0x1c0 + CParticleCollectionFloatInput m_flDuration; // 0x1d0 // MPropertyFriendlyName "destroy all particles immediately" - bool m_bDestroyImmediately; // 0x310 + bool m_bDestroyImmediately; // 0x328 // MPropertyFriendlyName "play end cap effect" - bool m_bPlayEndCap; // 0x311 + bool m_bPlayEndCap; // 0x329 }; // Alignment: 0 -// Size: 0x210 +// Size: 0x220 class C_OP_RemapNamedModelBodyPartEndCap : public C_OP_RemapNamedModelElementEndCap { public: @@ -14855,118 +15449,118 @@ public: }; // Alignment: 7 -// Size: 0x210 +// Size: 0x220 class C_OP_MaintainSequentialPath : public CParticleFunctionOperator { public: // MPropertyFriendlyName "maximum distance" - float m_fMaxDistance; // 0x1b0 + float m_fMaxDistance; // 0x1c0 // MPropertyFriendlyName "particles to map from start to end" - float m_flNumToAssign; // 0x1b4 + float m_flNumToAssign; // 0x1c4 // MPropertyFriendlyName "cohesion strength" - float m_flCohesionStrength; // 0x1b8 + float m_flCohesionStrength; // 0x1c8 // MPropertyFriendlyName "control point movement tolerance" - float m_flTolerance; // 0x1bc + float m_flTolerance; // 0x1cc // MPropertyFriendlyName "restart behavior (0 = bounce, 1 = loop )" - bool m_bLoop; // 0x1c0 + bool m_bLoop; // 0x1d0 // MPropertyFriendlyName "use existing particle count" - bool m_bUseParticleCount; // 0x1c1 + bool m_bUseParticleCount; // 0x1d1 private: - [[maybe_unused]] uint8_t __pad01c2[0xe]; // 0x1c2 + [[maybe_unused]] uint8_t __pad01d2[0xe]; // 0x1d2 public: - CPathParameters m_PathParams; // 0x1d0 + CPathParameters m_PathParams; // 0x1e0 }; // Alignment: 2 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SetControlPointFromObjectScale : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "input control point number" - int32_t m_nCPInput; // 0x1c0 + int32_t m_nCPInput; // 0x1d0 // MPropertyFriendlyName "output control point number" - int32_t m_nCPOutput; // 0x1c4 + int32_t m_nCPOutput; // 0x1d4 }; // Alignment: 9 -// Size: 0x210 +// Size: 0x220 class C_OP_RemapNamedModelElementOnceTimed : public CParticleFunctionOperator { public: - CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x1b0 + CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x1c0 // MPropertyFriendlyName "input names" - CUtlVector< CUtlString > m_inNames; // 0x1b8 + CUtlVector< CUtlString > m_inNames; // 0x1c8 // MPropertyFriendlyName "output names" - CUtlVector< CUtlString > m_outNames; // 0x1d0 + CUtlVector< CUtlString > m_outNames; // 0x1e0 // MPropertyFriendlyName "fallback names when the input doesn't match" - CUtlVector< CUtlString > m_fallbackNames; // 0x1e8 + CUtlVector< CUtlString > m_fallbackNames; // 0x1f8 // MPropertyFriendlyName "model from renderer" - bool m_bModelFromRenderer; // 0x200 + bool m_bModelFromRenderer; // 0x210 // MPropertyFriendlyName "remap time proportional" - bool m_bProportional; // 0x201 + bool m_bProportional; // 0x211 private: - [[maybe_unused]] uint8_t __pad0202[0x2]; // 0x202 + [[maybe_unused]] uint8_t __pad0212[0x2]; // 0x212 public: // MPropertyFriendlyName "input field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x204 + ParticleAttributeIndex_t m_nFieldInput; // 0x214 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x208 + ParticleAttributeIndex_t m_nFieldOutput; // 0x218 // MPropertyFriendlyName "remap time" - float m_flRemapTime; // 0x20c + float m_flRemapTime; // 0x21c }; // Alignment: 10 -// Size: 0x200 +// Size: 0x210 class C_OP_RampScalarSpline : public CParticleFunctionOperator { public: // MPropertyFriendlyName "ramp rate min" - float m_RateMin; // 0x1b0 + float m_RateMin; // 0x1c0 // MPropertyFriendlyName "ramp rate max" - float m_RateMax; // 0x1b4 + float m_RateMax; // 0x1c4 // MPropertyFriendlyName "start time min" - float m_flStartTime_min; // 0x1b8 + float m_flStartTime_min; // 0x1c8 // MPropertyFriendlyName "start time max" - float m_flStartTime_max; // 0x1bc + float m_flStartTime_max; // 0x1cc // MPropertyFriendlyName "end time min" - float m_flEndTime_min; // 0x1c0 + float m_flEndTime_min; // 0x1d0 // MPropertyFriendlyName "end time max" - float m_flEndTime_max; // 0x1c4 + float m_flEndTime_max; // 0x1d4 // MPropertyFriendlyName "bias" - float m_flBias; // 0x1c8 + float m_flBias; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01cc[0x24]; // 0x1cc + [[maybe_unused]] uint8_t __pad01dc[0x24]; // 0x1dc public: // MPropertyFriendlyName "ramp field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1f0 + ParticleAttributeIndex_t m_nField; // 0x200 // MPropertyFriendlyName "start/end proportional" - bool m_bProportionalOp; // 0x1f4 + bool m_bProportionalOp; // 0x204 // MPropertyFriendlyName "ease out" - bool m_bEaseOut; // 0x1f5 + bool m_bEaseOut; // 0x205 }; // Alignment: 5 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_ColorInterpolate : public CParticleFunctionOperator { public: // MPropertyFriendlyName "color fade" - Color m_ColorFade; // 0x1b0 + Color m_ColorFade; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0xc]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0xc]; // 0x1c4 public: // MPropertyFriendlyName "fade start time" - float m_flFadeStartTime; // 0x1c0 + float m_flFadeStartTime; // 0x1d0 // MPropertyFriendlyName "fade end time" - float m_flFadeEndTime; // 0x1c4 + float m_flFadeEndTime; // 0x1d4 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1c8 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1d8 // MPropertyFriendlyName "ease in and out" - bool m_bEaseInOut; // 0x1cc + bool m_bEaseInOut; // 0x1dc }; // Alignment: 1 @@ -14978,24 +15572,24 @@ public: }; // Alignment: 7 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_FadeAndKill : public CParticleFunctionOperator { public: // MPropertyFriendlyName "start fade in time" - float m_flStartFadeInTime; // 0x1b0 + float m_flStartFadeInTime; // 0x1c0 // MPropertyFriendlyName "end fade in time" - float m_flEndFadeInTime; // 0x1b4 + float m_flEndFadeInTime; // 0x1c4 // MPropertyFriendlyName "start fade out time" - float m_flStartFadeOutTime; // 0x1b8 + float m_flStartFadeOutTime; // 0x1c8 // MPropertyFriendlyName "end fade out time" - float m_flEndFadeOutTime; // 0x1bc + float m_flEndFadeOutTime; // 0x1cc // MPropertyFriendlyName "start alpha" - float m_flStartAlpha; // 0x1c0 + float m_flStartAlpha; // 0x1d0 // MPropertyFriendlyName "end alpha" - float m_flEndAlpha; // 0x1c4 + float m_flEndAlpha; // 0x1d4 // MPropertyFriendlyName "force preserving particle order" - bool m_bForcePreserveParticleOrder; // 0x1c8 + bool m_bForcePreserveParticleOrder; // 0x1d8 }; // Alignment: 4 @@ -15030,32 +15624,32 @@ public: }; // Alignment: 8 -// Size: 0x5d0 +// Size: 0x5e0 class C_OP_MaintainEmitter : public CParticleFunctionEmitter { public: // MPropertyFriendlyName "count to maintain" CParticleCollectionFloatInput m_nParticlesToMaintain; // 0x1c0 // MPropertyFriendlyName "emission start time" - float m_flStartTime; // 0x310 + float m_flStartTime; // 0x318 private: - [[maybe_unused]] uint8_t __pad0314[0x4]; // 0x314 + [[maybe_unused]] uint8_t __pad031c[0x4]; // 0x31c public: // MPropertyFriendlyName "emission duration" - CParticleCollectionFloatInput m_flEmissionDuration; // 0x318 + CParticleCollectionFloatInput m_flEmissionDuration; // 0x320 // MPropertyFriendlyName "emission rate" - float m_flEmissionRate; // 0x468 + float m_flEmissionRate; // 0x478 // MPropertyFriendlyName "control point with snapshot data" - int32_t m_nSnapshotControlPoint; // 0x46c + int32_t m_nSnapshotControlPoint; // 0x47c // MPropertyFriendlyName "group emission times for new particles" - bool m_bEmitInstantaneously; // 0x470 + bool m_bEmitInstantaneously; // 0x480 // MPropertyFriendlyName "perform final emit on stop" - bool m_bFinalEmitOnStop; // 0x471 + bool m_bFinalEmitOnStop; // 0x481 private: - [[maybe_unused]] uint8_t __pad0472[0x6]; // 0x472 + [[maybe_unused]] uint8_t __pad0482[0x6]; // 0x482 public: // MPropertyFriendlyName "total count scale" - CParticleCollectionFloatInput m_flScale; // 0x478 + CParticleCollectionFloatInput m_flScale; // 0x488 }; // Alignment: 3 @@ -15071,17 +15665,19 @@ public: bool m_bIgnoreDt; // 0x1c8 }; -// Alignment: 3 -// Size: 0x1c0 +// Alignment: 4 +// Size: 0x1d0 class C_OP_MaxVelocity : public CParticleFunctionOperator { public: // MPropertyFriendlyName "maximum velocity" - float m_flMaxVelocity; // 0x1b0 + float m_flMaxVelocity; // 0x1c0 + // MPropertyFriendlyName "minimum velocity" + float m_flMinVelocity; // 0x1c4 // MPropertyFriendlyName "override max velocity from this CP" - int32_t m_nOverrideCP; // 0x1b4 + int32_t m_nOverrideCP; // 0x1c8 // MPropertyFriendlyName "override CP field" - int32_t m_nOverrideCPField; // 0x1b8 + int32_t m_nOverrideCPField; // 0x1cc }; // Alignment: 11 @@ -15145,38 +15741,38 @@ public: }; // Alignment: 3 -// Size: 0x940 +// Size: 0x990 class C_OP_PerParticleForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "force scale" - CPerParticleFloatInput m_flForceScale; // 0x1b0 + CPerParticleFloatInput m_flForceScale; // 0x1d0 // MPropertyFriendlyName "force to apply" // MVectorIsCoordinate - CPerParticleVecInput m_vForce; // 0x300 + CPerParticleVecInput m_vForce; // 0x328 // MPropertyFriendlyName "local space control point" - int32_t m_nCP; // 0x938 + int32_t m_nCP; // 0x980 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_InheritFromPeerSystem : public CParticleFunctionOperator { public: // MPropertyFriendlyName "read field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "written field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c4 // MPropertyFriendlyName "particle neighbor increment amount" - int32_t m_nIncrement; // 0x1b8 + int32_t m_nIncrement; // 0x1c8 // MPropertyFriendlyName "group id" - int32_t m_nGroupID; // 0x1bc + int32_t m_nGroupID; // 0x1cc }; // Alignment: 13 -// Size: 0x10f0 +// Size: 0x1130 class C_INIT_CreateOnModel : public CParticleFunctionInitializer { public: @@ -15197,27 +15793,27 @@ public: // MPropertyFriendlyName "hitbox scale" CParticleCollectionVecInput m_vecHitBoxScale; // 0x298 // MPropertyFriendlyName "inherited velocity scale" - float m_flBoneVelocity; // 0x8d0 + float m_flBoneVelocity; // 0x8f0 // MPropertyFriendlyName "maximum inherited velocity" - float m_flMaxBoneVelocity; // 0x8d4 + float m_flMaxBoneVelocity; // 0x8f4 // MPropertyFriendlyName "direction bias" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecDirectionBias; // 0x8d8 + CParticleCollectionVecInput m_vecDirectionBias; // 0x8f8 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0xf10 + char m_HitboxSetName[128]; // 0xf50 // MPropertyFriendlyName "bias in local space" - bool m_bLocalCoords; // 0xf90 + bool m_bLocalCoords; // 0xfd0 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0xf91 + bool m_bUseBones; // 0xfd1 private: - [[maybe_unused]] uint8_t __pad0f92[0x6]; // 0xf92 + [[maybe_unused]] uint8_t __pad0fd2[0x6]; // 0xfd2 public: // MPropertyFriendlyName "hitbox shell thickness" - CParticleCollectionFloatInput m_flShellSize; // 0xf98 + CParticleCollectionFloatInput m_flShellSize; // 0xfd8 }; // Alignment: 4 -// Size: 0x470 +// Size: 0x480 class C_INIT_InitFloat : public CParticleFunctionInitializer { public: @@ -15225,31 +15821,31 @@ public: CPerParticleFloatInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x310 + ParticleAttributeIndex_t m_nOutputField; // 0x318 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x314 + ParticleSetMethod_t m_nSetMethod; // 0x31c // MPropertyFriendlyName "per-particle strength" - CPerParticleFloatInput m_InputStrength; // 0x318 + CPerParticleFloatInput m_InputStrength; // 0x320 }; // Alignment: 4 -// Size: 0x9b0 +// Size: 0x9e0 class C_OP_MovementRotateParticleAroundAxis : public CParticleFunctionOperator { public: // MPropertyFriendlyName "rotation axis" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecRotAxis; // 0x1b0 + CParticleCollectionVecInput m_vecRotAxis; // 0x1c0 // MPropertyFriendlyName "rotation rate" - CParticleCollectionFloatInput m_flRotRate; // 0x7e8 + CParticleCollectionFloatInput m_flRotRate; // 0x818 // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x938 + CParticleTransformInput m_TransformInput; // 0x970 // MPropertyFriendlyName "use local space" - bool m_bLocalSpace; // 0x9a0 + bool m_bLocalSpace; // 0x9d8 }; // Alignment: 0 -// Size: 0x150 +// Size: 0x158 class CParticleRemapFloatInput : public CParticleFloatInput { public: @@ -15257,65 +15853,65 @@ public: }; // Alignment: 12 -// Size: 0x210 +// Size: 0x220 class C_OP_SetControlPointPositions : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "set positions in world space" - bool m_bUseWorldLocation; // 0x1c0 + bool m_bUseWorldLocation; // 0x1d0 // MPropertyFriendlyName "inherit CP orientation" - bool m_bOrient; // 0x1c1 + bool m_bOrient; // 0x1d1 // MPropertyFriendlyName "only set position once" - bool m_bSetOnce; // 0x1c2 + bool m_bSetOnce; // 0x1d2 private: - [[maybe_unused]] uint8_t __pad01c3[0x1]; // 0x1c3 + [[maybe_unused]] uint8_t __pad01d3[0x1]; // 0x1d3 public: // MPropertyFriendlyName "first control point number" - int32_t m_nCP1; // 0x1c4 + int32_t m_nCP1; // 0x1d4 // MPropertyFriendlyName "second control point number" - int32_t m_nCP2; // 0x1c8 + int32_t m_nCP2; // 0x1d8 // MPropertyFriendlyName "third control point number" - int32_t m_nCP3; // 0x1cc + int32_t m_nCP3; // 0x1dc // MPropertyFriendlyName "fourth control point number" - int32_t m_nCP4; // 0x1d0 + int32_t m_nCP4; // 0x1e0 // MPropertyFriendlyName "first control point location" // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1d4 + Vector m_vecCP1Pos; // 0x1e4 // MPropertyFriendlyName "second control point location" // MVectorIsCoordinate - Vector m_vecCP2Pos; // 0x1e0 + Vector m_vecCP2Pos; // 0x1f0 // MPropertyFriendlyName "third control point location" // MVectorIsCoordinate - Vector m_vecCP3Pos; // 0x1ec + Vector m_vecCP3Pos; // 0x1fc // MPropertyFriendlyName "fourth control point location" // MVectorIsCoordinate - Vector m_vecCP4Pos; // 0x1f8 + Vector m_vecCP4Pos; // 0x208 // MPropertyFriendlyName "control point to offset positions from" - int32_t m_nHeadLocation; // 0x204 + int32_t m_nHeadLocation; // 0x214 }; // Alignment: 5 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_ConstrainDistanceToUserSpecifiedPath : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "minimum distance" - float m_fMinDistance; // 0x1b0 + float m_fMinDistance; // 0x1c0 // MPropertyFriendlyName "maximum distance" - float m_flMaxDistance; // 0x1b4 + float m_flMaxDistance; // 0x1c4 // MPropertyFriendlyName "Time scale" - float m_flTimeScale; // 0x1b8 + float m_flTimeScale; // 0x1c8 // MPropertyFriendlyName "Treat path as a loop" - bool m_bLoopedPath; // 0x1bc + bool m_bLoopedPath; // 0x1cc private: - [[maybe_unused]] uint8_t __pad01bd[0x3]; // 0x1bd + [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd public: // MPropertyFriendlyName "path points" - CUtlVector< PointDefinitionWithTimeValues_t > m_pointList; // 0x1c0 + CUtlVector< PointDefinitionWithTimeValues_t > m_pointList; // 0x1d0 }; // Alignment: 10 -// Size: 0x780 +// Size: 0x7a0 class C_INIT_CreateInEpitrochoid : public CParticleFunctionInitializer { public: @@ -15330,261 +15926,263 @@ public: // MPropertyFriendlyName "particle density" CPerParticleFloatInput m_flParticleDensity; // 0x230 // MPropertyFriendlyName "point offset" - CPerParticleFloatInput m_flOffset; // 0x380 + CPerParticleFloatInput m_flOffset; // 0x388 // MPropertyFriendlyName "radius 1" - CPerParticleFloatInput m_flRadius1; // 0x4d0 + CPerParticleFloatInput m_flRadius1; // 0x4e0 // MPropertyFriendlyName "radius 2" - CPerParticleFloatInput m_flRadius2; // 0x620 + CPerParticleFloatInput m_flRadius2; // 0x638 // MPropertyFriendlyName "use particle count instead of creation time" - bool m_bUseCount; // 0x770 + bool m_bUseCount; // 0x790 // MPropertyFriendlyName "local space" - bool m_bUseLocalCoords; // 0x771 + bool m_bUseLocalCoords; // 0x791 // MPropertyFriendlyName "offset from existing position" - bool m_bOffsetExistingPos; // 0x772 + bool m_bOffsetExistingPos; // 0x792 }; -// Alignment: 2 -// Size: 0x1c0 +// Alignment: 3 +// Size: 0x1e0 class C_OP_DensityForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "Radius scale for particle influence" - float m_flRadiusScale; // 0x1b0 + float m_flRadiusScale; // 0x1d0 // MPropertyFriendlyName "Scale of force" - float m_flForceScale; // 0x1b4 + float m_flForceScale; // 0x1d4 + // MPropertyFriendlyName "Target density" + float m_flTargetDensity; // 0x1d8 }; // Alignment: 5 -// Size: 0x5c0 +// Size: 0x5e0 class C_INIT_CreateParticleImpulse : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "radius" CPerParticleFloatInput m_InputRadius; // 0x1c0 // MPropertyFriendlyName "magnitude" - CPerParticleFloatInput m_InputMagnitude; // 0x310 + CPerParticleFloatInput m_InputMagnitude; // 0x318 // MPropertyFriendlyName "force falloff function" - ParticleFalloffFunction_t m_nFalloffFunction; // 0x460 + ParticleFalloffFunction_t m_nFalloffFunction; // 0x470 private: - [[maybe_unused]] uint8_t __pad0464[0x4]; // 0x464 + [[maybe_unused]] uint8_t __pad0474[0x4]; // 0x474 public: // MPropertyFriendlyName "exponential falloff exponent" - CPerParticleFloatInput m_InputFalloffExp; // 0x468 + CPerParticleFloatInput m_InputFalloffExp; // 0x478 // MPropertyFriendlyName "impulse type" - ParticleImpulseType_t m_nImpulseType; // 0x5b8 + ParticleImpulseType_t m_nImpulseType; // 0x5d0 }; // Alignment: 13 -// Size: 0x200 +// Size: 0x210 class C_OP_RemapCPtoVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input control point number" - int32_t m_nCPInput; // 0x1b0 + int32_t m_nCPInput; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "local space CP" - int32_t m_nLocalSpaceCP; // 0x1b8 + int32_t m_nLocalSpaceCP; // 0x1c8 // MPropertyFriendlyName "input minimum" // MVectorIsSometimesCoordinate - Vector m_vInputMin; // 0x1bc + Vector m_vInputMin; // 0x1cc // MPropertyFriendlyName "input maximum" // MVectorIsSometimesCoordinate - Vector m_vInputMax; // 0x1c8 + Vector m_vInputMax; // 0x1d8 // MPropertyFriendlyName "output minimum" // MVectorIsSometimesCoordinate - Vector m_vOutputMin; // 0x1d4 + Vector m_vOutputMin; // 0x1e4 // MPropertyFriendlyName "output maximum" // MVectorIsSometimesCoordinate - Vector m_vOutputMax; // 0x1e0 + Vector m_vOutputMax; // 0x1f0 // MPropertyFriendlyName "emitter lifetime start time (seconds)" - float m_flStartTime; // 0x1ec + float m_flStartTime; // 0x1fc // MPropertyFriendlyName "emitter lifetime end time (seconds)" - float m_flEndTime; // 0x1f0 + float m_flEndTime; // 0x200 // MPropertyFriendlyName "interpolation scale" - float m_flInterpRate; // 0x1f4 + float m_flInterpRate; // 0x204 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1f8 + ParticleSetMethod_t m_nSetMethod; // 0x208 // MPropertyFriendlyName "offset position" - bool m_bOffset; // 0x1fc + bool m_bOffset; // 0x20c // MPropertyFriendlyName "accelerate position" - bool m_bAccelerate; // 0x1fd + bool m_bAccelerate; // 0x20d }; // Alignment: 13 -// Size: 0xff0 +// Size: 0x1050 class C_OP_PinParticleToCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "offset" - CParticleCollectionVecInput m_vecOffset; // 0x1b8 + CParticleCollectionVecInput m_vecOffset; // 0x1c8 // MPropertyFriendlyName "offset in local space" - bool m_bOffsetLocal; // 0x7f0 + bool m_bOffsetLocal; // 0x820 private: - [[maybe_unused]] uint8_t __pad07f1[0x3]; // 0x7f1 + [[maybe_unused]] uint8_t __pad0821[0x3]; // 0x821 public: // MPropertyFriendlyName "particle to use" - ParticleSelection_t m_nParticleSelection; // 0x7f4 + ParticleSelection_t m_nParticleSelection; // 0x824 // MPropertyFriendlyName "particle number/offset" - CParticleCollectionFloatInput m_nParticleNumber; // 0x7f8 + CParticleCollectionFloatInput m_nParticleNumber; // 0x828 // MPropertyFriendlyName "pin break type" - ParticlePinDistance_t m_nPinBreakType; // 0x948 + ParticlePinDistance_t m_nPinBreakType; // 0x980 private: - [[maybe_unused]] uint8_t __pad094c[0x4]; // 0x94c + [[maybe_unused]] uint8_t __pad0984[0x4]; // 0x984 public: // MPropertyFriendlyName "break length %" - CParticleCollectionFloatInput m_flBreakDistance; // 0x950 + CParticleCollectionFloatInput m_flBreakDistance; // 0x988 // MPropertyFriendlyName "break speed" - CParticleCollectionFloatInput m_flBreakSpeed; // 0xaa0 + CParticleCollectionFloatInput m_flBreakSpeed; // 0xae0 // MPropertyFriendlyName "break age" - CParticleCollectionFloatInput m_flAge; // 0xbf0 + CParticleCollectionFloatInput m_flAge; // 0xc38 // MPropertyFriendlyName "break comparison control point 1" - int32_t m_nBreakControlPointNumber; // 0xd40 + int32_t m_nBreakControlPointNumber; // 0xd90 // MPropertyFriendlyName "break comparison control point 2" - int32_t m_nBreakControlPointNumber2; // 0xd44 + int32_t m_nBreakControlPointNumber2; // 0xd94 // MPropertyFriendlyName "break value" - CParticleCollectionFloatInput m_flBreakValue; // 0xd48 + CParticleCollectionFloatInput m_flBreakValue; // 0xd98 // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0xe98 + CPerParticleFloatInput m_flInterpolation; // 0xef0 }; // Alignment: 7 -// Size: 0x260 +// Size: 0x270 class C_OP_RtEnvCull : public CParticleFunctionOperator { public: // MPropertyFriendlyName "test direction" // MVectorIsCoordinate - Vector m_vecTestDir; // 0x1b0 + Vector m_vecTestDir; // 0x1c0 // MPropertyFriendlyName "cull normal" // MVectorIsCoordinate - Vector m_vecTestNormal; // 0x1bc + Vector m_vecTestNormal; // 0x1cc // MPropertyFriendlyName "cull on miss" - bool m_bCullOnMiss; // 0x1c8 + bool m_bCullOnMiss; // 0x1d8 // MPropertyFriendlyName "stick instead of cull" - bool m_bStickInsteadOfCull; // 0x1c9 + bool m_bStickInsteadOfCull; // 0x1d9 // MPropertyFriendlyName "ray trace environment name" - char m_RtEnvName[128]; // 0x1ca + char m_RtEnvName[128]; // 0x1da private: - [[maybe_unused]] uint8_t __pad024a[0x2]; // 0x24a + [[maybe_unused]] uint8_t __pad025a[0x2]; // 0x25a public: // MPropertyFriendlyName "ray trace environment cp" - int32_t m_nRTEnvCP; // 0x24c + int32_t m_nRTEnvCP; // 0x25c // MPropertyFriendlyName "rt env control point component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nComponent; // 0x250 + int32_t m_nComponent; // 0x260 }; // Alignment: 9 -// Size: 0x200 +// Size: 0x210 class C_OP_DriveCPFromGlobalSoundFloat : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "output control point" - int32_t m_nOutputControlPoint; // 0x1c0 + int32_t m_nOutputControlPoint; // 0x1d0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutputField; // 0x1c4 + int32_t m_nOutputField; // 0x1d4 // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1c8 + float m_flInputMin; // 0x1d8 // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1cc + float m_flInputMax; // 0x1dc // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1d0 + float m_flOutputMin; // 0x1e0 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1d4 + float m_flOutputMax; // 0x1e4 // MPropertyFriendlyName "sound stack name" - CUtlString m_StackName; // 0x1d8 + CUtlString m_StackName; // 0x1e8 // MPropertyFriendlyName "sound operator name" - CUtlString m_OperatorName; // 0x1e0 + CUtlString m_OperatorName; // 0x1f0 // MPropertyFriendlyName "sound field name" - CUtlString m_FieldName; // 0x1e8 + CUtlString m_FieldName; // 0x1f8 }; // Alignment: 7 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_RemapDirectionToCPToVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0x1b0 + int32_t m_nCP; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "scale factor" - float m_flScale; // 0x1b8 + float m_flScale; // 0x1c8 // MPropertyFriendlyName "offset rotation" - float m_flOffsetRot; // 0x1bc + float m_flOffsetRot; // 0x1cc // MPropertyFriendlyName "offset axis" // MVectorIsCoordinate - Vector m_vecOffsetAxis; // 0x1c0 + Vector m_vecOffsetAxis; // 0x1d0 // MPropertyFriendlyName "normalize" - bool m_bNormalize; // 0x1cc + bool m_bNormalize; // 0x1dc private: - [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd + [[maybe_unused]] uint8_t __pad01dd[0x3]; // 0x1dd public: // MPropertyFriendlyName "strength field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldStrength; // 0x1d0 + ParticleAttributeIndex_t m_nFieldStrength; // 0x1e0 }; // Alignment: 10 -// Size: 0x1380 +// Size: 0x13f0 class C_OP_ChladniWave : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "wave minimum" - CPerParticleFloatInput m_flInputMin; // 0x1b8 + CPerParticleFloatInput m_flInputMin; // 0x1c8 // MPropertyFriendlyName "wave maximum" - CPerParticleFloatInput m_flInputMax; // 0x308 + CPerParticleFloatInput m_flInputMax; // 0x320 // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x458 + CPerParticleFloatInput m_flOutputMin; // 0x478 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x5a8 + CPerParticleFloatInput m_flOutputMax; // 0x5d0 // MPropertyFriendlyName "wave length" - CPerParticleVecInput m_vecWaveLength; // 0x6f8 + CPerParticleVecInput m_vecWaveLength; // 0x728 // MPropertyFriendlyName "harmonics" - CPerParticleVecInput m_vecHarmonics; // 0xd30 + CPerParticleVecInput m_vecHarmonics; // 0xd80 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1368 + ParticleSetMethod_t m_nSetMethod; // 0x13d8 // MPropertyFriendlyName "local space control point" - int32_t m_nLocalSpaceControlPoint; // 0x136c + int32_t m_nLocalSpaceControlPoint; // 0x13dc // MPropertyFriendlyName "3D" - bool m_b3D; // 0x1370 + bool m_b3D; // 0x13e0 }; // Alignment: 6 -// Size: 0x320 +// Size: 0x330 class C_OP_SetChildControlPoints : public CParticleFunctionOperator { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1b0 + int32_t m_nChildGroupID; // 0x1c0 // MPropertyFriendlyName "first control point to set" - int32_t m_nFirstControlPoint; // 0x1b4 + int32_t m_nFirstControlPoint; // 0x1c4 // MPropertyFriendlyName "# of control points to set" - int32_t m_nNumControlPoints; // 0x1b8 + int32_t m_nNumControlPoints; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc public: // MPropertyFriendlyName "first particle to copy" - CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x1c0 + CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x1d0 // MPropertyFriendlyName "start as last particle" - bool m_bReverse; // 0x310 + bool m_bReverse; // 0x328 // MPropertyFriendlyName "set orientation" - bool m_bSetOrientation; // 0x311 + bool m_bSetOrientation; // 0x329 }; // Alignment: 2 @@ -15611,29 +16209,29 @@ public: }; // Alignment: 7 -// Size: 0x330 +// Size: 0x350 class C_OP_SetControlPointToWaterSurface : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "source CP" - int32_t m_nSourceCP; // 0x1c0 + int32_t m_nSourceCP; // 0x1d0 // MPropertyFriendlyName "CP to set to surface" - int32_t m_nDestCP; // 0x1c4 + int32_t m_nDestCP; // 0x1d4 // MPropertyFriendlyName "CP to set to surface current flow velocity" // MPropertySuppressExpr "mod != hlx" - int32_t m_nFlowCP; // 0x1c8 + int32_t m_nFlowCP; // 0x1d8 // MPropertyFriendlyName "CP to set component of if water" - int32_t m_nActiveCP; // 0x1cc + int32_t m_nActiveCP; // 0x1dc // MPropertyFriendlyName "CP component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nActiveCPField; // 0x1d0 + int32_t m_nActiveCPField; // 0x1e0 private: - [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 + [[maybe_unused]] uint8_t __pad01e4[0x4]; // 0x1e4 public: // MPropertyFriendlyName "retest rate" - CParticleCollectionFloatInput m_flRetestRate; // 0x1d8 + CParticleCollectionFloatInput m_flRetestRate; // 0x1e8 // MPropertyFriendlyName "adaptive retest on moving surface" - bool m_bAdaptiveThreshold; // 0x328 + bool m_bAdaptiveThreshold; // 0x340 }; // Alignment: 2 @@ -15648,7 +16246,7 @@ public: }; // Alignment: 22 -// Size: 0x13c0 +// Size: 0x1420 class C_OP_RenderCables : public CParticleFunctionRenderer { public: @@ -15658,71 +16256,71 @@ public: CParticleCollectionFloatInput m_flRadiusScale; // 0x200 // MPropertyFriendlyName "alpha scale" // MPropertySortPriority "700" - CParticleCollectionFloatInput m_flAlphaScale; // 0x350 + CParticleCollectionFloatInput m_flAlphaScale; // 0x358 // MPropertyFriendlyName "color blend" // MPropertySortPriority "700" - CParticleCollectionVecInput m_vecColorScale; // 0x4a0 + CParticleCollectionVecInput m_vecColorScale; // 0x4b0 // MPropertyFriendlyName "color blend type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0xad8 + ParticleColorBlendType_t m_nColorBlendType; // 0xb08 private: - [[maybe_unused]] uint8_t __pad0adc[0x4]; // 0xadc + [[maybe_unused]] uint8_t __pad0b0c[0x4]; // 0xb0c public: // MPropertyStartGroup - CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0xae0 + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0xb10 // MPropertyFriendlyName "texture repetition mode" - TextureRepetitionMode_t m_nTextureRepetitionMode; // 0xae8 + TextureRepetitionMode_t m_nTextureRepetitionMode; // 0xb18 private: - [[maybe_unused]] uint8_t __pad0aec[0x4]; // 0xaec + [[maybe_unused]] uint8_t __pad0b1c[0x4]; // 0xb1c public: // MPropertyFriendlyName "texture repetitions" - CParticleCollectionFloatInput m_flTextureRepeatsPerSegment; // 0xaf0 + CParticleCollectionFloatInput m_flTextureRepeatsPerSegment; // 0xb20 // MPropertyFriendlyName "texture repetitions around cable" - CParticleCollectionFloatInput m_flTextureRepeatsCircumference; // 0xc40 + CParticleCollectionFloatInput m_flTextureRepeatsCircumference; // 0xc78 // MPropertyFriendlyName "color map offset along path" - CParticleCollectionFloatInput m_flColorMapOffsetV; // 0xd90 + CParticleCollectionFloatInput m_flColorMapOffsetV; // 0xdd0 // MPropertyFriendlyName "color map offset around cable" - CParticleCollectionFloatInput m_flColorMapOffsetU; // 0xee0 + CParticleCollectionFloatInput m_flColorMapOffsetU; // 0xf28 // MPropertyFriendlyName "normal map offset along path" - CParticleCollectionFloatInput m_flNormalMapOffsetV; // 0x1030 + CParticleCollectionFloatInput m_flNormalMapOffsetV; // 0x1080 // MPropertyFriendlyName "normal map offset around cable" - CParticleCollectionFloatInput m_flNormalMapOffsetU; // 0x1180 + CParticleCollectionFloatInput m_flNormalMapOffsetU; // 0x11d8 // MPropertyFriendlyName "draw caps at each end of the cable" - bool m_bDrawCableCaps; // 0x12d0 + bool m_bDrawCableCaps; // 0x1330 private: - [[maybe_unused]] uint8_t __pad12d1[0x3]; // 0x12d1 + [[maybe_unused]] uint8_t __pad1331[0x3]; // 0x1331 public: // MPropertyFriendlyName "cable end cap shape factor" // MPropertyAttributeRange "0 2" - float m_flCapRoundness; // 0x12d4 + float m_flCapRoundness; // 0x1334 // MPropertyFriendlyName "cable end cap offset amount" // MPropertyAttributeRange "0 2" - float m_flCapOffsetAmount; // 0x12d8 + float m_flCapOffsetAmount; // 0x1338 // MPropertyFriendlyName "tessellation scale factor" - float m_flTessScale; // 0x12dc + float m_flTessScale; // 0x133c // MPropertyFriendlyName "minimum steps between particles" - int32_t m_nMinTesselation; // 0x12e0 + int32_t m_nMinTesselation; // 0x1340 // MPropertyFriendlyName "maximum steps between particles" - int32_t m_nMaxTesselation; // 0x12e4 + int32_t m_nMaxTesselation; // 0x1344 // MPropertyFriendlyName "roundness factor" - int32_t m_nRoundness; // 0x12e8 + int32_t m_nRoundness; // 0x1348 private: - [[maybe_unused]] uint8_t __pad12ec[0x4]; // 0x12ec + [[maybe_unused]] uint8_t __pad134c[0x4]; // 0x134c public: // MPropertyFriendlyName "diffuse lighting origin" // MParticleInputOptional - CParticleTransformInput m_LightingTransform; // 0x12f0 + CParticleTransformInput m_LightingTransform; // 0x1350 // MPropertyFriendlyName "material float variables" - CUtlVector< FloatInputMaterialVariable_t > m_MaterialFloatVars; // 0x1358 + CUtlVector< FloatInputMaterialVariable_t > m_MaterialFloatVars; // 0x13b8 private: - [[maybe_unused]] uint8_t __pad1370[0x18]; // 0x1370 + [[maybe_unused]] uint8_t __pad13d0[0x18]; // 0x13d0 public: // MPropertyFriendlyName "material vector variables" - CUtlVector< VecInputMaterialVariable_t > m_MaterialVecVars; // 0x1388 + CUtlVector< VecInputMaterialVariable_t > m_MaterialVecVars; // 0x13e8 }; -// Alignment: 9 -// Size: 0x330 +// Alignment: 10 +// Size: 0x490 class C_INIT_InitFromCPSnapshot : public CParticleFunctionInitializer { public: @@ -15745,14 +16343,16 @@ private: public: // MPropertyFriendlyName "Snapshot increment amount" CParticleCollectionFloatInput m_nSnapShotIncrement; // 0x1d8 + // MPropertyFriendlyName "Manual Snapshot Index" + CPerParticleFloatInput m_nManualSnapshotIndex; // 0x330 // MPropertyFriendlyName "random seed" - int32_t m_nRandomSeed; // 0x328 + int32_t m_nRandomSeed; // 0x488 // MPropertyFriendlyName "local space angles" - bool m_bLocalSpaceAngles; // 0x32c + bool m_bLocalSpaceAngles; // 0x48c }; // Alignment: 0 -// Size: 0x638 +// Size: 0x658 class CParticleCollectionRendererVecInput : public CParticleCollectionVecInput { public: @@ -15760,7 +16360,7 @@ public: }; // Alignment: 0 -// Size: 0x210 +// Size: 0x220 class C_OP_RemapNamedModelSequenceEndCap : public C_OP_RemapNamedModelElementEndCap { public: @@ -15768,7 +16368,7 @@ public: }; // Alignment: 3 -// Size: 0x320 +// Size: 0x330 class C_INIT_PlaneCull : public CParticleFunctionInitializer { public: @@ -15780,119 +16380,119 @@ public: // MPropertyFriendlyName "cull offset" CParticleCollectionFloatInput m_flDistance; // 0x1c8 // MPropertyFriendlyName "flip cull normal" - bool m_bCullInside; // 0x318 + bool m_bCullInside; // 0x320 }; // Alignment: 10 -// Size: 0x2a0 +// Size: 0x2b0 class C_OP_PercentageBetweenTransforms : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "percentage minimum" - float m_flInputMin; // 0x1b4 + float m_flInputMin; // 0x1c4 // MPropertyFriendlyName "percentage maximum" - float m_flInputMax; // 0x1b8 + float m_flInputMax; // 0x1c8 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1bc + float m_flOutputMin; // 0x1cc // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c0 + float m_flOutputMax; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "strarting transform" - CParticleTransformInput m_TransformStart; // 0x1c8 + CParticleTransformInput m_TransformStart; // 0x1d8 // MPropertyFriendlyName "end transform" - CParticleTransformInput m_TransformEnd; // 0x230 + CParticleTransformInput m_TransformEnd; // 0x240 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x298 + ParticleSetMethod_t m_nSetMethod; // 0x2a8 // MPropertyFriendlyName "only active within input range" - bool m_bActiveRange; // 0x29c + bool m_bActiveRange; // 0x2ac // MPropertyFriendlyName "treat distance between points as radius" - bool m_bRadialCheck; // 0x29d + bool m_bRadialCheck; // 0x2ad }; // Alignment: 6 -// Size: 0xf90 +// Size: 0xff0 class C_OP_SetControlPointFieldFromVectorExpression : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "expression" - VectorFloatExpressionType_t m_nExpression; // 0x1c0 + VectorFloatExpressionType_t m_nExpression; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "input 1" - CParticleCollectionVecInput m_vecInput1; // 0x1c8 + CParticleCollectionVecInput m_vecInput1; // 0x1d8 // MPropertyFriendlyName "input 2" - CParticleCollectionVecInput m_vecInput2; // 0x800 + CParticleCollectionVecInput m_vecInput2; // 0x830 // MPropertyFriendlyName "output" - CParticleRemapFloatInput m_flOutputRemap; // 0xe38 + CParticleRemapFloatInput m_flOutputRemap; // 0xe88 // MPropertyFriendlyName "output control point" - int32_t m_nOutputCP; // 0xf88 + int32_t m_nOutputCP; // 0xfe0 // MPropertyFriendlyName "output component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutVectorField; // 0xf8c + int32_t m_nOutVectorField; // 0xfe4 }; // Alignment: 9 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_DifferencePreviousParticle : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "difference minimum" - float m_flInputMin; // 0x1b8 + float m_flInputMin; // 0x1c8 // MPropertyFriendlyName "difference maximum" - float m_flInputMax; // 0x1bc + float m_flInputMax; // 0x1cc // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c0 + float m_flOutputMin; // 0x1d0 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c4 + float m_flOutputMax; // 0x1d4 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1c8 + ParticleSetMethod_t m_nSetMethod; // 0x1d8 // MPropertyFriendlyName "only active within specified difference" - bool m_bActiveRange; // 0x1cc + bool m_bActiveRange; // 0x1dc // MPropertyFriendlyName "also set ouput to previous particle" - bool m_bSetPreviousParticle; // 0x1cd + bool m_bSetPreviousParticle; // 0x1dd }; // Alignment: 3 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_SetControlPointToHMD : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c0 + int32_t m_nCP1; // 0x1d0 // MPropertyFriendlyName "control point offset" // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1c4 + Vector m_vecCP1Pos; // 0x1d4 // MPropertyFriendlyName "use hmd orientation" - bool m_bOrientToHMD; // 0x1d0 + bool m_bOrientToHMD; // 0x1e0 }; // Alignment: 3 -// Size: 0x460 +// Size: 0x480 class C_OP_ClampScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x1b8 + CPerParticleFloatInput m_flOutputMin; // 0x1c8 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x308 + CPerParticleFloatInput m_flOutputMax; // 0x320 }; // Alignment: 13 @@ -15937,48 +16537,48 @@ public: }; // Alignment: 4 -// Size: 0x310 +// Size: 0x330 class C_OP_LerpScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "value to lerp to" - CPerParticleFloatInput m_flOutput; // 0x1b8 + CPerParticleFloatInput m_flOutput; // 0x1c8 // MPropertyFriendlyName "start time" - float m_flStartTime; // 0x308 + float m_flStartTime; // 0x320 // MPropertyFriendlyName "end time" - float m_flEndTime; // 0x30c + float m_flEndTime; // 0x324 }; // Alignment: 6 -// Size: 0x460 +// Size: 0x480 class C_OP_MovementMoveAlongSkinnedCPSnapshot : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "snapshot control point number" - int32_t m_nSnapshotControlPointNumber; // 0x1b4 + int32_t m_nSnapshotControlPointNumber; // 0x1c4 // MPropertyFriendlyName "set normal" - bool m_bSetNormal; // 0x1b8 + bool m_bSetNormal; // 0x1c8 // MPropertyFriendlyName "set radius" - bool m_bSetRadius; // 0x1b9 + bool m_bSetRadius; // 0x1c9 private: - [[maybe_unused]] uint8_t __pad01ba[0x6]; // 0x1ba + [[maybe_unused]] uint8_t __pad01ca[0x6]; // 0x1ca public: // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x1c0 + CPerParticleFloatInput m_flInterpolation; // 0x1d0 // MPropertyFriendlyName "Snapshot Index T Value" - CPerParticleFloatInput m_flTValue; // 0x310 + CPerParticleFloatInput m_flTValue; // 0x328 }; // Alignment: 9 -// Size: 0x9f0 +// Size: 0xa10 class C_INIT_SetHitboxToModel : public CParticleFunctionInitializer { public: @@ -15995,22 +16595,22 @@ public: CParticleCollectionVecInput m_vecHitBoxScale; // 0x1d0 // MPropertyFriendlyName "direction bias" // MVectorIsCoordinate - Vector m_vecDirectionBias; // 0x808 + Vector m_vecDirectionBias; // 0x828 // MPropertyFriendlyName "maintain existing hitbox" - bool m_bMaintainHitbox; // 0x814 + bool m_bMaintainHitbox; // 0x834 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x815 + bool m_bUseBones; // 0x835 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x816 + char m_HitboxSetName[128]; // 0x836 private: - [[maybe_unused]] uint8_t __pad0896[0x2]; // 0x896 + [[maybe_unused]] uint8_t __pad08b6[0x2]; // 0x8b6 public: // MPropertyFriendlyName "hitbox shell thickness" - CParticleCollectionFloatInput m_flShellSize; // 0x898 + CParticleCollectionFloatInput m_flShellSize; // 0x8b8 }; // Alignment: 5 -// Size: 0x810 +// Size: 0x830 class C_INIT_InitVec : public CParticleFunctionInitializer { public: @@ -16018,141 +16618,141 @@ public: CPerParticleVecInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOutputField; // 0x7f8 + ParticleAttributeIndex_t m_nOutputField; // 0x818 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x7fc + ParticleSetMethod_t m_nSetMethod; // 0x81c // MPropertyFriendlyName "normalize result" - bool m_bNormalizedOutput; // 0x800 + bool m_bNormalizedOutput; // 0x820 // MPropertyFriendlyName "set previous position" // MPropertySuppressExpr "m_nOutputField != PARTICLE_ATTRIBUTE_XYZ" - bool m_bWritePreviousPosition; // 0x801 + bool m_bWritePreviousPosition; // 0x821 }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_RemapDensityGradientToVectorAttribute : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Radius scale for particle influence" - float m_flRadiusScale; // 0x1b0 + float m_flRadiusScale; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_AlphaDecay : public CParticleFunctionOperator { public: // MPropertyFriendlyName "minimum alpha" - float m_flMinAlpha; // 0x1b0 + float m_flMinAlpha; // 0x1c0 }; // Alignment: 8 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SequenceFromModel : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "current anim time output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x1b8 + ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x1c8 // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1bc + float m_flInputMin; // 0x1cc // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1c0 + float m_flInputMax; // 0x1d0 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c4 + float m_flOutputMin; // 0x1d4 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c8 + float m_flOutputMax; // 0x1d8 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1cc + ParticleSetMethod_t m_nSetMethod; // 0x1dc }; // Alignment: 3 -// Size: 0x5a0 +// Size: 0x5d0 class C_OP_ColorAdjustHSL : public CParticleFunctionOperator { public: // MPropertyFriendlyName "hue adjust" - CPerParticleFloatInput m_flHueAdjust; // 0x1b0 + CPerParticleFloatInput m_flHueAdjust; // 0x1c0 // MPropertyFriendlyName "saturation adjust" - CPerParticleFloatInput m_flSaturationAdjust; // 0x300 + CPerParticleFloatInput m_flSaturationAdjust; // 0x318 // MPropertyFriendlyName "lightness adjust" - CPerParticleFloatInput m_flLightnessAdjust; // 0x450 + CPerParticleFloatInput m_flLightnessAdjust; // 0x470 }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_FadeAndKillForTracers : public CParticleFunctionOperator { public: // MPropertyFriendlyName "start fade in time" - float m_flStartFadeInTime; // 0x1b0 + float m_flStartFadeInTime; // 0x1c0 // MPropertyFriendlyName "end fade in time" - float m_flEndFadeInTime; // 0x1b4 + float m_flEndFadeInTime; // 0x1c4 // MPropertyFriendlyName "start fade out time" - float m_flStartFadeOutTime; // 0x1b8 + float m_flStartFadeOutTime; // 0x1c8 // MPropertyFriendlyName "end fade out time" - float m_flEndFadeOutTime; // 0x1bc + float m_flEndFadeOutTime; // 0x1cc // MPropertyFriendlyName "start alpha" - float m_flStartAlpha; // 0x1c0 + float m_flStartAlpha; // 0x1d0 // MPropertyFriendlyName "end alpha" - float m_flEndAlpha; // 0x1c4 + float m_flEndAlpha; // 0x1d4 }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_Noise : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1b4 + float m_flOutputMin; // 0x1c4 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1b8 + float m_flOutputMax; // 0x1c8 // MPropertyFriendlyName "noise coordinate scale" - float m_fl4NoiseScale; // 0x1bc + float m_fl4NoiseScale; // 0x1cc // MPropertyFriendlyName "additive" - bool m_bAdditive; // 0x1c0 + bool m_bAdditive; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 public: // MPropertyFriendlyName "Noise animation time scale" - float m_flNoiseAnimationTimeScale; // 0x1c4 + float m_flNoiseAnimationTimeScale; // 0x1d4 }; // Alignment: 2 -// Size: 0x450 +// Size: 0x470 class C_OP_CollideWithSelf : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "particle radius scale" - CPerParticleFloatInput m_flRadiusScale; // 0x1b0 + CPerParticleFloatInput m_flRadiusScale; // 0x1c0 // MPropertyFriendlyName "minimum speed for check" - CPerParticleFloatInput m_flMinimumSpeed; // 0x300 + CPerParticleFloatInput m_flMinimumSpeed; // 0x318 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_LagCompensation : public CParticleFunctionOperator { public: // MPropertyFriendlyName "desired velocity CP" - int32_t m_nDesiredVelocityCP; // 0x1b0 + int32_t m_nDesiredVelocityCP; // 0x1c0 // MPropertyFriendlyName "latency CP" - int32_t m_nLatencyCP; // 0x1b4 + int32_t m_nLatencyCP; // 0x1c4 // MPropertyFriendlyName "latency CP field" - int32_t m_nLatencyCPField; // 0x1b8 + int32_t m_nLatencyCPField; // 0x1c8 // MPropertyFriendlyName "desired velocity CP field override(for speed only)" - int32_t m_nDesiredVelocityCPField; // 0x1bc + int32_t m_nDesiredVelocityCPField; // 0x1cc }; // Alignment: 17 @@ -16211,45 +16811,45 @@ public: }; // Alignment: 7 -// Size: 0x330 +// Size: 0x340 class C_OP_RotateVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "rotation axis min" // MVectorIsCoordinate - Vector m_vecRotAxisMin; // 0x1b4 + Vector m_vecRotAxisMin; // 0x1c4 // MPropertyFriendlyName "rotation axis max" // MVectorIsCoordinate - Vector m_vecRotAxisMax; // 0x1c0 + Vector m_vecRotAxisMax; // 0x1d0 // MPropertyFriendlyName "rotation rate min" - float m_flRotRateMin; // 0x1cc + float m_flRotRateMin; // 0x1dc // MPropertyFriendlyName "rotation rate max" - float m_flRotRateMax; // 0x1d0 + float m_flRotRateMax; // 0x1e0 // MPropertyFriendlyName "normalize output" - bool m_bNormalize; // 0x1d4 + bool m_bNormalize; // 0x1e4 private: - [[maybe_unused]] uint8_t __pad01d5[0x3]; // 0x1d5 + [[maybe_unused]] uint8_t __pad01e5[0x3]; // 0x1e5 public: // MPropertyFriendlyName "per particle scale" - CPerParticleFloatInput m_flScale; // 0x1d8 + CPerParticleFloatInput m_flScale; // 0x1e8 }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_ConnectParentParticleToNearest : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point to set" - int32_t m_nFirstControlPoint; // 0x1b0 + int32_t m_nFirstControlPoint; // 0x1c0 // MPropertyFriendlyName "Second Control point to set" - int32_t m_nSecondControlPoint; // 0x1b4 + int32_t m_nSecondControlPoint; // 0x1c4 }; // Alignment: 14 -// Size: 0x11a0 +// Size: 0x11f0 class C_OP_RenderOmni2Light : public CParticleFunctionRenderer { public: @@ -16262,34 +16862,34 @@ public: CParticleCollectionVecInput m_vColorBlend; // 0x208 // MPropertyFriendlyName "Color Blend Type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0x840 - ParticleLightUnitChoiceList_t m_nBrightnessUnit; // 0x844 + ParticleColorBlendType_t m_nColorBlendType; // 0x860 + ParticleLightUnitChoiceList_t m_nBrightnessUnit; // 0x864 // MPropertyFriendlyName "Lumens" // MPropertySuppressExpr "m_nBrightnessUnit != PARTICLE_LIGHT_UNIT_LUMENS" - CPerParticleFloatInput m_flBrightnessLumens; // 0x848 + CPerParticleFloatInput m_flBrightnessLumens; // 0x868 // MPropertyFriendlyName "Candelas" // MPropertySuppressExpr "m_nBrightnessUnit != PARTICLE_LIGHT_UNIT_CANDELAS" - CPerParticleFloatInput m_flBrightnessCandelas; // 0x998 + CPerParticleFloatInput m_flBrightnessCandelas; // 0x9c0 // MPropertyFriendlyName "Shadows" // MPropertySuppressExpr "mod == csgo" - bool m_bCastShadows; // 0xae8 + bool m_bCastShadows; // 0xb18 private: - [[maybe_unused]] uint8_t __pad0ae9[0x7]; // 0xae9 + [[maybe_unused]] uint8_t __pad0b19[0x7]; // 0xb19 public: // MPropertyFriendlyName "Light Radius" - CPerParticleFloatInput m_flLuminaireRadius; // 0xaf0 + CPerParticleFloatInput m_flLuminaireRadius; // 0xb20 // MPropertyFriendlyName "Skirt" - CPerParticleFloatInput m_flSkirt; // 0xc40 + CPerParticleFloatInput m_flSkirt; // 0xc78 // MPropertyFriendlyName "Range" - CPerParticleFloatInput m_flRange; // 0xd90 + CPerParticleFloatInput m_flRange; // 0xdd0 // MPropertyFriendlyName "Inner Cone Angle" - CPerParticleFloatInput m_flInnerConeAngle; // 0xee0 + CPerParticleFloatInput m_flInnerConeAngle; // 0xf28 // MPropertyFriendlyName "Outer Cone Angle" - CPerParticleFloatInput m_flOuterConeAngle; // 0x1030 + CPerParticleFloatInput m_flOuterConeAngle; // 0x1080 // MPropertyFriendlyName "Cookie" - CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightCookie; // 0x1180 + CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightCookie; // 0x11d8 // MPropertyFriendlyName "Cookie is Spherically Mapped" - bool m_bSphericalCookie; // 0x1188 + bool m_bSphericalCookie; // 0x11e0 }; // Alignment: 1 @@ -16312,8 +16912,10 @@ public: // Size: 0x8 class IParticleEffect { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 5 @@ -16337,39 +16939,39 @@ public: }; // Alignment: 5 -// Size: 0x950 +// Size: 0x980 class C_OP_SetVec : public CParticleFunctionOperator { public: // MPropertyFriendlyName "value" - CPerParticleVecInput m_InputValue; // 0x1b0 + CPerParticleVecInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOutputField; // 0x7e8 + ParticleAttributeIndex_t m_nOutputField; // 0x818 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x7ec + ParticleSetMethod_t m_nSetMethod; // 0x81c // MPropertyFriendlyName "interpolation" - CPerParticleFloatInput m_Lerp; // 0x7f0 + CPerParticleFloatInput m_Lerp; // 0x820 // MPropertyFriendlyName "normalize result" - bool m_bNormalizedOutput; // 0x940 + bool m_bNormalizedOutput; // 0x978 }; // Alignment: 3 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_MovementMaintainOffset : public CParticleFunctionOperator { public: // MPropertyFriendlyName "desired offset" // MVectorIsCoordinate - Vector m_vecOffset; // 0x1b0 + Vector m_vecOffset; // 0x1c0 // MPropertyFriendlyName "local space CP" - int32_t m_nCP; // 0x1bc + int32_t m_nCP; // 0x1cc // MPropertyFriendlyName "scale by radius" - bool m_bRadiusScale; // 0x1c0 + bool m_bRadiusScale; // 0x1d0 }; // Alignment: 0 -// Size: 0x210 +// Size: 0x220 class C_OP_RemapNamedModelBodyPartOnceTimed : public C_OP_RemapNamedModelElementOnceTimed { public: @@ -16377,84 +16979,84 @@ public: }; // Alignment: 15 -// Size: 0xab0 +// Size: 0xae0 class C_OP_LockToBone : public CParticleFunctionOperator { public: // MPropertyFriendlyName "model input" - CParticleModelInput m_modelInput; // 0x1b0 + CParticleModelInput m_modelInput; // 0x1c0 // MPropertyFriendlyName "transform input" - CParticleTransformInput m_transformInput; // 0x210 + CParticleTransformInput m_transformInput; // 0x220 // MPropertyFriendlyName "lifetime fade start" - float m_flLifeTimeFadeStart; // 0x278 + float m_flLifeTimeFadeStart; // 0x288 // MPropertyFriendlyName "lifetime fade end" - float m_flLifeTimeFadeEnd; // 0x27c + float m_flLifeTimeFadeEnd; // 0x28c // MPropertyFriendlyName "instant jump threshold" - float m_flJumpThreshold; // 0x280 + float m_flJumpThreshold; // 0x290 // MPropertyFriendlyName "previous position scale" - float m_flPrevPosScale; // 0x284 + float m_flPrevPosScale; // 0x294 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x288 + char m_HitboxSetName[128]; // 0x298 // MPropertyFriendlyName "rigid lock" - bool m_bRigid; // 0x308 + bool m_bRigid; // 0x318 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x309 + bool m_bUseBones; // 0x319 private: - [[maybe_unused]] uint8_t __pad030a[0x2]; // 0x30a + [[maybe_unused]] uint8_t __pad031a[0x2]; // 0x31a public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x30c + ParticleAttributeIndex_t m_nFieldOutput; // 0x31c // MPropertyFriendlyName "output field prev" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutputPrev; // 0x310 + ParticleAttributeIndex_t m_nFieldOutputPrev; // 0x320 // MPropertyStartGroup "Set Rotations to Bones" // MPropertyFriendlyName "lock rotations to bone orientation" - ParticleRotationLockType_t m_nRotationSetType; // 0x314 + ParticleRotationLockType_t m_nRotationSetType; // 0x324 // MPropertyFriendlyName "rigid set rotation from bones" - bool m_bRigidRotationLock; // 0x318 + bool m_bRigidRotationLock; // 0x328 private: - [[maybe_unused]] uint8_t __pad0319[0x7]; // 0x319 + [[maybe_unused]] uint8_t __pad0329[0x7]; // 0x329 public: // MPropertyFriendlyName "rigid rotation offset pitch/yaw/roll" - CPerParticleVecInput m_vecRotation; // 0x320 + CPerParticleVecInput m_vecRotation; // 0x330 // MPropertyFriendlyName "rigid rotation interpolation" - CPerParticleFloatInput m_flRotLerp; // 0x958 + CPerParticleFloatInput m_flRotLerp; // 0x988 }; // Alignment: 12 -// Size: 0x2b0 +// Size: 0x2c0 class C_OP_PercentageBetweenTransformLerpCPs : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "percentage minimum" - float m_flInputMin; // 0x1b4 + float m_flInputMin; // 0x1c4 // MPropertyFriendlyName "percentage maximum" - float m_flInputMax; // 0x1b8 + float m_flInputMax; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc public: // MPropertyFriendlyName "strarting transform" - CParticleTransformInput m_TransformStart; // 0x1c0 + CParticleTransformInput m_TransformStart; // 0x1d0 // MPropertyFriendlyName "end transform" - CParticleTransformInput m_TransformEnd; // 0x228 + CParticleTransformInput m_TransformEnd; // 0x238 // MPropertyFriendlyName "output starting control point number" - int32_t m_nOutputStartCP; // 0x290 + int32_t m_nOutputStartCP; // 0x2a0 // MPropertyFriendlyName "output starting control point field 0-2 X/Y/Z" - int32_t m_nOutputStartField; // 0x294 + int32_t m_nOutputStartField; // 0x2a4 // MPropertyFriendlyName "output ending control point number" - int32_t m_nOutputEndCP; // 0x298 + int32_t m_nOutputEndCP; // 0x2a8 // MPropertyFriendlyName "output ending control point field 0-2 X/Y/Z" - int32_t m_nOutputEndField; // 0x29c + int32_t m_nOutputEndField; // 0x2ac // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x2a0 + ParticleSetMethod_t m_nSetMethod; // 0x2b0 // MPropertyFriendlyName "only active within input range" - bool m_bActiveRange; // 0x2a4 + bool m_bActiveRange; // 0x2b4 // MPropertyFriendlyName "treat distance between points as radius" - bool m_bRadialCheck; // 0x2a5 + bool m_bRadialCheck; // 0x2b5 }; // Alignment: 3 @@ -16471,45 +17073,45 @@ public: }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_DampenToCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "falloff range" - float m_flRange; // 0x1b4 + float m_flRange; // 0x1c4 // MPropertyFriendlyName "dampen scale" - float m_flScale; // 0x1b8 + float m_flScale; // 0x1c8 }; // Alignment: 9 -// Size: 0x1370 +// Size: 0x13e0 class C_OP_DistanceBetweenVecs : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "first vector" - CPerParticleVecInput m_vecPoint1; // 0x1b8 + CPerParticleVecInput m_vecPoint1; // 0x1c8 // MPropertyFriendlyName "second vector" - CPerParticleVecInput m_vecPoint2; // 0x7f0 + CPerParticleVecInput m_vecPoint2; // 0x820 // MPropertyFriendlyName "distance minimum" - CPerParticleFloatInput m_flInputMin; // 0xe28 + CPerParticleFloatInput m_flInputMin; // 0xe78 // MPropertyFriendlyName "distance maximum" - CPerParticleFloatInput m_flInputMax; // 0xf78 + CPerParticleFloatInput m_flInputMax; // 0xfd0 // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x10c8 + CPerParticleFloatInput m_flOutputMin; // 0x1128 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x1218 + CPerParticleFloatInput m_flOutputMax; // 0x1280 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1368 + ParticleSetMethod_t m_nSetMethod; // 0x13d8 // MPropertyFriendlyName "divide by deltatime (for comparing motion since last simulation)" - bool m_bDeltaTime; // 0x136c + bool m_bDeltaTime; // 0x13dc }; // Alignment: 6 @@ -16533,19 +17135,19 @@ public: }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_RemapVectorComponentToScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Input Vector" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 // MPropertyFriendlyName "Output Scalar" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "Vector Component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nComponent; // 0x1b8 + int32_t m_nComponent; // 0x1c8 }; // Alignment: 8 @@ -16575,22 +17177,36 @@ public: Vector m_vecOffsetLoc; // 0x1d8 }; +// Alignment: 3 +// Size: 0x1d0 +class C_OP_Diffusion : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Radius scale for particle influence" + float m_flRadiusScale; // 0x1c0 + // MPropertyFriendlyName "Output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "Resolution to use for creating a voxel grid" + int32_t m_nVoxelGridResolution; // 0x1c8 +}; + // Alignment: 4 -// Size: 0x320 +// Size: 0x340 class C_OP_SetControlPointPositionToRandomActiveCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c0 + int32_t m_nCP1; // 0x1d0 // MPropertyFriendlyName "min active CP" - int32_t m_nHeadLocationMin; // 0x1c4 + int32_t m_nHeadLocationMin; // 0x1d4 // MPropertyFriendlyName "max active CP" - int32_t m_nHeadLocationMax; // 0x1c8 + int32_t m_nHeadLocationMax; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc public: // MPropertyFriendlyName "reset rate" - CParticleCollectionFloatInput m_flResetRate; // 0x1d0 + CParticleCollectionFloatInput m_flResetRate; // 0x1e0 }; // Alignment: 1 @@ -16603,19 +17219,19 @@ public: }; // Alignment: 4 -// Size: 0x480 +// Size: 0x4a0 class C_OP_SetFloatCollection : public CParticleFunctionOperator { public: // MPropertyFriendlyName "value" - CParticleCollectionFloatInput m_InputValue; // 0x1b0 + CParticleCollectionFloatInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x300 + ParticleAttributeIndex_t m_nOutputField; // 0x318 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x304 + ParticleSetMethod_t m_nSetMethod; // 0x31c // MPropertyFriendlyName "interpolation" - CParticleCollectionFloatInput m_Lerp; // 0x308 + CParticleCollectionFloatInput m_Lerp; // 0x320 }; // Alignment: 2 @@ -16632,24 +17248,24 @@ public: }; // Alignment: 5 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_InheritFromParentParticlesV2 : public CParticleFunctionOperator { public: // MPropertyFriendlyName "scale" - float m_flScale; // 0x1b0 + float m_flScale; // 0x1c0 // MPropertyFriendlyName "inherited field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "particle increment amount" - int32_t m_nIncrement; // 0x1b8 + int32_t m_nIncrement; // 0x1c8 // MPropertyFriendlyName "random parent particle distribution" - bool m_bRandomDistribution; // 0x1bc + bool m_bRandomDistribution; // 0x1cc private: - [[maybe_unused]] uint8_t __pad01bd[0x3]; // 0x1bd + [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd public: // MPropertyFriendlyName "behavior if parent particle dies" - MissingParentInheritBehavior_t m_nMissingParentBehavior; // 0x1c0 + MissingParentInheritBehavior_t m_nMissingParentBehavior; // 0x1d0 }; // Alignment: 0 @@ -16661,162 +17277,162 @@ public: }; // Alignment: 4 -// Size: 0x230 +// Size: 0x240 class C_OP_RemapTransformOrientationToRotations : public CParticleFunctionOperator { public: // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b0 + CParticleTransformInput m_TransformInput; // 0x1c0 // MPropertyFriendlyName "offset pitch/yaw/roll" - Vector m_vecRotation; // 0x218 + Vector m_vecRotation; // 0x228 // MPropertyFriendlyName "Use Quaternians Internally" - bool m_bUseQuat; // 0x224 + bool m_bUseQuat; // 0x234 // MPropertyFriendlyName "Write normal instead of rotation" - bool m_bWriteNormal; // 0x225 + bool m_bWriteNormal; // 0x235 }; // Alignment: 4 -// Size: 0xe30 +// Size: 0xe80 class C_OP_RemapCrossProductOfTwoVectorsToVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input vector 1" - CPerParticleVecInput m_InputVec1; // 0x1b0 + CPerParticleVecInput m_InputVec1; // 0x1c0 // MPropertyFriendlyName "input vector 2" - CPerParticleVecInput m_InputVec2; // 0x7e8 + CPerParticleVecInput m_InputVec2; // 0x818 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0xe20 + ParticleAttributeIndex_t m_nFieldOutput; // 0xe70 // MPropertyFriendlyName "normalize output" - bool m_bNormalize; // 0xe24 + bool m_bNormalize; // 0xe74 }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_SetCPOrientationToDirection : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input control point" - int32_t m_nInputControlPoint; // 0x1b0 + int32_t m_nInputControlPoint; // 0x1c0 // MPropertyFriendlyName "output control point" - int32_t m_nOutputControlPoint; // 0x1b4 + int32_t m_nOutputControlPoint; // 0x1c4 }; // Alignment: 17 -// Size: 0x3c0 +// Size: 0x3e0 class C_OP_MovementPlaceOnGround : public CParticleFunctionOperator { public: // MPropertyFriendlyName "offset" - CPerParticleFloatInput m_flOffset; // 0x1b0 + CPerParticleFloatInput m_flOffset; // 0x1c0 // MPropertyFriendlyName "max trace length" - float m_flMaxTraceLength; // 0x300 + float m_flMaxTraceLength; // 0x318 // MPropertyFriendlyName "CP movement tolerance" - float m_flTolerance; // 0x304 + float m_flTolerance; // 0x31c // MPropertyFriendlyName "trace offset" - float m_flTraceOffset; // 0x308 + float m_flTraceOffset; // 0x320 // MPropertyFriendlyName "interpolation rate" - float m_flLerpRate; // 0x30c + float m_flLerpRate; // 0x324 // MPropertyFriendlyName "collision group" - char m_CollisionGroupName[128]; // 0x310 + char m_CollisionGroupName[128]; // 0x328 // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x390 + ParticleTraceSet_t m_nTraceSet; // 0x3a8 // MPropertyFriendlyName "reference CP 1" - int32_t m_nRefCP1; // 0x394 + int32_t m_nRefCP1; // 0x3ac // MPropertyFriendlyName "reference CP 2" - int32_t m_nRefCP2; // 0x398 + int32_t m_nRefCP2; // 0x3b0 // MPropertyFriendlyName "interploation distance tolerance cp" - int32_t m_nLerpCP; // 0x39c + int32_t m_nLerpCP; // 0x3b4 private: - [[maybe_unused]] uint8_t __pad03a0[0x8]; // 0x3a0 + [[maybe_unused]] uint8_t __pad03b8[0x8]; // 0x3b8 public: // MPropertyFriendlyName "No Collision Behavior" - ParticleTraceMissBehavior_t m_nTraceMissBehavior; // 0x3a8 + ParticleTraceMissBehavior_t m_nTraceMissBehavior; // 0x3c0 // MPropertyFriendlyName "include default contents trace hulls" - bool m_bIncludeShotHull; // 0x3ac + bool m_bIncludeShotHull; // 0x3c4 // MPropertyFriendlyName "include water" - bool m_bIncludeWater; // 0x3ad + bool m_bIncludeWater; // 0x3c5 private: - [[maybe_unused]] uint8_t __pad03ae[0x2]; // 0x3ae + [[maybe_unused]] uint8_t __pad03c6[0x2]; // 0x3c6 public: // MPropertyFriendlyName "set normal" - bool m_bSetNormal; // 0x3b0 + bool m_bSetNormal; // 0x3c8 // MPropertyFriendlyName "treat offset as scalar of particle radius" - bool m_bScaleOffset; // 0x3b1 + bool m_bScaleOffset; // 0x3c9 private: - [[maybe_unused]] uint8_t __pad03b2[0x2]; // 0x3b2 + [[maybe_unused]] uint8_t __pad03ca[0x2]; // 0x3ca public: // MPropertyFriendlyName "preserve initial Z-offset relative to cp" - int32_t m_nPreserveOffsetCP; // 0x3b4 + int32_t m_nPreserveOffsetCP; // 0x3cc // MPropertyFriendlyName "CP Entity to Ignore for Collisions" - int32_t m_nIgnoreCP; // 0x3b8 + int32_t m_nIgnoreCP; // 0x3d0 }; // Alignment: 5 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_LockToPointList : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "point list" - CUtlVector< PointDefinition_t > m_pointList; // 0x1b8 + CUtlVector< PointDefinition_t > m_pointList; // 0x1c8 // MPropertyFriendlyName "space points along path" - bool m_bPlaceAlongPath; // 0x1d0 + bool m_bPlaceAlongPath; // 0x1e0 // MPropertyFriendlyName "Treat path as a loop" - bool m_bClosedLoop; // 0x1d1 + bool m_bClosedLoop; // 0x1e1 private: - [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 + [[maybe_unused]] uint8_t __pad01e2[0x2]; // 0x1e2 public: // MPropertyFriendlyName "Numer of points along path" - int32_t m_nNumPointsAlongPath; // 0x1d4 + int32_t m_nNumPointsAlongPath; // 0x1e4 }; // Alignment: 6 -// Size: 0x320 +// Size: 0x340 class C_OP_SetCPOrientationToPointAtCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "CP to point towards" - int32_t m_nInputCP; // 0x1c0 + int32_t m_nInputCP; // 0x1d0 // MPropertyFriendlyName "CP to set" - int32_t m_nOutputCP; // 0x1c4 + int32_t m_nOutputCP; // 0x1d4 // MPropertyFriendlyName "Interpolation" - CParticleCollectionFloatInput m_flInterpolation; // 0x1c8 + CParticleCollectionFloatInput m_flInterpolation; // 0x1d8 // MPropertyFriendlyName "2D Orient" - bool m_b2DOrientation; // 0x318 + bool m_b2DOrientation; // 0x330 // MPropertyFriendlyName "Avoid Vertical Axis Singularity" - bool m_bAvoidSingularity; // 0x319 + bool m_bAvoidSingularity; // 0x331 // MPropertyFriendlyName "Point Away" - bool m_bPointAway; // 0x31a + bool m_bPointAway; // 0x332 }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_VelocityDecay : public CParticleFunctionOperator { public: // MPropertyFriendlyName "minimum velocity" - float m_flMinVelocity; // 0x1b0 + float m_flMinVelocity; // 0x1c0 }; // Alignment: 3 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_LerpEndCapVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "value to lerp to" // MVectorIsSometimesCoordinate - Vector m_vecOutput; // 0x1b4 + Vector m_vecOutput; // 0x1c4 // MPropertyFriendlyName "lerp time" - float m_flLerpTime; // 0x1c0 + float m_flLerpTime; // 0x1d0 }; // Alignment: 0 @@ -16828,27 +17444,27 @@ public: }; // Alignment: 5 -// Size: 0xaa0 +// Size: 0xae0 class C_OP_LerpToInitialPosition : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x1b8 + CPerParticleFloatInput m_flInterpolation; // 0x1c8 // MPropertyFriendlyName "position cache attribute" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nCacheField; // 0x308 + ParticleAttributeIndex_t m_nCacheField; // 0x320 private: - [[maybe_unused]] uint8_t __pad030c[0x4]; // 0x30c + [[maybe_unused]] uint8_t __pad0324[0x4]; // 0x324 public: // MPropertyFriendlyName "scale" - CParticleCollectionFloatInput m_flScale; // 0x310 + CParticleCollectionFloatInput m_flScale; // 0x328 // MPropertyFriendlyName "component scale" - CParticleCollectionVecInput m_vecScale; // 0x460 + CParticleCollectionVecInput m_vecScale; // 0x480 }; // Alignment: 2 @@ -16866,25 +17482,25 @@ public: }; // Alignment: 5 -// Size: 0x460 +// Size: 0x480 class C_OP_ReadFromNeighboringParticle : public CParticleFunctionOperator { public: // MPropertyFriendlyName "read field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 // MPropertyFriendlyName "written field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "particle increment amount" - int32_t m_nIncrement; // 0x1b8 + int32_t m_nIncrement; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc public: // MPropertyFriendlyName "maximum distance" - CPerParticleFloatInput m_DistanceCheck; // 0x1c0 + CPerParticleFloatInput m_DistanceCheck; // 0x1d0 // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x310 + CPerParticleFloatInput m_flInterpolation; // 0x328 }; // Alignment: 2 @@ -16899,6 +17515,16 @@ public: float m_flRelativeWeight; // 0x4 }; +// Alignment: 1 +// Size: 0x1d0 +class C_OP_RemapSDFGradientToVectorAttribute : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 +}; + // Alignment: 1 // Size: 0x1d0 class C_INIT_RandomYawFlip : public CParticleFunctionInitializer @@ -16909,18 +17535,18 @@ public: }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_Cull : public CParticleFunctionOperator { public: // MPropertyFriendlyName "cull percentage" - float m_flCullPerc; // 0x1b0 + float m_flCullPerc; // 0x1c0 // MPropertyFriendlyName "cull start time" - float m_flCullStart; // 0x1b4 + float m_flCullStart; // 0x1c4 // MPropertyFriendlyName "cull end time" - float m_flCullEnd; // 0x1b8 + float m_flCullEnd; // 0x1c8 // MPropertyFriendlyName "cull time exponent" - float m_flCullExp; // 0x1bc + float m_flCullExp; // 0x1cc }; // Alignment: 4 @@ -16939,29 +17565,29 @@ public: }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_NormalLock : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 }; // Alignment: 4 -// Size: 0x200 +// Size: 0x210 class C_OP_LockToSavedSequentialPathV2 : public CParticleFunctionOperator { public: // MPropertyFriendlyName "start fade time" - float m_flFadeStart; // 0x1b0 + float m_flFadeStart; // 0x1c0 // MPropertyFriendlyName "end fade time" - float m_flFadeEnd; // 0x1b4 + float m_flFadeEnd; // 0x1c4 // MPropertyFriendlyName "Use sequential CP pairs between start and end point" - bool m_bCPPairs; // 0x1b8 + bool m_bCPPairs; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01b9[0x7]; // 0x1b9 + [[maybe_unused]] uint8_t __pad01c9[0x7]; // 0x1c9 public: - CPathParameters m_PathParams; // 0x1c0 + CPathParameters m_PathParams; // 0x1d0 }; // Alignment: 6 @@ -16986,7 +17612,7 @@ public: }; // Alignment: 2 -// Size: 0x640 +// Size: 0x660 struct VecInputMaterialVariable_t { public: @@ -16997,47 +17623,47 @@ public: }; // Alignment: 6 -// Size: 0x4c0 +// Size: 0x4d0 class C_INIT_CreateSequentialPathV2 : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "maximum distance" CPerParticleFloatInput m_fMaxDistance; // 0x1c0 // MPropertyFriendlyName "particles to map from start to end" - CParticleCollectionFloatInput m_flNumToAssign; // 0x310 + CParticleCollectionFloatInput m_flNumToAssign; // 0x318 // MPropertyFriendlyName "restart behavior (0 = bounce, 1 = loop )" - bool m_bLoop; // 0x460 + bool m_bLoop; // 0x470 // MPropertyFriendlyName "use sequential CP pairs between start and end point" - bool m_bCPPairs; // 0x461 + bool m_bCPPairs; // 0x471 // MPropertyFriendlyName "save offset" - bool m_bSaveOffset; // 0x462 + bool m_bSaveOffset; // 0x472 private: - [[maybe_unused]] uint8_t __pad0463[0xd]; // 0x463 + [[maybe_unused]] uint8_t __pad0473[0xd]; // 0x473 public: - CPathParameters m_PathParams; // 0x470 + CPathParameters m_PathParams; // 0x480 }; // Alignment: 7 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_RemapVisibilityScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "visibility minimum" - float m_flInputMin; // 0x1b8 + float m_flInputMin; // 0x1c8 // MPropertyFriendlyName "visibility maximum" - float m_flInputMax; // 0x1bc + float m_flInputMax; // 0x1cc // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c0 + float m_flOutputMin; // 0x1d0 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c4 + float m_flOutputMax; // 0x1d4 // MPropertyFriendlyName "radius scale" - float m_flRadiusScale; // 0x1c8 + float m_flRadiusScale; // 0x1d8 }; // Alignment: 0 @@ -17049,51 +17675,51 @@ public: }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_RestartAfterDuration : public CParticleFunctionOperator { public: // MPropertyFriendlyName "minimum restart time" - float m_flDurationMin; // 0x1b0 + float m_flDurationMin; // 0x1c0 // MPropertyFriendlyName "maximum restart time" - float m_flDurationMax; // 0x1b4 + float m_flDurationMax; // 0x1c4 // MPropertyFriendlyName "control point to scale duration" - int32_t m_nCP; // 0x1b8 + int32_t m_nCP; // 0x1c8 // MPropertyFriendlyName "control point field X/Y/Z" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPField; // 0x1bc + int32_t m_nCPField; // 0x1cc // MPropertyFriendlyName "child group ID" - int32_t m_nChildGroupID; // 0x1c0 + int32_t m_nChildGroupID; // 0x1d0 // MPropertyFriendlyName "only restart children" - bool m_bOnlyChildren; // 0x1c4 + bool m_bOnlyChildren; // 0x1d4 }; // Alignment: 6 -// Size: 0xa10 +// Size: 0xa40 class C_OP_SetVariable : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "Variable" - CParticleVariableRef m_variableReference; // 0x1c0 + CParticleVariableRef m_variableReference; // 0x1d0 // MPropertyFriendlyName "Value" // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_TRANSFORM" - CParticleTransformInput m_transformInput; // 0x200 + CParticleTransformInput m_transformInput; // 0x210 // MPropertyFriendlyName "Position Offset" // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_TRANSFORM" - Vector m_positionOffset; // 0x268 + Vector m_positionOffset; // 0x278 // MPropertyFriendlyName "Rotation Offset" // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_TRANSFORM" - QAngle m_rotationOffset; // 0x274 + QAngle m_rotationOffset; // 0x284 // MPropertyFriendlyName "Value" // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_VEC3" - CParticleCollectionVecInput m_vecInput; // 0x280 + CParticleCollectionVecInput m_vecInput; // 0x290 // MPropertyFriendlyName "Value" // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_FLOAT" - CParticleCollectionFloatInput m_floatInput; // 0x8b8 + CParticleCollectionFloatInput m_floatInput; // 0x8e8 }; // Alignment: 14 -// Size: 0x12c0 +// Size: 0x1310 class C_INIT_CreateOnModelAtHeight : public CParticleFunctionInitializer { public: @@ -17116,25 +17742,25 @@ public: // MPropertyFriendlyName "relative desired height" CParticleCollectionFloatInput m_flDesiredHeight; // 0x1d0 // MPropertyFriendlyName "model hitbox scale" - CParticleCollectionVecInput m_vecHitBoxScale; // 0x320 + CParticleCollectionVecInput m_vecHitBoxScale; // 0x328 // MPropertyFriendlyName "direction bias" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecDirectionBias; // 0x958 + CParticleCollectionVecInput m_vecDirectionBias; // 0x980 // MPropertyFriendlyName "bias type" - ParticleHitboxBiasType_t m_nBiasType; // 0xf90 + ParticleHitboxBiasType_t m_nBiasType; // 0xfd8 // MPropertyFriendlyName "bias in local space" - bool m_bLocalCoords; // 0xf94 + bool m_bLocalCoords; // 0xfdc // MPropertyFriendlyName "bias prefers moving hitboxes" - bool m_bPreferMovingBoxes; // 0xf95 + bool m_bPreferMovingBoxes; // 0xfdd // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0xf96 + char m_HitboxSetName[128]; // 0xfde private: - [[maybe_unused]] uint8_t __pad1016[0x2]; // 0x1016 + [[maybe_unused]] uint8_t __pad105e[0x2]; // 0x105e public: // MPropertyFriendlyName "hitbox velocity inherited scale" - CParticleCollectionFloatInput m_flHitboxVelocityScale; // 0x1018 + CParticleCollectionFloatInput m_flHitboxVelocityScale; // 0x1060 // MPropertyFriendlyName "max hitbox velocity" - CParticleCollectionFloatInput m_flMaxBoneVelocity; // 0x1168 + CParticleCollectionFloatInput m_flMaxBoneVelocity; // 0x11b8 }; // Alignment: 3 @@ -17151,56 +17777,56 @@ public: }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_VelocityMatchingForce : public CParticleFunctionOperator { public: // MPropertyFriendlyName "direction matching strength" - float m_flDirScale; // 0x1b0 + float m_flDirScale; // 0x1c0 // MPropertyFriendlyName "speed matching strength" - float m_flSpdScale; // 0x1b4 + float m_flSpdScale; // 0x1c4 // MPropertyFriendlyName "control point to broadcast speed and direction to" - int32_t m_nCPBroadcast; // 0x1b8 + int32_t m_nCPBroadcast; // 0x1c8 }; // Alignment: 3 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_RampCPLinearRandom : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c0 + int32_t m_nOutControlPointNumber; // 0x1d0 // MPropertyFriendlyName "ramp rate min" - Vector m_vecRateMin; // 0x1c4 + Vector m_vecRateMin; // 0x1d4 // MPropertyFriendlyName "ramp rate max" - Vector m_vecRateMax; // 0x1d0 + Vector m_vecRateMax; // 0x1e0 }; // Alignment: 10 -// Size: 0x9b0 +// Size: 0x9e0 class C_INIT_CreateOnGrid : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "X Dimension Count" CParticleCollectionFloatInput m_nXCount; // 0x1c0 // MPropertyFriendlyName "Y Dimension Count" - CParticleCollectionFloatInput m_nYCount; // 0x310 + CParticleCollectionFloatInput m_nYCount; // 0x318 // MPropertyFriendlyName "Z Dimension Count" - CParticleCollectionFloatInput m_nZCount; // 0x460 + CParticleCollectionFloatInput m_nZCount; // 0x470 // MPropertyFriendlyName "X Dimension Spacing" - CParticleCollectionFloatInput m_nXSpacing; // 0x5b0 + CParticleCollectionFloatInput m_nXSpacing; // 0x5c8 // MPropertyFriendlyName "Y Dimension Spacing" - CParticleCollectionFloatInput m_nYSpacing; // 0x700 + CParticleCollectionFloatInput m_nYSpacing; // 0x720 // MPropertyFriendlyName "Z Dimension Spacing" - CParticleCollectionFloatInput m_nZSpacing; // 0x850 + CParticleCollectionFloatInput m_nZSpacing; // 0x878 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x9a0 + int32_t m_nControlPointNumber; // 0x9d0 // MPropertyFriendlyName "use local space" - bool m_bLocalSpace; // 0x9a4 + bool m_bLocalSpace; // 0x9d4 // MPropertyFriendlyName "center around control point" - bool m_bCenter; // 0x9a5 + bool m_bCenter; // 0x9d5 // MPropertyFriendlyName "hollow" - bool m_bHollow; // 0x9a6 + bool m_bHollow; // 0x9d6 }; // Alignment: 1 @@ -17215,6 +17841,8 @@ public: // Size: 0x200 class C_INIT_ColorLitPerParticle : public CParticleFunctionInitializer { +private: + [[maybe_unused]] uint8_t __pad01c0[0x18]; // 0x1c0 public: // MPropertyFriendlyName "color1" Color m_ColorMin; // 0x1d8 @@ -17233,7 +17861,7 @@ public: }; // Alignment: 6 -// Size: 0xeb0 +// Size: 0xef0 class C_INIT_PositionOffset : public CParticleFunctionInitializer { public: @@ -17242,27 +17870,27 @@ public: CPerParticleVecInput m_OffsetMin; // 0x1c0 // MPropertyFriendlyName "offset max" // MVectorIsCoordinate - CPerParticleVecInput m_OffsetMax; // 0x7f8 + CPerParticleVecInput m_OffsetMax; // 0x818 // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0xe30 + CParticleTransformInput m_TransformInput; // 0xe70 // MPropertyFriendlyName "offset in local space 0/1" - bool m_bLocalCoords; // 0xe98 + bool m_bLocalCoords; // 0xed8 // MPropertyFriendlyName "offset proportional to radius 0/1" - bool m_bProportional; // 0xe99 + bool m_bProportional; // 0xed9 private: - [[maybe_unused]] uint8_t __pad0e9a[0x2]; // 0xe9a + [[maybe_unused]] uint8_t __pad0eda[0x2]; // 0xeda public: // MPropertyFriendlyName "Random number generator controls" - CRandomNumberGeneratorParameters m_randomnessParameters; // 0xe9c + CRandomNumberGeneratorParameters m_randomnessParameters; // 0xedc }; // Alignment: 1 -// Size: 0x300 +// Size: 0x320 class C_OP_DecayClampCount : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Maximum Count" - CParticleCollectionFloatInput m_nCount; // 0x1b0 + CParticleCollectionFloatInput m_nCount; // 0x1c0 }; // Alignment: 7 @@ -17298,50 +17926,50 @@ public: }; // Alignment: 6 -// Size: 0x1f0 +// Size: 0x200 class C_OP_ColorInterpolateRandom : public CParticleFunctionOperator { public: // MPropertyFriendlyName "color fade min" - Color m_ColorFadeMin; // 0x1b0 + Color m_ColorFadeMin; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x18]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x18]; // 0x1c4 public: // MPropertyFriendlyName "color fade max" - Color m_ColorFadeMax; // 0x1cc + Color m_ColorFadeMax; // 0x1dc private: - [[maybe_unused]] uint8_t __pad01d0[0xc]; // 0x1d0 + [[maybe_unused]] uint8_t __pad01e0[0xc]; // 0x1e0 public: // MPropertyFriendlyName "fade start time" - float m_flFadeStartTime; // 0x1dc + float m_flFadeStartTime; // 0x1ec // MPropertyFriendlyName "fade end time" - float m_flFadeEndTime; // 0x1e0 + float m_flFadeEndTime; // 0x1f0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1e4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1f4 // MPropertyFriendlyName "ease in and out" - bool m_bEaseInOut; // 0x1e8 + bool m_bEaseInOut; // 0x1f8 }; // Alignment: 7 -// Size: 0x2c0 +// Size: 0x2d0 class C_OP_SetControlPointsToModelParticles : public CParticleFunctionOperator { public: // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x1b0 + char m_HitboxSetName[128]; // 0x1c0 // MPropertyFriendlyName "attachment to follow" - char m_AttachmentName[128]; // 0x230 + char m_AttachmentName[128]; // 0x240 // MPropertyFriendlyName "First control point to set" - int32_t m_nFirstControlPoint; // 0x2b0 + int32_t m_nFirstControlPoint; // 0x2c0 // MPropertyFriendlyName "# of control points to set" - int32_t m_nNumControlPoints; // 0x2b4 + int32_t m_nNumControlPoints; // 0x2c4 // MPropertyFriendlyName "first particle to copy" - int32_t m_nFirstSourcePoint; // 0x2b8 + int32_t m_nFirstSourcePoint; // 0x2c8 // MPropertyFriendlyName "use skinning instead of hitboxes" - bool m_bSkin; // 0x2bc + bool m_bSkin; // 0x2cc // MPropertyFriendlyName "follow attachment" - bool m_bAttachment; // 0x2bd + bool m_bAttachment; // 0x2cd }; // Alignment: 5 @@ -17367,191 +17995,229 @@ public: bool m_bSaveOffset; // 0x220 }; -// Alignment: 4 -// Size: 0x1d0 -class C_OP_DistanceCull : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "control point" - int32_t m_nControlPoint; // 0x1b0 - // MPropertyFriendlyName "control point offset" - // MVectorIsCoordinate - Vector m_vecPointOffset; // 0x1b4 - // MPropertyFriendlyName "cull distance" - float m_flDistance; // 0x1c0 - // MPropertyFriendlyName "cull inside instead of outside" - bool m_bCullInside; // 0x1c4 -}; - // Alignment: 8 -// Size: 0x210 -class C_OP_ConstrainDistanceToPath : public CParticleFunctionConstraint +// Size: 0x9e0 +class C_OP_RemapSDFDistanceToScalarAttribute : public CParticleFunctionOperator { public: - // MPropertyFriendlyName "minimum distance" - float m_fMinDistance; // 0x1b0 - // MPropertyFriendlyName "maximum distance" - float m_flMaxDistance0; // 0x1b4 - // MPropertyFriendlyName "maximum distance middle" - float m_flMaxDistanceMid; // 0x1b8 - // MPropertyFriendlyName "maximum distance end" - float m_flMaxDistance1; // 0x1bc - CPathParameters m_PathParameters; // 0x1c0 - // MPropertyFriendlyName "travel time" - float m_flTravelTime; // 0x200 - // MPropertyFriendlyName "travel time scale field" + // MPropertyFriendlyName "Output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldScale; // 0x204 - // MPropertyFriendlyName "manual time placement field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nManualTField; // 0x208 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "Input field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nVectorFieldInput; // 0x1c4 + // MPropertyFriendlyName "Minimum distance" + CParticleCollectionFloatInput m_flMinDistance; // 0x1c8 + // MPropertyFriendlyName "Maximum distance" + CParticleCollectionFloatInput m_flMaxDistance; // 0x320 + // MPropertyFriendlyName "Value for distmax" + CParticleCollectionFloatInput m_flValueAboveMax; // 0x880 }; // Alignment: 4 // Size: 0x1e0 +class C_OP_DistanceCull : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "control point" + int32_t m_nControlPoint; // 0x1c0 + // MPropertyFriendlyName "control point offset" + // MVectorIsCoordinate + Vector m_vecPointOffset; // 0x1c4 + // MPropertyFriendlyName "cull distance" + float m_flDistance; // 0x1d0 + // MPropertyFriendlyName "cull inside instead of outside" + bool m_bCullInside; // 0x1d4 +}; + +// Alignment: 8 +// Size: 0x220 +class C_OP_ConstrainDistanceToPath : public CParticleFunctionConstraint +{ +public: + // MPropertyFriendlyName "minimum distance" + float m_fMinDistance; // 0x1c0 + // MPropertyFriendlyName "maximum distance" + float m_flMaxDistance0; // 0x1c4 + // MPropertyFriendlyName "maximum distance middle" + float m_flMaxDistanceMid; // 0x1c8 + // MPropertyFriendlyName "maximum distance end" + float m_flMaxDistance1; // 0x1cc + CPathParameters m_PathParameters; // 0x1d0 + // MPropertyFriendlyName "travel time" + float m_flTravelTime; // 0x210 + // MPropertyFriendlyName "travel time scale field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldScale; // 0x214 + // MPropertyFriendlyName "manual time placement field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nManualTField; // 0x218 +}; + +// Alignment: 4 +// Size: 0x1f0 class C_OP_SetControlPointToHand : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c0 + int32_t m_nCP1; // 0x1d0 // MPropertyFriendlyName "hand" - int32_t m_nHand; // 0x1c4 + int32_t m_nHand; // 0x1d4 // MPropertyFriendlyName "control point offset" // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1c8 + Vector m_vecCP1Pos; // 0x1d8 // MPropertyFriendlyName "use hand orientation" - bool m_bOrientToHand; // 0x1d4 + bool m_bOrientToHand; // 0x1e4 }; // Alignment: 15 -// Size: 0x280 +// Size: 0x290 class C_OP_DistanceBetweenCPsToCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "starting control point" - int32_t m_nStartCP; // 0x1c0 + int32_t m_nStartCP; // 0x1d0 // MPropertyFriendlyName "ending control point" - int32_t m_nEndCP; // 0x1c4 + int32_t m_nEndCP; // 0x1d4 // MPropertyFriendlyName "output control point" - int32_t m_nOutputCP; // 0x1c8 + int32_t m_nOutputCP; // 0x1d8 // MPropertyFriendlyName "output control point field" - int32_t m_nOutputCPField; // 0x1cc + int32_t m_nOutputCPField; // 0x1dc // MPropertyFriendlyName "only set distance once" - bool m_bSetOnce; // 0x1d0 + bool m_bSetOnce; // 0x1e0 private: - [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 + [[maybe_unused]] uint8_t __pad01e1[0x3]; // 0x1e1 public: // MPropertyFriendlyName "distance minimum" - float m_flInputMin; // 0x1d4 + float m_flInputMin; // 0x1e4 // MPropertyFriendlyName "distance maximum" - float m_flInputMax; // 0x1d8 + float m_flInputMax; // 0x1e8 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1dc + float m_flOutputMin; // 0x1ec // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1e0 + float m_flOutputMax; // 0x1f0 // MPropertyFriendlyName "maximum trace length" - float m_flMaxTraceLength; // 0x1e4 + float m_flMaxTraceLength; // 0x1f4 // MPropertyFriendlyName "LOS Failure Scale" - float m_flLOSScale; // 0x1e8 + float m_flLOSScale; // 0x1f8 // MPropertyFriendlyName "ensure line of sight" - bool m_bLOS; // 0x1ec + bool m_bLOS; // 0x1fc // MPropertyFriendlyName "LOS collision group" - char m_CollisionGroupName[128]; // 0x1ed + char m_CollisionGroupName[128]; // 0x1fd private: - [[maybe_unused]] uint8_t __pad026d[0x3]; // 0x26d + [[maybe_unused]] uint8_t __pad027d[0x3]; // 0x27d public: // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x270 + ParticleTraceSet_t m_nTraceSet; // 0x280 // MPropertyFriendlyName "set parent" - ParticleParentSetMode_t m_nSetParent; // 0x274 + ParticleParentSetMode_t m_nSetParent; // 0x284 }; // Alignment: 11 -// Size: 0x5c0 +// Size: 0x5f0 class C_OP_SetFromCPSnapshot : public CParticleFunctionOperator { public: // MPropertyFriendlyName "snapshot control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "field to read" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nAttributeToRead; // 0x1b4 + ParticleAttributeIndex_t m_nAttributeToRead; // 0x1c4 // MPropertyFriendlyName "field to write" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nAttributeToWrite; // 0x1b8 + ParticleAttributeIndex_t m_nAttributeToWrite; // 0x1c8 // MPropertyFriendlyName "local space control point number" - int32_t m_nLocalSpaceCP; // 0x1bc + int32_t m_nLocalSpaceCP; // 0x1cc // MPropertyFriendlyName "random order" - bool m_bRandom; // 0x1c0 + bool m_bRandom; // 0x1d0 // MPropertyFriendlyName "reverse order" - bool m_bReverse; // 0x1c1 + bool m_bReverse; // 0x1d1 private: - [[maybe_unused]] uint8_t __pad01c2[0x2]; // 0x1c2 + [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 public: // MPropertyFriendlyName "random seed" - int32_t m_nRandomSeed; // 0x1c4 + int32_t m_nRandomSeed; // 0x1d4 // MPropertyFriendlyName "Snapshot start point" - CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x1c8 + CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x1d8 // MPropertyFriendlyName "Snapshot increment amount" - CParticleCollectionFloatInput m_nSnapShotIncrement; // 0x318 + CParticleCollectionFloatInput m_nSnapShotIncrement; // 0x330 // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x468 + CPerParticleFloatInput m_flInterpolation; // 0x488 // MPropertyFriendlyName "Sub-Sample Between Input Points" - bool m_bSubSample; // 0x5b8 + bool m_bSubSample; // 0x5e0 }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_RemapVectortoCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1b0 + int32_t m_nOutControlPointNumber; // 0x1c0 // MPropertyFriendlyName "input field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c4 // MPropertyFriendlyName "particle number to read" - int32_t m_nParticleNumber; // 0x1b8 + int32_t m_nParticleNumber; // 0x1c8 }; // Alignment: 6 -// Size: 0xf80 +// Size: 0xfe0 class C_OP_SetFloatAttributeToVectorExpression : public CParticleFunctionOperator { public: // MPropertyFriendlyName "expression" - VectorFloatExpressionType_t m_nExpression; // 0x1b0 + VectorFloatExpressionType_t m_nExpression; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "input 1" - CPerParticleVecInput m_vInput1; // 0x1b8 + CPerParticleVecInput m_vInput1; // 0x1c8 // MPropertyFriendlyName "input 2" - CPerParticleVecInput m_vInput2; // 0x7f0 + CPerParticleVecInput m_vInput2; // 0x820 // MPropertyFriendlyName "output" - CParticleRemapFloatInput m_flOutputRemap; // 0xe28 + CParticleRemapFloatInput m_flOutputRemap; // 0xe78 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0xf78 + ParticleAttributeIndex_t m_nOutputField; // 0xfd0 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0xf7c + ParticleSetMethod_t m_nSetMethod; // 0xfd4 }; // Alignment: 5 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_RemapDistanceToLineSegmentBase : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point 0" - int32_t m_nCP0; // 0x1b0 + int32_t m_nCP0; // 0x1c0 // MPropertyFriendlyName "control point 1" - int32_t m_nCP1; // 0x1b4 + int32_t m_nCP1; // 0x1c4 // MPropertyFriendlyName "min distance value" - float m_flMinInputValue; // 0x1b8 + float m_flMinInputValue; // 0x1c8 // MPropertyFriendlyName "max distance value" - float m_flMaxInputValue; // 0x1bc + float m_flMaxInputValue; // 0x1cc // MPropertyFriendlyName "use distance to an infinite line instead of a finite line segment" - bool m_bInfiniteLine; // 0x1c0 + bool m_bInfiniteLine; // 0x1d0 +}; + +// Alignment: 3 +// Size: 0x1f0 +class C_OP_SDFLighting : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Lighting dir" + Vector m_vLightingDir; // 0x1c0 + // MPropertyFriendlyName "shadow color" + Vector m_vTint_0; // 0x1cc + // MPropertyFriendlyName "lit color" + Vector m_vTint_1; // 0x1d8 }; // Alignment: 13 @@ -17600,53 +18266,53 @@ public: }; // Alignment: 4 -// Size: 0x480 +// Size: 0x4a0 class C_OP_SetFloat : public CParticleFunctionOperator { public: // MPropertyFriendlyName "value" - CPerParticleFloatInput m_InputValue; // 0x1b0 + CPerParticleFloatInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x300 + ParticleAttributeIndex_t m_nOutputField; // 0x318 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x304 + ParticleSetMethod_t m_nSetMethod; // 0x31c // MPropertyFriendlyName "interpolation" - CPerParticleFloatInput m_Lerp; // 0x308 + CPerParticleFloatInput m_Lerp; // 0x320 }; // Alignment: 5 -// Size: 0x240 +// Size: 0x250 class C_OP_ModelCull : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "use only bounding box" - bool m_bBoundBox; // 0x1b4 + bool m_bBoundBox; // 0x1c4 // MPropertyFriendlyName "cull outside instead of inside" - bool m_bCullOutside; // 0x1b5 + bool m_bCullOutside; // 0x1c5 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x1b6 + bool m_bUseBones; // 0x1c6 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x1b7 + char m_HitboxSetName[128]; // 0x1c7 }; // Alignment: 3 -// Size: 0x7f0 +// Size: 0x830 class C_OP_LocalAccelerationForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "local space control point" - int32_t m_nCP; // 0x1b0 + int32_t m_nCP; // 0x1d0 // MPropertyFriendlyName "scale control point" - int32_t m_nScaleCP; // 0x1b4 + int32_t m_nScaleCP; // 0x1d4 // MPropertyFriendlyName "local space acceleration" - CParticleCollectionVecInput m_vecAccel; // 0x1b8 + CParticleCollectionVecInput m_vecAccel; // 0x1d8 }; // Alignment: 3 -// Size: 0x78 +// Size: 0x88 struct ParticleControlPointConfiguration_t { public: @@ -17656,41 +18322,41 @@ public: }; // Alignment: 7 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_RemapParticleCountOnScalarEndCap : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "input minimum" - int32_t m_nInputMin; // 0x1b4 + int32_t m_nInputMin; // 0x1c4 // MPropertyFriendlyName "input maximum" - int32_t m_nInputMax; // 0x1b8 + int32_t m_nInputMax; // 0x1c8 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1bc + float m_flOutputMin; // 0x1cc // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c0 + float m_flOutputMax; // 0x1d0 // MPropertyFriendlyName "count back from last particle" - bool m_bBackwards; // 0x1c4 + bool m_bBackwards; // 0x1d4 private: - [[maybe_unused]] uint8_t __pad01c5[0x3]; // 0x1c5 + [[maybe_unused]] uint8_t __pad01d5[0x3]; // 0x1d5 public: // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1c8 + ParticleSetMethod_t m_nSetMethod; // 0x1d8 }; // Alignment: 2 -// Size: 0x1d0 +// Size: 0x1f0 class C_OP_RandomForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "min force" // MVectorIsCoordinate - Vector m_MinForce; // 0x1b0 + Vector m_MinForce; // 0x1d0 // MPropertyFriendlyName "max force" // MVectorIsCoordinate - Vector m_MaxForce; // 0x1bc + Vector m_MaxForce; // 0x1dc }; // Alignment: 7 @@ -17722,25 +18388,27 @@ public: }; // Alignment: 4 -// Size: 0x230 +// Size: 0x240 class C_OP_RemapTransformOrientationToYaw : public CParticleFunctionOperator { public: // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b0 + CParticleTransformInput m_TransformInput; // 0x1c0 // MPropertyFriendlyName "rotation field" // MPropertyAttributeChoiceName "particlefield_rotation" - ParticleAttributeIndex_t m_nFieldOutput; // 0x218 + ParticleAttributeIndex_t m_nFieldOutput; // 0x228 // MPropertyFriendlyName "rotation offset" - float m_flRotOffset; // 0x21c + float m_flRotOffset; // 0x22c // MPropertyFriendlyName "spin strength" - float m_flSpinStrength; // 0x220 + float m_flSpinStrength; // 0x230 }; // Alignment: 5 // Size: 0x1e0 class C_INIT_RemapInitialVisibilityScalar : public CParticleFunctionInitializer { +private: + [[maybe_unused]] uint8_t __pad01c0[0x4]; // 0x1c0 public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" @@ -17776,31 +18444,46 @@ public: CRandomNumberGeneratorParameters m_randomnessParameters; // 0x1ec }; +// Alignment: 3 +// Size: 0x980 +class C_OP_ParticlePhysics : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "gravity" + // MVectorIsCoordinate + CParticleCollectionVecInput m_Gravity; // 0x1c0 + // MPropertyFriendlyName "drag" + // MPropertyAttributeRange "-1 1" + CParticleCollectionFloatInput m_fDrag; // 0x818 + // MPropertyFriendlyName "max constraint passes" + int32_t m_nMaxConstraintPasses; // 0x970 +}; + // Alignment: 6 -// Size: 0xea0 +// Size: 0xef0 class C_OP_SetVectorAttributeToVectorExpression : public CParticleFunctionOperator { public: // MPropertyFriendlyName "expression" - VectorExpressionType_t m_nExpression; // 0x1b0 + VectorExpressionType_t m_nExpression; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "input 1" - CPerParticleVecInput m_vInput1; // 0x1b8 + CPerParticleVecInput m_vInput1; // 0x1c8 // MPropertyFriendlyName "input 2" - CPerParticleVecInput m_vInput2; // 0x7f0 + CPerParticleVecInput m_vInput2; // 0x820 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOutputField; // 0xe28 + ParticleAttributeIndex_t m_nOutputField; // 0xe78 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0xe2c + ParticleSetMethod_t m_nSetMethod; // 0xe7c // MPropertyFriendlyName "normalize result" - bool m_bNormalizedOutput; // 0xe30 + bool m_bNormalizedOutput; // 0xe80 }; // Alignment: 5 -// Size: 0x810 +// Size: 0x830 class C_INIT_InitFromVectorFieldSnapshot : public CParticleFunctionInitializer { public: @@ -17820,18 +18503,18 @@ public: }; // Alignment: 2 -// Size: 0x450 +// Size: 0x470 class C_OP_CollideWithParentParticles : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "parent particle radius scale" - CPerParticleFloatInput m_flParentRadiusScale; // 0x1b0 + CPerParticleFloatInput m_flParentRadiusScale; // 0x1c0 // MPropertyFriendlyName "particle radius scale" - CPerParticleFloatInput m_flRadiusScale; // 0x300 + CPerParticleFloatInput m_flRadiusScale; // 0x318 }; // Alignment: 3 -// Size: 0x320 +// Size: 0x330 class C_INIT_DistanceCull : public CParticleFunctionInitializer { public: @@ -17843,28 +18526,28 @@ public: // MPropertyFriendlyName "cull distance" CParticleCollectionFloatInput m_flDistance; // 0x1c8 // MPropertyFriendlyName "cull inside instead of outside" - bool m_bCullInside; // 0x318 + bool m_bCullInside; // 0x320 }; // Alignment: 5 -// Size: 0x1f0 +// Size: 0x200 class C_OP_RampScalarSplineSimple : public CParticleFunctionOperator { public: // MPropertyFriendlyName "ramp rate" - float m_Rate; // 0x1b0 + float m_Rate; // 0x1c0 // MPropertyFriendlyName "start time" - float m_flStartTime; // 0x1b4 + float m_flStartTime; // 0x1c4 // MPropertyFriendlyName "end time" - float m_flEndTime; // 0x1b8 + float m_flEndTime; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x24]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x24]; // 0x1cc public: // MPropertyFriendlyName "ramp field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1e0 + ParticleAttributeIndex_t m_nField; // 0x1f0 // MPropertyFriendlyName "ease out" - bool m_bEaseOut; // 0x1e4 + bool m_bEaseOut; // 0x1f4 }; // Alignment: 5 @@ -17890,85 +18573,92 @@ public: }; // Alignment: 6 -// Size: 0x200 +// Size: 0x210 class C_OP_FadeOut : public CParticleFunctionOperator { public: // MPropertyFriendlyName "fade out time min" - float m_flFadeOutTimeMin; // 0x1b0 + float m_flFadeOutTimeMin; // 0x1c0 // MPropertyFriendlyName "fade out time max" - float m_flFadeOutTimeMax; // 0x1b4 + float m_flFadeOutTimeMax; // 0x1c4 // MPropertyFriendlyName "fade out time exponent" - float m_flFadeOutTimeExp; // 0x1b8 + float m_flFadeOutTimeExp; // 0x1c8 // MPropertyFriendlyName "fade bias" - float m_flFadeBias; // 0x1bc + float m_flFadeBias; // 0x1cc private: - [[maybe_unused]] uint8_t __pad01c0[0x30]; // 0x1c0 + [[maybe_unused]] uint8_t __pad01d0[0x30]; // 0x1d0 public: // MPropertyFriendlyName "proportional 0/1" - bool m_bProportional; // 0x1f0 + bool m_bProportional; // 0x200 // MPropertyFriendlyName "ease in and out" - bool m_bEaseInAndOut; // 0x1f1 + bool m_bEaseInAndOut; // 0x201 }; // Alignment: 13 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_OscillateScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "oscillation rate min" - float m_RateMin; // 0x1b0 + float m_RateMin; // 0x1c0 // MPropertyFriendlyName "oscillation rate max" - float m_RateMax; // 0x1b4 + float m_RateMax; // 0x1c4 // MPropertyFriendlyName "oscillation frequency min" - float m_FrequencyMin; // 0x1b8 + float m_FrequencyMin; // 0x1c8 // MPropertyFriendlyName "oscillation frequency max" - float m_FrequencyMax; // 0x1bc + float m_FrequencyMax; // 0x1cc // MPropertyFriendlyName "oscillation field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1c0 + ParticleAttributeIndex_t m_nField; // 0x1d0 // MPropertyFriendlyName "proportional 0/1" - bool m_bProportional; // 0x1c4 + bool m_bProportional; // 0x1d4 // MPropertyFriendlyName "start/end proportional" - bool m_bProportionalOp; // 0x1c5 + bool m_bProportionalOp; // 0x1d5 private: - [[maybe_unused]] uint8_t __pad01c6[0x2]; // 0x1c6 + [[maybe_unused]] uint8_t __pad01d6[0x2]; // 0x1d6 public: // MPropertyFriendlyName "start time min" - float m_flStartTime_min; // 0x1c8 + float m_flStartTime_min; // 0x1d8 // MPropertyFriendlyName "start time max" - float m_flStartTime_max; // 0x1cc + float m_flStartTime_max; // 0x1dc // MPropertyFriendlyName "end time min" - float m_flEndTime_min; // 0x1d0 + float m_flEndTime_min; // 0x1e0 // MPropertyFriendlyName "end time max" - float m_flEndTime_max; // 0x1d4 + float m_flEndTime_max; // 0x1e4 // MPropertyFriendlyName "oscillation multiplier" - float m_flOscMult; // 0x1d8 + float m_flOscMult; // 0x1e8 // MPropertyFriendlyName "oscillation start phase" - float m_flOscAdd; // 0x1dc + float m_flOscAdd; // 0x1ec }; -// Alignment: 5 -// Size: 0x600 +// Alignment: 6 +// Size: 0x650 class C_OP_RenderBlobs : public CParticleFunctionRenderer { public: // MPropertyFriendlyName "cube width" CParticleCollectionRendererFloatInput m_cubeWidth; // 0x200 // MPropertyFriendlyName "cutoff radius" - CParticleCollectionRendererFloatInput m_cutoffRadius; // 0x350 + CParticleCollectionRendererFloatInput m_cutoffRadius; // 0x358 // MPropertyFriendlyName "render radius" - CParticleCollectionRendererFloatInput m_renderRadius; // 0x4a0 + CParticleCollectionRendererFloatInput m_renderRadius; // 0x4b0 // MPropertyFriendlyName "scale CP (cube width/cutoff/render = x/y/z)" - int32_t m_nScaleCP; // 0x5f0 + int32_t m_nScaleCP; // 0x608 private: - [[maybe_unused]] uint8_t __pad05f4[0x4]; // 0x5f4 + [[maybe_unused]] uint8_t __pad060c[0x4]; // 0x60c public: - CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x5f8 + // MPropertyFriendlyName "material variables" + // MPropertyAutoExpandSelf + // MPropertySortPriority "600" + CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x610 +private: + [[maybe_unused]] uint8_t __pad0628[0x18]; // 0x628 +public: + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x640 }; // Alignment: 2 -// Size: 0x800 +// Size: 0x820 class C_INIT_InitVecCollection : public CParticleFunctionInitializer { public: @@ -17976,89 +18666,92 @@ public: CParticleCollectionVecInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOutputField; // 0x7f8 + ParticleAttributeIndex_t m_nOutputField; // 0x818 }; -// Alignment: 26 -// Size: 0x910 +// Alignment: 27 +// Size: 0x950 class C_OP_WorldTraceConstraint : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "control point for fast collision tests" - int32_t m_nCP; // 0x1b0 + int32_t m_nCP; // 0x1c0 // MPropertyFriendlyName "control point offset for fast collisions" // MVectorIsCoordinate - Vector m_vecCpOffset; // 0x1b4 + Vector m_vecCpOffset; // 0x1c4 // MPropertyFriendlyName "collision mode" - ParticleCollisionMode_t m_nCollisionMode; // 0x1c0 + ParticleCollisionMode_t m_nCollisionMode; // 0x1d0 // MPropertyFriendlyName "minimum detail collision mode" - ParticleCollisionMode_t m_nCollisionModeMin; // 0x1c4 + ParticleCollisionMode_t m_nCollisionModeMin; // 0x1d4 // MPropertyStartGroup "Collision Options" // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x1c8 + ParticleTraceSet_t m_nTraceSet; // 0x1d8 // MPropertyFriendlyName "collision group" - char m_CollisionGroupName[128]; // 0x1cc + char m_CollisionGroupName[128]; // 0x1dc // MPropertyFriendlyName "World Only" - bool m_bWorldOnly; // 0x24c + bool m_bWorldOnly; // 0x25c // MPropertyFriendlyName "brush only" - bool m_bBrushOnly; // 0x24d + bool m_bBrushOnly; // 0x25d // MPropertyFriendlyName "include water" - bool m_bIncludeWater; // 0x24e + bool m_bIncludeWater; // 0x25e private: - [[maybe_unused]] uint8_t __pad024f[0x1]; // 0x24f + [[maybe_unused]] uint8_t __pad025f[0x1]; // 0x25f public: // MPropertyFriendlyName "CP Entity to Ignore for Collisions" - int32_t m_nIgnoreCP; // 0x250 + int32_t m_nIgnoreCP; // 0x260 // MPropertyFriendlyName "control point movement distance tolerance" // MPropertySuppressExpr "m_nCollisionMode == COLLISION_MODE_PER_PARTICLE_TRACE" - float m_flCpMovementTolerance; // 0x254 + float m_flCpMovementTolerance; // 0x264 // MPropertyFriendlyName "plane cache retest rate" // MPropertySuppressExpr "m_nCollisionMode != COLLISION_MODE_PER_FRAME_PLANESET" - float m_flRetestRate; // 0x258 + float m_flRetestRate; // 0x268 // MPropertyFriendlyName "trace accuracy tolerance" // MPropertySuppressExpr "m_nCollisionMode != COLLISION_MODE_USE_NEAREST_TRACE" - float m_flTraceTolerance; // 0x25c + float m_flTraceTolerance; // 0x26c // MPropertyFriendlyName "Confirm Collision Speed Threshold" // MPropertySuppressExpr "m_nCollisionMode == COLLISION_MODE_PER_PARTICLE_TRACE" - float m_flCollisionConfirmationSpeed; // 0x260 + float m_flCollisionConfirmationSpeed; // 0x270 // MPropertyFriendlyName "Max Confirmation Traces Per Fame" // MPropertySuppressExpr "m_nCollisionMode == COLLISION_MODE_PER_PARTICLE_TRACE" - float m_nMaxTracesPerFrame; // 0x264 + float m_nMaxTracesPerFrame; // 0x274 // MPropertyStartGroup "Impact Options" // MPropertyFriendlyName "radius scale" - CPerParticleFloatInput m_flRadiusScale; // 0x268 + CPerParticleFloatInput m_flRadiusScale; // 0x278 // MPropertyFriendlyName "amount of bounce" - CPerParticleFloatInput m_flBounceAmount; // 0x3b8 + CPerParticleFloatInput m_flBounceAmount; // 0x3d0 // MPropertyFriendlyName "amount of slide" - CPerParticleFloatInput m_flSlideAmount; // 0x508 + CPerParticleFloatInput m_flSlideAmount; // 0x528 // MPropertyFriendlyName "Random Direction scale" - CPerParticleFloatInput m_flRandomDirScale; // 0x658 + CPerParticleFloatInput m_flRandomDirScale; // 0x680 // MPropertyFriendlyName "Add Decay to Bounce" - bool m_bDecayBounce; // 0x7a8 + bool m_bDecayBounce; // 0x7d8 // MPropertyFriendlyName "kill particle on collision" - bool m_bKillonContact; // 0x7a9 + bool m_bKillonContact; // 0x7d9 private: - [[maybe_unused]] uint8_t __pad07aa[0x2]; // 0x7aa + [[maybe_unused]] uint8_t __pad07da[0x2]; // 0x7da public: // MPropertyFriendlyName "minimum speed to kill on collision" - float m_flMinSpeed; // 0x7ac + float m_flMinSpeed; // 0x7dc // MPropertyFriendlyName "Set Normal" - bool m_bSetNormal; // 0x7b0 + bool m_bSetNormal; // 0x7e0 private: - [[maybe_unused]] uint8_t __pad07b1[0x3]; // 0x7b1 + [[maybe_unused]] uint8_t __pad07e1[0x3]; // 0x7e1 public: // MPropertyFriendlyName "Stick On Collision Cache Field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nStickOnCollisionField; // 0x7b4 + ParticleAttributeIndex_t m_nStickOnCollisionField; // 0x7e4 // MPropertyFriendlyName "Speed to stop when sticking" - CPerParticleFloatInput m_flStopSpeed; // 0x7b8 + CPerParticleFloatInput m_flStopSpeed; // 0x7e8 // MPropertyFriendlyName "Entity Hitbox Cache Field (Requires Stick on Collision)" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nEntityStickDataField; // 0x908 + ParticleAttributeIndex_t m_nEntityStickDataField; // 0x940 + // MPropertyFriendlyName "Entity Normal Cache Field (Requires Stick on Collision)" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nEntityStickNormalField; // 0x944 }; // Alignment: 3 -// Size: 0x360 +// Size: 0x370 class C_OP_RenderPostProcessing : public CParticleFunctionRenderer { public: @@ -18066,9 +18759,9 @@ public: CPerParticleFloatInput m_flPostProcessStrength; // 0x200 // MPropertyFriendlyName "Post Processing File" // MPropertyAttributeEditor "AssetBrowse( vpost, *showassetpreview )" - CStrongHandle< InfoForResourceTypeCPostProcessingResource > m_hPostTexture; // 0x350 + CStrongHandle< InfoForResourceTypeCPostProcessingResource > m_hPostTexture; // 0x358 // MPropertyFriendlyName "Post Processing Priority Group" - ParticlePostProcessPriorityGroup_t m_nPriority; // 0x358 + ParticlePostProcessPriorityGroup_t m_nPriority; // 0x360 }; // Alignment: 4 @@ -18088,204 +18781,204 @@ public: }; // Alignment: 13 -// Size: 0x510 +// Size: 0x520 class C_INIT_PositionPlaceOnGround : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "offset" CPerParticleFloatInput m_flOffset; // 0x1c0 // MPropertyFriendlyName "max trace length" - CPerParticleFloatInput m_flMaxTraceLength; // 0x310 + CPerParticleFloatInput m_flMaxTraceLength; // 0x318 // MPropertyFriendlyName "collision group" - char m_CollisionGroupName[128]; // 0x460 + char m_CollisionGroupName[128]; // 0x470 // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x4e0 + ParticleTraceSet_t m_nTraceSet; // 0x4f0 private: - [[maybe_unused]] uint8_t __pad04e4[0xc]; // 0x4e4 + [[maybe_unused]] uint8_t __pad04f4[0xc]; // 0x4f4 public: // MPropertyFriendlyName "No Collision Behavior" - ParticleTraceMissBehavior_t m_nTraceMissBehavior; // 0x4f0 + ParticleTraceMissBehavior_t m_nTraceMissBehavior; // 0x500 // MPropertyFriendlyName "include water" - bool m_bIncludeWater; // 0x4f4 + bool m_bIncludeWater; // 0x504 // MPropertyFriendlyName "set normal" - bool m_bSetNormal; // 0x4f5 + bool m_bSetNormal; // 0x505 // MPropertyFriendlyName "set Previous XYZ only" - bool m_bSetPXYZOnly; // 0x4f6 + bool m_bSetPXYZOnly; // 0x506 // MPropertyFriendlyName "Trace along particle normal" - bool m_bTraceAlongNormal; // 0x4f7 + bool m_bTraceAlongNormal; // 0x507 // MPropertyFriendlyName "Offset only if trace hit" - bool m_bOffsetonColOnly; // 0x4f8 + bool m_bOffsetonColOnly; // 0x508 private: - [[maybe_unused]] uint8_t __pad04f9[0x3]; // 0x4f9 + [[maybe_unused]] uint8_t __pad0509[0x3]; // 0x509 public: // MPropertyFriendlyName "offset final position by this fraction of the particle radius" - float m_flOffsetByRadiusFactor; // 0x4fc + float m_flOffsetByRadiusFactor; // 0x50c // MPropertyFriendlyName "preserve initial Z-offset relative to cp" - int32_t m_nPreserveOffsetCP; // 0x500 + int32_t m_nPreserveOffsetCP; // 0x510 // MPropertyFriendlyName "CP Entity to Ignore for Collisions" - int32_t m_nIgnoreCP; // 0x504 + int32_t m_nIgnoreCP; // 0x514 }; // Alignment: 11 -// Size: 0x7d0 +// Size: 0x800 class C_OP_CylindricalDistanceToTransform : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "cylinder inner radius" - CPerParticleFloatInput m_flInputMin; // 0x1b8 + CPerParticleFloatInput m_flInputMin; // 0x1c8 // MPropertyFriendlyName "cylinder outer radius" - CPerParticleFloatInput m_flInputMax; // 0x308 + CPerParticleFloatInput m_flInputMax; // 0x320 // MPropertyFriendlyName "cylinder inner output" - CPerParticleFloatInput m_flOutputMin; // 0x458 + CPerParticleFloatInput m_flOutputMin; // 0x478 // MPropertyFriendlyName "cylinder outer output" - CPerParticleFloatInput m_flOutputMax; // 0x5a8 + CPerParticleFloatInput m_flOutputMax; // 0x5d0 // MPropertyFriendlyName "cylindrical top transform" - CParticleTransformInput m_TransformStart; // 0x6f8 + CParticleTransformInput m_TransformStart; // 0x728 // MPropertyFriendlyName "cylindrical bottom transform" - CParticleTransformInput m_TransformEnd; // 0x760 + CParticleTransformInput m_TransformEnd; // 0x790 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x7c8 + ParticleSetMethod_t m_nSetMethod; // 0x7f8 // MPropertyFriendlyName "only active within specified distance" - bool m_bActiveRange; // 0x7cc + bool m_bActiveRange; // 0x7fc // MPropertyFriendlyName "output is additive" - bool m_bAdditive; // 0x7cd + bool m_bAdditive; // 0x7fd // MPropertyFriendlyName "apply radius to ends (capsule)" - bool m_bCapsule; // 0x7ce + bool m_bCapsule; // 0x7fe }; // Alignment: 9 -// Size: 0x960 +// Size: 0x990 class C_OP_VectorFieldSnapshot : public CParticleFunctionOperator { public: // MPropertyFriendlyName "snapshot control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "extra velocity field to write" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nAttributeToWrite; // 0x1b4 + ParticleAttributeIndex_t m_nAttributeToWrite; // 0x1c4 // MPropertyFriendlyName "local space control point number" - int32_t m_nLocalSpaceCP; // 0x1b8 + int32_t m_nLocalSpaceCP; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc public: // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x1c0 + CPerParticleFloatInput m_flInterpolation; // 0x1d0 // MPropertyFriendlyName "Component Scale" - CPerParticleVecInput m_vecScale; // 0x310 + CPerParticleVecInput m_vecScale; // 0x328 // MPropertyFriendlyName "Boundary Dampening" - float m_flBoundaryDampening; // 0x948 + float m_flBoundaryDampening; // 0x980 // MPropertyFriendlyName "Set Velocity" - bool m_bSetVelocity; // 0x94c + bool m_bSetVelocity; // 0x984 // MPropertyFriendlyName "Lock to Surface" - bool m_bLockToSurface; // 0x94d + bool m_bLockToSurface; // 0x985 private: - [[maybe_unused]] uint8_t __pad094e[0x2]; // 0x94e + [[maybe_unused]] uint8_t __pad0986[0x2]; // 0x986 public: // MPropertyFriendlyName "Vector Field Grid Spacing Override" - float m_flGridSpacing; // 0x950 + float m_flGridSpacing; // 0x988 }; // Alignment: 33 -// Size: 0x700 +// Size: 0x710 class C_OP_ControlpointLight : public CParticleFunctionOperator { public: // MPropertyFriendlyName "initial color bias" - float m_flScale; // 0x1b0 + float m_flScale; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4cc]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4cc]; // 0x1c4 public: // MPropertyFriendlyName "light 1 control point" - int32_t m_nControlPoint1; // 0x680 + int32_t m_nControlPoint1; // 0x690 // MPropertyFriendlyName "light 2 control point" - int32_t m_nControlPoint2; // 0x684 + int32_t m_nControlPoint2; // 0x694 // MPropertyFriendlyName "light 3 control point" - int32_t m_nControlPoint3; // 0x688 + int32_t m_nControlPoint3; // 0x698 // MPropertyFriendlyName "light 4 control point" - int32_t m_nControlPoint4; // 0x68c + int32_t m_nControlPoint4; // 0x69c // MPropertyFriendlyName "light 1 control point offset" - Vector m_vecCPOffset1; // 0x690 + Vector m_vecCPOffset1; // 0x6a0 // MPropertyFriendlyName "light 2 control point offset" - Vector m_vecCPOffset2; // 0x69c + Vector m_vecCPOffset2; // 0x6ac // MPropertyFriendlyName "light 3 control point offset" - Vector m_vecCPOffset3; // 0x6a8 + Vector m_vecCPOffset3; // 0x6b8 // MPropertyFriendlyName "light 4 control point offset" - Vector m_vecCPOffset4; // 0x6b4 + Vector m_vecCPOffset4; // 0x6c4 // MPropertyFriendlyName "light 1 50% distance" - float m_LightFiftyDist1; // 0x6c0 + float m_LightFiftyDist1; // 0x6d0 // MPropertyFriendlyName "light 1 0% distance" - float m_LightZeroDist1; // 0x6c4 + float m_LightZeroDist1; // 0x6d4 // MPropertyFriendlyName "light 2 50% distance" - float m_LightFiftyDist2; // 0x6c8 + float m_LightFiftyDist2; // 0x6d8 // MPropertyFriendlyName "light 2 0% distance" - float m_LightZeroDist2; // 0x6cc + float m_LightZeroDist2; // 0x6dc // MPropertyFriendlyName "light 3 50% distance" - float m_LightFiftyDist3; // 0x6d0 + float m_LightFiftyDist3; // 0x6e0 // MPropertyFriendlyName "light 3 0% distance" - float m_LightZeroDist3; // 0x6d4 + float m_LightZeroDist3; // 0x6e4 // MPropertyFriendlyName "light 4 50% distance" - float m_LightFiftyDist4; // 0x6d8 + float m_LightFiftyDist4; // 0x6e8 // MPropertyFriendlyName "light 4 0% distance" - float m_LightZeroDist4; // 0x6dc + float m_LightZeroDist4; // 0x6ec // MPropertyFriendlyName "light 1 color" - Color m_LightColor1; // 0x6e0 + Color m_LightColor1; // 0x6f0 // MPropertyFriendlyName "light 2 color" - Color m_LightColor2; // 0x6e4 + Color m_LightColor2; // 0x6f4 // MPropertyFriendlyName "light 3 color" - Color m_LightColor3; // 0x6e8 + Color m_LightColor3; // 0x6f8 // MPropertyFriendlyName "light 4 color" - Color m_LightColor4; // 0x6ec + Color m_LightColor4; // 0x6fc // MPropertyFriendlyName "light 1 type 0=point 1=spot" - bool m_bLightType1; // 0x6f0 + bool m_bLightType1; // 0x700 // MPropertyFriendlyName "light 2 type 0=point 1=spot" - bool m_bLightType2; // 0x6f1 + bool m_bLightType2; // 0x701 // MPropertyFriendlyName "light 3 type 0=point 1=spot" - bool m_bLightType3; // 0x6f2 + bool m_bLightType3; // 0x702 // MPropertyFriendlyName "light 4 type 0=point 1=spot" - bool m_bLightType4; // 0x6f3 + bool m_bLightType4; // 0x703 // MPropertyFriendlyName "light 1 dynamic light" - bool m_bLightDynamic1; // 0x6f4 + bool m_bLightDynamic1; // 0x704 // MPropertyFriendlyName "light 2 dynamic light" - bool m_bLightDynamic2; // 0x6f5 + bool m_bLightDynamic2; // 0x705 // MPropertyFriendlyName "light 3 dynamic light" - bool m_bLightDynamic3; // 0x6f6 + bool m_bLightDynamic3; // 0x706 // MPropertyFriendlyName "light 4 dynamic light" - bool m_bLightDynamic4; // 0x6f7 + bool m_bLightDynamic4; // 0x707 // MPropertyFriendlyName "compute normals from control points" - bool m_bUseNormal; // 0x6f8 + bool m_bUseNormal; // 0x708 // MPropertyFriendlyName "half-lambert normals" - bool m_bUseHLambert; // 0x6f9 + bool m_bUseHLambert; // 0x709 private: - [[maybe_unused]] uint8_t __pad06fa[0x4]; // 0x6fa + [[maybe_unused]] uint8_t __pad070a[0x4]; // 0x70a public: // MPropertyFriendlyName "clamp minimum light value to initial color" - bool m_bClampLowerRange; // 0x6fe + bool m_bClampLowerRange; // 0x70e // MPropertyFriendlyName "clamp maximum light value to initial color" - bool m_bClampUpperRange; // 0x6ff + bool m_bClampUpperRange; // 0x70f }; // Alignment: 2 -// Size: 0x320 +// Size: 0x330 class C_OP_ChooseRandomChildrenInGroup : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1c0 + int32_t m_nChildGroupID; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "Number of Children to Use" - CParticleCollectionFloatInput m_flNumberOfChildren; // 0x1c8 + CParticleCollectionFloatInput m_flNumberOfChildren; // 0x1d8 }; // Alignment: 5 -// Size: 0xe40 +// Size: 0xe80 class C_INIT_CreateWithinBox : public CParticleFunctionInitializer { public: @@ -18294,35 +18987,35 @@ public: CPerParticleVecInput m_vecMin; // 0x1c0 // MPropertyFriendlyName "max" // MVectorIsCoordinate - CPerParticleVecInput m_vecMax; // 0x7f8 + CPerParticleVecInput m_vecMax; // 0x818 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0xe30 + int32_t m_nControlPointNumber; // 0xe70 // MPropertyFriendlyName "use local space" - bool m_bLocalSpace; // 0xe34 + bool m_bLocalSpace; // 0xe74 private: - [[maybe_unused]] uint8_t __pad0e35[0x3]; // 0xe35 + [[maybe_unused]] uint8_t __pad0e75[0x3]; // 0xe75 public: // MPropertyFriendlyName "Random number generator controls" - CRandomNumberGeneratorParameters m_randomnessParameters; // 0xe38 + CRandomNumberGeneratorParameters m_randomnessParameters; // 0xe78 }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_UpdateLightSource : public CParticleFunctionOperator { public: // MPropertyFriendlyName "color tint" - Color m_vColorTint; // 0x1b0 + Color m_vColorTint; // 0x1c0 // MPropertyFriendlyName "amount to multiply light brightness by" - float m_flBrightnessScale; // 0x1b4 + float m_flBrightnessScale; // 0x1c4 // MPropertyFriendlyName "amount to multiply particle system radius by to get light radius" - float m_flRadiusScale; // 0x1b8 + float m_flRadiusScale; // 0x1c8 // MPropertyFriendlyName "minimum radius for created lights" - float m_flMinimumLightingRadius; // 0x1bc + float m_flMinimumLightingRadius; // 0x1cc // MPropertyFriendlyName "maximum radius for created lights" - float m_flMaximumLightingRadius; // 0x1c0 + float m_flMaximumLightingRadius; // 0x1d0 // MPropertyFriendlyName "amount of damping of changes" - float m_flPositionDampingConstant; // 0x1c4 + float m_flPositionDampingConstant; // 0x1d4 }; // Alignment: 2 @@ -18337,47 +19030,47 @@ public: }; // Alignment: 10 -// Size: 0x2b0 +// Size: 0x2c0 class C_OP_PercentageBetweenTransformsVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "percentage minimum" - float m_flInputMin; // 0x1b4 + float m_flInputMin; // 0x1c4 // MPropertyFriendlyName "percentage maximum" - float m_flInputMax; // 0x1b8 + float m_flInputMax; // 0x1c8 // MPropertyFriendlyName "output minimum" // MVectorIsSometimesCoordinate - Vector m_vecOutputMin; // 0x1bc + Vector m_vecOutputMin; // 0x1cc // MPropertyFriendlyName "output maximum" // MVectorIsSometimesCoordinate - Vector m_vecOutputMax; // 0x1c8 + Vector m_vecOutputMax; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 + [[maybe_unused]] uint8_t __pad01e4[0x4]; // 0x1e4 public: // MPropertyFriendlyName "strarting transform" - CParticleTransformInput m_TransformStart; // 0x1d8 + CParticleTransformInput m_TransformStart; // 0x1e8 // MPropertyFriendlyName "end transform" - CParticleTransformInput m_TransformEnd; // 0x240 + CParticleTransformInput m_TransformEnd; // 0x250 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x2a8 + ParticleSetMethod_t m_nSetMethod; // 0x2b8 // MPropertyFriendlyName "only active within input range" - bool m_bActiveRange; // 0x2ac + bool m_bActiveRange; // 0x2bc // MPropertyFriendlyName "treat distance between points as radius" - bool m_bRadialCheck; // 0x2ad + bool m_bRadialCheck; // 0x2bd }; // Alignment: 0 -// Size: 0x210 +// Size: 0x220 class C_OP_RemapNamedModelMeshGroupEndCap : public C_OP_RemapNamedModelElementEndCap { public: // No members available }; -// Alignment: 63 +// Alignment: 64 // Size: 0x3e0 class CParticleSystemDefinition : public IParticleSystemDefinition { @@ -18532,8 +19225,10 @@ public: bool m_bShouldBatch; // 0x30c // MPropertyFriendlyName "Hitboxes fall back to render bounds" bool m_bShouldHitboxesFallbackToRenderBounds; // 0x30d + // MPropertyFriendlyName "Hitboxes fall back to snapshot" + bool m_bShouldHitboxesFallbackToSnapshot; // 0x30e private: - [[maybe_unused]] uint8_t __pad030e[0x2]; // 0x30e + [[maybe_unused]] uint8_t __pad030f[0x1]; // 0x30f public: // MPropertyStartGroup "Rendering Options" // MPropertyFriendlyName "view model effect" @@ -18555,14 +19250,14 @@ public: // MParticleAdvancedField bool m_bShouldSort; // 0x328 private: - [[maybe_unused]] uint8_t __pad0329[0x3f]; // 0x329 + [[maybe_unused]] uint8_t __pad0329[0x47]; // 0x329 public: // MPropertySuppressField - CUtlVector< ParticleControlPointConfiguration_t > m_controlPointConfigurations; // 0x368 + CUtlVector< ParticleControlPointConfiguration_t > m_controlPointConfigurations; // 0x370 }; // Alignment: 8 -// Size: 0xb20 +// Size: 0xb50 class C_OP_RenderMaterialProxy : public CParticleFunctionRenderer { public: @@ -18578,46 +19273,46 @@ public: // MPropertyFriendlyName "material override enable" CParticleCollectionFloatInput m_flMaterialOverrideEnabled; // 0x228 // MPropertyFriendlyName "model tint" - CParticleCollectionVecInput m_vecColorScale; // 0x378 + CParticleCollectionVecInput m_vecColorScale; // 0x380 // MPropertyFriendlyName "model alpha" - CPerParticleFloatInput m_flAlpha; // 0x9b0 + CPerParticleFloatInput m_flAlpha; // 0x9d8 // MPropertyFriendlyName "model tint blend type" - ParticleColorBlendType_t m_nColorBlendType; // 0xb00 + ParticleColorBlendType_t m_nColorBlendType; // 0xb30 }; // Alignment: 11 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_RemapCPtoScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input control point number" - int32_t m_nCPInput; // 0x1b0 + int32_t m_nCPInput; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "input field 0-2 X/Y/Z" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nField; // 0x1b8 + int32_t m_nField; // 0x1c8 // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1bc + float m_flInputMin; // 0x1cc // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1c0 + float m_flInputMax; // 0x1d0 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c4 + float m_flOutputMin; // 0x1d4 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c8 + float m_flOutputMax; // 0x1d8 // MPropertyFriendlyName "emitter lifetime start time (seconds)" - float m_flStartTime; // 0x1cc + float m_flStartTime; // 0x1dc // MPropertyFriendlyName "emitter lifetime end time (seconds)" - float m_flEndTime; // 0x1d0 + float m_flEndTime; // 0x1e0 // MPropertyFriendlyName "interpolation scale" - float m_flInterpRate; // 0x1d4 + float m_flInterpRate; // 0x1e4 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1d8 + ParticleSetMethod_t m_nSetMethod; // 0x1e8 }; // Alignment: 1 -// Size: 0x310 +// Size: 0x320 class C_INIT_DistanceToNeighborCull : public CParticleFunctionInitializer { public: @@ -18626,38 +19321,38 @@ public: }; // Alignment: 4 -// Size: 0x870 +// Size: 0x8a0 class C_OP_SetSingleControlPointPosition : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "only set position once" - bool m_bSetOnce; // 0x1c0 + bool m_bSetOnce; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 public: // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c4 + int32_t m_nCP1; // 0x1d4 // MPropertyFriendlyName "control point location" - CParticleCollectionVecInput m_vecCP1Pos; // 0x1c8 + CParticleCollectionVecInput m_vecCP1Pos; // 0x1d8 // MPropertyFriendlyName "transform to offset positions from" // MParticleInputOptional - CParticleTransformInput m_transformInput; // 0x800 + CParticleTransformInput m_transformInput; // 0x830 }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_SnapshotRigidSkinToBones : public CParticleFunctionOperator { public: // MPropertyFriendlyName "rotate normals" - bool m_bTransformNormals; // 0x1b0 + bool m_bTransformNormals; // 0x1c0 // MPropertyFriendlyName "scale radii" - bool m_bTransformRadii; // 0x1b1 + bool m_bTransformRadii; // 0x1c1 private: - [[maybe_unused]] uint8_t __pad01b2[0x2]; // 0x1b2 + [[maybe_unused]] uint8_t __pad01c2[0x2]; // 0x1c2 public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b4 + int32_t m_nControlPointNumber; // 0x1c4 }; // Alignment: 0 @@ -18685,119 +19380,128 @@ public: }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_SetCPtoVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input control point number" - int32_t m_nCPInput; // 0x1b0 + int32_t m_nCPInput; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 }; -// Alignment: 3 -// Size: 0x940 +// Alignment: 5 +// Size: 0xae0 class C_OP_DragRelativeToPlane : public CParticleFunctionOperator { public: // MPropertyFriendlyName "dampening" - CParticleCollectionFloatInput m_flDragAtPlane; // 0x1b0 + CParticleCollectionFloatInput m_flDragAtPlane; // 0x1c0 + // MPropertyFriendlyName "falloff" + CParticleCollectionFloatInput m_flFalloff; // 0x318 + // MPropertyFriendlyName "dampen on only one side of plane" + bool m_bDirectional; // 0x470 +private: + [[maybe_unused]] uint8_t __pad0471[0x7]; // 0x471 +public: // MPropertyFriendlyName "plane normal" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecPlaneNormal; // 0x300 + CParticleCollectionVecInput m_vecPlaneNormal; // 0x478 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x938 + int32_t m_nControlPointNumber; // 0xad0 }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_LerpEndCapScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "value to lerp to" - float m_flOutput; // 0x1b4 + float m_flOutput; // 0x1c4 // MPropertyFriendlyName "lerp time" - float m_flLerpTime; // 0x1b8 + float m_flLerpTime; // 0x1c8 }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_RemapControlPointDirectionToVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "scale factor" - float m_flScale; // 0x1b4 + float m_flScale; // 0x1c4 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b8 + int32_t m_nControlPointNumber; // 0x1c8 }; // Alignment: 8 -// Size: 0x240 +// Size: 0x250 class C_OP_RemapTransformVisibilityToScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1b0 + ParticleSetMethod_t m_nSetMethod; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b8 + CParticleTransformInput m_TransformInput; // 0x1c8 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x220 + ParticleAttributeIndex_t m_nFieldOutput; // 0x230 // MPropertyFriendlyName "CP visibility minimum" - float m_flInputMin; // 0x224 + float m_flInputMin; // 0x234 // MPropertyFriendlyName "CP visibility maximum" - float m_flInputMax; // 0x228 + float m_flInputMax; // 0x238 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x22c + float m_flOutputMin; // 0x23c // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x230 + float m_flOutputMax; // 0x240 // MPropertyFriendlyName "visibility radius" - float m_flRadius; // 0x234 + float m_flRadius; // 0x244 }; // Alignment: 8 -// Size: 0x490 +// Size: 0x4b0 class C_OP_SetRandomControlPointPosition : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "set positions in world space" - bool m_bUseWorldLocation; // 0x1c0 + bool m_bUseWorldLocation; // 0x1d0 // MPropertyFriendlyName "inherit CP orientation" - bool m_bOrient; // 0x1c1 + bool m_bOrient; // 0x1d1 private: - [[maybe_unused]] uint8_t __pad01c2[0x2]; // 0x1c2 + [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 public: // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c4 + int32_t m_nCP1; // 0x1d4 // MPropertyFriendlyName "control point to offset positions from" - int32_t m_nHeadLocation; // 0x1c8 + int32_t m_nHeadLocation; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc public: // MPropertyFriendlyName "re-randomize rate (-1 for once only)" - CParticleCollectionFloatInput m_flReRandomRate; // 0x1d0 + CParticleCollectionFloatInput m_flReRandomRate; // 0x1e0 // MPropertyFriendlyName "control point min" - Vector m_vecCPMinPos; // 0x320 + Vector m_vecCPMinPos; // 0x338 // MPropertyFriendlyName "control point max" - Vector m_vecCPMaxPos; // 0x32c + Vector m_vecCPMaxPos; // 0x344 // MPropertyFriendlyName "Interpolation" - CParticleCollectionFloatInput m_flInterpolation; // 0x338 + CParticleCollectionFloatInput m_flInterpolation; // 0x350 }; // Alignment: 32 // Size: 0xc8 class CNewParticleEffect : public IParticleEffect { +private: + [[maybe_unused]] uint8_t __pad0008[0x8]; // 0x8 public: CNewParticleEffect* m_pNext; // 0x10 CNewParticleEffect* m_pPrev; // 0x18 @@ -18847,7 +19551,7 @@ public: }; // Alignment: 6 -// Size: 0x610 +// Size: 0x620 class C_OP_RenderGpuImplicit : public CParticleFunctionRenderer { public: @@ -18858,42 +19562,42 @@ private: [[maybe_unused]] uint8_t __pad0201[0x7]; // 0x201 public: CParticleCollectionRendererFloatInput m_fGridSize; // 0x208 - CParticleCollectionRendererFloatInput m_fRadiusScale; // 0x358 + CParticleCollectionRendererFloatInput m_fRadiusScale; // 0x360 // MPropertyAttributeRange ".1 .95" - CParticleCollectionRendererFloatInput m_fIsosurfaceThreshold; // 0x4a8 + CParticleCollectionRendererFloatInput m_fIsosurfaceThreshold; // 0x4b8 // MPropertyFriendlyName "scale CP (grid size/particle radius/threshold = x/y/z)" - int32_t m_nScaleCP; // 0x5f8 + int32_t m_nScaleCP; // 0x610 private: - [[maybe_unused]] uint8_t __pad05fc[0x4]; // 0x5fc + [[maybe_unused]] uint8_t __pad0614[0x4]; // 0x614 public: - CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x600 + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x618 }; // Alignment: 1 -// Size: 0x300 +// Size: 0x320 class C_OP_EndCapTimedFreeze : public CParticleFunctionOperator { public: // MPropertyFriendlyName "freeze time" - CParticleCollectionFloatInput m_flFreezeTime; // 0x1b0 + CParticleCollectionFloatInput m_flFreezeTime; // 0x1c0 }; // Alignment: 3 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_SetControlPointToPlayer : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c0 + int32_t m_nCP1; // 0x1d0 // MPropertyFriendlyName "control point offset" // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1c4 + Vector m_vecCP1Pos; // 0x1d4 // MPropertyFriendlyName "use eye orientation" - bool m_bOrientToEyes; // 0x1d0 + bool m_bOrientToEyes; // 0x1e0 }; // Alignment: 0 -// Size: 0x210 +// Size: 0x220 class C_OP_RemapNamedModelSequenceOnceTimed : public C_OP_RemapNamedModelElementOnceTimed { public: @@ -18901,130 +19605,132 @@ public: }; // Alignment: 8 -// Size: 0x1f0 +// Size: 0x210 class C_OP_TurbulenceForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "noise scale 0" - float m_flNoiseCoordScale0; // 0x1b0 + float m_flNoiseCoordScale0; // 0x1d0 // MPropertyFriendlyName "noise scale 1" - float m_flNoiseCoordScale1; // 0x1b4 + float m_flNoiseCoordScale1; // 0x1d4 // MPropertyFriendlyName "noise scale 2" - float m_flNoiseCoordScale2; // 0x1b8 + float m_flNoiseCoordScale2; // 0x1d8 // MPropertyFriendlyName "noise scale 3" - float m_flNoiseCoordScale3; // 0x1bc + float m_flNoiseCoordScale3; // 0x1dc // MPropertyFriendlyName "noise amount 0" // MVectorIsCoordinate - Vector m_vecNoiseAmount0; // 0x1c0 + Vector m_vecNoiseAmount0; // 0x1e0 // MPropertyFriendlyName "noise amount 1" // MVectorIsCoordinate - Vector m_vecNoiseAmount1; // 0x1cc + Vector m_vecNoiseAmount1; // 0x1ec // MPropertyFriendlyName "noise amount 2" // MVectorIsCoordinate - Vector m_vecNoiseAmount2; // 0x1d8 + Vector m_vecNoiseAmount2; // 0x1f8 // MPropertyFriendlyName "noise amount 3" // MVectorIsCoordinate - Vector m_vecNoiseAmount3; // 0x1e4 + Vector m_vecNoiseAmount3; // 0x204 }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_ReinitializeScalarEndCap : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "minimum" - float m_flOutputMin; // 0x1b4 + float m_flOutputMin; // 0x1c4 // MPropertyFriendlyName "maximum" - float m_flOutputMax; // 0x1b8 + float m_flOutputMax; // 0x1c8 }; // Alignment: 8 -// Size: 0x200 +// Size: 0x210 class C_OP_RampScalarLinear : public CParticleFunctionOperator { public: // MPropertyFriendlyName "ramp rate min" - float m_RateMin; // 0x1b0 + float m_RateMin; // 0x1c0 // MPropertyFriendlyName "ramp rate max" - float m_RateMax; // 0x1b4 + float m_RateMax; // 0x1c4 // MPropertyFriendlyName "start time min" - float m_flStartTime_min; // 0x1b8 + float m_flStartTime_min; // 0x1c8 // MPropertyFriendlyName "start time max" - float m_flStartTime_max; // 0x1bc + float m_flStartTime_max; // 0x1cc // MPropertyFriendlyName "end time min" - float m_flEndTime_min; // 0x1c0 + float m_flEndTime_min; // 0x1d0 // MPropertyFriendlyName "end time max" - float m_flEndTime_max; // 0x1c4 + float m_flEndTime_max; // 0x1d4 private: - [[maybe_unused]] uint8_t __pad01c8[0x28]; // 0x1c8 + [[maybe_unused]] uint8_t __pad01d8[0x28]; // 0x1d8 public: // MPropertyFriendlyName "ramp field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1f0 + ParticleAttributeIndex_t m_nField; // 0x200 // MPropertyFriendlyName "start/end proportional" - bool m_bProportionalOp; // 0x1f4 + bool m_bProportionalOp; // 0x204 }; // Alignment: 6 -// Size: 0x200 +// Size: 0x210 class C_OP_InterpolateRadius : public CParticleFunctionOperator { public: // MPropertyFriendlyName "start time" - float m_flStartTime; // 0x1b0 + float m_flStartTime; // 0x1c0 // MPropertyFriendlyName "end time" - float m_flEndTime; // 0x1b4 + float m_flEndTime; // 0x1c4 // MPropertyFriendlyName "radius start scale" - float m_flStartScale; // 0x1b8 + float m_flStartScale; // 0x1c8 // MPropertyFriendlyName "radius end scale" - float m_flEndScale; // 0x1bc + float m_flEndScale; // 0x1cc // MPropertyFriendlyName "ease in and out" - bool m_bEaseInAndOut; // 0x1c0 + bool m_bEaseInAndOut; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 public: // MPropertyFriendlyName "scale bias" - float m_flBias; // 0x1c4 + float m_flBias; // 0x1d4 }; -// Alignment: 11 -// Size: 0x3c0 +// Alignment: 12 +// Size: 0x3e0 class C_OP_SetControlPointToImpactPoint : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point to set" - int32_t m_nCPOut; // 0x1c0 + int32_t m_nCPOut; // 0x1d0 // MPropertyFriendlyName "control point to trace from" - int32_t m_nCPIn; // 0x1c4 + int32_t m_nCPIn; // 0x1d4 // MPropertyFriendlyName "trace update rate" - float m_flUpdateRate; // 0x1c8 + float m_flUpdateRate; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc public: // MPropertyFriendlyName "max trace length" - CParticleCollectionFloatInput m_flTraceLength; // 0x1d0 + CParticleCollectionFloatInput m_flTraceLength; // 0x1e0 // MPropertyFriendlyName "offset start point amount" - float m_flStartOffset; // 0x320 + float m_flStartOffset; // 0x338 // MPropertyFriendlyName "offset end point amount" - float m_flOffset; // 0x324 + float m_flOffset; // 0x33c // MPropertyFriendlyName "trace direction override" // MVectorIsCoordinate - Vector m_vecTraceDir; // 0x328 + Vector m_vecTraceDir; // 0x340 // MPropertyFriendlyName "trace collision group" - char m_CollisionGroupName[128]; // 0x334 + char m_CollisionGroupName[128]; // 0x34c // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x3b4 + ParticleTraceSet_t m_nTraceSet; // 0x3cc // MPropertyFriendlyName "set to trace endpoint if no collision" - bool m_bSetToEndpoint; // 0x3b8 + bool m_bSetToEndpoint; // 0x3d0 // MPropertyFriendlyName "trace to closest surface along all cardinal directions" - bool m_bTraceToClosestSurface; // 0x3b9 + bool m_bTraceToClosestSurface; // 0x3d1 + // MPropertyFriendlyName "include water" + bool m_bIncludeWater; // 0x3d2 }; // Alignment: 4 -// Size: 0x360 +// Size: 0x370 class C_OP_RenderVRHapticEvent : public CParticleFunctionRenderer { public: @@ -19043,159 +19749,159 @@ public: }; // Alignment: 15 -// Size: 0x9e0 +// Size: 0xa10 class C_OP_PositionLock : public CParticleFunctionOperator { public: // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b0 + CParticleTransformInput m_TransformInput; // 0x1c0 // MPropertyFriendlyName "start fadeout min" - float m_flStartTime_min; // 0x218 + float m_flStartTime_min; // 0x228 // MPropertyFriendlyName "start fadeout max" - float m_flStartTime_max; // 0x21c + float m_flStartTime_max; // 0x22c // MPropertyFriendlyName "start fadeout exponent" - float m_flStartTime_exp; // 0x220 + float m_flStartTime_exp; // 0x230 // MPropertyFriendlyName "end fadeout min" - float m_flEndTime_min; // 0x224 + float m_flEndTime_min; // 0x234 // MPropertyFriendlyName "end fadeout max" - float m_flEndTime_max; // 0x228 + float m_flEndTime_max; // 0x238 // MPropertyFriendlyName "end fadeout exponent" - float m_flEndTime_exp; // 0x22c + float m_flEndTime_exp; // 0x23c // MPropertyFriendlyName "distance fade range" - float m_flRange; // 0x230 + float m_flRange; // 0x240 private: - [[maybe_unused]] uint8_t __pad0234[0x4]; // 0x234 + [[maybe_unused]] uint8_t __pad0244[0x4]; // 0x244 public: // MPropertyFriendlyName "distance fade bias" - CParticleCollectionFloatInput m_flRangeBias; // 0x238 + CParticleCollectionFloatInput m_flRangeBias; // 0x248 // MPropertyFriendlyName "instant jump threshold" - float m_flJumpThreshold; // 0x388 + float m_flJumpThreshold; // 0x3a0 // MPropertyFriendlyName "previous position scale" - float m_flPrevPosScale; // 0x38c + float m_flPrevPosScale; // 0x3a4 // MPropertyFriendlyName "lock rotation" - bool m_bLockRot; // 0x390 + bool m_bLockRot; // 0x3a8 private: - [[maybe_unused]] uint8_t __pad0391[0x7]; // 0x391 + [[maybe_unused]] uint8_t __pad03a9[0x7]; // 0x3a9 public: // MPropertyFriendlyName "component scale" - CParticleCollectionVecInput m_vecScale; // 0x398 + CParticleCollectionVecInput m_vecScale; // 0x3b0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x9d0 + ParticleAttributeIndex_t m_nFieldOutput; // 0xa08 // MPropertyFriendlyName "output field prev" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutputPrev; // 0x9d4 + ParticleAttributeIndex_t m_nFieldOutputPrev; // 0xa0c }; // Alignment: 15 -// Size: 0x5f0 +// Size: 0x610 class C_OP_OscillateVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "oscillation rate min" // MVectorIsSometimesCoordinate - Vector m_RateMin; // 0x1b0 + Vector m_RateMin; // 0x1c0 // MPropertyFriendlyName "oscillation rate max" // MVectorIsSometimesCoordinate - Vector m_RateMax; // 0x1bc + Vector m_RateMax; // 0x1cc // MPropertyFriendlyName "oscillation frequency min" // MVectorIsSometimesCoordinate - Vector m_FrequencyMin; // 0x1c8 + Vector m_FrequencyMin; // 0x1d8 // MPropertyFriendlyName "oscillation frequency max" // MVectorIsSometimesCoordinate - Vector m_FrequencyMax; // 0x1d4 + Vector m_FrequencyMax; // 0x1e4 // MPropertyFriendlyName "oscillation field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nField; // 0x1e0 + ParticleAttributeIndex_t m_nField; // 0x1f0 // MPropertyFriendlyName "proportional 0/1" - bool m_bProportional; // 0x1e4 + bool m_bProportional; // 0x1f4 // MPropertyFriendlyName "start/end proportional" - bool m_bProportionalOp; // 0x1e5 + bool m_bProportionalOp; // 0x1f5 // MPropertyFriendlyName "offset instead of accelerate position" - bool m_bOffset; // 0x1e6 + bool m_bOffset; // 0x1f6 private: - [[maybe_unused]] uint8_t __pad01e7[0x1]; // 0x1e7 + [[maybe_unused]] uint8_t __pad01f7[0x1]; // 0x1f7 public: // MPropertyFriendlyName "start time min" - float m_flStartTime_min; // 0x1e8 + float m_flStartTime_min; // 0x1f8 // MPropertyFriendlyName "start time max" - float m_flStartTime_max; // 0x1ec + float m_flStartTime_max; // 0x1fc // MPropertyFriendlyName "end time min" - float m_flEndTime_min; // 0x1f0 + float m_flEndTime_min; // 0x200 // MPropertyFriendlyName "end time max" - float m_flEndTime_max; // 0x1f4 + float m_flEndTime_max; // 0x204 // MPropertyFriendlyName "oscillation multiplier" - CPerParticleFloatInput m_flOscMult; // 0x1f8 + CPerParticleFloatInput m_flOscMult; // 0x208 // MPropertyFriendlyName "oscillation start phase" - CPerParticleFloatInput m_flOscAdd; // 0x348 + CPerParticleFloatInput m_flOscAdd; // 0x360 // MPropertyFriendlyName "rate scale" - CPerParticleFloatInput m_flRateScale; // 0x498 + CPerParticleFloatInput m_flRateScale; // 0x4b8 }; // Alignment: 10 -// Size: 0x710 +// Size: 0x740 class C_OP_MovementSkinnedPositionFromCPSnapshot : public CParticleFunctionOperator { public: // MPropertyFriendlyName "snapshot control point number" - int32_t m_nSnapshotControlPointNumber; // 0x1b0 + int32_t m_nSnapshotControlPointNumber; // 0x1c0 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b4 + int32_t m_nControlPointNumber; // 0x1c4 // MPropertyFriendlyName "random order" - bool m_bRandom; // 0x1b8 + bool m_bRandom; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01b9[0x3]; // 0x1b9 + [[maybe_unused]] uint8_t __pad01c9[0x3]; // 0x1c9 public: // MPropertyFriendlyName "random seed" - int32_t m_nRandomSeed; // 0x1bc + int32_t m_nRandomSeed; // 0x1cc // MPropertyFriendlyName "set normal" - bool m_bSetNormal; // 0x1c0 + bool m_bSetNormal; // 0x1d0 // MPropertyFriendlyName "set radius" - bool m_bSetRadius; // 0x1c1 + bool m_bSetRadius; // 0x1d1 private: - [[maybe_unused]] uint8_t __pad01c2[0x6]; // 0x1c2 + [[maybe_unused]] uint8_t __pad01d2[0x6]; // 0x1d2 public: // MPropertyFriendlyName "particle increment amount" - CParticleCollectionFloatInput m_flIncrement; // 0x1c8 + CParticleCollectionFloatInput m_flIncrement; // 0x1d8 // MPropertyFriendlyName "Full Loop Increment Amount" - CParticleCollectionFloatInput m_nFullLoopIncrement; // 0x318 + CParticleCollectionFloatInput m_nFullLoopIncrement; // 0x330 // MPropertyFriendlyName "Snapshot start point" - CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x468 + CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x488 // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x5b8 + CPerParticleFloatInput m_flInterpolation; // 0x5e0 }; // Alignment: 8 -// Size: 0x340 +// Size: 0x350 class C_OP_SetControlPointOrientation : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "set orientation in world space" - bool m_bUseWorldLocation; // 0x1c0 + bool m_bUseWorldLocation; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c1[0x1]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01d1[0x1]; // 0x1d1 public: // MPropertyFriendlyName "randomize" - bool m_bRandomize; // 0x1c2 + bool m_bRandomize; // 0x1d2 // MPropertyFriendlyName "only set orientation once" - bool m_bSetOnce; // 0x1c3 + bool m_bSetOnce; // 0x1d3 // MPropertyFriendlyName "control point number" - int32_t m_nCP; // 0x1c4 + int32_t m_nCP; // 0x1d4 // MPropertyFriendlyName "control point to offset orientation from" - int32_t m_nHeadLocation; // 0x1c8 + int32_t m_nHeadLocation; // 0x1d8 // MPropertyFriendlyName "pitch yaw roll" - QAngle m_vecRotation; // 0x1cc + QAngle m_vecRotation; // 0x1dc // MPropertyFriendlyName "pitch yaw roll max" - QAngle m_vecRotationB; // 0x1d8 + QAngle m_vecRotationB; // 0x1e8 private: - [[maybe_unused]] uint8_t __pad01e4[0x4]; // 0x1e4 + [[maybe_unused]] uint8_t __pad01f4[0x4]; // 0x1f4 public: // MPropertyFriendlyName "interpolation" - CParticleCollectionFloatInput m_flInterpolation; // 0x1e8 + CParticleCollectionFloatInput m_flInterpolation; // 0x1f8 }; // Alignment: 4 -// Size: 0x870 +// Size: 0x890 class C_INIT_VelocityFromCP : public CParticleFunctionInitializer { public: @@ -19203,15 +19909,15 @@ public: CParticleCollectionVecInput m_velocityInput; // 0x1c0 // MPropertyFriendlyName "local space" // MParticleInputOptional - CParticleTransformInput m_transformInput; // 0x7f8 + CParticleTransformInput m_transformInput; // 0x818 // MPropertyFriendlyName "velocity scale" - float m_flVelocityScale; // 0x860 + float m_flVelocityScale; // 0x880 // MPropertyFriendlyName "direction only" - bool m_bDirectionOnly; // 0x864 + bool m_bDirectionOnly; // 0x884 }; // Alignment: 61 -// Size: 0x2390 +// Size: 0x2470 class CBaseRendererSource2 : public CParticleFunctionRenderer { public: @@ -19221,236 +19927,236 @@ public: CParticleCollectionRendererFloatInput m_flRadiusScale; // 0x200 // MPropertyFriendlyName "alpha scale" // MPropertySortPriority "700" - CParticleCollectionRendererFloatInput m_flAlphaScale; // 0x350 + CParticleCollectionRendererFloatInput m_flAlphaScale; // 0x358 // MPropertyFriendlyName "rotation roll scale" // MPropertySortPriority "700" - CParticleCollectionRendererFloatInput m_flRollScale; // 0x4a0 + CParticleCollectionRendererFloatInput m_flRollScale; // 0x4b0 // MPropertyFriendlyName "per-particle alpha scale attribute" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "700" - ParticleAttributeIndex_t m_nAlpha2Field; // 0x5f0 + ParticleAttributeIndex_t m_nAlpha2Field; // 0x608 private: - [[maybe_unused]] uint8_t __pad05f4[0x4]; // 0x5f4 + [[maybe_unused]] uint8_t __pad060c[0x4]; // 0x60c public: // MPropertyFriendlyName "color blend" // MPropertySortPriority "700" - CParticleCollectionRendererVecInput m_vecColorScale; // 0x5f8 + CParticleCollectionRendererVecInput m_vecColorScale; // 0x610 // MPropertyFriendlyName "color blend type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0xc30 + ParticleColorBlendType_t m_nColorBlendType; // 0xc68 // MPropertyStartGroup "+Material" // MPropertyFriendlyName "Shader" // MPropertySortPriority "600" - SpriteCardShaderType_t m_nShaderType; // 0xc34 + SpriteCardShaderType_t m_nShaderType; // 0xc6c // MPropertyFriendlyName "Custom Shader" // MPropertySuppressExpr "m_nShaderType != SPRITECARD_SHADER_CUSTOM" // MPropertySortPriority "600" - CUtlString m_strShaderOverride; // 0xc38 + CUtlString m_strShaderOverride; // 0xc70 // MPropertyFriendlyName "X offset of center point" // MPropertySortPriority "600" - CParticleCollectionRendererFloatInput m_flCenterXOffset; // 0xc40 + CParticleCollectionRendererFloatInput m_flCenterXOffset; // 0xc78 // MPropertyFriendlyName "Y offset of center point" // MPropertySortPriority "600" - CParticleCollectionRendererFloatInput m_flCenterYOffset; // 0xd90 + CParticleCollectionRendererFloatInput m_flCenterYOffset; // 0xdd0 // MPropertyFriendlyName "Bump Strength" // MPropertySortPriority "600" - float m_flBumpStrength; // 0xee0 + float m_flBumpStrength; // 0xf28 // MPropertyFriendlyName "Sheet Crop Behavior" // MPropertySortPriority "600" - ParticleSequenceCropOverride_t m_nCropTextureOverride; // 0xee4 + ParticleSequenceCropOverride_t m_nCropTextureOverride; // 0xf2c // MPropertyFriendlyName "Textures" // MParticleRequireDefaultArrayEntry // MPropertyAutoExpandSelf // MPropertySortPriority "600" - CUtlVector< TextureGroup_t > m_vecTexturesInput; // 0xee8 + CUtlVector< TextureGroup_t > m_vecTexturesInput; // 0xf30 // MPropertyStartGroup "Animation" // MPropertyFriendlyName "animation rate" // MPropertyAttributeRange "0 5" // MPropertySortPriority "500" - float m_flAnimationRate; // 0xf00 + float m_flAnimationRate; // 0xf48 // MPropertyFriendlyName "animation type" // MPropertySortPriority "500" - AnimationType_t m_nAnimationType; // 0xf04 + AnimationType_t m_nAnimationType; // 0xf4c // MPropertyFriendlyName "set animation value in FPS" // MPropertySortPriority "500" - bool m_bAnimateInFPS; // 0xf08 + bool m_bAnimateInFPS; // 0xf50 private: - [[maybe_unused]] uint8_t __pad0f09[0x7]; // 0xf09 + [[maybe_unused]] uint8_t __pad0f51[0x7]; // 0xf51 public: // MPropertyStartGroup "Lighting and Shadows" // MPropertyFriendlyName "self illum amount" // MPropertyAttributeRange "0 2" // MPropertySortPriority "400" - CParticleCollectionRendererFloatInput m_flSelfIllumAmount; // 0xf10 + CParticleCollectionRendererFloatInput m_flSelfIllumAmount; // 0xf58 // MPropertyFriendlyName "diffuse lighting amount" // MPropertyAttributeRange "0 1" // MPropertySortPriority "400" - CParticleCollectionRendererFloatInput m_flDiffuseAmount; // 0x1060 + CParticleCollectionRendererFloatInput m_flDiffuseAmount; // 0x10b0 // MPropertyFriendlyName "diffuse lighting origin Control Point" // MPropertySortPriority "400" - int32_t m_nLightingControlPoint; // 0x11b0 + int32_t m_nLightingControlPoint; // 0x1208 // MPropertyFriendlyName "self illum per-particle" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "400" - ParticleAttributeIndex_t m_nSelfIllumPerParticle; // 0x11b4 + ParticleAttributeIndex_t m_nSelfIllumPerParticle; // 0x120c // MPropertyStartGroup "+Color and alpha adjustments" // MPropertyFriendlyName "output blend mode" // MPropertySortPriority "300" - ParticleOutputBlendMode_t m_nOutputBlendMode; // 0x11b8 + ParticleOutputBlendMode_t m_nOutputBlendMode; // 0x1210 // MPropertyFriendlyName "Gamma-correct vertex colors" // MPropertySortPriority "300" - bool m_bGammaCorrectVertexColors; // 0x11bc + bool m_bGammaCorrectVertexColors; // 0x1214 // MPropertyFriendlyName "Saturate color pre alphablend" // MPropertySortPriority "300" // MPropertySuppressExpr "mod!=dota" - bool m_bSaturateColorPreAlphaBlend; // 0x11bd + bool m_bSaturateColorPreAlphaBlend; // 0x1215 private: - [[maybe_unused]] uint8_t __pad11be[0x2]; // 0x11be + [[maybe_unused]] uint8_t __pad1216[0x2]; // 0x1216 public: // MPropertyFriendlyName "add self amount over alphablend" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flAddSelfAmount; // 0x11c0 + CParticleCollectionRendererFloatInput m_flAddSelfAmount; // 0x1218 // MPropertyFriendlyName "desaturation amount" // MPropertyAttributeRange "0 1" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flDesaturation; // 0x1310 + CParticleCollectionRendererFloatInput m_flDesaturation; // 0x1370 // MPropertyFriendlyName "overbright factor" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flOverbrightFactor; // 0x1460 + CParticleCollectionRendererFloatInput m_flOverbrightFactor; // 0x14c8 // MPropertyFriendlyName "HSV Shift Control Point" // MPropertySortPriority "300" - int32_t m_nHSVShiftControlPoint; // 0x15b0 + int32_t m_nHSVShiftControlPoint; // 0x1620 // MPropertyFriendlyName "Apply fog to particle" // MPropertySortPriority "300" - ParticleFogType_t m_nFogType; // 0x15b4 + ParticleFogType_t m_nFogType; // 0x1624 // MPropertyFriendlyName "Fog Scale" // MPropertySortPriority "300" // MPropertySuppressExpr "mod != hlx" - CParticleCollectionRendererFloatInput m_flFogAmount; // 0x15b8 + CParticleCollectionRendererFloatInput m_flFogAmount; // 0x1628 // MPropertyFriendlyName "Apply fog of war to color" // MPropertySortPriority "300" // MPropertySuppressExpr "mod != dota" - bool m_bTintByFOW; // 0x1708 + bool m_bTintByFOW; // 0x1780 // MPropertyFriendlyName "Apply global light to color" // MPropertySortPriority "300" // MPropertySuppressExpr "mod != dota" - bool m_bTintByGlobalLight; // 0x1709 + bool m_bTintByGlobalLight; // 0x1781 private: - [[maybe_unused]] uint8_t __pad170a[0x2]; // 0x170a + [[maybe_unused]] uint8_t __pad1782[0x2]; // 0x1782 public: // MPropertyStartGroup "Color and alpha adjustments/Alpha Reference" // MPropertyFriendlyName "alpha reference" // MPropertySortPriority "300" - SpriteCardPerParticleScale_t m_nPerParticleAlphaReference; // 0x170c + SpriteCardPerParticleScale_t m_nPerParticleAlphaReference; // 0x1784 // MPropertyFriendlyName "alpha reference window size" // MPropertySortPriority "300" - SpriteCardPerParticleScale_t m_nPerParticleAlphaRefWindow; // 0x1710 + SpriteCardPerParticleScale_t m_nPerParticleAlphaRefWindow; // 0x1788 // MPropertyFriendlyName "alpha reference type" // MPropertySortPriority "300" - ParticleAlphaReferenceType_t m_nAlphaReferenceType; // 0x1714 + ParticleAlphaReferenceType_t m_nAlphaReferenceType; // 0x178c // MPropertyFriendlyName "alpha reference softness" // MPropertyAttributeRange "0 1" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flAlphaReferenceSoftness; // 0x1718 + CParticleCollectionRendererFloatInput m_flAlphaReferenceSoftness; // 0x1790 // MPropertyFriendlyName "source alpha value to map to alpha of zero" // MPropertyAttributeRange "0 1" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flSourceAlphaValueToMapToZero; // 0x1868 + CParticleCollectionRendererFloatInput m_flSourceAlphaValueToMapToZero; // 0x18e8 // MPropertyFriendlyName "source alpha value to map to alpha of 1" // MPropertyAttributeRange "0 1" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flSourceAlphaValueToMapToOne; // 0x19b8 + CParticleCollectionRendererFloatInput m_flSourceAlphaValueToMapToOne; // 0x1a40 // MPropertyStartGroup "Refraction" // MPropertyFriendlyName "refract background" // MPropertySortPriority "200" - bool m_bRefract; // 0x1b08 + bool m_bRefract; // 0x1b98 // MPropertyFriendlyName "refract draws opaque - alpha scales refraction" // MPropertySortPriority "200" // MPropertySuppressExpr "!m_bRefract" - bool m_bRefractSolid; // 0x1b09 + bool m_bRefractSolid; // 0x1b99 private: - [[maybe_unused]] uint8_t __pad1b0a[0x6]; // 0x1b0a + [[maybe_unused]] uint8_t __pad1b9a[0x6]; // 0x1b9a public: // MPropertyFriendlyName "refract amount" // MPropertyAttributeRange "-2 2" // MPropertySortPriority "200" // MPropertySuppressExpr "!m_bRefract" - CParticleCollectionRendererFloatInput m_flRefractAmount; // 0x1b10 + CParticleCollectionRendererFloatInput m_flRefractAmount; // 0x1ba0 // MPropertyFriendlyName "refract blur radius" // MPropertySortPriority "200" // MPropertySuppressExpr "!m_bRefract" - int32_t m_nRefractBlurRadius; // 0x1c60 + int32_t m_nRefractBlurRadius; // 0x1cf8 // MPropertyFriendlyName "refract blur type" // MPropertySortPriority "200" // MPropertySuppressExpr "!m_bRefract" - BlurFilterType_t m_nRefractBlurType; // 0x1c64 + BlurFilterType_t m_nRefractBlurType; // 0x1cfc // MPropertyStartGroup // MPropertyFriendlyName "Only Render in effects bloom pass" // MPropertySortPriority "1100" - bool m_bOnlyRenderInEffectsBloomPass; // 0x1c68 + bool m_bOnlyRenderInEffectsBloomPass; // 0x1d00 // MPropertyFriendlyName "Only Render in effects water pass" // MPropertySortPriority "1050" // MPropertySuppressExpr "mod != csgo" - bool m_bOnlyRenderInEffectsWaterPass; // 0x1c69 + bool m_bOnlyRenderInEffectsWaterPass; // 0x1d01 // MPropertyFriendlyName "Use Mixed Resolution Rendering" // MPropertySortPriority "1200" - bool m_bUseMixedResolutionRendering; // 0x1c6a + bool m_bUseMixedResolutionRendering; // 0x1d02 // MPropertyFriendlyName "Only Render in effects game overlay pass" // MPropertySortPriority "1210" // MPropertySuppressExpr "mod != csgo" - bool m_bOnlyRenderInEffecsGameOverlay; // 0x1c6b + bool m_bOnlyRenderInEffecsGameOverlay; // 0x1d03 // MPropertyStartGroup "Stencil" // MPropertyFriendlyName "stencil test ID" // MPropertySortPriority "0" - char m_stencilTestID[128]; // 0x1c6c + char m_stencilTestID[128]; // 0x1d04 // MPropertyFriendlyName "only write where stencil is NOT stencil test ID" // MPropertySortPriority "0" - bool m_bStencilTestExclude; // 0x1cec + bool m_bStencilTestExclude; // 0x1d84 // MPropertyFriendlyName "stencil write ID" // MPropertySortPriority "0" - char m_stencilWriteID[128]; // 0x1ced + char m_stencilWriteID[128]; // 0x1d85 // MPropertyFriendlyName "write stencil on z-buffer test success" // MPropertySortPriority "0" - bool m_bWriteStencilOnDepthPass; // 0x1d6d + bool m_bWriteStencilOnDepthPass; // 0x1e05 // MPropertyFriendlyName "write stencil on z-buffer test failure" // MPropertySortPriority "0" - bool m_bWriteStencilOnDepthFail; // 0x1d6e + bool m_bWriteStencilOnDepthFail; // 0x1e06 // MPropertyStartGroup "Depth buffer control and effects" // MPropertyFriendlyName "reverse z-buffer test" // MPropertySortPriority "900" - bool m_bReverseZBuffering; // 0x1d6f + bool m_bReverseZBuffering; // 0x1e07 // MPropertyFriendlyName "disable z-buffer test" // MPropertySortPriority "900" - bool m_bDisableZBuffering; // 0x1d70 + bool m_bDisableZBuffering; // 0x1e08 private: - [[maybe_unused]] uint8_t __pad1d71[0x3]; // 0x1d71 + [[maybe_unused]] uint8_t __pad1e09[0x3]; // 0x1e09 public: // MPropertyFriendlyName "Depth feathering mode" // MPropertySortPriority "900" - ParticleDepthFeatheringMode_t m_nFeatheringMode; // 0x1d74 + ParticleDepthFeatheringMode_t m_nFeatheringMode; // 0x1e0c // MPropertyFriendlyName "particle feathering closest distance to surface" // MPropertySortPriority "900" - CParticleCollectionRendererFloatInput m_flFeatheringMinDist; // 0x1d78 + CParticleCollectionRendererFloatInput m_flFeatheringMinDist; // 0x1e10 // MPropertyFriendlyName "particle feathering farthest distance to surface" // MPropertySortPriority "900" - CParticleCollectionRendererFloatInput m_flFeatheringMaxDist; // 0x1ec8 + CParticleCollectionRendererFloatInput m_flFeatheringMaxDist; // 0x1f68 // MPropertyFriendlyName "particle feathering filter" // MPropertySortPriority "900" - CParticleCollectionRendererFloatInput m_flFeatheringFilter; // 0x2018 + CParticleCollectionRendererFloatInput m_flFeatheringFilter; // 0x20c0 // MPropertyFriendlyName "depth comparison bias" // MPropertySortPriority "900" - float m_flDepthBias; // 0x2168 + float m_flDepthBias; // 0x2218 // MPropertyFriendlyName "Sort Method" // MPropertySortPriority "900" - ParticleSortingChoiceList_t m_nSortMethod; // 0x216c + ParticleSortingChoiceList_t m_nSortMethod; // 0x221c // MPropertyStartGroup "Animation" // MPropertyFriendlyName "blend sequence animation frames" // MPropertySortPriority "500" - bool m_bBlendFramesSeq0; // 0x2170 + bool m_bBlendFramesSeq0; // 0x2220 // MPropertyFriendlyName "use max-luminance blending for sequence" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bBlendFramesSeq0" - bool m_bMaxLuminanceBlendingSequence0; // 0x2171 + bool m_bMaxLuminanceBlendingSequence0; // 0x2221 }; // Alignment: 8 @@ -19484,18 +20190,18 @@ public: }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_ConstrainLineLength : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "minimum length" - float m_flMinDistance; // 0x1b0 + float m_flMinDistance; // 0x1c0 // MPropertyFriendlyName "maximum length" - float m_flMaxDistance; // 0x1b4 + float m_flMaxDistance; // 0x1c4 }; // Alignment: 5 -// Size: 0x470 +// Size: 0x480 class C_OP_InstantaneousEmitter : public CParticleFunctionEmitter { public: @@ -19503,45 +20209,45 @@ public: // MPropertyAttributeRange "1 1000" CParticleCollectionFloatInput m_nParticlesToEmit; // 0x1c0 // MPropertyFriendlyName "emission start time" - CParticleCollectionFloatInput m_flStartTime; // 0x310 + CParticleCollectionFloatInput m_flStartTime; // 0x318 // MPropertyFriendlyName "emission scale from killed parent particles" - float m_flInitFromKilledParentParticles; // 0x460 + float m_flInitFromKilledParentParticles; // 0x470 // MPropertyFriendlyName "maximum emission per frame" - int32_t m_nMaxEmittedPerFrame; // 0x464 + int32_t m_nMaxEmittedPerFrame; // 0x474 // MPropertyFriendlyName "control point with snapshot data" - int32_t m_nSnapshotControlPoint; // 0x468 + int32_t m_nSnapshotControlPoint; // 0x478 }; // Alignment: 7 -// Size: 0x2650 +// Size: 0x2740 class CBaseTrailRenderer : public CBaseRendererSource2 { public: // MPropertyStartGroup "Orientation" // MPropertyFriendlyName "orientation type" // MPropertySortPriority "750" - ParticleOrientationChoiceList_t m_nOrientationType; // 0x2390 + ParticleOrientationChoiceList_t m_nOrientationType; // 0x2470 // MPropertyFriendlyName "orientation control point" // MPropertySortPriority "750" // MPropertySuppressExpr "m_nOrientationType != PARTICLE_ORIENTATION_ALIGN_TO_PARTICLE_NORMAL && m_nOrientationType != PARTICLE_ORIENTATION_SCREENALIGN_TO_PARTICLE_NORMAL" - int32_t m_nOrientationControlPoint; // 0x2394 + int32_t m_nOrientationControlPoint; // 0x2474 // MPropertyStartGroup "Screenspace Fading and culling" // MPropertyFriendlyName "minimum visual screen-size" // MPropertySortPriority "900" - float m_flMinSize; // 0x2398 + float m_flMinSize; // 0x2478 // MPropertyFriendlyName "maximum visual screen-size" // MPropertySortPriority "900" - float m_flMaxSize; // 0x239c + float m_flMaxSize; // 0x247c // MPropertyFriendlyName "start fade screen-size" // MPropertySortPriority "900" - CParticleCollectionRendererFloatInput m_flStartFadeSize; // 0x23a0 + CParticleCollectionRendererFloatInput m_flStartFadeSize; // 0x2480 // MPropertyFriendlyName "end fade and cull screen-size" // MPropertySortPriority "900" - CParticleCollectionRendererFloatInput m_flEndFadeSize; // 0x24f0 + CParticleCollectionRendererFloatInput m_flEndFadeSize; // 0x25d8 // MPropertyStartGroup "Trail UV Controls" // MPropertyFriendlyName "Clamp Non-Sheet texture V coords" // MPropertySortPriority "800" - bool m_bClampV; // 0x2640 + bool m_bClampV; // 0x2730 }; // Alignment: 5 @@ -19563,7 +20269,7 @@ public: }; // Alignment: 0 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_Spin : public CGeneralSpin { public: @@ -19637,17 +20343,17 @@ public: }; // Alignment: 3 -// Size: 0x1f0 +// Size: 0x200 class C_OP_RemapDistanceToLineSegmentToVector : public C_OP_RemapDistanceToLineSegmentBase { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1d0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1e0 // MPropertyFriendlyName "output value at min distance" - Vector m_vMinOutputValue; // 0x1d4 + Vector m_vMinOutputValue; // 0x1e4 // MPropertyFriendlyName "output value at max distance" - Vector m_vMaxOutputValue; // 0x1e0 + Vector m_vMaxOutputValue; // 0x1f0 }; // Alignment: 5 @@ -19670,7 +20376,7 @@ public: }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class CSpinUpdateBase : public CParticleFunctionOperator { public: @@ -19678,22 +20384,22 @@ public: }; // Alignment: 5 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_ControlPointToRadialScreenSpace : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "source Control Point in World" - int32_t m_nCPIn; // 0x1c0 + int32_t m_nCPIn; // 0x1d0 // MPropertyFriendlyName "Source Control Point offset" // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1c4 + Vector m_vecCP1Pos; // 0x1d4 // MPropertyFriendlyName "Set control point number" - int32_t m_nCPOut; // 0x1d0 + int32_t m_nCPOut; // 0x1e0 // MPropertyFriendlyName "Output field 0-2 X/Y/Z" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPOutField; // 0x1d4 + int32_t m_nCPOutField; // 0x1e4 // MPropertyFriendlyName "Ss Pos and Dot OUT CP" - int32_t m_nCPSSPosOut; // 0x1d8 + int32_t m_nCPSSPosOut; // 0x1e8 }; // Alignment: 3 @@ -19715,41 +20421,43 @@ public: }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_RemapScalarEndCap : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1b8 + float m_flInputMin; // 0x1c8 // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1bc + float m_flInputMax; // 0x1cc // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c0 + float m_flOutputMin; // 0x1d0 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c4 + float m_flOutputMax; // 0x1d4 }; // Alignment: 4 -// Size: 0x200 +// Size: 0x210 class C_OP_LockToSavedSequentialPath : public CParticleFunctionOperator { +private: + [[maybe_unused]] uint8_t __pad01c0[0x4]; // 0x1c0 public: // MPropertyFriendlyName "start fade time" - float m_flFadeStart; // 0x1b4 + float m_flFadeStart; // 0x1c4 // MPropertyFriendlyName "end fade time" - float m_flFadeEnd; // 0x1b8 + float m_flFadeEnd; // 0x1c8 // MPropertyFriendlyName "Use sequential CP pairs between start and end point" - bool m_bCPPairs; // 0x1bc + bool m_bCPPairs; // 0x1cc private: - [[maybe_unused]] uint8_t __pad01bd[0x3]; // 0x1bd + [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd public: - CPathParameters m_PathParams; // 0x1c0 + CPathParameters m_PathParams; // 0x1d0 }; // Alignment: 2 @@ -19761,101 +20469,101 @@ public: CParticleCollectionFloatInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x310 + ParticleAttributeIndex_t m_nOutputField; // 0x318 }; // Alignment: 2 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_PlayEndCapWhenFinished : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "play when emission ends" - bool m_bFireOnEmissionEnd; // 0x1c0 + bool m_bFireOnEmissionEnd; // 0x1d0 // MPropertyFriendlyName "wait for children to finish" - bool m_bIncludeChildren; // 0x1c1 + bool m_bIncludeChildren; // 0x1d1 }; // Alignment: 4 -// Size: 0x470 +// Size: 0x490 class C_OP_QuantizeCPComponent : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "input" - CParticleCollectionFloatInput m_flInputValue; // 0x1c0 + CParticleCollectionFloatInput m_flInputValue; // 0x1d0 // MPropertyFriendlyName "output control point" - int32_t m_nCPOutput; // 0x310 + int32_t m_nCPOutput; // 0x328 // MPropertyFriendlyName "output component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutVectorField; // 0x314 + int32_t m_nOutVectorField; // 0x32c // MPropertyFriendlyName "interval to snap to" - CParticleCollectionFloatInput m_flQuantizeValue; // 0x318 + CParticleCollectionFloatInput m_flQuantizeValue; // 0x330 }; // Alignment: 4 -// Size: 0x950 +// Size: 0x980 class C_OP_MovementLoopInsideSphere : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0x1b0 + int32_t m_nCP; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "distance maximum" - CParticleCollectionFloatInput m_flDistance; // 0x1b8 + CParticleCollectionFloatInput m_flDistance; // 0x1c8 // MPropertyFriendlyName "component scale" - CParticleCollectionVecInput m_vecScale; // 0x308 + CParticleCollectionVecInput m_vecScale; // 0x320 // MPropertyFriendlyName "distance squared output attribute" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nDistSqrAttr; // 0x940 + ParticleAttributeIndex_t m_nDistSqrAttr; // 0x978 }; // Alignment: 3 -// Size: 0xe30 +// Size: 0xe80 class C_OP_DirectionBetweenVecsToVec : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "first vector" - CPerParticleVecInput m_vecPoint1; // 0x1b8 + CPerParticleVecInput m_vecPoint1; // 0x1c8 // MPropertyFriendlyName "second vector" - CPerParticleVecInput m_vecPoint2; // 0x7f0 + CPerParticleVecInput m_vecPoint2; // 0x820 }; // Alignment: 8 -// Size: 0x250 +// Size: 0x260 class C_OP_RemapTransformVisibilityToVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1b0 + ParticleSetMethod_t m_nSetMethod; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b8 + CParticleTransformInput m_TransformInput; // 0x1c8 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x220 + ParticleAttributeIndex_t m_nFieldOutput; // 0x230 // MPropertyFriendlyName "CP visibility minimum" - float m_flInputMin; // 0x224 + float m_flInputMin; // 0x234 // MPropertyFriendlyName "CP visibility maximum" - float m_flInputMax; // 0x228 + float m_flInputMax; // 0x238 // MPropertyFriendlyName "output minimum" - Vector m_vecOutputMin; // 0x22c + Vector m_vecOutputMin; // 0x23c // MPropertyFriendlyName "output maximum" - Vector m_vecOutputMax; // 0x238 + Vector m_vecOutputMax; // 0x248 // MPropertyFriendlyName "visibility radius" - float m_flRadius; // 0x244 + float m_flRadius; // 0x254 }; // Alignment: 6 -// Size: 0xeb0 +// Size: 0xef0 class C_INIT_SetVectorAttributeToVectorExpression : public CParticleFunctionInitializer { public: @@ -19867,30 +20575,30 @@ public: // MPropertyFriendlyName "input 1" CPerParticleVecInput m_vInput1; // 0x1c8 // MPropertyFriendlyName "input 2" - CPerParticleVecInput m_vInput2; // 0x800 + CPerParticleVecInput m_vInput2; // 0x820 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOutputField; // 0xe38 + ParticleAttributeIndex_t m_nOutputField; // 0xe78 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0xe3c + ParticleSetMethod_t m_nSetMethod; // 0xe7c // MPropertyFriendlyName "normalize result" - bool m_bNormalizedOutput; // 0xe40 + bool m_bNormalizedOutput; // 0xe80 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_InheritFromParentParticles : public CParticleFunctionOperator { public: // MPropertyFriendlyName "scale" - float m_flScale; // 0x1b0 + float m_flScale; // 0x1c0 // MPropertyFriendlyName "inherited field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "particle increment amount" - int32_t m_nIncrement; // 0x1b8 + int32_t m_nIncrement; // 0x1c8 // MPropertyFriendlyName "random parent particle distribution" - bool m_bRandomDistribution; // 0x1bc + bool m_bRandomDistribution; // 0x1cc }; // Alignment: 4 @@ -19911,46 +20619,85 @@ public: int32_t m_nComponent; // 0x1cc }; -// Alignment: 4 -// Size: 0xe30 +// Alignment: 11 +// Size: 0x1df0 class C_OP_ExternalWindForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "sample position" - CPerParticleVecInput m_vecSamplePosition; // 0x1b0 + CPerParticleVecInput m_vecSamplePosition; // 0x1d0 // MPropertyFriendlyName "force scale" - CPerParticleVecInput m_vecScale; // 0x7e8 + CPerParticleVecInput m_vecScale; // 0x828 // MPropertyFriendlyName "sample wind" - bool m_bSampleWind; // 0xe20 + bool m_bSampleWind; // 0xe80 // MPropertyFriendlyName "sample water current" - bool m_bSampleWater; // 0xe21 + bool m_bSampleWater; // 0xe81 + // MPropertyFriendlyName "dampen gravity/buoyancy near water plane" + // MPropertySuppressExpr "!m_bSampleWater" + bool m_bDampenNearWaterPlane; // 0xe82 + // MPropertyFriendlyName "sample local gravity" + bool m_bSampleGravity; // 0xe83 +private: + [[maybe_unused]] uint8_t __pad0e84[0x4]; // 0xe84 +public: + // MPropertyFriendlyName "gravity force" + // MPropertySuppressExpr "m_bSampleGravity" + CPerParticleVecInput m_vecGravityForce; // 0xe88 + // MPropertyFriendlyName "use Movement Basic for Local Gravity & Buoyancy Scale" + // MPropertySuppressExpr "!m_bSampleGravity" + bool m_bUseBasicMovementGravity; // 0x14e0 +private: + [[maybe_unused]] uint8_t __pad14e1[0x7]; // 0x14e1 +public: + // MPropertyFriendlyName "local gravity scale" + // MPropertySuppressExpr "!m_bSampleGravity" + CPerParticleFloatInput m_flLocalGravityScale; // 0x14e8 + // MPropertyFriendlyName "local gravity buoyancy scale" + // MPropertySuppressExpr "!m_bSampleGravity" + CPerParticleFloatInput m_flLocalBuoyancyScale; // 0x1640 + // MPropertyFriendlyName "buoyancy force" + // MPropertySuppressExpr "!m_bSampleWater || m_bSampleGravity" + CPerParticleVecInput m_vecBuoyancyForce; // 0x1798 }; // Alignment: 6 -// Size: 0x5c0 +// Size: 0x5f0 class C_OP_SetControlPointFieldToScalarExpression : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "expression" - ScalarExpressionType_t m_nExpression; // 0x1c0 + ScalarExpressionType_t m_nExpression; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "input 1" - CParticleCollectionFloatInput m_flInput1; // 0x1c8 + CParticleCollectionFloatInput m_flInput1; // 0x1d8 // MPropertyFriendlyName "input 2" - CParticleCollectionFloatInput m_flInput2; // 0x318 + CParticleCollectionFloatInput m_flInput2; // 0x330 // MPropertyFriendlyName "output" - CParticleRemapFloatInput m_flOutputRemap; // 0x468 + CParticleRemapFloatInput m_flOutputRemap; // 0x488 // MPropertyFriendlyName "output control point" - int32_t m_nOutputCP; // 0x5b8 + int32_t m_nOutputCP; // 0x5e0 // MPropertyFriendlyName "output component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutVectorField; // 0x5bc + int32_t m_nOutVectorField; // 0x5e4 +}; + +// Alignment: 3 +// Size: 0x480 +class C_OP_SDFConstraint : public CParticleFunctionConstraint +{ +public: + // MPropertyFriendlyName "min dist to sdf" + CParticleCollectionFloatInput m_flMinDist; // 0x1c0 + // MPropertyFriendlyName "max dist to sdf" + CParticleCollectionFloatInput m_flMaxDist; // 0x318 + // MPropertyFriendlyName "Max # of iterations" + int32_t m_nMaxIterations; // 0x470 }; // Alignment: 10 -// Size: 0xe50 +// Size: 0xe90 class C_INIT_PositionWarp : public CParticleFunctionInitializer { public: @@ -19959,24 +20706,24 @@ public: CParticleCollectionVecInput m_vecWarpMin; // 0x1c0 // MPropertyFriendlyName "warp max" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecWarpMax; // 0x7f8 + CParticleCollectionVecInput m_vecWarpMax; // 0x818 // MPropertyFriendlyName "warp scale control point number" - int32_t m_nScaleControlPointNumber; // 0xe30 + int32_t m_nScaleControlPointNumber; // 0xe70 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0xe34 + int32_t m_nControlPointNumber; // 0xe74 // MPropertyFriendlyName "radius scale component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nRadiusComponent; // 0xe38 + int32_t m_nRadiusComponent; // 0xe78 // MPropertyFriendlyName "warp transition time (treats min/max as start/end sizes)" - float m_flWarpTime; // 0xe3c + float m_flWarpTime; // 0xe7c // MPropertyFriendlyName "warp transition start time" - float m_flWarpStartTime; // 0xe40 + float m_flWarpStartTime; // 0xe80 // MPropertyFriendlyName "previous position sacale" - float m_flPrevPosScale; // 0xe44 + float m_flPrevPosScale; // 0xe84 // MPropertyFriendlyName "reverse warp (0/1)" - bool m_bInvertWarp; // 0xe48 + bool m_bInvertWarp; // 0xe88 // MPropertyFriendlyName "use particle count instead of time" - bool m_bUseCount; // 0xe49 + bool m_bUseCount; // 0xe89 }; // Alignment: 1 @@ -20017,33 +20764,33 @@ public: }; // Alignment: 6 -// Size: 0x810 +// Size: 0x840 class C_OP_SetControlPointToCPVelocity : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point input" - int32_t m_nCPInput; // 0x1c0 + int32_t m_nCPInput; // 0x1d0 // MPropertyFriendlyName "control point number to set velocity" - int32_t m_nCPOutputVel; // 0x1c4 + int32_t m_nCPOutputVel; // 0x1d4 // MPropertyFriendlyName "normalize output" - bool m_bNormalize; // 0x1c8 + bool m_bNormalize; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01c9[0x3]; // 0x1c9 + [[maybe_unused]] uint8_t __pad01d9[0x3]; // 0x1d9 public: // MPropertyFriendlyName "control point number to set magnitude" - int32_t m_nCPOutputMag; // 0x1cc + int32_t m_nCPOutputMag; // 0x1dc // MPropertyFriendlyName "control point field for magnitude" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPField; // 0x1d0 + int32_t m_nCPField; // 0x1e0 private: - [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 + [[maybe_unused]] uint8_t __pad01e4[0x4]; // 0x1e4 public: // MPropertyFriendlyName "comparison velocity" - CParticleCollectionVecInput m_vecComparisonVelocity; // 0x1d8 + CParticleCollectionVecInput m_vecComparisonVelocity; // 0x1e8 }; // Alignment: 0 -// Size: 0x210 +// Size: 0x220 class C_OP_RemapNamedModelMeshGroupOnceTimed : public C_OP_RemapNamedModelElementOnceTimed { public: @@ -20051,99 +20798,99 @@ public: }; // Alignment: 15 -// Size: 0x1050 +// Size: 0x10b0 class C_OP_LightningSnapshotGenerator : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "snapshot control point number" - int32_t m_nCPSnapshot; // 0x1c0 + int32_t m_nCPSnapshot; // 0x1d0 // MPropertyFriendlyName "start control point number" - int32_t m_nCPStartPnt; // 0x1c4 + int32_t m_nCPStartPnt; // 0x1d4 // MPropertyFriendlyName "end control point number" - int32_t m_nCPEndPnt; // 0x1c8 + int32_t m_nCPEndPnt; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc public: // MPropertyFriendlyName "Recursion Depth" - CParticleCollectionFloatInput m_flSegments; // 0x1d0 + CParticleCollectionFloatInput m_flSegments; // 0x1e0 // MPropertyFriendlyName "Offset" - CParticleCollectionFloatInput m_flOffset; // 0x320 + CParticleCollectionFloatInput m_flOffset; // 0x338 // MPropertyFriendlyName "Offset Decay" - CParticleCollectionFloatInput m_flOffsetDecay; // 0x470 + CParticleCollectionFloatInput m_flOffsetDecay; // 0x490 // MPropertyFriendlyName "Recalculation Rate" - CParticleCollectionFloatInput m_flRecalcRate; // 0x5c0 + CParticleCollectionFloatInput m_flRecalcRate; // 0x5e8 // MPropertyFriendlyName "UV Scale" - CParticleCollectionFloatInput m_flUVScale; // 0x710 + CParticleCollectionFloatInput m_flUVScale; // 0x740 // MPropertyFriendlyName "UV Offset" - CParticleCollectionFloatInput m_flUVOffset; // 0x860 + CParticleCollectionFloatInput m_flUVOffset; // 0x898 // MPropertyFriendlyName "Branch Split Rate" - CParticleCollectionFloatInput m_flSplitRate; // 0x9b0 + CParticleCollectionFloatInput m_flSplitRate; // 0x9f0 // MPropertyFriendlyName "Branch Twist" - CParticleCollectionFloatInput m_flBranchTwist; // 0xb00 + CParticleCollectionFloatInput m_flBranchTwist; // 0xb48 // MPropertyFriendlyName "Branch Behavior" - ParticleLightnintBranchBehavior_t m_nBranchBehavior; // 0xc50 + ParticleLightnintBranchBehavior_t m_nBranchBehavior; // 0xca0 private: - [[maybe_unused]] uint8_t __pad0c54[0x4]; // 0xc54 + [[maybe_unused]] uint8_t __pad0ca4[0x4]; // 0xca4 public: // MPropertyFriendlyName "Start Radius" - CParticleCollectionFloatInput m_flRadiusStart; // 0xc58 + CParticleCollectionFloatInput m_flRadiusStart; // 0xca8 // MPropertyFriendlyName "End Radius" - CParticleCollectionFloatInput m_flRadiusEnd; // 0xda8 + CParticleCollectionFloatInput m_flRadiusEnd; // 0xe00 // MPropertyFriendlyName "Dedicated Particle Pool Count" - CParticleCollectionFloatInput m_flDedicatedPool; // 0xef8 + CParticleCollectionFloatInput m_flDedicatedPool; // 0xf58 }; // Alignment: 5 -// Size: 0xe40 +// Size: 0xe90 class C_OP_SetControlPointToVectorExpression : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "expression" - VectorExpressionType_t m_nExpression; // 0x1c0 + VectorExpressionType_t m_nExpression; // 0x1d0 // MPropertyFriendlyName "output control point" - int32_t m_nOutputCP; // 0x1c4 + int32_t m_nOutputCP; // 0x1d4 // MPropertyFriendlyName "input 1" - CParticleCollectionVecInput m_vInput1; // 0x1c8 + CParticleCollectionVecInput m_vInput1; // 0x1d8 // MPropertyFriendlyName "input 2" - CParticleCollectionVecInput m_vInput2; // 0x800 + CParticleCollectionVecInput m_vInput2; // 0x830 // MPropertyFriendlyName "normalize result" - bool m_bNormalizedOutput; // 0xe38 + bool m_bNormalizedOutput; // 0xe88 }; // Alignment: 11 -// Size: 0x210 +// Size: 0x220 class C_OP_CalculateVectorAttribute : public CParticleFunctionOperator { public: // MPropertyFriendlyName "start value" - Vector m_vStartValue; // 0x1b0 + Vector m_vStartValue; // 0x1c0 // MPropertyFriendlyName "input field 1" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput1; // 0x1bc + ParticleAttributeIndex_t m_nFieldInput1; // 0x1cc // MPropertyFriendlyName "input scale 1" - float m_flInputScale1; // 0x1c0 + float m_flInputScale1; // 0x1d0 // MPropertyFriendlyName "input field 2" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput2; // 0x1c4 + ParticleAttributeIndex_t m_nFieldInput2; // 0x1d4 // MPropertyFriendlyName "input scale 2" - float m_flInputScale2; // 0x1c8 + float m_flInputScale2; // 0x1d8 // MPropertyFriendlyName "control point input 1" - ControlPointReference_t m_nControlPointInput1; // 0x1cc + ControlPointReference_t m_nControlPointInput1; // 0x1dc // MPropertyFriendlyName "control point scale 1" - float m_flControlPointScale1; // 0x1e0 + float m_flControlPointScale1; // 0x1f0 // MPropertyFriendlyName "control point input 2" - ControlPointReference_t m_nControlPointInput2; // 0x1e4 + ControlPointReference_t m_nControlPointInput2; // 0x1f4 // MPropertyFriendlyName "control point scale 2" - float m_flControlPointScale2; // 0x1f8 + float m_flControlPointScale2; // 0x208 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1fc + ParticleAttributeIndex_t m_nFieldOutput; // 0x20c // MPropertyFriendlyName "final per component scale" - Vector m_vFinalOutputScale; // 0x200 + Vector m_vFinalOutputScale; // 0x210 }; // Alignment: 9 -// Size: 0xad8 +// Size: 0xb18 struct TextureGroup_t { public: @@ -20178,23 +20925,23 @@ public: CParticleCollectionRendererFloatInput m_flTextureBlend; // 0x38 // MPropertyFriendlyName "Texture Controls" // MPropertySuppressExpr "( m_nTextureType == SPRITECARD_TEXTURE_NORMALMAP || m_nTextureType == SPRITECARD_TEXTURE_ANIMMOTIONVEC || m_nTextureType == SPRITECARD_TEXTURE_6POINT_XYZ_A || m_nTextureType == SPRITECARD_TEXTURE_6POINT_NEGXYZ_E )" - TextureControls_t m_TextureControls; // 0x188 + TextureControls_t m_TextureControls; // 0x190 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_Orient2DRelToCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "rotation offset" - float m_flRotOffset; // 0x1b0 + float m_flRotOffset; // 0x1c0 // MPropertyFriendlyName "spin strength" - float m_flSpinStrength; // 0x1b4 + float m_flSpinStrength; // 0x1c4 // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0x1b8 + int32_t m_nCP; // 0x1c8 // MPropertyFriendlyName "rotation field" // MPropertyAttributeChoiceName "particlefield_rotation" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1bc + ParticleAttributeIndex_t m_nFieldOutput; // 0x1cc }; // Alignment: 3 @@ -20257,29 +21004,29 @@ public: }; // Alignment: 6 -// Size: 0x4e0 +// Size: 0x510 class C_OP_AttractToControlPoint : public CParticleFunctionForce { public: // MPropertyFriendlyName "component scale" // MVectorIsCoordinate - Vector m_vecComponentScale; // 0x1b0 + Vector m_vecComponentScale; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc public: // MPropertyFriendlyName "amount of force (or Max Force)" - CPerParticleFloatInput m_fForceAmount; // 0x1c0 + CPerParticleFloatInput m_fForceAmount; // 0x1e0 // MPropertyFriendlyName "falloff power" - float m_fFalloffPower; // 0x310 + float m_fFalloffPower; // 0x338 private: - [[maybe_unused]] uint8_t __pad0314[0x4]; // 0x314 + [[maybe_unused]] uint8_t __pad033c[0x4]; // 0x33c public: // MPropertyFriendlyName "input position transform" - CParticleTransformInput m_TransformInput; // 0x318 + CParticleTransformInput m_TransformInput; // 0x340 // MPropertyFriendlyName "Min Pullforce" - CPerParticleFloatInput m_fForceAmountMin; // 0x380 + CPerParticleFloatInput m_fForceAmountMin; // 0x3a8 // MPropertyFriendlyName "Apply Min Pullforce" - bool m_bApplyMinForce; // 0x4d0 + bool m_bApplyMinForce; // 0x500 }; // Alignment: 14 @@ -20318,64 +21065,75 @@ public: bool m_bUseOrigRadius; // 0x1ee }; -// Alignment: 4 -// Size: 0xe30 +// Alignment: 5 +// Size: 0xe80 class C_OP_BoxConstraint : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "min coords" - CParticleCollectionVecInput m_vecMin; // 0x1b0 + CParticleCollectionVecInput m_vecMin; // 0x1c0 // MPropertyFriendlyName "max coords" - CParticleCollectionVecInput m_vecMax; // 0x7e8 + CParticleCollectionVecInput m_vecMax; // 0x818 // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0xe20 + int32_t m_nCP; // 0xe70 // MPropertyFriendlyName "use local space" - bool m_bLocalSpace; // 0xe24 + bool m_bLocalSpace; // 0xe74 + // MPropertyFriendlyName "Take radius into account" + bool m_bAccountForRadius; // 0xe75 +}; + +// Alignment: 1 +// Size: 0x1e0 +class C_OP_SDFForce : public CParticleFunctionForce +{ +public: + // MPropertyFriendlyName "force scale" + float m_flForceScale; // 0x1d0 }; // Alignment: 5 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_SetParentControlPointsToChildCP : public CParticleFunctionPreEmission { +public: + // MPropertyFriendlyName "group ID to affect" + int32_t m_nChildGroupID; // 0x1d0 + // MPropertyFriendlyName "control point to set" + int32_t m_nChildControlPoint; // 0x1d4 + // MPropertyFriendlyName "# of children to set" + int32_t m_nNumControlPoints; // 0x1d8 + // MPropertyFriendlyName "first parent control point to set from" + int32_t m_nFirstSourcePoint; // 0x1dc + // MPropertyFriendlyName "set orientation" + bool m_bSetOrientation; // 0x1e0 +}; + +// Alignment: 8 +// Size: 0x1e0 +class C_OP_SetPerChildControlPointFromAttribute : public CParticleFunctionOperator +{ public: // MPropertyFriendlyName "group ID to affect" int32_t m_nChildGroupID; // 0x1c0 // MPropertyFriendlyName "control point to set" - int32_t m_nChildControlPoint; // 0x1c4 + int32_t m_nFirstControlPoint; // 0x1c4 // MPropertyFriendlyName "# of children to set" int32_t m_nNumControlPoints; // 0x1c8 - // MPropertyFriendlyName "first parent control point to set from" - int32_t m_nFirstSourcePoint; // 0x1cc - // MPropertyFriendlyName "set orientation" - bool m_bSetOrientation; // 0x1d0 -}; - -// Alignment: 8 -// Size: 0x1d0 -class C_OP_SetPerChildControlPointFromAttribute : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1b0 - // MPropertyFriendlyName "control point to set" - int32_t m_nFirstControlPoint; // 0x1b4 - // MPropertyFriendlyName "# of children to set" - int32_t m_nNumControlPoints; // 0x1b8 // MPropertyFriendlyName "particle increment amount" - int32_t m_nParticleIncrement; // 0x1bc + int32_t m_nParticleIncrement; // 0x1cc // MPropertyFriendlyName "first particle to copy" - int32_t m_nFirstSourcePoint; // 0x1c0 + int32_t m_nFirstSourcePoint; // 0x1d0 // MPropertyFriendlyName "set number of children based on particle count" - bool m_bNumBasedOnParticleCount; // 0x1c4 + bool m_bNumBasedOnParticleCount; // 0x1d4 private: - [[maybe_unused]] uint8_t __pad01c5[0x3]; // 0x1c5 + [[maybe_unused]] uint8_t __pad01d5[0x3]; // 0x1d5 public: // MPropertyFriendlyName "field to read" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nAttributeToRead; // 0x1c8 + ParticleAttributeIndex_t m_nAttributeToRead; // 0x1d8 // MPropertyFriendlyName "control point field for scalars" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPField; // 0x1cc + int32_t m_nCPField; // 0x1dc }; // Alignment: 5 @@ -20400,49 +21158,49 @@ public: }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_GlobalLight : public CParticleFunctionOperator { public: // MPropertyFriendlyName "initial color bias" - float m_flScale; // 0x1b0 + float m_flScale; // 0x1c0 // MPropertyFriendlyName "clamp minimum light value to initial color" - bool m_bClampLowerRange; // 0x1b4 + bool m_bClampLowerRange; // 0x1c4 // MPropertyFriendlyName "clamp maximum light value to initial color" - bool m_bClampUpperRange; // 0x1b5 + bool m_bClampUpperRange; // 0x1c5 }; // Alignment: 11 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_CPOffsetToPercentageBetweenCPs : public CParticleFunctionOperator { public: // MPropertyFriendlyName "percentage minimum" - float m_flInputMin; // 0x1b0 + float m_flInputMin; // 0x1c0 // MPropertyFriendlyName "percentage maximum" - float m_flInputMax; // 0x1b4 + float m_flInputMax; // 0x1c4 // MPropertyFriendlyName "percentage bias" - float m_flInputBias; // 0x1b8 + float m_flInputBias; // 0x1c8 // MPropertyFriendlyName "starting control point" - int32_t m_nStartCP; // 0x1bc + int32_t m_nStartCP; // 0x1cc // MPropertyFriendlyName "ending control point" - int32_t m_nEndCP; // 0x1c0 + int32_t m_nEndCP; // 0x1d0 // MPropertyFriendlyName "offset control point" - int32_t m_nOffsetCP; // 0x1c4 + int32_t m_nOffsetCP; // 0x1d4 // MPropertyFriendlyName "output control point" - int32_t m_nOuputCP; // 0x1c8 + int32_t m_nOuputCP; // 0x1d8 // MPropertyFriendlyName "input control point" - int32_t m_nInputCP; // 0x1cc + int32_t m_nInputCP; // 0x1dc // MPropertyFriendlyName "treat distance between points as radius" - bool m_bRadialCheck; // 0x1d0 + bool m_bRadialCheck; // 0x1e0 // MPropertyFriendlyName "treat offset as scale of total distance" - bool m_bScaleOffset; // 0x1d1 + bool m_bScaleOffset; // 0x1e1 private: - [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 + [[maybe_unused]] uint8_t __pad01e2[0x2]; // 0x1e2 public: // MPropertyFriendlyName "offset amount" // MVectorIsCoordinate - Vector m_vecOffset; // 0x1d4 + Vector m_vecOffset; // 0x1e4 }; // Alignment: 0 @@ -20472,18 +21230,18 @@ public: }; // Alignment: 3 -// Size: 0x940 +// Size: 0x980 class C_OP_BasicMovement : public CParticleFunctionOperator { public: // MPropertyFriendlyName "gravity" // MVectorIsCoordinate - CParticleCollectionVecInput m_Gravity; // 0x1b0 + CParticleCollectionVecInput m_Gravity; // 0x1c0 // MPropertyFriendlyName "drag" // MPropertyAttributeRange "-1 1" - CParticleCollectionFloatInput m_fDrag; // 0x7e8 + CParticleCollectionFloatInput m_fDrag; // 0x818 // MPropertyFriendlyName "max constraint passes" - int32_t m_nMaxConstraintPasses; // 0x938 + int32_t m_nMaxConstraintPasses; // 0x970 }; // Alignment: 0 @@ -20495,15 +21253,15 @@ public: }; // Alignment: 2 -// Size: 0x330 +// Size: 0x340 class C_OP_QuantizeFloat : public CParticleFunctionOperator { public: // MPropertyFriendlyName "value" - CPerParticleFloatInput m_InputValue; // 0x1b0 + CPerParticleFloatInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x300 + ParticleAttributeIndex_t m_nOutputField; // 0x318 }; // Alignment: 11 @@ -20541,24 +21299,24 @@ public: }; // Alignment: 7 -// Size: 0x860 +// Size: 0x880 class C_INIT_MoveBetweenPoints : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "minimum speed" CPerParticleFloatInput m_flSpeedMin; // 0x1c0 // MPropertyFriendlyName "maximum speed" - CPerParticleFloatInput m_flSpeedMax; // 0x310 + CPerParticleFloatInput m_flSpeedMax; // 0x318 // MPropertyFriendlyName "end spread" - CPerParticleFloatInput m_flEndSpread; // 0x460 + CPerParticleFloatInput m_flEndSpread; // 0x470 // MPropertyFriendlyName "start offset" - CPerParticleFloatInput m_flStartOffset; // 0x5b0 + CPerParticleFloatInput m_flStartOffset; // 0x5c8 // MPropertyFriendlyName "end offset" - CPerParticleFloatInput m_flEndOffset; // 0x700 + CPerParticleFloatInput m_flEndOffset; // 0x720 // MPropertyFriendlyName "end control point" - int32_t m_nEndControlPointNumber; // 0x850 + int32_t m_nEndControlPointNumber; // 0x878 // MPropertyFriendlyName "bias lifetime by trail length" - bool m_bTrailBias; // 0x854 + bool m_bTrailBias; // 0x87c }; // Alignment: 1 @@ -20571,78 +21329,78 @@ public: }; // Alignment: 6 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_OscillateVectorSimple : public CParticleFunctionOperator { public: // MPropertyFriendlyName "oscillation rate" // MVectorIsSometimesCoordinate - Vector m_Rate; // 0x1b0 + Vector m_Rate; // 0x1c0 // MPropertyFriendlyName "oscillation frequency" - Vector m_Frequency; // 0x1bc + Vector m_Frequency; // 0x1cc // MPropertyFriendlyName "oscillation field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nField; // 0x1c8 + ParticleAttributeIndex_t m_nField; // 0x1d8 // MPropertyFriendlyName "oscillation multiplier" - float m_flOscMult; // 0x1cc + float m_flOscMult; // 0x1dc // MPropertyFriendlyName "oscillation start phase" - float m_flOscAdd; // 0x1d0 + float m_flOscAdd; // 0x1e0 // MPropertyFriendlyName "offset instead of accelerate position" - bool m_bOffset; // 0x1d4 + bool m_bOffset; // 0x1e4 }; // Alignment: 10 -// Size: 0x5d0 +// Size: 0x5f0 class C_OP_ContinuousEmitter : public CParticleFunctionEmitter { public: // MPropertyFriendlyName "emission duration" CParticleCollectionFloatInput m_flEmissionDuration; // 0x1c0 // MPropertyFriendlyName "emission start time" - CParticleCollectionFloatInput m_flStartTime; // 0x310 + CParticleCollectionFloatInput m_flStartTime; // 0x318 // MPropertyFriendlyName "emission rate" - CParticleCollectionFloatInput m_flEmitRate; // 0x460 + CParticleCollectionFloatInput m_flEmitRate; // 0x470 // MPropertyFriendlyName "scale emission to used control points" // MParticleMaxVersion - float m_flEmissionScale; // 0x5b0 + float m_flEmissionScale; // 0x5c8 // MPropertyFriendlyName "scale emission by parent particle count" - float m_flScalePerParentParticle; // 0x5b4 + float m_flScalePerParentParticle; // 0x5cc // MPropertyFriendlyName "emit particles for killed parent particles" - bool m_bInitFromKilledParentParticles; // 0x5b8 + bool m_bInitFromKilledParentParticles; // 0x5d0 private: - [[maybe_unused]] uint8_t __pad05b9[0x3]; // 0x5b9 + [[maybe_unused]] uint8_t __pad05d1[0x3]; // 0x5d1 public: // MPropertyFriendlyName "control point with snapshot data" - int32_t m_nSnapshotControlPoint; // 0x5bc + int32_t m_nSnapshotControlPoint; // 0x5d4 // MPropertyFriendlyName "limit per update" - int32_t m_nLimitPerUpdate; // 0x5c0 + int32_t m_nLimitPerUpdate; // 0x5d8 // MPropertyFriendlyName "force emit on first update" - bool m_bForceEmitOnFirstUpdate; // 0x5c4 + bool m_bForceEmitOnFirstUpdate; // 0x5dc // MPropertyFriendlyName "force emit on last update" - bool m_bForceEmitOnLastUpdate; // 0x5c5 + bool m_bForceEmitOnLastUpdate; // 0x5dd }; // Alignment: 3 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_RemapDistanceToLineSegmentToScalar : public C_OP_RemapDistanceToLineSegmentBase { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1d0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1e0 // MPropertyFriendlyName "output value at min distance" - float m_flMinOutputValue; // 0x1d4 + float m_flMinOutputValue; // 0x1e4 // MPropertyFriendlyName "output value at max distance" - float m_flMaxOutputValue; // 0x1d8 + float m_flMaxOutputValue; // 0x1e8 }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_EndCapTimedDecay : public CParticleFunctionOperator { public: // MPropertyFriendlyName "decay time" - float m_flDecayTime; // 0x1b0 + float m_flDecayTime; // 0x1c0 }; // Alignment: 6 @@ -20667,73 +21425,75 @@ public: }; // Alignment: 1 -// Size: 0x300 +// Size: 0x320 class C_OP_DecayOffscreen : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Offscreen Time Before Decay" - CParticleCollectionFloatInput m_flOffscreenTime; // 0x1b0 + CParticleCollectionFloatInput m_flOffscreenTime; // 0x1c0 }; // Alignment: 13 -// Size: 0x860 +// Size: 0x890 class C_OP_DistanceBetweenTransforms : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "strarting transform" - CParticleTransformInput m_TransformStart; // 0x1b8 + CParticleTransformInput m_TransformStart; // 0x1c8 // MPropertyFriendlyName "end transform" - CParticleTransformInput m_TransformEnd; // 0x220 + CParticleTransformInput m_TransformEnd; // 0x230 // MPropertyFriendlyName "distance minimum" - CPerParticleFloatInput m_flInputMin; // 0x288 + CPerParticleFloatInput m_flInputMin; // 0x298 // MPropertyFriendlyName "distance maximum" - CPerParticleFloatInput m_flInputMax; // 0x3d8 + CPerParticleFloatInput m_flInputMax; // 0x3f0 // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x528 + CPerParticleFloatInput m_flOutputMin; // 0x548 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x678 + CPerParticleFloatInput m_flOutputMax; // 0x6a0 // MPropertyFriendlyName "maximum trace length" - float m_flMaxTraceLength; // 0x7c8 + float m_flMaxTraceLength; // 0x7f8 // MPropertyFriendlyName "LOS Failure Scalar" - float m_flLOSScale; // 0x7cc + float m_flLOSScale; // 0x7fc // MPropertyFriendlyName "LOS collision group" - char m_CollisionGroupName[128]; // 0x7d0 + char m_CollisionGroupName[128]; // 0x800 // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x850 + ParticleTraceSet_t m_nTraceSet; // 0x880 // MPropertyFriendlyName "ensure line of sight" - bool m_bLOS; // 0x854 + bool m_bLOS; // 0x884 private: - [[maybe_unused]] uint8_t __pad0855[0x3]; // 0x855 + [[maybe_unused]] uint8_t __pad0885[0x3]; // 0x885 public: // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x858 + ParticleSetMethod_t m_nSetMethod; // 0x888 }; -// Alignment: 6 -// Size: 0x1d0 +// Alignment: 7 +// Size: 0x1e0 class C_OP_RemapScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1b8 + float m_flInputMin; // 0x1c8 // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1bc + float m_flInputMax; // 0x1cc // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c0 + float m_flOutputMin; // 0x1d0 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c4 + float m_flOutputMax; // 0x1d4 + // MPropertyFriendlyName "use old code" + bool m_bOldCode; // 0x1d8 }; // Alignment: 3 @@ -20750,7 +21510,7 @@ public: }; // Alignment: 11 -// Size: 0xcb0 +// Size: 0xcf0 class C_INIT_RingWave : public CParticleFunctionInitializer { public: @@ -20759,27 +21519,27 @@ public: // MPropertyFriendlyName "even distribution count" CParticleCollectionFloatInput m_flParticlesPerOrbit; // 0x228 // MPropertyFriendlyName "initial radius" - CPerParticleFloatInput m_flInitialRadius; // 0x378 + CPerParticleFloatInput m_flInitialRadius; // 0x380 // MPropertyFriendlyName "thickness" - CPerParticleFloatInput m_flThickness; // 0x4c8 + CPerParticleFloatInput m_flThickness; // 0x4d8 // MPropertyFriendlyName "min initial speed" - CPerParticleFloatInput m_flInitialSpeedMin; // 0x618 + CPerParticleFloatInput m_flInitialSpeedMin; // 0x630 // MPropertyFriendlyName "max initial speed" - CPerParticleFloatInput m_flInitialSpeedMax; // 0x768 + CPerParticleFloatInput m_flInitialSpeedMax; // 0x788 // MPropertyFriendlyName "roll" - CPerParticleFloatInput m_flRoll; // 0x8b8 + CPerParticleFloatInput m_flRoll; // 0x8e0 // MPropertyFriendlyName "pitch" - CPerParticleFloatInput m_flPitch; // 0xa08 + CPerParticleFloatInput m_flPitch; // 0xa38 // MPropertyFriendlyName "yaw" - CPerParticleFloatInput m_flYaw; // 0xb58 + CPerParticleFloatInput m_flYaw; // 0xb90 // MPropertyFriendlyName "even distribution" - bool m_bEvenDistribution; // 0xca8 + bool m_bEvenDistribution; // 0xce8 // MPropertyFriendlyName "XY velocity only" - bool m_bXYVelocityOnly; // 0xca9 + bool m_bXYVelocityOnly; // 0xce9 }; // Alignment: 9 -// Size: 0x9e0 +// Size: 0xa10 class C_INIT_SetHitboxToClosest : public CParticleFunctionInitializer { public: @@ -20790,34 +21550,34 @@ public: // MPropertyFriendlyName "model hitbox scale" CParticleCollectionVecInput m_vecHitBoxScale; // 0x1c8 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x800 + char m_HitboxSetName[128]; // 0x820 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x880 + bool m_bUseBones; // 0x8a0 // MPropertyFriendlyName "get closest point on closest hitbox" - bool m_bUseClosestPointOnHitbox; // 0x881 + bool m_bUseClosestPointOnHitbox; // 0x8a1 private: - [[maybe_unused]] uint8_t __pad0882[0x2]; // 0x882 + [[maybe_unused]] uint8_t __pad08a2[0x2]; // 0x8a2 public: // MPropertyFriendlyName "closest point test type" - ClosestPointTestType_t m_nTestType; // 0x884 + ClosestPointTestType_t m_nTestType; // 0x8a4 // MPropertyFriendlyName "hybrid ratio" - CParticleCollectionFloatInput m_flHybridRatio; // 0x888 + CParticleCollectionFloatInput m_flHybridRatio; // 0x8a8 // MPropertyFriendlyName "set initial position" - bool m_bUpdatePosition; // 0x9d8 + bool m_bUpdatePosition; // 0xa00 }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_RemapVelocityToVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "scale factor" - float m_flScale; // 0x1b4 + float m_flScale; // 0x1c4 // MPropertyFriendlyName "normalize" - bool m_bNormalize; // 0x1b8 + bool m_bNormalize; // 0x1c8 }; // Alignment: 4 @@ -20838,47 +21598,47 @@ public: }; // Alignment: 5 -// Size: 0x5c0 +// Size: 0x5f0 class C_OP_RepeatedTriggerChildGroup : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1c0 + int32_t m_nChildGroupID; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "Within-Cluster Refire Time" - CParticleCollectionFloatInput m_flClusterRefireTime; // 0x1c8 + CParticleCollectionFloatInput m_flClusterRefireTime; // 0x1d8 // MPropertyFriendlyName "Within-Cluster Fire Count Before Cooldown" - CParticleCollectionFloatInput m_flClusterSize; // 0x318 + CParticleCollectionFloatInput m_flClusterSize; // 0x330 // MPropertyFriendlyName "Cluster Cooldown Time" - CParticleCollectionFloatInput m_flClusterCooldown; // 0x468 + CParticleCollectionFloatInput m_flClusterCooldown; // 0x488 // MPropertyFriendlyName "limit active children to parent particle count" - bool m_bLimitChildCount; // 0x5b8 + bool m_bLimitChildCount; // 0x5e0 }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_FadeInSimple : public CParticleFunctionOperator { public: // MPropertyFriendlyName "proportional fade in time" - float m_flFadeInTime; // 0x1b0 + float m_flFadeInTime; // 0x1c0 // MPropertyFriendlyName "alpha field" // MPropertyAttributeChoiceName "particlefield_alpha" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_NormalizeVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "scale factor" - float m_flScale; // 0x1b4 + float m_flScale; // 0x1c4 }; // Alignment: 4 @@ -20903,58 +21663,58 @@ public: }; // Alignment: 10 -// Size: 0xdd0 +// Size: 0xe20 class C_OP_RemapAverageHitboxSpeedtoCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "input control point" - int32_t m_nInControlPointNumber; // 0x1c0 + int32_t m_nInControlPointNumber; // 0x1d0 // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c4 + int32_t m_nOutControlPointNumber; // 0x1d4 // MPropertyFriendlyName "Output component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nField; // 0x1c8 + int32_t m_nField; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc public: // MPropertyFriendlyName "input minimum" - CParticleCollectionFloatInput m_flInputMin; // 0x1d0 + CParticleCollectionFloatInput m_flInputMin; // 0x1e0 // MPropertyFriendlyName "input maximum" - CParticleCollectionFloatInput m_flInputMax; // 0x320 + CParticleCollectionFloatInput m_flInputMax; // 0x338 // MPropertyFriendlyName "output minimum" - CParticleCollectionFloatInput m_flOutputMin; // 0x470 + CParticleCollectionFloatInput m_flOutputMin; // 0x490 // MPropertyFriendlyName "output maximum" - CParticleCollectionFloatInput m_flOutputMax; // 0x5c0 + CParticleCollectionFloatInput m_flOutputMax; // 0x5e8 // MPropertyFriendlyName "intersection height CP" - int32_t m_nHeightControlPointNumber; // 0x710 + int32_t m_nHeightControlPointNumber; // 0x740 private: - [[maybe_unused]] uint8_t __pad0714[0x4]; // 0x714 + [[maybe_unused]] uint8_t __pad0744[0x4]; // 0x744 public: // MPropertyFriendlyName "comparison velocity" - CParticleCollectionVecInput m_vecComparisonVelocity; // 0x718 + CParticleCollectionVecInput m_vecComparisonVelocity; // 0x748 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0xd50 + char m_HitboxSetName[128]; // 0xda0 }; // Alignment: 5 -// Size: 0x310 +// Size: 0x330 class C_OP_ExternalGameImpulseForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "force scale" - CPerParticleFloatInput m_flForceScale; // 0x1b0 + CPerParticleFloatInput m_flForceScale; // 0x1d0 // MPropertyFriendlyName "rope shake" - bool m_bRopes; // 0x300 + bool m_bRopes; // 0x328 // MPropertyFriendlyName "limit rope impulses to Z" - bool m_bRopesZOnly; // 0x301 + bool m_bRopesZOnly; // 0x329 // MPropertyFriendlyName "explosions" - bool m_bExplosions; // 0x302 + bool m_bExplosions; // 0x32a // MPropertyFriendlyName "particle systems" - bool m_bParticles; // 0x303 + bool m_bParticles; // 0x32b }; -// Alignment: 48 -// Size: 0x2400 +// Alignment: 49 +// Size: 0x25f0 class C_OP_RenderModels : public CParticleFunctionRenderer { public: @@ -21008,146 +21768,144 @@ public: CPerParticleVecInput m_vecLocalOffset; // 0x230 // MPropertyFriendlyName "model local rotation (pitch/yaw/roll)" // MPropertySortPriority "750" - CPerParticleVecInput m_vecLocalRotation; // 0x868 + CPerParticleVecInput m_vecLocalRotation; // 0x888 // MPropertyStartGroup "Model Scale" // MPropertyFriendlyName "ignore radius" // MPropertySortPriority "700" - bool m_bIgnoreRadius; // 0xea0 + bool m_bIgnoreRadius; // 0xee0 private: - [[maybe_unused]] uint8_t __pad0ea1[0x3]; // 0xea1 + [[maybe_unused]] uint8_t __pad0ee1[0x3]; // 0xee1 public: // MPropertyFriendlyName "model scale CP" // MPropertySortPriority "700" - int32_t m_nModelScaleCP; // 0xea4 + int32_t m_nModelScaleCP; // 0xee4 // MPropertyFriendlyName "model component scale" // MPropertySortPriority "700" - CPerParticleVecInput m_vecComponentScale; // 0xea8 + CPerParticleVecInput m_vecComponentScale; // 0xee8 // MPropertyFriendlyName "apply scales in local model space" // MPropertySortPriority "700" - bool m_bLocalScale; // 0x14e0 + bool m_bLocalScale; // 0x1540 // MPropertyStartGroup "Animation" // MPropertyFriendlyName "animated" // MPropertySortPriority "500" - bool m_bAnimated; // 0x14e1 + bool m_bAnimated; // 0x1541 private: - [[maybe_unused]] uint8_t __pad14e2[0x2]; // 0x14e2 + [[maybe_unused]] uint8_t __pad1542[0x2]; // 0x1542 public: // MPropertyFriendlyName "animation rate" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - float m_flAnimationRate; // 0x14e4 + float m_flAnimationRate; // 0x1544 // MPropertyFriendlyName "scale animation rate" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - bool m_bScaleAnimationRate; // 0x14e8 + bool m_bScaleAnimationRate; // 0x1548 // MPropertyFriendlyName "force looping animations" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - bool m_bForceLoopingAnimation; // 0x14e9 + bool m_bForceLoopingAnimation; // 0x1549 // MPropertyFriendlyName "reset animation frame on stop" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - bool m_bResetAnimOnStop; // 0x14ea + bool m_bResetAnimOnStop; // 0x154a // MPropertyFriendlyName "set animation frame manually" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - bool m_bManualAnimFrame; // 0x14eb + bool m_bManualAnimFrame; // 0x154b // MPropertyFriendlyName "animation rate scale field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - ParticleAttributeIndex_t m_nAnimationScaleField; // 0x14ec + ParticleAttributeIndex_t m_nAnimationScaleField; // 0x154c // MPropertyStartGroup "Animation" // MPropertyFriendlyName "animation sequence field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "500" - ParticleAttributeIndex_t m_nAnimationField; // 0x14f0 + ParticleAttributeIndex_t m_nAnimationField; // 0x1550 // MPropertyFriendlyName "manual animation frame field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "500" // MPropertySuppressExpr "!(m_bAnimated && m_bManualAnimFrame)" - ParticleAttributeIndex_t m_nManualFrameField; // 0x14f4 + ParticleAttributeIndex_t m_nManualFrameField; // 0x1554 // MPropertyFriendlyName "activity override" // MPropertySuppressExpr "mod != dota" // MPropertySortPriority "500" - char m_ActivityName[256]; // 0x14f8 + char m_ActivityName[256]; // 0x1558 // MPropertyFriendlyName "sequence override" // MPropertySuppressExpr "mod == dota" // MPropertySortPriority "500" - char m_SequenceName[256]; // 0x15f8 + char m_SequenceName[256]; // 0x1658 // MPropertyFriendlyName "Enable Cloth Simulation" - bool m_bEnableClothSimulation; // 0x16f8 + bool m_bEnableClothSimulation; // 0x1758 private: - [[maybe_unused]] uint8_t __pad16f9[0x7]; // 0x16f9 + [[maybe_unused]] uint8_t __pad1759[0x7]; // 0x1759 public: // MPropertyStartGroup "Material" // MPropertyFriendlyName "material override" // MPropertySortPriority "600" - CStrongHandle< InfoForResourceTypeIMaterial2 > m_hOverrideMaterial; // 0x1700 + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hOverrideMaterial; // 0x1760 // MPropertyFriendlyName "override translucent materials" // MPropertySortPriority "600" - bool m_bOverrideTranslucentMaterials; // 0x1708 + bool m_bOverrideTranslucentMaterials; // 0x1768 private: - [[maybe_unused]] uint8_t __pad1709[0x3]; // 0x1709 + [[maybe_unused]] uint8_t __pad1769[0x7]; // 0x1769 public: // MPropertyFriendlyName "skin number" // MPropertySortPriority "600" - int32_t m_nSkin; // 0x170c - // MPropertyFriendlyName "skin override CP" - // MPropertySortPriority "600" - int32_t m_nSkinCP; // 0x1710 -private: - [[maybe_unused]] uint8_t __pad1714[0x4]; // 0x1714 -public: + CPerParticleFloatInput m_nSkin; // 0x1770 // MPropertyFriendlyName "material variables" // MPropertyAutoExpandSelf // MPropertySortPriority "600" - CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x1718 + CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x18c8 // MPropertyStartGroup "Model Overrides" // MPropertyFriendlyName "input model" - CParticleModelInput m_modelInput; // 0x1730 + CParticleModelInput m_modelInput; // 0x18e0 // MPropertyFriendlyName "model LOD" - int32_t m_nLOD; // 0x1790 + int32_t m_nLOD; // 0x1940 // MPropertyFriendlyName "model override economy loadout slot type" - char m_EconSlotName[256]; // 0x1794 + char m_EconSlotName[256]; // 0x1944 // MPropertyFriendlyName "model override original model only (ignore shapeshift/hex/etc)" - bool m_bOriginalModel; // 0x1894 + bool m_bOriginalModel; // 0x1a44 // MPropertyFriendlyName "suppress tinting of the model" - bool m_bSuppressTint; // 0x1895 + bool m_bSuppressTint; // 0x1a45 // MPropertyFriendlyName "use raw mesh group (ignore bodygroup field and use submodel field as raw meshgroup)" - bool m_bUseRawMeshGroup; // 0x1896 + bool m_bUseRawMeshGroup; // 0x1a46 // MPropertyFriendlyName "disable shadows" - bool m_bDisableShadows; // 0x1897 + bool m_bDisableShadows; // 0x1a47 + // MPropertyFriendlyName "accept decals" + bool m_bAcceptsDecals; // 0x1a48 // MPropertyFriendlyName "forcedrawinterlevedwithsiblings" - bool m_bForceDrawInterlevedWithSiblings; // 0x1898 + bool m_bForceDrawInterlevedWithSiblings; // 0x1a49 + // MPropertyFriendlyName "do not draw in particle pass" + bool m_bDoNotDrawInParticlePass; // 0x1a4a // MPropertyFriendlyName "render attribute" - char m_szRenderAttribute[260]; // 0x1899 + char m_szRenderAttribute[260]; // 0x1a4b private: - [[maybe_unused]] uint8_t __pad199d[0x3]; // 0x199d + [[maybe_unused]] uint8_t __pad1b4f[0x1]; // 0x1b4f public: // MPropertyStartGroup "+Renderer Modifiers" // MPropertyFriendlyName "Radius Scale" // MPropertySortPriority "700" - CParticleCollectionFloatInput m_flRadiusScale; // 0x19a0 + CParticleCollectionFloatInput m_flRadiusScale; // 0x1b50 // MPropertyFriendlyName "alpha scale" // MPropertySortPriority "700" - CParticleCollectionFloatInput m_flAlphaScale; // 0x1af0 + CParticleCollectionFloatInput m_flAlphaScale; // 0x1ca8 // MPropertyFriendlyName "rotation roll scale" // MPropertySortPriority "700" - CParticleCollectionFloatInput m_flRollScale; // 0x1c40 + CParticleCollectionFloatInput m_flRollScale; // 0x1e00 // MPropertyFriendlyName "per-particle alpha scale attribute" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "700" - ParticleAttributeIndex_t m_nAlpha2Field; // 0x1d90 + ParticleAttributeIndex_t m_nAlpha2Field; // 0x1f58 private: - [[maybe_unused]] uint8_t __pad1d94[0x4]; // 0x1d94 + [[maybe_unused]] uint8_t __pad1f5c[0x4]; // 0x1f5c public: // MPropertyFriendlyName "color blend" // MPropertySortPriority "700" - CParticleCollectionVecInput m_vecColorScale; // 0x1d98 + CParticleCollectionVecInput m_vecColorScale; // 0x1f60 // MPropertyFriendlyName "color blend type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0x23d0 + ParticleColorBlendType_t m_nColorBlendType; // 0x25b8 }; // Alignment: 3 @@ -21166,108 +21924,108 @@ public: }; // Alignment: 6 -// Size: 0x320 +// Size: 0x330 class C_OP_DecayMaintainCount : public CParticleFunctionOperator { public: // MPropertyFriendlyName "count to maintain" - int32_t m_nParticlesToMaintain; // 0x1b0 + int32_t m_nParticlesToMaintain; // 0x1c0 // MPropertyFriendlyName "decay delay" - float m_flDecayDelay; // 0x1b4 + float m_flDecayDelay; // 0x1c4 // MPropertyFriendlyName "snapshot control point for count" - int32_t m_nSnapshotControlPoint; // 0x1b8 + int32_t m_nSnapshotControlPoint; // 0x1c8 // MPropertyFriendlyName "decay on lifespan" - bool m_bLifespanDecay; // 0x1bc + bool m_bLifespanDecay; // 0x1cc private: - [[maybe_unused]] uint8_t __pad01bd[0x3]; // 0x1bd + [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd public: // MPropertyFriendlyName "total count scale" - CParticleCollectionFloatInput m_flScale; // 0x1c0 + CParticleCollectionFloatInput m_flScale; // 0x1d0 // MPropertyFriendlyName "kill newest instead of oldest" - bool m_bKillNewest; // 0x310 + bool m_bKillNewest; // 0x328 }; // Alignment: 3 -// Size: 0x260 +// Size: 0x270 class C_OP_SetControlPointPositionToTimeOfDayValue : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1c0 + int32_t m_nControlPointNumber; // 0x1d0 // MPropertyFriendlyName "time-of-day parameter" - char m_pszTimeOfDayParameter[128]; // 0x1c4 + char m_pszTimeOfDayParameter[128]; // 0x1d4 // MPropertyFriendlyName "default value" - Vector m_vecDefaultValue; // 0x244 + Vector m_vecDefaultValue; // 0x254 }; // Alignment: 20 -// Size: 0x3840 +// Size: 0x3990 class C_OP_RenderTrails : public CBaseTrailRenderer { public: // MPropertyStartGroup "Screenspace Fading and culling" // MPropertyFriendlyName "enable fading and clamping" // MPropertySortPriority "1000" - bool m_bEnableFadingAndClamping; // 0x2650 + bool m_bEnableFadingAndClamping; // 0x2740 private: - [[maybe_unused]] uint8_t __pad2651[0x3]; // 0x2651 + [[maybe_unused]] uint8_t __pad2741[0x3]; // 0x2741 public: // MPropertyFriendlyName "start fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flStartFadeDot; // 0x2654 + float m_flStartFadeDot; // 0x2744 // MPropertyFriendlyName "end fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flEndFadeDot; // 0x2658 + float m_flEndFadeDot; // 0x2748 // MPropertyStartGroup "+Trail Length" // MPropertyFriendlyName "Anchor point source" // MPropertyAttributeChoiceName "particlefield_vector" // MPropertySortPriority "800" - ParticleAttributeIndex_t m_nPrevPntSource; // 0x265c + ParticleAttributeIndex_t m_nPrevPntSource; // 0x274c // MPropertyFriendlyName "max length" // MPropertySortPriority "800" - float m_flMaxLength; // 0x2660 + float m_flMaxLength; // 0x2750 // MPropertyFriendlyName "min length" // MPropertySortPriority "800" - float m_flMinLength; // 0x2664 + float m_flMinLength; // 0x2754 // MPropertyFriendlyName "ignore delta time" // MPropertySortPriority "800" - bool m_bIgnoreDT; // 0x2668 + bool m_bIgnoreDT; // 0x2758 private: - [[maybe_unused]] uint8_t __pad2669[0x3]; // 0x2669 + [[maybe_unused]] uint8_t __pad2759[0x3]; // 0x2759 public: // MPropertyFriendlyName "constrain radius to no more than this times the length" // MPropertySortPriority "800" - float m_flConstrainRadiusToLengthRatio; // 0x266c + float m_flConstrainRadiusToLengthRatio; // 0x275c // MPropertyFriendlyName "amount to scale trail length by" - float m_flLengthScale; // 0x2670 + float m_flLengthScale; // 0x2760 // MPropertyFriendlyName "how long before a trail grows to its full length" - float m_flLengthFadeInTime; // 0x2674 + float m_flLengthFadeInTime; // 0x2764 // MPropertyStartGroup "Trail Head & Tail" // MPropertyFriendlyName "head taper scale" // MPropertySortPriority "800" - CPerParticleFloatInput m_flRadiusHeadTaper; // 0x2678 + CPerParticleFloatInput m_flRadiusHeadTaper; // 0x2768 // MPropertyFriendlyName "head color scale" - CParticleCollectionVecInput m_vecHeadColorScale; // 0x27c8 + CParticleCollectionVecInput m_vecHeadColorScale; // 0x28c0 // MPropertyFriendlyName "head alpha scale" - CPerParticleFloatInput m_flHeadAlphaScale; // 0x2e00 + CPerParticleFloatInput m_flHeadAlphaScale; // 0x2f18 // MPropertyFriendlyName "tail taper scale" - CPerParticleFloatInput m_flRadiusTaper; // 0x2f50 + CPerParticleFloatInput m_flRadiusTaper; // 0x3070 // MPropertyFriendlyName "tail color scale" - CParticleCollectionVecInput m_vecTailColorScale; // 0x30a0 + CParticleCollectionVecInput m_vecTailColorScale; // 0x31c8 // MPropertyFriendlyName "tail alpha scale" - CPerParticleFloatInput m_flTailAlphaScale; // 0x36d8 + CPerParticleFloatInput m_flTailAlphaScale; // 0x3820 // MPropertyStartGroup "Trail UV Controls" // MPropertyFriendlyName "texture UV horizontal Scale field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "800" - ParticleAttributeIndex_t m_nHorizCropField; // 0x3828 + ParticleAttributeIndex_t m_nHorizCropField; // 0x3978 // MPropertyFriendlyName "texture UV vertical Scale field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nVertCropField; // 0x382c + ParticleAttributeIndex_t m_nVertCropField; // 0x397c // MPropertyFriendlyName "Trail forward shift (fraction)" - float m_flForwardShift; // 0x3830 + float m_flForwardShift; // 0x3980 // MPropertyFriendlyName "Flip U or V texcoords if pitch or yaw go over PI" - bool m_bFlipUVBasedOnPitchYaw; // 0x3834 + bool m_bFlipUVBasedOnPitchYaw; // 0x3984 }; // Alignment: 0 @@ -21279,45 +22037,45 @@ public: }; // Alignment: 8 -// Size: 0x710 +// Size: 0x740 class C_OP_RemapDotProductToCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "first input control point" - int32_t m_nInputCP1; // 0x1c0 + int32_t m_nInputCP1; // 0x1d0 // MPropertyFriendlyName "second input control point" - int32_t m_nInputCP2; // 0x1c4 + int32_t m_nInputCP2; // 0x1d4 // MPropertyFriendlyName "output control point" - int32_t m_nOutputCP; // 0x1c8 + int32_t m_nOutputCP; // 0x1d8 // MPropertyFriendlyName "output component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutVectorField; // 0x1cc + int32_t m_nOutVectorField; // 0x1dc // MPropertyFriendlyName "input minimum (-1 to 1)" - CParticleCollectionFloatInput m_flInputMin; // 0x1d0 + CParticleCollectionFloatInput m_flInputMin; // 0x1e0 // MPropertyFriendlyName "input maximum (-1 to 1)" - CParticleCollectionFloatInput m_flInputMax; // 0x320 + CParticleCollectionFloatInput m_flInputMax; // 0x338 // MPropertyFriendlyName "output minimum" - CParticleCollectionFloatInput m_flOutputMin; // 0x470 + CParticleCollectionFloatInput m_flOutputMin; // 0x490 // MPropertyFriendlyName "output maximum" - CParticleCollectionFloatInput m_flOutputMax; // 0x5c0 + CParticleCollectionFloatInput m_flOutputMax; // 0x5e8 }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_OrientTo2dDirection : public CParticleFunctionOperator { public: // MPropertyFriendlyName "rotation offset" - float m_flRotOffset; // 0x1b0 + float m_flRotOffset; // 0x1c0 // MPropertyFriendlyName "spin strength" - float m_flSpinStrength; // 0x1b4 + float m_flSpinStrength; // 0x1c4 // MPropertyFriendlyName "rotation field" // MPropertyAttributeChoiceName "particlefield_rotation" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b8 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c8 }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class C_OP_SpinUpdate : public CSpinUpdateBase { public: @@ -21325,229 +22083,229 @@ public: }; // Alignment: 27 -// Size: 0x2a80 +// Size: 0x2b90 class C_OP_RenderSprites : public CBaseRendererSource2 { public: // MPropertyStartGroup "Animation" // MPropertyFriendlyName "sequence id override" // MPropertySortPriority "500" - CParticleCollectionRendererFloatInput m_nSequenceOverride; // 0x2390 + CParticleCollectionRendererFloatInput m_nSequenceOverride; // 0x2470 // MPropertyStartGroup "Orientation" // MPropertyFriendlyName "orientation type" // MPropertySortPriority "750" - ParticleOrientationChoiceList_t m_nOrientationType; // 0x24e0 + ParticleOrientationChoiceList_t m_nOrientationType; // 0x25c8 // MPropertyFriendlyName "orientation control point" // MPropertySortPriority "750" // MPropertySuppressExpr "m_nOrientationType != PARTICLE_ORIENTATION_ALIGN_TO_PARTICLE_NORMAL && m_nOrientationType != PARTICLE_ORIENTATION_SCREENALIGN_TO_PARTICLE_NORMAL" - int32_t m_nOrientationControlPoint; // 0x24e4 + int32_t m_nOrientationControlPoint; // 0x25cc // MPropertyFriendlyName "enable yaw for particles aligned to normals" // MPropertySortPriority "750" // MPropertySuppressExpr "m_nOrientationType != PARTICLE_ORIENTATION_ALIGN_TO_PARTICLE_NORMAL && m_nOrientationType != PARTICLE_ORIENTATION_SCREENALIGN_TO_PARTICLE_NORMAL" - bool m_bUseYawWithNormalAligned; // 0x24e8 + bool m_bUseYawWithNormalAligned; // 0x25d0 private: - [[maybe_unused]] uint8_t __pad24e9[0x3]; // 0x24e9 + [[maybe_unused]] uint8_t __pad25d1[0x3]; // 0x25d1 public: // MPropertyStartGroup "Fading and culling" // MPropertyFriendlyName "minimum visual screen size" // MPropertySortPriority "1000" - float m_flMinSize; // 0x24ec + float m_flMinSize; // 0x25d4 // MPropertyFriendlyName "maximum visual screen size" // MPropertySortPriority "1000" - float m_flMaxSize; // 0x24f0 + float m_flMaxSize; // 0x25d8 // MPropertyFriendlyName "Factor to map size adjustment to alpha" // MPropertySortPriority "1000" - float m_flAlphaAdjustWithSizeAdjust; // 0x24f4 + float m_flAlphaAdjustWithSizeAdjust; // 0x25dc // MPropertyFriendlyName "screen size to start fading" // MPropertySortPriority "1000" - CParticleCollectionRendererFloatInput m_flStartFadeSize; // 0x24f8 + CParticleCollectionRendererFloatInput m_flStartFadeSize; // 0x25e0 // MPropertyFriendlyName "screen size to fade away" // MPropertySortPriority "1000" - CParticleCollectionRendererFloatInput m_flEndFadeSize; // 0x2648 + CParticleCollectionRendererFloatInput m_flEndFadeSize; // 0x2738 // MPropertyFriendlyName "start fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flStartFadeDot; // 0x2798 + float m_flStartFadeDot; // 0x2890 // MPropertyFriendlyName "end fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flEndFadeDot; // 0x279c + float m_flEndFadeDot; // 0x2894 // MPropertyStartGroup "Distance to alpha coding" // MPropertyFriendlyName "distance alpha" // MPropertySortPriority "0" - bool m_bDistanceAlpha; // 0x27a0 + bool m_bDistanceAlpha; // 0x2898 // MPropertyFriendlyName "use soft edges for distance alpha" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bDistanceAlpha" - bool m_bSoftEdges; // 0x27a1 + bool m_bSoftEdges; // 0x2899 private: - [[maybe_unused]] uint8_t __pad27a2[0x2]; // 0x27a2 + [[maybe_unused]] uint8_t __pad289a[0x2]; // 0x289a public: // MPropertyFriendlyName "start value for soft edges for distance alpha" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bDistanceAlpha" - float m_flEdgeSoftnessStart; // 0x27a4 + float m_flEdgeSoftnessStart; // 0x289c // MPropertyFriendlyName "end value for soft edges for distance alpha" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bDistanceAlpha" - float m_flEdgeSoftnessEnd; // 0x27a8 + float m_flEdgeSoftnessEnd; // 0x28a0 // MPropertyStartGroup "Outlining" // MPropertyFriendlyName "enable particle outlining" // MPropertySortPriority "0" - bool m_bOutline; // 0x27ac + bool m_bOutline; // 0x28a4 // MPropertyFriendlyName "outline color" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - Color m_OutlineColor; // 0x27ad + Color m_OutlineColor; // 0x28a5 private: - [[maybe_unused]] uint8_t __pad27b1[0x3]; // 0x27b1 + [[maybe_unused]] uint8_t __pad28a9[0x3]; // 0x28a9 public: // MPropertyFriendlyName "outline alpha" // MPropertyAttributeRange "0 255" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - int32_t m_nOutlineAlpha; // 0x27b4 + int32_t m_nOutlineAlpha; // 0x28ac // MPropertyFriendlyName "outline start 0" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - float m_flOutlineStart0; // 0x27b8 + float m_flOutlineStart0; // 0x28b0 // MPropertyFriendlyName "outline start 1" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - float m_flOutlineStart1; // 0x27bc + float m_flOutlineStart1; // 0x28b4 // MPropertyFriendlyName "outline end 0" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - float m_flOutlineEnd0; // 0x27c0 + float m_flOutlineEnd0; // 0x28b8 // MPropertyFriendlyName "outline end 1" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - float m_flOutlineEnd1; // 0x27c4 + float m_flOutlineEnd1; // 0x28bc // MPropertyStartGroup "Lighting and Shadows" // MPropertyFriendlyName "lighting mode" // MPropertySortPriority "400" // MPropertySuppressExpr "mod != hlx" - ParticleLightingQuality_t m_nLightingMode; // 0x27c8 + ParticleLightingQuality_t m_nLightingMode; // 0x28c0 private: - [[maybe_unused]] uint8_t __pad27cc[0x4]; // 0x27cc + [[maybe_unused]] uint8_t __pad28c4[0x4]; // 0x28c4 public: // MPropertyFriendlyName "vertex lighting tessellation (0-5)" // MPropertyAttributeRange "0 5" // MPropertySortPriority "400" // MPropertySuppressExpr "mod != hlx || m_nLightingMode != PARTICLE_LIGHTING_PER_VERTEX" - CParticleCollectionRendererFloatInput m_flLightingTessellation; // 0x27d0 + CParticleCollectionRendererFloatInput m_flLightingTessellation; // 0x28c8 // MPropertyFriendlyName "lighting directionality" // MPropertySortPriority "400" // MPropertySuppressExpr "mod != hlx" - CParticleCollectionRendererFloatInput m_flLightingDirectionality; // 0x2920 + CParticleCollectionRendererFloatInput m_flLightingDirectionality; // 0x2a20 // MPropertyFriendlyName "Particle Shadows" // MPropertySortPriority "400" - bool m_bParticleShadows; // 0x2a70 + bool m_bParticleShadows; // 0x2b78 private: - [[maybe_unused]] uint8_t __pad2a71[0x3]; // 0x2a71 + [[maybe_unused]] uint8_t __pad2b79[0x3]; // 0x2b79 public: // MPropertyFriendlyName "Shadow Density" // MPropertySortPriority "400" // MPropertySuppressExpr "!m_bParticleShadows" - float m_flShadowDensity; // 0x2a74 + float m_flShadowDensity; // 0x2b7c }; // Alignment: 5 -// Size: 0x810 +// Size: 0x840 class C_OP_RemapExternalWindToCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point to sample wind" - int32_t m_nCP; // 0x1c0 + int32_t m_nCP; // 0x1d0 // MPropertyFriendlyName "output control point" - int32_t m_nCPOutput; // 0x1c4 + int32_t m_nCPOutput; // 0x1d4 // MPropertyFriendlyName "wind scale" - CParticleCollectionVecInput m_vecScale; // 0x1c8 + CParticleCollectionVecInput m_vecScale; // 0x1d8 // MPropertyFriendlyName "set magnitude instead of vector" - bool m_bSetMagnitude; // 0x800 + bool m_bSetMagnitude; // 0x830 private: - [[maybe_unused]] uint8_t __pad0801[0x3]; // 0x801 + [[maybe_unused]] uint8_t __pad0831[0x3]; // 0x831 public: // MPropertyFriendlyName "magnitude output component" // MPropertyAttributeChoiceName "vector_component" // MPropertySuppressExpr "!m_bSetMagnitude" - int32_t m_nOutVectorField; // 0x804 + int32_t m_nOutVectorField; // 0x834 }; // Alignment: 11 -// Size: 0x1f0 +// Size: 0x200 class C_OP_TeleportBeam : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Position Control Point" - int32_t m_nCPPosition; // 0x1b0 + int32_t m_nCPPosition; // 0x1c0 // MPropertyFriendlyName "Velocity Control Point" - int32_t m_nCPVelocity; // 0x1b4 + int32_t m_nCPVelocity; // 0x1c4 // MPropertyFriendlyName "Misc Control Point" - int32_t m_nCPMisc; // 0x1b8 + int32_t m_nCPMisc; // 0x1c8 // MPropertyFriendlyName "Color Control Point" - int32_t m_nCPColor; // 0x1bc + int32_t m_nCPColor; // 0x1cc // MPropertyFriendlyName "Invalid Color Control Point" - int32_t m_nCPInvalidColor; // 0x1c0 + int32_t m_nCPInvalidColor; // 0x1d0 // MPropertyFriendlyName "Extra Arc Data Point" - int32_t m_nCPExtraArcData; // 0x1c4 + int32_t m_nCPExtraArcData; // 0x1d4 // MPropertyFriendlyName "Gravity" - Vector m_vGravity; // 0x1c8 + Vector m_vGravity; // 0x1d8 // MPropertyFriendlyName "Arc Duration Maximum" - float m_flArcMaxDuration; // 0x1d4 + float m_flArcMaxDuration; // 0x1e4 // MPropertyFriendlyName "Segment Break" - float m_flSegmentBreak; // 0x1d8 + float m_flSegmentBreak; // 0x1e8 // MPropertyFriendlyName "Arc Speed" - float m_flArcSpeed; // 0x1dc + float m_flArcSpeed; // 0x1ec // MPropertyFriendlyName "Alpha" - float m_flAlpha; // 0x1e0 + float m_flAlpha; // 0x1f0 }; // Alignment: 4 -// Size: 0x1d0 +// Size: 0x1f0 class C_OP_TwistAroundAxis : public CParticleFunctionForce { public: // MPropertyFriendlyName "amount of force" - float m_fForceAmount; // 0x1b0 + float m_fForceAmount; // 0x1d0 // MPropertyFriendlyName "twist axis" // MVectorIsCoordinate - Vector m_TwistAxis; // 0x1b4 + Vector m_TwistAxis; // 0x1d4 // MPropertyFriendlyName "object local space axis 0/1" - bool m_bLocalSpace; // 0x1c0 + bool m_bLocalSpace; // 0x1e0 private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01e1[0x3]; // 0x1e1 public: // MPropertyFriendlyName "control point" - int32_t m_nControlPointNumber; // 0x1c4 + int32_t m_nControlPointNumber; // 0x1e4 }; // Alignment: 7 -// Size: 0x880 +// Size: 0x8b0 class C_OP_ModelDampenMovement : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "use only bounding box" - bool m_bBoundBox; // 0x1b4 + bool m_bBoundBox; // 0x1c4 // MPropertyFriendlyName "dampen outside instead of inside" - bool m_bOutside; // 0x1b5 + bool m_bOutside; // 0x1c5 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x1b6 + bool m_bUseBones; // 0x1c6 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x1b7 + char m_HitboxSetName[128]; // 0x1c7 private: - [[maybe_unused]] uint8_t __pad0237[0x1]; // 0x237 + [[maybe_unused]] uint8_t __pad0247[0x1]; // 0x247 public: // MPropertyFriendlyName "test position offset" // MVectorIsCoordinate - CPerParticleVecInput m_vecPosOffset; // 0x238 + CPerParticleVecInput m_vecPosOffset; // 0x248 // MPropertyFriendlyName "drag" // MPropertyAttributeRange "-1 1" - float m_fDrag; // 0x870 + float m_fDrag; // 0x8a0 }; // Alignment: 7 -// Size: 0x10f0 +// Size: 0x1140 class C_INIT_VelocityRandom : public CParticleFunctionInitializer { public: @@ -21559,39 +22317,39 @@ public: // MPropertyFriendlyName "random speed min" CPerParticleFloatInput m_fSpeedMin; // 0x1c8 // MPropertyFriendlyName "random speed max" - CPerParticleFloatInput m_fSpeedMax; // 0x318 + CPerParticleFloatInput m_fSpeedMax; // 0x320 // MPropertyFriendlyName "speed in local coordinate system min" // MVectorIsCoordinate - CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0x468 + CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0x478 // MPropertyFriendlyName "speed in local coordinate system max" // MVectorIsCoordinate - CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0xaa0 + CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0xad0 // MPropertyFriendlyName "Ignore delta time (RenderTrails)" - bool m_bIgnoreDT; // 0x10d8 + bool m_bIgnoreDT; // 0x1128 private: - [[maybe_unused]] uint8_t __pad10d9[0x3]; // 0x10d9 + [[maybe_unused]] uint8_t __pad1129[0x3]; // 0x1129 public: // MPropertyFriendlyName "Random number generator controls" - CRandomNumberGeneratorParameters m_randomnessParameters; // 0x10dc + CRandomNumberGeneratorParameters m_randomnessParameters; // 0x112c }; // Alignment: 4 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_PlaneCull : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point for point on plane" - int32_t m_nPlaneControlPoint; // 0x1b0 + int32_t m_nPlaneControlPoint; // 0x1c0 // MPropertyFriendlyName "plane normal" // MVectorIsCoordinate - Vector m_vecPlaneDirection; // 0x1b4 + Vector m_vecPlaneDirection; // 0x1c4 // MPropertyFriendlyName "use local space" - bool m_bLocalSpace; // 0x1c0 + bool m_bLocalSpace; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 public: // MPropertyFriendlyName "cull plane offset" - float m_flPlaneOffset; // 0x1c4 + float m_flPlaneOffset; // 0x1d4 }; // Alignment: 0 @@ -21603,31 +22361,31 @@ public: }; // Alignment: 8 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_RemapScalarOnceTimed : public CParticleFunctionOperator { public: // MPropertyFriendlyName "remap time proportional" - bool m_bProportional; // 0x1b0 + bool m_bProportional; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b1[0x3]; // 0x1b1 + [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 public: // MPropertyFriendlyName "input field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c4 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b8 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c8 // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1bc + float m_flInputMin; // 0x1cc // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1c0 + float m_flInputMax; // 0x1d0 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c4 + float m_flOutputMin; // 0x1d4 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c8 + float m_flOutputMax; // 0x1d8 // MPropertyFriendlyName "remap time" - float m_flRemapTime; // 0x1cc + float m_flRemapTime; // 0x1dc }; // Alignment: 5 @@ -21651,7 +22409,7 @@ public: }; // Alignment: 10 -// Size: 0x18e0 +// Size: 0x1960 class C_INIT_InitialVelocityNoise : public CParticleFunctionInitializer { public: @@ -21665,20 +22423,20 @@ public: // MVectorIsCoordinate CPerParticleVecInput m_vecOffsetLoc; // 0x1d8 // MPropertyFriendlyName "time coordinate offset" - CPerParticleFloatInput m_flOffset; // 0x810 + CPerParticleFloatInput m_flOffset; // 0x830 // MPropertyFriendlyName "output minimum" - CPerParticleVecInput m_vecOutputMin; // 0x960 + CPerParticleVecInput m_vecOutputMin; // 0x988 // MPropertyFriendlyName "output maximum" - CPerParticleVecInput m_vecOutputMax; // 0xf98 + CPerParticleVecInput m_vecOutputMax; // 0xfe0 // MPropertyFriendlyName "time noise coordinate scale" - CPerParticleFloatInput m_flNoiseScale; // 0x15d0 + CPerParticleFloatInput m_flNoiseScale; // 0x1638 // MPropertyFriendlyName "spatial noise coordinate scale" - CPerParticleFloatInput m_flNoiseScaleLoc; // 0x1720 + CPerParticleFloatInput m_flNoiseScaleLoc; // 0x1790 // MPropertyFriendlyName "input local space velocity (optional)" // MParticleInputOptional - CParticleTransformInput m_TransformInput; // 0x1870 + CParticleTransformInput m_TransformInput; // 0x18e8 // MPropertyFriendlyName "ignore delta time" - bool m_bIgnoreDt; // 0x18d8 + bool m_bIgnoreDt; // 0x1950 }; // Alignment: 4 @@ -21700,21 +22458,21 @@ public: }; // Alignment: 5 -// Size: 0x470 +// Size: 0x490 class C_OP_ConstrainDistance : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "minimum distance" - CParticleCollectionFloatInput m_fMinDistance; // 0x1b0 + CParticleCollectionFloatInput m_fMinDistance; // 0x1c0 // MPropertyFriendlyName "maximum distance" - CParticleCollectionFloatInput m_fMaxDistance; // 0x300 + CParticleCollectionFloatInput m_fMaxDistance; // 0x318 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x450 + int32_t m_nControlPointNumber; // 0x470 // MPropertyFriendlyName "offset of center" // MVectorIsCoordinate - Vector m_CenterOffset; // 0x454 + Vector m_CenterOffset; // 0x474 // MPropertyFriendlyName "global center point" - bool m_bGlobalCenter; // 0x460 + bool m_bGlobalCenter; // 0x480 }; // Alignment: 8 @@ -21790,21 +22548,21 @@ public: }; // Alignment: 5 -// Size: 0x1f0 +// Size: 0x200 class C_OP_OscillateScalarSimple : public CParticleFunctionOperator { public: // MPropertyFriendlyName "oscillation rate" - float m_Rate; // 0x1b0 + float m_Rate; // 0x1c0 // MPropertyFriendlyName "oscillation frequency" - float m_Frequency; // 0x1b4 + float m_Frequency; // 0x1c4 // MPropertyFriendlyName "oscillation field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1b8 + ParticleAttributeIndex_t m_nField; // 0x1c8 // MPropertyFriendlyName "oscillation multiplier" - float m_flOscMult; // 0x1bc + float m_flOscMult; // 0x1cc // MPropertyFriendlyName "oscillation start phase" - float m_flOscAdd; // 0x1c0 + float m_flOscAdd; // 0x1d0 }; // Alignment: 2 @@ -21817,58 +22575,83 @@ public: }; // Alignment: 2 -// Size: 0x310 +// Size: 0x320 class C_OP_PointVectorAtNextParticle : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x1b8 + CPerParticleFloatInput m_flInterpolation; // 0x1c8 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_RemapCPVelocityToVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point" - int32_t m_nControlPoint; // 0x1b0 + int32_t m_nControlPoint; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "scale factor" - float m_flScale; // 0x1b8 + float m_flScale; // 0x1c8 // MPropertyFriendlyName "normalize" - bool m_bNormalize; // 0x1bc + bool m_bNormalize; // 0x1cc +}; + +// Alignment: 8 +// Size: 0x4b0 +class C_OP_RemapSDFDistanceToVectorAttribute : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nVectorFieldOutput; // 0x1c0 + // MPropertyFriendlyName "Input field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nVectorFieldInput; // 0x1c4 + // MPropertyFriendlyName "Minimum distance" + CParticleCollectionFloatInput m_flMinDistance; // 0x1c8 + // MPropertyFriendlyName "Maximum distance" + CParticleCollectionFloatInput m_flMaxDistance; // 0x320 + // MPropertyFriendlyName "Value for distmax" + Vector m_vValueAboveMax; // 0x49c }; // Alignment: 7 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SetControlPointsToParticle : public CParticleFunctionOperator { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1b0 + int32_t m_nChildGroupID; // 0x1c0 // MPropertyFriendlyName "first control point to set" - int32_t m_nFirstControlPoint; // 0x1b4 + int32_t m_nFirstControlPoint; // 0x1c4 // MPropertyFriendlyName "# of control points to set" - int32_t m_nNumControlPoints; // 0x1b8 + int32_t m_nNumControlPoints; // 0x1c8 // MPropertyFriendlyName "first particle to copy" - int32_t m_nFirstSourcePoint; // 0x1bc + int32_t m_nFirstSourcePoint; // 0x1cc // MPropertyFriendlyName "set orientation" - bool m_bSetOrientation; // 0x1c0 + bool m_bSetOrientation; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 public: // MPropertyFriendlyName "orientation style" - ParticleOrientationSetMode_t m_nOrientationMode; // 0x1c4 + ParticleOrientationSetMode_t m_nOrientationMode; // 0x1d4 // MPropertyFriendlyName "set parent" - ParticleParentSetMode_t m_nSetParent; // 0x1c8 + ParticleParentSetMode_t m_nSetParent; // 0x1d8 }; // Alignment: 10 @@ -21983,206 +22766,206 @@ public: }; // Alignment: 30 -// Size: 0x27f0 +// Size: 0x28e0 class C_OP_RenderRopes : public CBaseRendererSource2 { public: // MPropertyStartGroup "Screenspace Fading and culling" // MPropertyFriendlyName "enable fading and clamping" // MPropertySortPriority "1000" - bool m_bEnableFadingAndClamping; // 0x2390 + bool m_bEnableFadingAndClamping; // 0x2470 private: - [[maybe_unused]] uint8_t __pad2391[0x3]; // 0x2391 + [[maybe_unused]] uint8_t __pad2471[0x3]; // 0x2471 public: // MPropertyFriendlyName "minimum visual screen-size" // MPropertySuppressExpr "!m_bEnableFadingAndClamping" - float m_flMinSize; // 0x2394 + float m_flMinSize; // 0x2474 // MPropertyFriendlyName "maximum visual screen-size" // MPropertySuppressExpr "!m_bEnableFadingAndClamping" - float m_flMaxSize; // 0x2398 + float m_flMaxSize; // 0x2478 // MPropertyFriendlyName "start fade screen-size" // MPropertySuppressExpr "!m_bEnableFadingAndClamping" - float m_flStartFadeSize; // 0x239c + float m_flStartFadeSize; // 0x247c // MPropertyFriendlyName "end fade and cull screen-size" // MPropertySuppressExpr "!m_bEnableFadingAndClamping" - float m_flEndFadeSize; // 0x23a0 + float m_flEndFadeSize; // 0x2480 // MPropertyFriendlyName "start fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flStartFadeDot; // 0x23a4 + float m_flStartFadeDot; // 0x2484 // MPropertyFriendlyName "end fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flEndFadeDot; // 0x23a8 + float m_flEndFadeDot; // 0x2488 // MPropertyStartGroup "Rope Tesselation" // MPropertyFriendlyName "amount to taper the width of the trail end by" - float m_flRadiusTaper; // 0x23ac + float m_flRadiusTaper; // 0x248c // MPropertyFriendlyName "minium number of quads per render segment" // MPropertySortPriority "850" - int32_t m_nMinTesselation; // 0x23b0 + int32_t m_nMinTesselation; // 0x2490 // MPropertyFriendlyName "maximum number of quads per render segment" - int32_t m_nMaxTesselation; // 0x23b4 + int32_t m_nMaxTesselation; // 0x2494 // MPropertyFriendlyName "tesselation resolution scale factor" - float m_flTessScale; // 0x23b8 + float m_flTessScale; // 0x2498 private: - [[maybe_unused]] uint8_t __pad23bc[0x4]; // 0x23bc + [[maybe_unused]] uint8_t __pad249c[0x4]; // 0x249c public: // MPropertyStartGroup "+Rope Global UV Controls" // MPropertyFriendlyName "global texture V World Size" // MPropertySortPriority "800" - CParticleCollectionRendererFloatInput m_flTextureVWorldSize; // 0x23c0 + CParticleCollectionRendererFloatInput m_flTextureVWorldSize; // 0x24a0 // MPropertyFriendlyName "global texture V Scroll Rate" - CParticleCollectionRendererFloatInput m_flTextureVScrollRate; // 0x2510 + CParticleCollectionRendererFloatInput m_flTextureVScrollRate; // 0x25f8 // MPropertyFriendlyName "global texture V Offset" - CParticleCollectionRendererFloatInput m_flTextureVOffset; // 0x2660 + CParticleCollectionRendererFloatInput m_flTextureVOffset; // 0x2750 // MPropertyFriendlyName "global texture V Params CP" - int32_t m_nTextureVParamsCP; // 0x27b0 + int32_t m_nTextureVParamsCP; // 0x28a8 // MPropertyFriendlyName "Clamp Non-Sheet texture V coords" - bool m_bClampV; // 0x27b4 + bool m_bClampV; // 0x28ac private: - [[maybe_unused]] uint8_t __pad27b5[0x3]; // 0x27b5 + [[maybe_unused]] uint8_t __pad28ad[0x3]; // 0x28ad public: // MPropertyStartGroup "Rope Global UV Controls/CP Scaling" // MPropertyFriendlyName "scale CP start" - int32_t m_nScaleCP1; // 0x27b8 + int32_t m_nScaleCP1; // 0x28b0 // MPropertyFriendlyName "scale CP end" - int32_t m_nScaleCP2; // 0x27bc + int32_t m_nScaleCP2; // 0x28b4 // MPropertyFriendlyName "scale V world size by CP distance" - float m_flScaleVSizeByControlPointDistance; // 0x27c0 + float m_flScaleVSizeByControlPointDistance; // 0x28b8 // MPropertyFriendlyName "scale V scroll rate by CP distance" - float m_flScaleVScrollByControlPointDistance; // 0x27c4 + float m_flScaleVScrollByControlPointDistance; // 0x28bc // MPropertyFriendlyName "scale V offset by CP distance" - float m_flScaleVOffsetByControlPointDistance; // 0x27c8 + float m_flScaleVOffsetByControlPointDistance; // 0x28c0 private: - [[maybe_unused]] uint8_t __pad27cc[0x1]; // 0x27cc + [[maybe_unused]] uint8_t __pad28c4[0x1]; // 0x28c4 public: // MPropertyStartGroup "Rope Global UV Controls" // MPropertyFriendlyName "Use scalar attribute for texture coordinate" - bool m_bUseScalarForTextureCoordinate; // 0x27cd + bool m_bUseScalarForTextureCoordinate; // 0x28c5 private: - [[maybe_unused]] uint8_t __pad27ce[0x2]; // 0x27ce + [[maybe_unused]] uint8_t __pad28c6[0x2]; // 0x28c6 public: // MPropertyFriendlyName "scalar to use for texture coordinate" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySuppressExpr "!m_bUseScalarForTextureCoordinate" - ParticleAttributeIndex_t m_nScalarFieldForTextureCoordinate; // 0x27d0 + ParticleAttributeIndex_t m_nScalarFieldForTextureCoordinate; // 0x28c8 // MPropertyFriendlyName "scale value to map attribute to texture coordinate" // MPropertySuppressExpr "!m_bUseScalarForTextureCoordinate" - float m_flScalarAttributeTextureCoordScale; // 0x27d4 + float m_flScalarAttributeTextureCoordScale; // 0x28cc // MPropertyStartGroup "Rope Order Controls" // MPropertyFriendlyName "reverse point order" // MPropertySortPriority "800" - bool m_bReverseOrder; // 0x27d8 + bool m_bReverseOrder; // 0x28d0 // MPropertyFriendlyName "Closed loop" - bool m_bClosedLoop; // 0x27d9 + bool m_bClosedLoop; // 0x28d1 private: - [[maybe_unused]] uint8_t __pad27da[0x2]; // 0x27da + [[maybe_unused]] uint8_t __pad28d2[0x2]; // 0x28d2 public: // MPropertyStartGroup "Orientation" // MPropertyFriendlyName "orientation_type" // MPropertySortPriority "750" - ParticleOrientationChoiceList_t m_nOrientationType; // 0x27dc + ParticleOrientationChoiceList_t m_nOrientationType; // 0x28d4 // MPropertyFriendlyName "attribute to use for normal" // MPropertyAttributeChoiceName "particlefield_vector" // MPropertySortPriority "750" // MPropertySuppressExpr "m_nOrientationType != PARTICLE_ORIENTATION_ALIGN_TO_PARTICLE_NORMAL && m_nOrientationType != PARTICLE_ORIENTATION_SCREENALIGN_TO_PARTICLE_NORMAL" - ParticleAttributeIndex_t m_nVectorFieldForOrientation; // 0x27e0 + ParticleAttributeIndex_t m_nVectorFieldForOrientation; // 0x28d8 // MPropertyStartGroup "Material" // MPropertyFriendlyName "draw as opaque" - bool m_bDrawAsOpaque; // 0x27e4 + bool m_bDrawAsOpaque; // 0x28dc // MPropertyStartGroup "Orientation" // MPropertyFriendlyName "generate normals for cylinder" - bool m_bGenerateNormals; // 0x27e5 + bool m_bGenerateNormals; // 0x28dd }; // Alignment: 5 -// Size: 0xd30 +// Size: 0xd80 class C_OP_SpringToVectorConstraint : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "slack" - CPerParticleFloatInput m_flRestLength; // 0x1b0 + CPerParticleFloatInput m_flRestLength; // 0x1c0 // MPropertyFriendlyName "minimum segment length %" - CPerParticleFloatInput m_flMinDistance; // 0x300 + CPerParticleFloatInput m_flMinDistance; // 0x318 // MPropertyFriendlyName "maximum segment length %" - CPerParticleFloatInput m_flMaxDistance; // 0x450 + CPerParticleFloatInput m_flMaxDistance; // 0x470 // MPropertyFriendlyName "resting spacing" - CPerParticleFloatInput m_flRestingLength; // 0x5a0 + CPerParticleFloatInput m_flRestingLength; // 0x5c8 // MPropertyFriendlyName "anchor vector" - CPerParticleVecInput m_vecAnchorVector; // 0x6f0 + CPerParticleVecInput m_vecAnchorVector; // 0x720 }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_FadeOutSimple : public CParticleFunctionOperator { public: // MPropertyFriendlyName "proportional fade out time" - float m_flFadeOutTime; // 0x1b0 + float m_flFadeOutTime; // 0x1c0 // MPropertyFriendlyName "alpha field" // MPropertyAttributeChoiceName "particlefield_alpha" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 }; // Alignment: 9 -// Size: 0x1f0 +// Size: 0x200 class C_OP_RemapModelVolumetoCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "output BBox Type" - BBoxVolumeType_t m_nBBoxType; // 0x1c0 + BBoxVolumeType_t m_nBBoxType; // 0x1d0 // MPropertyFriendlyName "input control point" - int32_t m_nInControlPointNumber; // 0x1c4 + int32_t m_nInControlPointNumber; // 0x1d4 // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c8 + int32_t m_nOutControlPointNumber; // 0x1d8 // MPropertyFriendlyName "output max control point" // MPropertySuppressExpr "m_nBBoxType != BBOX_MINS_MAXS" - int32_t m_nOutControlPointMaxNumber; // 0x1cc + int32_t m_nOutControlPointMaxNumber; // 0x1dc // MPropertyFriendlyName "output CP component" // MPropertyAttributeChoiceName "vector_component" // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" - int32_t m_nField; // 0x1d0 + int32_t m_nField; // 0x1e0 // MPropertyFriendlyName "input volume minimum in cubic units" // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" - float m_flInputMin; // 0x1d4 + float m_flInputMin; // 0x1e4 // MPropertyFriendlyName "input volume maximum in cubic units" // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" - float m_flInputMax; // 0x1d8 + float m_flInputMax; // 0x1e8 // MPropertyFriendlyName "output minimum" // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" - float m_flOutputMin; // 0x1dc + float m_flOutputMin; // 0x1ec // MPropertyFriendlyName "output maximum" // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" - float m_flOutputMax; // 0x1e0 + float m_flOutputMax; // 0x1f0 }; // Alignment: 9 -// Size: 0x460 +// Size: 0x480 class C_OP_MoveToHitbox : public CParticleFunctionOperator { public: // MPropertyFriendlyName "model input" - CParticleModelInput m_modelInput; // 0x1b0 + CParticleModelInput m_modelInput; // 0x1c0 // MPropertyFriendlyName "transform input" - CParticleTransformInput m_transformInput; // 0x210 + CParticleTransformInput m_transformInput; // 0x220 private: - [[maybe_unused]] uint8_t __pad0278[0x4]; // 0x278 + [[maybe_unused]] uint8_t __pad0288[0x4]; // 0x288 public: // MPropertyFriendlyName "lifetime lerp start" - float m_flLifeTimeLerpStart; // 0x27c + float m_flLifeTimeLerpStart; // 0x28c // MPropertyFriendlyName "lifetime lerp end" - float m_flLifeTimeLerpEnd; // 0x280 + float m_flLifeTimeLerpEnd; // 0x290 // MPropertyFriendlyName "previous position scale" - float m_flPrevPosScale; // 0x284 + float m_flPrevPosScale; // 0x294 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x288 + char m_HitboxSetName[128]; // 0x298 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x308 + bool m_bUseBones; // 0x318 private: - [[maybe_unused]] uint8_t __pad0309[0x3]; // 0x309 + [[maybe_unused]] uint8_t __pad0319[0x3]; // 0x319 public: // MPropertyFriendlyName "lerp type" - HitboxLerpType_t m_nLerpType; // 0x30c + HitboxLerpType_t m_nLerpType; // 0x31c // MPropertyFriendlyName "Constant Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x310 + CPerParticleFloatInput m_flInterpolation; // 0x320 }; // Alignment: 1 @@ -22194,40 +22977,40 @@ public: }; // Alignment: 1 -// Size: 0x220 +// Size: 0x230 class C_OP_RemapTransformToVelocity : public CParticleFunctionOperator { public: // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b0 + CParticleTransformInput m_TransformInput; // 0x1c0 }; // Alignment: 8 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_RemapSpeedtoCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "input control point" - int32_t m_nInControlPointNumber; // 0x1c0 + int32_t m_nInControlPointNumber; // 0x1d0 // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c4 + int32_t m_nOutControlPointNumber; // 0x1d4 // MPropertyFriendlyName "Output field 0-2 X/Y/Z" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nField; // 0x1c8 + int32_t m_nField; // 0x1d8 // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1cc + float m_flInputMin; // 0x1dc // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1d0 + float m_flInputMax; // 0x1e0 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1d4 + float m_flOutputMin; // 0x1e4 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1d8 + float m_flOutputMax; // 0x1e8 // MPropertyFriendlyName "use delta of velocity instead of constant speed" - bool m_bUseDeltaV; // 0x1dc + bool m_bUseDeltaV; // 0x1ec }; // Alignment: 16 -// Size: 0x880 +// Size: 0x8a0 class C_OP_RenderDeferredLight : public CParticleFunctionRenderer { public: @@ -22255,44 +23038,44 @@ public: CParticleCollectionVecInput m_vecColorScale; // 0x210 // MPropertyFriendlyName "color blend type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0x848 + ParticleColorBlendType_t m_nColorBlendType; // 0x868 // MPropertyStartGroup // MPropertyFriendlyName "spotlight distance" - float m_flLightDistance; // 0x84c + float m_flLightDistance; // 0x86c // MPropertyFriendlyName "light start falloff" - float m_flStartFalloff; // 0x850 + float m_flStartFalloff; // 0x870 // MPropertyFriendlyName "spotlight distance falloff" - float m_flDistanceFalloff; // 0x854 + float m_flDistanceFalloff; // 0x874 // MPropertyFriendlyName "spotlight FoV" - float m_flSpotFoV; // 0x858 + float m_flSpotFoV; // 0x878 // MPropertyFriendlyName "projected texture alpha test point scale field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySuppressExpr "!m_bUseTexture" - ParticleAttributeIndex_t m_nAlphaTestPointField; // 0x85c + ParticleAttributeIndex_t m_nAlphaTestPointField; // 0x87c // MPropertyFriendlyName "projected texture alpha test range scale field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySuppressExpr "!m_bUseTexture" - ParticleAttributeIndex_t m_nAlphaTestRangeField; // 0x860 + ParticleAttributeIndex_t m_nAlphaTestRangeField; // 0x880 // MPropertyFriendlyName "projected texture alpha test sharpness scale field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySuppressExpr "!m_bUseTexture" - ParticleAttributeIndex_t m_nAlphaTestSharpnessField; // 0x864 + ParticleAttributeIndex_t m_nAlphaTestSharpnessField; // 0x884 // MPropertyFriendlyName "texture" // MPropertySuppressExpr "!m_bUseTexture" - CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0x868 + CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0x888 // MPropertyFriendlyName "HSV Shift Control Point" - int32_t m_nHSVShiftControlPoint; // 0x870 + int32_t m_nHSVShiftControlPoint; // 0x890 }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_Decay : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Reduce rope popping on decay" - bool m_bRopeDecay; // 0x1b0 + bool m_bRopeDecay; // 0x1c0 // MPropertyFriendlyName "force preserving particle order" - bool m_bForcePreserveParticleOrder; // 0x1b1 + bool m_bForcePreserveParticleOrder; // 0x1c1 }; // Alignment: 2 @@ -22308,14 +23091,18 @@ public: // Size: 0x70 class CNavVolume { +private: + [[maybe_unused]] uint8_t __pad0000[0x70]; // 0x0 public: - uint8_t __pad0000[0x70]; // Autoaligned + // No members available }; // Alignment: 1 // Size: 0x98 class CNavVolumeVector : public CNavVolume { +private: + [[maybe_unused]] uint8_t __pad0070[0x8]; // 0x70 public: bool m_bHasBeenPreFiltered; // 0x78 }; @@ -22324,22 +23111,24 @@ public: // Size: 0x28 class CNetworkVelocityVector { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkBitCount "18" - // MNetworkMinValue "-4096" - // MNetworkMaxValue "4096" + // MNetworkMinValue "-4096.000000" + // MNetworkMaxValue "4096.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkVelocityVector" CNetworkedQuantizedFloat m_vecX; // 0x10 // MNetworkBitCount "18" - // MNetworkMinValue "-4096" - // MNetworkMaxValue "4096" + // MNetworkMinValue "-4096.000000" + // MNetworkMaxValue "4096.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkVelocityVector" CNetworkedQuantizedFloat m_vecY; // 0x18 // MNetworkBitCount "18" - // MNetworkMinValue "-4096" - // MNetworkMaxValue "4096" + // MNetworkMinValue "-4096.000000" + // MNetworkMaxValue "4096.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkVelocityVector" CNetworkedQuantizedFloat m_vecZ; // 0x20 @@ -22349,8 +23138,10 @@ public: // Size: 0x18 class CAnimGraphControllerBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: - uint8_t __pad0000[0x18]; // Autoaligned + // No members available }; // Alignment: 6 @@ -22373,8 +23164,10 @@ public: // Size: 0x8 class IRagdoll { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 5 @@ -22433,17 +23226,32 @@ public: // Size: 0x90 class CGameRules { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: char m_szQuestName[128]; // 0x8 int32_t m_nQuestPhase; // 0x88 }; +// Alignment: 2 +// Size: 0x18 +class CBreakableStageHelper +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 +public: + int32_t m_nCurrentStage; // 0x8 + int32_t m_nStageCount; // 0xc +}; + // Alignment: 0 // Size: 0x28 class CEntitySubclassVDataBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: - uint8_t __pad0000[0x28]; // Autoaligned + // No members available }; // Alignment: 1 @@ -22452,6 +23260,9 @@ struct ModelConfigHandle_t { public: uint32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("ModelConfigHandle_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 9 @@ -22489,8 +23300,10 @@ public: // Size: 0x58 class CBtNode { +private: + [[maybe_unused]] uint8_t __pad0000[0x58]; // 0x0 public: - uint8_t __pad0000[0x58]; // Autoaligned + // No members available }; // Alignment: 1 @@ -22501,10 +23314,21 @@ public: int32_t m_nValues[2]; // 0x0 }; +// Alignment: 2 +// Size: 0x18 +class CAnimGraphTagRef +{ +public: + int32_t m_nTagIndex; // 0x0 + CGlobalSymbol m_tagName; // 0x10 +}; + // Alignment: 2 // Size: 0xb8 class CNavVolumeBreadthFirstSearch : public CNavVolumeCalculatedVector { +private: + [[maybe_unused]] uint8_t __pad0098[0x8]; // 0x98 public: Vector m_vStartPos; // 0xa0 float m_flSearchDist; // 0xac @@ -22522,8 +23346,10 @@ public: // Size: 0x18 class CAnimEventListenerBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: - uint8_t __pad0000[0x18]; // Autoaligned + // No members available }; // Alignment: 11 @@ -22573,6 +23399,8 @@ public: // Size: 0x20 class CInButtonState { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: uint64_t m_pButtonStates[3]; // 0x8 }; @@ -22581,6 +23409,8 @@ public: // Size: 0x18 class CIronSightController { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: bool m_bIronSightAvailable; // 0x8 private: @@ -22595,8 +23425,12 @@ public: // Size: 0x20 class CTakeDamageSummaryScopeGuard { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlVector< SummaryTakeDamageInfo_t* > m_vecSummaries; // 0x8 + + // Static fields: static SummaryTakeDamageInfo_t &Get_EmptySummary(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CTakeDamageSummaryScopeGuard")->m_static_fields[0]->m_instance);}; }; @@ -22606,7 +23440,10 @@ struct GameTime_t { public: float m_Value; // 0x0 - static GameTime_t &Get_Zero(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("GameTime_t")->m_static_fields[0]->m_instance);}; + + // Static fields: + static bool &Get_IS_TYPESAFE_FLOAT(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("GameTime_t")->m_static_fields[0]->m_instance);}; + static GameTime_t &Get_Zero(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("GameTime_t")->m_static_fields[1]->m_instance);}; }; // Alignment: 1 @@ -22615,14 +23452,19 @@ struct ParticleIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("ParticleIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 0 // Size: 0x1 class QuestProgress { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -22646,6 +23488,8 @@ public: // Size: 0x60 class CAI_Expresser { +private: + [[maybe_unused]] uint8_t __pad0000[0x38]; // 0x0 public: GameTime_t m_flStopTalkTime; // 0x38 GameTime_t m_flStopTalkTimeWithoutDelay; // 0x3c @@ -22668,8 +23512,10 @@ public: // Size: 0x8 class IEconItemInterface { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 2 @@ -22704,12 +23550,17 @@ struct AmmoIndex_t { public: int8_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("AmmoIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 4 // Size: 0x40 class CConstantForceController { +private: + [[maybe_unused]] uint8_t __pad0000[0xc]; // 0x0 public: Vector m_linear; // 0xc RotationVector m_angular; // 0x18 @@ -22723,12 +23574,17 @@ struct AnimationUpdateListHandle_t { public: uint32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("AnimationUpdateListHandle_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 3 // Size: 0x20 class ResponseParams { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: int16_t odds; // 0x10 int16_t flags; // 0x12 @@ -22759,6 +23615,8 @@ public: // Size: 0x178 class CBaseIssue { +private: + [[maybe_unused]] uint8_t __pad0000[0x20]; // 0x0 public: char m_szTypeString[64]; // 0x20 char m_szDetailsString[260]; // 0x60 @@ -22780,6 +23638,8 @@ public: // Size: 0x20 class CMotorController { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: float m_speed; // 0x8 float m_maxTorque; // 0xc @@ -22799,8 +23659,10 @@ public: // Size: 0x8 class ISkeletonAnimationController { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 10 @@ -22843,14 +23705,18 @@ public: // Size: 0x8 class IHasAttributes { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 5 // Size: 0x20 class CSmoothFunc { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: float m_flSmoothAmplitude; // 0x8 float m_flSmoothBias; // 0xc @@ -22863,6 +23729,8 @@ public: // Size: 0x28 class CCopyRecipientFilter { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: int32_t m_Flags; // 0x8 private: @@ -22891,6 +23759,8 @@ public: // Size: 0x20 struct locksound_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlSymbolLarge sLockedSound; // 0x8 CUtlSymbolLarge sUnlockedSound; // 0x10 @@ -22973,7 +23843,10 @@ struct GameTick_t { public: int32_t m_Value; // 0x0 - static GameTick_t &Get_Zero(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("GameTick_t")->m_static_fields[0]->m_instance);}; + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("GameTick_t")->m_static_fields[0]->m_instance);}; + static GameTick_t &Get_Zero(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("GameTick_t")->m_static_fields[1]->m_instance);}; }; // Alignment: 1 @@ -22988,6 +23861,8 @@ public: // Size: 0x30 class CHintMessageQueue { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: float m_tmMessageEnd; // 0x8 private: @@ -23009,6 +23884,8 @@ public: // Size: 0x10 struct magnetted_objects_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CHandle< CBaseEntity > hEntity; // 0x8 }; @@ -23017,22 +23894,24 @@ public: // Size: 0x28 class CNetworkOriginQuantizedVector { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkBitCount "19" - // MNetworkMinValue "-16384" - // MNetworkMaxValue "16384" + // MNetworkMinValue "-16384.000000" + // MNetworkMaxValue "16384.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkOriginQuantizedVector" CNetworkedQuantizedFloat m_vecX; // 0x10 // MNetworkBitCount "19" - // MNetworkMinValue "-16384" - // MNetworkMaxValue "16384" + // MNetworkMinValue "-16384.000000" + // MNetworkMaxValue "16384.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkOriginQuantizedVector" CNetworkedQuantizedFloat m_vecY; // 0x18 // MNetworkBitCount "19" - // MNetworkMinValue "-16384" - // MNetworkMaxValue "16384" + // MNetworkMinValue "-16384.000000" + // MNetworkMaxValue "16384.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkOriginQuantizedVector" CNetworkedQuantizedFloat m_vecZ; // 0x20 @@ -23042,6 +23921,8 @@ public: // Size: 0x30 class CNetworkOriginCellCoordQuantizedVector { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "OnCellChanged" @@ -23061,24 +23942,24 @@ public: // MNetworkEnable uint16_t m_nOutsideWorld; // 0x16 // MNetworkBitCount "15" - // MNetworkMinValue "0" - // MNetworkMaxValue "1024" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1024.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "OnCellChanged" // MNetworkPriority "31" // MNetworkSerializer "posx" CNetworkedQuantizedFloat m_vecX; // 0x18 // MNetworkBitCount "15" - // MNetworkMinValue "0" - // MNetworkMaxValue "1024" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1024.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "OnCellChanged" // MNetworkPriority "31" // MNetworkSerializer "posy" CNetworkedQuantizedFloat m_vecY; // 0x20 // MNetworkBitCount "15" - // MNetworkMinValue "0" - // MNetworkMaxValue "1024" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1024.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "OnCellChanged" // MNetworkPriority "31" @@ -23125,14 +24006,18 @@ public: // Size: 0x1 class CCSPulseServerFuncs_Globals { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 30 // Size: 0xc0 class CShatterGlassShard { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: uint32_t m_hShardHandle; // 0x8 private: @@ -23195,22 +24080,15 @@ public: bool m_fIsRunning; // 0x8 }; -// Alignment: 2 -// Size: 0x30 -class CAnimGraphTag -{ -public: - int32_t m_nTagIndex; // 0x0 - CAnimGraphSymbolWithStorage m_pTagName; // 0x10 -}; - // Alignment: 0 // Size: 0x8 class IChoreoServices { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: + // Static fields: static uint32_t &Get_ms_uSequenceId(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("IChoreoServices")->m_static_fields[0]->m_instance);}; - uint8_t __pad0000[0x8]; // Autoaligned }; // Alignment: 10 @@ -23252,14 +24130,18 @@ public: // Size: 0x1 class CPulseServerFuncs_Sounds { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 5 // Size: 0x38 struct AmmoTypeInfo_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: int32_t m_nMaxCarry; // 0x10 private: @@ -23301,8 +24183,12 @@ public: // Size: 0x1b0 class CNetworkTransmitComponent { +private: + [[maybe_unused]] uint8_t __pad0000[0x16c]; // 0x0 public: uint8_t m_nTransmitStateOwnedCounter; // 0x16c + + // Static fields: static int32_t &Get_s_nDebugStateChange(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_s_nWatchTransmitEntity(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fields[1]->m_instance);}; static bool &Get_s_bUseNetworkVars(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fields[2]->m_instance);}; @@ -23337,6 +24223,8 @@ public: // Size: 0x30 class CResponseCriteriaSet { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: int32_t m_nNumPrefixedContexts; // 0x28 bool m_bOverrideOnAppend; // 0x2c @@ -23346,6 +24234,8 @@ public: // Size: 0x60 class CCommentarySystem { +private: + [[maybe_unused]] uint8_t __pad0000[0x11]; // 0x0 public: bool m_bCommentaryConvarsChanging; // 0x11 bool m_bCommentaryEnabledMidGame; // 0x12 @@ -23368,10 +24258,12 @@ public: CUtlVector< CHandle< CPointCommentaryNode > > m_vecNodes; // 0x48 }; -// Alignment: 16 +// Alignment: 18 // Size: 0xa0 class CTakeDamageInfo { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: Vector m_vecDamageForce; // 0x8 Vector m_vecDamagePosition; // 0x14 @@ -23388,8 +24280,10 @@ private: [[maybe_unused]] uint8_t __pad0051[0xf]; // 0x51 public: float m_flOriginalDamage; // 0x60 + bool m_bShouldBleed; // 0x64 + bool m_bShouldSpark; // 0x65 private: - [[maybe_unused]] uint8_t __pad0064[0xc]; // 0x64 + [[maybe_unused]] uint8_t __pad0066[0xa]; // 0x66 public: TakeDamageFlags_t m_nDamageFlags; // 0x70 int32_t m_nNumObjectsPenetrated; // 0x74 @@ -23398,6 +24292,8 @@ private: [[maybe_unused]] uint8_t __pad0080[0x18]; // 0x80 public: bool m_bInTakeDamageFlow; // 0x98 + + // Static fields: static CTakeDamageInfo &Get_EmptyInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CTakeDamageInfo")->m_static_fields[0]->m_instance);}; }; @@ -23415,6 +24311,8 @@ public: // Size: 0x18 class CPhysicsShake { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: Vector m_force; // 0x8 }; @@ -23463,6 +24361,8 @@ public: // Size: 0x90 class CSoundPatch { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CSoundEnvelope m_pitch; // 0x8 CSoundEnvelope m_volume; // 0x18 @@ -23483,21 +24383,17 @@ private: [[maybe_unused]] uint8_t __pad0085[0x3]; // 0x85 public: CUtlSymbolLarge m_iszClassName; // 0x88 + + // Static fields: static int32_t &Get_g_SoundPatchCount(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CSoundPatch")->m_static_fields[0]->m_instance);}; }; -// Alignment: 0 -// Size: 0x118 -class CPulseGraphInstance_ServerPointEntity : public CBasePulseGraphInstance -{ -public: - // No members available -}; - // Alignment: 3 // Size: 0x20 class SimpleConstraintSoundProfile { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: SimpleConstraintSoundProfile::SimpleConstraintsSoundProfileKeypoints_t eKeypoints; // 0x8 float m_keyPoints[2]; // 0xc @@ -23508,6 +24404,8 @@ public: // Size: 0x20 struct thinkfunc_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: HSCRIPT m_hFn; // 0x8 CUtlStringToken m_nContext; // 0x10 @@ -23556,6 +24454,8 @@ public: // Size: 0x240 class CResponseQueue::CDeferredResponse { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CResponseCriteriaSet m_contexts; // 0x10 float m_fDispatchTime; // 0x40 @@ -23611,17 +24511,21 @@ public: }; // Alignment: 0 -// Size: 0x120 +// Size: 0x510 class CCSGOPlayerAnimGraphState { +private: + [[maybe_unused]] uint8_t __pad0000[0x510]; // 0x0 public: - uint8_t __pad0000[0x120]; // Autoaligned + // No members available }; // Alignment: 1 // Size: 0x40 class CPlayerPawnComponent { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -23661,22 +24565,24 @@ public: // Size: 0x28 class CNetworkViewOffsetVector { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkBitCount "10" - // MNetworkMinValue "-64" - // MNetworkMaxValue "64" + // MNetworkMinValue "-64.000000" + // MNetworkMaxValue "64.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkViewOffsetVector" CNetworkedQuantizedFloat m_vecX; // 0x10 // MNetworkBitCount "10" - // MNetworkMinValue "-64" - // MNetworkMaxValue "64" + // MNetworkMinValue "-64.000000" + // MNetworkMaxValue "64.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkViewOffsetVector" CNetworkedQuantizedFloat m_vecY; // 0x18 // MNetworkBitCount "20" - // MNetworkMinValue "0" - // MNetworkMaxValue "128" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "128.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkViewOffsetVector" CNetworkedQuantizedFloat m_vecZ; // 0x20 @@ -23713,8 +24619,10 @@ public: // Size: 0x8 class IVehicle { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 2 @@ -23730,6 +24638,8 @@ public: // Size: 0x88 class ConstraintSoundInfo { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: VelocitySampler m_vSampler; // 0x8 private: @@ -23773,12 +24683,16 @@ public: // Size: 0xa0 class CScriptUniformRandomStream { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: HSCRIPT m_hScriptScope; // 0x8 private: [[maybe_unused]] uint8_t __pad0010[0x8c]; // 0x10 public: int32_t m_nInitialSeed; // 0x9c + + // Static fields: static CUtlVector< CScriptUniformRandomStream* > &Get_sm_UniformStreams(){return *reinterpret_cast*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CScriptUniformRandomStream")->m_static_fields[0]->m_instance);}; }; @@ -23794,6 +24708,8 @@ public: // Size: 0x68 class CResponseQueue { +private: + [[maybe_unused]] uint8_t __pad0000[0x50]; // 0x0 public: CUtlVector< CAI_Expresser* > m_ExpresserTargets; // 0x50 }; @@ -23824,6 +24740,8 @@ public: // Size: 0x40 class CPlayerControllerComponent { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -23834,34 +24752,18 @@ public: // Size: 0x8 class CFootstepTableHandle { -public: - uint8_t __pad0000[0x8]; // Autoaligned -}; - -// Alignment: 9 -// Size: 0x80 -class CRagdoll : public IRagdoll -{ -public: - ragdoll_t m_ragdoll; // 0x8 - Vector m_mins; // 0x40 - Vector m_maxs; // 0x4c - Vector m_origin; // 0x58 - float m_lastUpdate; // 0x64 - bool m_allAsleep; // 0x68 private: - [[maybe_unused]] uint8_t __pad0069[0x3]; // 0x69 + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - Vector m_vecLastOrigin; // 0x6c - float m_flLastOriginChangeTime; // 0x78 - float m_flAwakeTime; // 0x7c - static uint32_t &Get_s_globalCount(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CRagdoll")->m_static_fields[0]->m_instance);}; + // No members available }; // Alignment: 3 // Size: 0x30 class CHintMessage { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: char* m_hintString; // 0x8 CUtlVector< char* > m_args; // 0x10 @@ -23872,8 +24774,10 @@ public: // Size: 0x1 class CPulseServerFuncs { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -23897,6 +24801,8 @@ public: // Size: 0x38 class CAnimEventQueueListener : public CAnimEventListenerBase { +private: + [[maybe_unused]] uint8_t __pad0018[0x8]; // 0x18 public: // No members available }; @@ -23946,6 +24852,8 @@ public: // Size: 0x60 struct CompositeMaterial_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MPropertyGroupName "Target Material" // MPropertyAttributeEditor "CompositeMaterialKVInspector" @@ -23967,6 +24875,8 @@ public: // Size: 0xd0 class CGlowOverlay { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: Vector m_vPos; // 0x8 bool m_bDirectional; // 0x14 @@ -24017,14 +24927,18 @@ public: // Size: 0x8 class IClientAlphaProperty { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 43 // Size: 0x4c0 class CGlobalLightBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: bool m_bSpotLight; // 0x10 private: @@ -24063,22 +24977,25 @@ public: float m_flCloud1Direction; // 0x98 float m_flCloud2Speed; // 0x9c float m_flCloud2Direction; // 0xa0 - float m_flAmbientScale1; // 0xa4 - float m_flAmbientScale2; // 0xa8 - float m_flGroundScale; // 0xac - float m_flLightScale; // 0xb0 - float m_flFoWDarkness; // 0xb4 - bool m_bEnableSeparateSkyboxFog; // 0xb8 private: - [[maybe_unused]] uint8_t __pad00b9[0x3]; // 0xb9 + [[maybe_unused]] uint8_t __pad00a4[0xc]; // 0xa4 public: - Vector m_vFowColor; // 0xbc - Vector m_ViewOrigin; // 0xc8 - QAngle m_ViewAngles; // 0xd4 - float m_flViewFoV; // 0xe0 - Vector m_WorldPoints[8]; // 0xe4 + float m_flAmbientScale1; // 0xb0 + float m_flAmbientScale2; // 0xb4 + float m_flGroundScale; // 0xb8 + float m_flLightScale; // 0xbc + float m_flFoWDarkness; // 0xc0 + bool m_bEnableSeparateSkyboxFog; // 0xc4 private: - [[maybe_unused]] uint8_t __pad0144[0x364]; // 0x144 + [[maybe_unused]] uint8_t __pad00c5[0x3]; // 0xc5 +public: + Vector m_vFowColor; // 0xc8 + Vector m_ViewOrigin; // 0xd4 + QAngle m_ViewAngles; // 0xe0 + float m_flViewFoV; // 0xec + Vector m_WorldPoints[8]; // 0xf0 +private: + [[maybe_unused]] uint8_t __pad0150[0x358]; // 0x150 public: Vector2D m_vFogOffsetLayer0; // 0x4a8 Vector2D m_vFogOffsetLayer1; // 0x4b0 @@ -24090,6 +25007,8 @@ public: // Size: 0x30 class CClientAlphaProperty : public IClientAlphaProperty { +private: + [[maybe_unused]] uint8_t __pad0008[0x8]; // 0x8 public: uint8_t m_nRenderFX; // 0x10 uint8_t m_nRenderMode; // 0x11 @@ -24114,6 +25033,8 @@ public: // Size: 0x38 class CCompositeMaterialEditorDoc { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: int32_t m_nVersion; // 0x8 private: @@ -24123,8 +25044,22 @@ public: KeyValues3 m_KVthumbnail; // 0x28 }; -// Alignment: 32 -// Size: 0x258 +// Alignment: 2 +// Size: 0x20 +class CComicBook +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 +public: + // MPropertyDescription "Cover image to use. Likely starts with file://{images}/comics/..." + CPanoramaImageName m_CoverImage; // 0x8 + // MPropertyDescription "Comic book xml file. The xml that defines the layout and flow of the comic book." + // MPropertyCustomFGDType + CUtlString m_XmlFile; // 0x18 +}; + +// Alignment: 34 +// Size: 0x270 struct CompositeMaterialInputLooseVariable_t { public: @@ -24147,114 +25082,125 @@ public: // MPropertyAttrStateCallback bool m_bExposedVariableIsFixedRange; // 0x20 private: - [[maybe_unused]] uint8_t __pad0021[0x3]; // 0x21 + [[maybe_unused]] uint8_t __pad0021[0x7]; // 0x21 public: + // MPropertyFriendlyName "Exposed SetVisible When True" + // MPropertyAttrStateCallback + CUtlString m_strExposedVisibleWhenTrue; // 0x28 + // MPropertyFriendlyName "Exposed SetHidden When True" + // MPropertyAttrStateCallback + CUtlString m_strExposedHiddenWhenTrue; // 0x30 // MPropertyAutoRebuildOnChange // MPropertyFriendlyName "Type" - CompositeMaterialInputLooseVariableType_t m_nVariableType; // 0x24 + CompositeMaterialInputLooseVariableType_t m_nVariableType; // 0x38 // MPropertyFriendlyName "Value" // MPropertyAttrStateCallback - bool m_bValueBoolean; // 0x28 -private: - [[maybe_unused]] uint8_t __pad0029[0x3]; // 0x29 -public: - // MPropertyFriendlyName "X Value" - // MPropertyAttrStateCallback - // MPropertyAttributeRange "0 255" - int32_t m_nValueIntX; // 0x2c - // MPropertyFriendlyName "Y Value" - // MPropertyAttrStateCallback - // MPropertyAttributeRange "0 255" - int32_t m_nValueIntY; // 0x30 - // MPropertyFriendlyName "Z Value" - // MPropertyAttrStateCallback - // MPropertyAttributeRange "0 255" - int32_t m_nValueIntZ; // 0x34 - // MPropertyFriendlyName "W Value" - // MPropertyAttrStateCallback - // MPropertyAttributeRange "0 255" - int32_t m_nValueIntW; // 0x38 - // MPropertyFriendlyName "Specify Min/Max" - // MPropertyAttrStateCallback - bool m_bHasFloatBounds; // 0x3c + bool m_bValueBoolean; // 0x3c private: [[maybe_unused]] uint8_t __pad003d[0x3]; // 0x3d +public: + // MPropertyFriendlyName "X Value" + // MPropertyAttrStateCallback + // MPropertyAttributeRange "0 255" + int32_t m_nValueIntX; // 0x40 + // MPropertyFriendlyName "Y Value" + // MPropertyAttrStateCallback + // MPropertyAttributeRange "0 255" + int32_t m_nValueIntY; // 0x44 + // MPropertyFriendlyName "Z Value" + // MPropertyAttrStateCallback + // MPropertyAttributeRange "0 255" + int32_t m_nValueIntZ; // 0x48 + // MPropertyFriendlyName "W Value" + // MPropertyAttrStateCallback + // MPropertyAttributeRange "0 255" + int32_t m_nValueIntW; // 0x4c + // MPropertyFriendlyName "Specify Min/Max" + // MPropertyAttrStateCallback + bool m_bHasFloatBounds; // 0x50 +private: + [[maybe_unused]] uint8_t __pad0051[0x3]; // 0x51 public: // MPropertyFriendlyName "X Value" // MPropertyAttrStateCallback // MPropertyAttributeRange "0.0 1.0" - float m_flValueFloatX; // 0x40 + float m_flValueFloatX; // 0x54 // MPropertyFriendlyName "X Min" // MPropertyAttrStateCallback - float m_flValueFloatX_Min; // 0x44 + float m_flValueFloatX_Min; // 0x58 // MPropertyFriendlyName "X Max" // MPropertyAttrStateCallback - float m_flValueFloatX_Max; // 0x48 + float m_flValueFloatX_Max; // 0x5c // MPropertyFriendlyName "Y Value" // MPropertyAttrStateCallback // MPropertyAttributeRange "0.0 1.0" - float m_flValueFloatY; // 0x4c + float m_flValueFloatY; // 0x60 // MPropertyFriendlyName "Y Min" // MPropertyAttrStateCallback - float m_flValueFloatY_Min; // 0x50 + float m_flValueFloatY_Min; // 0x64 // MPropertyFriendlyName "Y Max" // MPropertyAttrStateCallback - float m_flValueFloatY_Max; // 0x54 + float m_flValueFloatY_Max; // 0x68 // MPropertyFriendlyName "Z Value" // MPropertyAttrStateCallback // MPropertyAttributeRange "0.0 1.0" - float m_flValueFloatZ; // 0x58 + float m_flValueFloatZ; // 0x6c // MPropertyFriendlyName "Z Min" // MPropertyAttrStateCallback - float m_flValueFloatZ_Min; // 0x5c + float m_flValueFloatZ_Min; // 0x70 // MPropertyFriendlyName "Z Max" // MPropertyAttrStateCallback - float m_flValueFloatZ_Max; // 0x60 + float m_flValueFloatZ_Max; // 0x74 // MPropertyFriendlyName "W Value" // MPropertyAttrStateCallback // MPropertyAttributeRange "0.0 1.0" - float m_flValueFloatW; // 0x64 + float m_flValueFloatW; // 0x78 // MPropertyFriendlyName "W Min" // MPropertyAttrStateCallback - float m_flValueFloatW_Min; // 0x68 + float m_flValueFloatW_Min; // 0x7c // MPropertyFriendlyName "W Max" // MPropertyAttrStateCallback - float m_flValueFloatW_Max; // 0x6c + float m_flValueFloatW_Max; // 0x80 // MPropertyFriendlyName "Value" // MPropertyAttrStateCallback - Color m_cValueColor4; // 0x70 + Color m_cValueColor4; // 0x84 // MPropertyFriendlyName "Value" // MPropertyAttrStateCallback - CompositeMaterialVarSystemVar_t m_nValueSystemVar; // 0x74 + CompositeMaterialVarSystemVar_t m_nValueSystemVar; // 0x88 +private: + [[maybe_unused]] uint8_t __pad008c[0x4]; // 0x8c +public: // MPropertyFriendlyName "Material" // MPropertyAttributeEditor "AssetBrowse( vmat )" // MPropertyAttrStateCallback - CResourceName m_strResourceMaterial; // 0x78 + CResourceName m_strResourceMaterial; // 0x90 // MPropertyFriendlyName "Texture" // MPropertyAttributeEditor "AssetBrowse( jpg, png, psd, tga )" // MPropertyAttrStateCallback - CUtlString m_strTextureContentAssetPath; // 0x158 + CUtlString m_strTextureContentAssetPath; // 0x170 // MPropertyHideField - CResourceName m_strTextureRuntimeResourcePath; // 0x160 + CResourceName m_strTextureRuntimeResourcePath; // 0x178 // MPropertyHideField - CUtlString m_strTextureCompilationVtexTemplate; // 0x240 + CUtlString m_strTextureCompilationVtexTemplate; // 0x258 // MPropertyFriendlyName "Texture Type" // MPropertyAttrStateCallback - CompositeMaterialInputTextureType_t m_nTextureType; // 0x248 + CompositeMaterialInputTextureType_t m_nTextureType; // 0x260 private: - [[maybe_unused]] uint8_t __pad024c[0x4]; // 0x24c + [[maybe_unused]] uint8_t __pad0264[0x4]; // 0x264 public: // MPropertyFriendlyName "String" // MPropertyAttrStateCallback - CUtlString m_strString; // 0x250 + CUtlString m_strString; // 0x268 }; // Alignment: 0 // Size: 0x8 class C_GameRules { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 0 @@ -24301,6 +25247,8 @@ public: // Size: 0xb0 class C_IronSightController { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: bool m_bIronSightAvailable; // 0x10 private: @@ -24324,8 +25272,10 @@ public: // Size: 0x30 class CPlayerSprayDecalRenderHelper { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: - uint8_t __pad0000[0x30]; // Autoaligned + // No members available }; // Alignment: 8 @@ -24402,6 +25352,8 @@ public: // Size: 0x2e0 class CFlashlightEffect { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: bool m_bIsOn; // 0x10 private: @@ -24473,8 +25425,8 @@ public: bool m_bModulateByDot; // 0xf5 }; -// Alignment: 27 -// Size: 0x350 +// Alignment: 28 +// Size: 0x368 struct CompMatPropertyMutator_t { public: @@ -24520,54 +25472,58 @@ public: CompositeMaterialInputLooseVariable_t m_nSetValue_Value; // 0x68 // MPropertyFriendlyName "Target Texture Param" // MPropertyAttrStateCallback - CUtlString m_strGenerateTexture_TargetParam; // 0x2c0 + CUtlString m_strGenerateTexture_TargetParam; // 0x2d8 // MPropertyFriendlyName "Initial Container" // MPropertyAttrStateCallback - CUtlString m_strGenerateTexture_InitialContainer; // 0x2c8 + CUtlString m_strGenerateTexture_InitialContainer; // 0x2e0 // MPropertyFriendlyName "Resolution" // MPropertyAttrStateCallback - int32_t m_nResolution; // 0x2d0 + int32_t m_nResolution; // 0x2e8 + // MPropertyAutoRebuildOnChange + // MPropertyFriendlyName "Scratch Target" + // MPropertyAttrStateCallback + bool m_bIsScratchTarget; // 0x2ec // MPropertyAutoRebuildOnChange // MPropertyFriendlyName "Splat Debug info on Texture" // MPropertyAttrStateCallback - bool m_bSplatDebugInfo; // 0x2d4 + bool m_bSplatDebugInfo; // 0x2ed // MPropertyAutoRebuildOnChange // MPropertyFriendlyName "Capture in RenderDoc" // MPropertyAttrStateCallback - bool m_bCaptureInRenderDoc; // 0x2d5 + bool m_bCaptureInRenderDoc; // 0x2ee private: - [[maybe_unused]] uint8_t __pad02d6[0x2]; // 0x2d6 + [[maybe_unused]] uint8_t __pad02ef[0x1]; // 0x2ef public: // MPropertyFriendlyName "Texture Generation Instructions" // MPropertyAttrStateCallback - CUtlVector< CompMatPropertyMutator_t > m_vecTexGenInstructions; // 0x2d8 + CUtlVector< CompMatPropertyMutator_t > m_vecTexGenInstructions; // 0x2f0 // MPropertyFriendlyName "Mutators" // MPropertyAttrStateCallback - CUtlVector< CompMatPropertyMutator_t > m_vecConditionalMutators; // 0x2f0 + CUtlVector< CompMatPropertyMutator_t > m_vecConditionalMutators; // 0x308 // MPropertyFriendlyName "Container to Pop" // MPropertyAttrStateCallback - CUtlString m_strPopInputQueue_Container; // 0x308 + CUtlString m_strPopInputQueue_Container; // 0x320 // MPropertyFriendlyName "Input Container" // MPropertyAttrStateCallback - CUtlString m_strDrawText_InputContainerSrc; // 0x310 + CUtlString m_strDrawText_InputContainerSrc; // 0x328 // MPropertyFriendlyName "Input Container Property" // MPropertyAttrStateCallback - CUtlString m_strDrawText_InputContainerProperty; // 0x318 + CUtlString m_strDrawText_InputContainerProperty; // 0x330 // MPropertyFriendlyName "Text Position" // MPropertyAttrStateCallback - Vector2D m_vecDrawText_Position; // 0x320 + Vector2D m_vecDrawText_Position; // 0x338 // MPropertyFriendlyName "Text Color" // MPropertyAttrStateCallback - Color m_colDrawText_Color; // 0x328 + Color m_colDrawText_Color; // 0x340 private: - [[maybe_unused]] uint8_t __pad032c[0x4]; // 0x32c + [[maybe_unused]] uint8_t __pad0344[0x4]; // 0x344 public: // MPropertyFriendlyName "Font" // MPropertyAttrStateCallback - CUtlString m_strDrawText_Font; // 0x330 + CUtlString m_strDrawText_Font; // 0x348 // MPropertyFriendlyName "Conditions" // MPropertyAttrStateCallback - CUtlVector< CompMatMutatorCondition_t > m_vecConditions; // 0x338 + CUtlVector< CompMatMutatorCondition_t > m_vecConditions; // 0x350 }; // Alignment: 10 @@ -24657,19 +25613,21 @@ struct GeneratedTextureHandle_t public: // MPropertyFriendlyName "Generated Texture" // MPropertyAttributeEditor "CompositeMaterialTextureViewer" - CUtlString m_strBitmapName; // 0x8 + CUtlString m_strBitmapName; // 0x0 }; // Alignment: 1 // Size: 0x10 class CAnimScriptBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: bool m_bIsValid; // 0x8 }; // Alignment: 1 -// Size: 0x38 +// Size: 0x20 class EmptyTestScript : public CAnimScriptBase { public: diff --git a/sdk/animationsystem.hpp b/sdk/animationsystem.hpp index 588e0fdb..ed3baa3a 100644 --- a/sdk/animationsystem.hpp +++ b/sdk/animationsystem.hpp @@ -4,7 +4,7 @@ // ///////////////////////////////////////////////////////////// // Binary: animationsystem.dll -// Classes count: 331 +// Classes count: 342 // Enums count: 68 // Created using source2gen - github.com/neverlosecc/source2gen // ///////////////////////////////////////////////////////////// @@ -226,11 +226,12 @@ enum class VPhysXConstraintParams_t__EnumFlags0_t : uint32_t }; // Alignment: 4 -// Size: 0x2 +// Size: 0x3 enum class VPhysXJoint_t__Flags_t : uint32_t { JOINT_FLAGS_NONE = 0x0, JOINT_FLAGS_BODY1_FIXED = 0x1, + JOINT_FLAGS_USE_BLOCK_SOLVER = 0x2, }; // Alignment: 4 @@ -243,13 +244,12 @@ enum class VPhysXAggregateData_t__VPhysXFlagEnum_t : uint32_t }; // Alignment: 4 -// Size: 0x9 +// Size: 0x8 enum class MeshDrawPrimitiveFlags_t : uint32_t { MESH_DRAW_FLAGS_NONE = 0x0, MESH_DRAW_FLAGS_USE_SHADOW_FAST_PATH = 0x1, MESH_DRAW_FLAGS_USE_COMPRESSED_NORMAL_TANGENT = 0x2, - MESH_DRAW_FLAGS_USE_COMPRESSED_NORMAL_TANGENT_V2 = 0x4, MESH_DRAW_INPUT_LAYOUT_IS_NOT_MATCHED_TO_MATERIAL = 0x8, MESH_DRAW_FLAGS_USE_COMPRESSED_PER_VERTEX_LIGHTING = 0x10, MESH_DRAW_FLAGS_USE_UNCOMPRESSED_PER_VERTEX_LIGHTING = 0x20, @@ -1039,6 +1039,8 @@ public: // Size: 0x38 class CAnimEventDefinition { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: int32_t m_nFrame; // 0x8 float m_flCycle; // 0xc @@ -1188,6 +1190,8 @@ public: // Size: 0x70 class CAnimData { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CBufferString m_name; // 0x10 CUtlVector< CAnimDesc > m_animArray; // 0x20 @@ -1258,6 +1262,8 @@ public: // Size: 0x130 class CAnimationGroup { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: uint32_t m_nFlags; // 0x10 private: @@ -1518,6 +1524,8 @@ public: // Size: 0x138 class CSequenceGroupData { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CBufferString m_sName; // 0x10 uint32_t m_nFlags; // 0x20 @@ -1571,6 +1579,9 @@ class HSequence { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("animationsystem.dll")->FindDeclaredClass("HSequence")->m_static_fields[0]->m_instance);}; }; // Alignment: 1 @@ -1581,6 +1592,74 @@ public: uint8_t m_value; // 0x0 }; +// Alignment: 1 +// Size: 0x4 +class AnimNodeID +{ +public: + uint32_t m_id; // 0x0 +}; + +// Alignment: 1 +// Size: 0x4 +class AnimNodeOutputID +{ +public: + uint32_t m_id; // 0x0 +}; + +// Alignment: 1 +// Size: 0x4 +class AnimStateID +{ +public: + uint32_t m_id; // 0x0 +}; + +// Alignment: 1 +// Size: 0x4 +class AnimParamID +{ +public: + uint32_t m_id; // 0x0 +}; + +// Alignment: 1 +// Size: 0x4 +class AnimTagID +{ +public: + uint32_t m_id; // 0x0 +}; + +// Alignment: 1 +// Size: 0x4 +class AnimComponentID +{ +public: + uint32_t m_id; // 0x0 +}; + +// Alignment: 1 +// Size: 0x4 +class AnimScriptHandle +{ +public: + uint32_t m_id; // 0x0 +}; + +// Alignment: 5 +// Size: 0x80 +class CAnimAttachment +{ +public: + Quaternion m_influenceRotations[3]; // 0x0 + VectorAligned m_influenceOffsets[3]; // 0x30 + int32_t m_influenceIndices[3]; // 0x60 + float m_influenceWeights[3]; // 0x6c + uint8_t m_numInfluences; // 0x78 +}; + // Alignment: 5 // Size: 0x78 struct VPhysics2ShapeDef_t @@ -2019,12 +2098,17 @@ struct AttachmentHandle_t { public: uint8_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("animationsystem.dll")->FindDeclaredClass("AttachmentHandle_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 2 // Size: 0x48 class CModelConfigElement { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlString m_ElementName; // 0x8 CUtlVector< CModelConfigElement* > m_NestedElements; // 0x10 @@ -2059,12 +2143,13 @@ public: CUtlVector< CUtlString > m_Choices; // 0x48 }; -// Alignment: 1 -// Size: 0x60 +// Alignment: 2 +// Size: 0x80 class CModelConfigElement_RandomPick : public CModelConfigElement { public: CUtlVector< CUtlString > m_Choices; // 0x48 + CUtlVector< float32 > m_ChoiceWeights; // 0x60 }; // Alignment: 1 @@ -2264,28 +2349,27 @@ public: bool m_bIgnoreRotation; // 0x84 }; -// Alignment: 14 +// Alignment: 13 // Size: 0x70 class CHitBox { public: - Vector m_vMinBounds; // 0x20 - Vector m_vMaxBounds; // 0x2c - CUtlString m_name; // 0x38 - CUtlString m_sSurfaceProperty; // 0x40 - CUtlString m_sBoneName; // 0x48 - float m_flShapeRadius; // 0x50 - uint32_t m_nBoneNameHash; // 0x54 - int32_t m_nGroupId; // 0x58 - Color m_cRenderColor; // 0x5c - uint16_t m_nHitBoxIndex; // 0x60 - uint8_t m_nShapeType; // 0x62 + CUtlString m_name; // 0x0 + CUtlString m_sSurfaceProperty; // 0x8 + CUtlString m_sBoneName; // 0x10 + Vector m_vMinBounds; // 0x18 + Vector m_vMaxBounds; // 0x24 + float m_flShapeRadius; // 0x30 + uint32_t m_nBoneNameHash; // 0x34 + int32_t m_nGroupId; // 0x38 + uint8_t m_nShapeType; // 0x3c + bool m_bTranslationOnly; // 0x3d private: - [[maybe_unused]] uint8_t __pad0063[0x1]; // 0x63 + [[maybe_unused]] uint8_t __pad003e[0x2]; // 0x3e public: - bool m_bTranslationOnly; // 0x64 - bool m_bVisible; // 0x65 - bool m_bSelected; // 0x66 + uint32_t m_CRC; // 0x40 + Color m_cRenderColor; // 0x44 + uint16_t m_nHitBoxIndex; // 0x48 }; // Alignment: 4 @@ -2314,6 +2398,8 @@ public: // Size: 0x1e0 class CRenderMesh { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVectorFixedGrowable< CSceneObjectData > m_sceneObjects; // 0x10 CUtlVector< CBaseConstraint* > m_constraints; // 0xa0 @@ -2324,6 +2410,8 @@ public: // Size: 0x60 class CConstraintTarget { +private: + [[maybe_unused]] uint8_t __pad0000[0x20]; // 0x0 public: Quaternion m_qOffset; // 0x20 Vector m_vOffset; // 0x30 @@ -2355,8 +2443,10 @@ public: // Size: 0x28 class CBoneConstraintBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: - uint8_t __pad0000[0x28]; // Autoaligned + // No members available }; // Alignment: 4 @@ -2477,6 +2567,17 @@ public: CUtlVector< CTransform > m_outputTransformList; // 0x10 }; +// Alignment: 4 +// Size: 0x60 +class CBoneConstraintDotToMorph : public CBoneConstraintBase +{ +public: + CUtlString m_sBoneName; // 0x28 + CUtlString m_sTargetBoneName; // 0x30 + CUtlString m_sMorphChannelName; // 0x38 + float m_flRemap[4]; // 0x40 +}; + // Alignment: 2 // Size: 0x8 class CFlexOp @@ -2553,6 +2654,8 @@ public: // Size: 0x98 class CMorphSetData { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: int32_t m_nWidth; // 0x10 int32_t m_nHeight; // 0x14 @@ -2580,6 +2683,8 @@ public: // Size: 0xd0 class CAnimSkeleton { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVector< CTransform > m_localSpaceTransforms; // 0x10 CUtlVector< CTransform > m_modelSpaceTransforms; // 0x28 @@ -2655,6 +2760,8 @@ public: Vector m_vOffset; // 0x0 float m_flRotationOffset; // 0xc float m_flProgression; // 0x10 + + // Static fields: static CFootTrajectory &Get_Identity(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("animationsystem.dll")->FindDeclaredClass("CFootTrajectory")->m_static_fields[0]->m_instance);}; }; @@ -2848,6 +2955,8 @@ public: // Size: 0x90 class CAnimReplayFrame { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVector< CUtlBinaryBlock > m_inputDataBlocks; // 0x10 CUtlBinaryBlock m_instanceData; // 0x28 @@ -2860,6 +2969,8 @@ public: // Size: 0x70 class CAnimGraphDebugReplay { +private: + [[maybe_unused]] uint8_t __pad0000[0x40]; // 0x0 public: CUtlString m_animGraphFileName; // 0x40 CUtlVector< CSmartPtr< CAnimReplayFrame > > m_frameList; // 0x48 @@ -2872,6 +2983,8 @@ public: // Size: 0x28 class CAnimGraphModelBinding { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlString m_modelName; // 0x8 CSmartPtr< CAnimUpdateSharedData > m_pSharedData; // 0x10 @@ -2881,6 +2994,8 @@ public: // Size: 0x10 class CAnimInputDamping { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MPropertyFriendlyName "Speed Function" DampingSpeedFunction m_speedFunction; // 0x8 @@ -2909,6 +3024,8 @@ public: // Size: 0x100 class CAnimParameterManagerUpdater { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CUtlVector< CSmartPtr< CAnimParameterBase > > m_parameters; // 0x18 CUtlHashtable< AnimParamID, int32 > m_idToIndexMap; // 0x30 @@ -2922,6 +3039,8 @@ public: // Size: 0x30 class CAnimGraphSettingsManager { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CUtlVector< CSmartPtr< CAnimGraphSettingsGroup > > m_settingsGroups; // 0x18 }; @@ -2971,8 +3090,10 @@ public: // Size: 0x20 class CAnimGraphSettingsGroup { +private: + [[maybe_unused]] uint8_t __pad0000[0x20]; // 0x0 public: - uint8_t __pad0000[0x20]; // Autoaligned + // No members available }; // Alignment: 2 @@ -2988,6 +3109,8 @@ public: // Size: 0x40 class CCachedPose { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlVector< CTransform > m_transforms; // 0x8 CUtlVector< float32 > m_morphWeights; // 0x20 @@ -2999,6 +3122,8 @@ public: // Size: 0x30 class CStaticPoseCache { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVector< CCachedPose > m_poses; // 0x10 int32_t m_nBoneCount; // 0x28 @@ -3017,8 +3142,10 @@ public: // Size: 0x18 class CAnimActionUpdater { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: - uint8_t __pad0000[0x18]; // Autoaligned + // No members available }; // Alignment: 2 @@ -3065,17 +3192,16 @@ public: // Size: 0x30 class CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: // MPropertyFriendlyName "Name" // MPropertySortPriority "100" - CUtlString m_name; // 0x18 + CGlobalSymbol m_name; // 0x18 // MPropertyHideField - CUtlString m_group; // 0x20 + CGlobalSymbol m_group; // 0x20 // MPropertyHideField AnimTagID m_tagID; // 0x28 -private: - [[maybe_unused]] uint8_t __pad0028[0x4]; // 0x28 -public: // MPropertyHideField bool m_bIsReferenced; // 0x2c }; @@ -3084,6 +3210,8 @@ public: // Size: 0x38 class CAnimTagManagerUpdater { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CUtlVector< CSmartPtr< CAnimTagBase > > m_tags; // 0x18 }; @@ -3092,6 +3220,8 @@ public: // Size: 0x50 class CAudioAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Sound Event" // MPropertyAttributeEditor "SoundPicker()" @@ -3131,6 +3261,8 @@ public: // Size: 0x58 class CBodyGroupAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Priority" int32_t m_nPriority; // 0x38 @@ -3145,6 +3277,8 @@ public: // Size: 0x50 class CClothSettingsAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Stiffness" // MPropertyAttributeRange "0 1" @@ -3166,6 +3300,8 @@ public: // Size: 0x40 class CFootFallAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Foot" FootFallTagFoot_t m_foot; // 0x38 @@ -3175,6 +3311,8 @@ public: // Size: 0x58 class CFootstepLandedAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Footstep Type" FootstepLandedFootSoundType_t m_FootstepType; // 0x38 @@ -3195,6 +3333,8 @@ public: // Size: 0x50 class CMaterialAttributeAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Attribute Name" CUtlString m_AttributeName; // 0x38 @@ -3213,6 +3353,8 @@ public: // Size: 0x78 class CParticleAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertySuppressField CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_hParticleSystem; // 0x38 @@ -3255,6 +3397,8 @@ public: // Size: 0x50 class CRagdollAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Pose Control" AnimPoseControl m_nPoseControl; // 0x38 @@ -3278,6 +3422,8 @@ public: // Size: 0x40 class CSequenceFinishedAnimTag : public CAnimTagBase { +private: + [[maybe_unused]] uint8_t __pad0030[0x8]; // 0x30 public: // MPropertyFriendlyName "Sequence" // MPropertyAttributeChoiceName "Sequence" @@ -3285,32 +3431,30 @@ public: }; // Alignment: 0 -// Size: 0x38 +// Size: 0x30 class CStringAnimTag : public CAnimTagBase { public: // No members available }; -// Alignment: 1 -// Size: 0x48 +// Alignment: 0 +// Size: 0x38 class CTaskStatusAnimTag : public CAnimTagBase { public: - // MPropertyHideField - CUtlString m_identifierString; // 0x38 + // No members available }; // Alignment: 4 // Size: 0x30 class CAnimComponentUpdater { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CUtlString m_name; // 0x18 AnimComponentID m_id; // 0x20 -private: - [[maybe_unused]] uint8_t __pad0020[0x4]; // 0x20 -public: AnimNodeNetworkMode m_networkMode; // 0x24 bool m_bStartEnabled; // 0x28 }; @@ -3370,6 +3514,8 @@ public: // Size: 0x48 class CLookComponentUpdater : public CAnimComponentUpdater { +private: + [[maybe_unused]] uint8_t __pad0030[0x4]; // 0x30 public: CAnimParamHandle m_hLookHeading; // 0x34 CAnimParamHandle m_hLookHeadingVelocity; // 0x36 @@ -3420,7 +3566,7 @@ public: CUtlVector< float32 > m_weights; // 0x8 }; -// Alignment: 6 +// Alignment: 7 // Size: 0xa0 class CRagdollComponentUpdater : public CAnimComponentUpdater { @@ -3431,12 +3577,15 @@ public: CUtlVector< WeightList > m_weightLists; // 0x78 float m_flSpringFrequencyMin; // 0x90 float m_flSpringFrequencyMax; // 0x94 + float m_flMaxStretch; // 0x98 }; // Alignment: 7 // Size: 0x48 class CSlopeComponentUpdater : public CAnimComponentUpdater { +private: + [[maybe_unused]] uint8_t __pad0030[0x4]; // 0x30 public: float m_flTraceDistance; // 0x34 CAnimParamHandle m_hSlopeAngle; // 0x38 @@ -3451,6 +3600,8 @@ public: // Size: 0x48 class CVRInputComponentUpdater : public CAnimComponentUpdater { +private: + [[maybe_unused]] uint8_t __pad0030[0x4]; // 0x30 public: CAnimParamHandle m_FingerCurl_Thumb; // 0x34 CAnimParamHandle m_FingerCurl_Index; // 0x36 @@ -3467,6 +3618,8 @@ public: // Size: 0x58 class CAnimStateMachineUpdater { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlVector< CStateUpdateData > m_states; // 0x8 CUtlVector< CTransitionUpdateData > m_transitions; // 0x20 @@ -3558,6 +3711,8 @@ public: // Size: 0x58 class CMotionGraph { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CParamSpanUpdater m_paramSpans; // 0x10 CUtlVector< TagSpan_t > m_tags; // 0x28 @@ -3580,6 +3735,8 @@ public: // Size: 0x28 class CMotionNode { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CUtlString m_name; // 0x18 AnimNodeID m_id; // 0x20 @@ -3617,6 +3774,8 @@ public: // Size: 0x50 class CMotionMetricEvaluator { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CUtlVector< float32 > m_means; // 0x18 CUtlVector< float32 > m_standardDeviations; // 0x30 @@ -3759,6 +3918,8 @@ public: // Size: 0x20 class CAnimMotorUpdaterBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlString m_name; // 0x10 bool m_bDefault; // 0x18 @@ -3776,6 +3937,8 @@ public: // Size: 0x48 class CDampedPathAnimMotorUpdater : public CPathAnimMotorUpdaterBase { +private: + [[maybe_unused]] uint8_t __pad0028[0x4]; // 0x28 public: float m_flAnticipationTime; // 0x2c float m_flMinSpeedScale; // 0x30 @@ -4043,123 +4206,140 @@ public: bool m_bMatchTargetOrientation; // 0x18 }; -// Alignment: 12 -// Size: 0x78 +// Alignment: 6 +// Size: 0x50 class CAnimParameterBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: // MPropertyFriendlyName "Name" // MPropertySortPriority "100" - CAnimGraphSymbolWithStorage m_name; // 0x18 + CGlobalSymbol m_name; // 0x18 // MPropertyHideField - CUtlString m_group; // 0x38 + CUtlString m_group; // 0x20 // MPropertyHideField - AnimParamID m_id; // 0x40 + AnimParamID m_id; // 0x28 private: - [[maybe_unused]] uint8_t __pad0040[0x18]; // 0x40 + [[maybe_unused]] uint8_t __pad002c[0x14]; // 0x2c public: // MPropertyHideField // MPropertyAttrChangeCallback - CUtlString m_componentName; // 0x58 + CUtlString m_componentName; // 0x40 private: - [[maybe_unused]] uint8_t __pad0060[0x4]; // 0x60 + [[maybe_unused]] uint8_t __pad0048[0x4]; // 0x48 +public: + // MPropertyHideField + bool m_bNetworkingRequested; // 0x4c + // MPropertyHideField + bool m_bIsReferenced; // 0x4d +}; + +// Alignment: 6 +// Size: 0x60 +class CConcreteAnimParameter : public CAnimParameterBase +{ public: // MPropertyFriendlyName "Preview Button" - AnimParamButton_t m_previewButton; // 0x64 - // MPropertyFriendlyName "Force Latest Value" - bool m_bUseMostRecentValue; // 0x68 - // MPropertyFriendlyName "Auto Reset" - bool m_bAutoReset; // 0x69 -private: - [[maybe_unused]] uint8_t __pad006a[0x2]; // 0x6a -public: + AnimParamButton_t m_previewButton; // 0x50 // MPropertyFriendlyName "Network" - AnimParamNetworkSetting m_eNetworkSetting; // 0x6c + AnimParamNetworkSetting m_eNetworkSetting; // 0x54 + // MPropertyFriendlyName "Force Latest Value" + bool m_bUseMostRecentValue; // 0x58 + // MPropertyFriendlyName "Auto Reset" + bool m_bAutoReset; // 0x59 // MPropertyFriendlyName "Game Writable" // MPropertyGroupName "+Permissions" // MPropertyAttrStateCallback - bool m_bGameWritable; // 0x70 + bool m_bGameWritable; // 0x5a // MPropertyFriendlyName "Graph Writable" // MPropertyGroupName "+Permissions" // MPropertyAttrStateCallback - bool m_bGraphWritable; // 0x71 - // MPropertyHideField - bool m_bIsReferenced; // 0x72 - // MPropertyHideField - bool m_bNetworkingRequested; // 0x73 + bool m_bGraphWritable; // 0x5b +}; + +// Alignment: 2 +// Size: 0x60 +class CVirtualAnimParameter : public CAnimParameterBase +{ +public: + CUtlString m_expressionString; // 0x50 + AnimParamType_t m_eParamType; // 0x58 }; // Alignment: 1 -// Size: 0x80 -class CBoolAnimParameter : public CAnimParameterBase +// Size: 0x68 +class CBoolAnimParameter : public CConcreteAnimParameter { public: // MPropertyFriendlyName "Default Value" - bool m_bDefaultValue; // 0x78 + bool m_bDefaultValue; // 0x60 }; // Alignment: 2 -// Size: 0xd0 -class CEnumAnimParameter : public CAnimParameterBase +// Size: 0xb8 +class CEnumAnimParameter : public CConcreteAnimParameter { +private: + [[maybe_unused]] uint8_t __pad0060[0x8]; // 0x60 public: // MPropertyFriendlyName "Default Value" - uint8_t m_defaultValue; // 0x80 + uint8_t m_defaultValue; // 0x68 private: - [[maybe_unused]] uint8_t __pad0081[0x7]; // 0x81 + [[maybe_unused]] uint8_t __pad0069[0x7]; // 0x69 public: // MPropertyFriendlyName "Values" - CUtlVector< CUtlString > m_enumOptions; // 0x88 + CUtlVector< CUtlString > m_enumOptions; // 0x70 }; // Alignment: 3 -// Size: 0x88 -class CIntAnimParameter : public CAnimParameterBase +// Size: 0x70 +class CIntAnimParameter : public CConcreteAnimParameter { public: // MPropertyFriendlyName "Default Value" - int32_t m_defaultValue; // 0x78 + int32_t m_defaultValue; // 0x60 // MPropertyFriendlyName "Min Value" - int32_t m_minValue; // 0x7c + int32_t m_minValue; // 0x64 // MPropertyFriendlyName "Max Value" - int32_t m_maxValue; // 0x80 + int32_t m_maxValue; // 0x68 }; // Alignment: 4 -// Size: 0x88 -class CFloatAnimParameter : public CAnimParameterBase +// Size: 0x70 +class CFloatAnimParameter : public CConcreteAnimParameter { public: // MPropertyFriendlyName "Default Value" - float m_fDefaultValue; // 0x78 + float m_fDefaultValue; // 0x60 // MPropertyFriendlyName "Min Value" - float m_fMinValue; // 0x7c + float m_fMinValue; // 0x64 // MPropertyFriendlyName "Max Value" - float m_fMaxValue; // 0x80 + float m_fMaxValue; // 0x68 // MPropertyFriendlyName "Interpolate" - bool m_bInterpolate; // 0x84 + bool m_bInterpolate; // 0x6c }; // Alignment: 2 -// Size: 0x88 -class CVectorAnimParameter : public CAnimParameterBase +// Size: 0x70 +class CVectorAnimParameter : public CConcreteAnimParameter { public: // MPropertyFriendlyName "Default Value" - Vector m_defaultValue; // 0x78 + Vector m_defaultValue; // 0x60 // MPropertyFriendlyName "Interpolate" - bool m_bInterpolate; // 0x84 + bool m_bInterpolate; // 0x6c }; // Alignment: 2 -// Size: 0xa0 -class CQuaternionAnimParameter : public CAnimParameterBase +// Size: 0x80 +class CQuaternionAnimParameter : public CConcreteAnimParameter { public: // MPropertyFriendlyName "Default Value" - Quaternion m_defaultValue; // 0x80 + Quaternion m_defaultValue; // 0x60 // MPropertyFriendlyName "Interpolate" - bool m_bInterpolate; // 0x90 + bool m_bInterpolate; // 0x70 }; // Alignment: 5 @@ -4178,6 +4358,8 @@ public: // Size: 0x1a0 class CAnimScriptManager { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVector< ScriptInfo_t > m_scriptInfo; // 0x10 }; @@ -4201,7 +4383,7 @@ public: struct { uint8_t m_bDisabled: 1; - uint8_t __pad0: 1; // Autoaligned + uint8_t __pad0: 1; }; // 2 bits }; @@ -4212,6 +4394,9 @@ class CStateUpdateData public: CUtlString m_name; // 0x0 AnimScriptHandle m_hScript; // 0x8 +private: + [[maybe_unused]] uint8_t __pad000c[0x4]; // 0xc +public: CUtlVector< int32 > m_transitionIndices; // 0x10 CUtlVector< CStateActionUpdater > m_actions; // 0x28 AnimStateID m_stateID; // 0x40 @@ -4220,7 +4405,7 @@ public: uint8_t m_bIsStartState: 1; uint8_t m_bIsEndState: 1; uint8_t m_bIsPassthrough: 1; - uint8_t __pad1: 3; // Autoaligned + uint8_t __pad1: 3; }; // 6 bits }; @@ -4236,6 +4421,8 @@ public: // Size: 0x10 class CAnimUpdateNodeRef { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: int32_t m_nodeIndex; // 0x8 }; @@ -4244,6 +4431,8 @@ public: // Size: 0x58 class CAnimUpdateNodeBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CAnimNodePath m_nodePath; // 0x18 CUtlString m_name; // 0x48 @@ -4267,6 +4456,8 @@ public: // Size: 0xd0 class CBlendUpdateNode : public CAnimUpdateNodeBase { +private: + [[maybe_unused]] uint8_t __pad0058[0x8]; // 0x58 public: CUtlVector< CAnimUpdateNodeRef > m_children; // 0x60 CUtlVector< uint8 > m_sortedOrder; // 0x78 @@ -4304,6 +4495,8 @@ public: // Size: 0xf0 class CBlend2DUpdateNode : public CAnimUpdateNodeBase { +private: + [[maybe_unused]] uint8_t __pad0058[0x8]; // 0x58 public: CUtlVector< BlendItem_t > m_items; // 0x60 CUtlVector< TagSpan_t > m_tags; // 0x78 @@ -4332,6 +4525,8 @@ public: // Size: 0xa8 class CBoneMaskUpdateNode : public CBinaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0088[0x4]; // 0x88 public: int32_t m_nWeightListIndex; // 0x8c float m_flRootMotionBlend; // 0x90 @@ -4440,6 +4635,8 @@ public: // Size: 0xe8 class CLeanMatrixUpdateNode : public CLeafUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x4]; // 0x58 public: int32_t m_frameCorners[3][3]; // 0x5c CPoseHandle m_poses[9]; // 0x80 @@ -4540,6 +4737,8 @@ public: // Size: 0xa8 class CSequenceUpdateNode : public CLeafUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x8]; // 0x58 public: CParamSpanUpdater m_paramSpans; // 0x60 CUtlVector< TagSpan_t > m_tags; // 0x78 @@ -4599,7 +4798,7 @@ public: { uint8_t m_bReset: 1; uint8_t m_resetCycleOption: 3; - uint8_t __pad2: 4; // Autoaligned + uint8_t __pad2: 4; }; // 8 bits }; @@ -4612,7 +4811,7 @@ public: struct { uint8_t m_bExclusiveRootMotion: 1; - uint8_t __pad3: 1; // Autoaligned + uint8_t __pad3: 1; }; // 2 bits }; @@ -4620,6 +4819,8 @@ public: // Size: 0xf8 class CStateMachineUpdateNode : public CAnimUpdateNodeBase { +private: + [[maybe_unused]] uint8_t __pad0058[0x10]; // 0x58 public: CAnimStateMachineUpdater m_stateMachine; // 0x68 CUtlVector< CStateNodeStateData > m_stateData; // 0xc0 @@ -4635,6 +4836,8 @@ public: // Size: 0x98 class CSubtractUpdateNode : public CBinaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0088[0x4]; // 0x88 public: BinaryNodeChildOption m_footMotionTiming; // 0x8c bool m_bApplyToFootMotion; // 0x90 @@ -4654,9 +4857,6 @@ private: [[maybe_unused]] uint8_t __pad0094[0xc]; // 0x94 public: CAnimAttachment m_targetAttachment; // 0xa0 -private: - [[maybe_unused]] uint8_t __pad0094[0x8c]; // 0x94 -public: int32_t m_targetBoneIndex; // 0x120 CAnimParamHandle m_hPositionParam; // 0x124 CAnimParamHandle m_hRotationParam; // 0x126 @@ -4688,6 +4888,8 @@ public: // Size: 0x78 class CWayPointHelperUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x4]; // 0x68 public: float m_flStartCycle; // 0x6c float m_flEndCycle; // 0x70 @@ -4718,6 +4920,8 @@ public: // Size: 0x100 class CAnimUpdateSharedData { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CUtlVector< CSmartPtr< CAnimUpdateNodeBase > > m_nodes; // 0x10 CUtlHashtable< CAnimNodePath, int32 > m_nodeIndexMap; // 0x28 @@ -4776,6 +4980,8 @@ public: // Size: 0x40 class CAnimationGraphVisualizerPrimitiveBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CAnimationGraphVisualizerPrimitiveType m_Type; // 0x8 AnimNodeID m_OwningAnimNodePaths[11]; // 0xc @@ -4859,16 +5065,10 @@ public: // MPropertyAttributeChoiceName "VectorParameter" // MPropertyAttrStateCallback AnimParamID m_AnimgraphParameterNamePosition; // 0x18 -private: - [[maybe_unused]] uint8_t __pad0018[0x4]; // 0x18 -public: // MPropertyFriendlyName "Animgraph Orientation Parameter" // MPropertyAttributeChoiceName "QuaternionParameter" // MPropertyAttrStateCallback AnimParamID m_AnimgraphParameterNameOrientation; // 0x1c -private: - [[maybe_unused]] uint8_t __pad0018[0x8]; // 0x18 -public: // MPropertyFriendlyName "Target Coords" // MPropertyAttrStateCallback IKTargetCoordinateSystem m_TargetCoordSystem; // 0x20 @@ -4911,6 +5111,8 @@ public: // Size: 0x98 class CAddUpdateNode : public CBinaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0088[0x4]; // 0x88 public: BinaryNodeChildOption m_footMotionTiming; // 0x8c bool m_bApplyToFootMotion; // 0x90 @@ -4922,6 +5124,8 @@ public: // Size: 0x160 class CAimMatrixUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: AimMatrixOpFixedSettings_t m_opFixedSettings; // 0x70 private: @@ -4966,6 +5170,8 @@ public: // Size: 0x90 class CCycleControlClipUpdateNode : public CLeafUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x8]; // 0x58 public: CUtlVector< TagSpan_t > m_tags; // 0x60 private: @@ -4981,6 +5187,8 @@ public: // Size: 0xa8 class CDirectionalBlendUpdateNode : public CLeafUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x4]; // 0x58 public: HSequence m_hSequences[8]; // 0x5c private: @@ -5002,6 +5210,8 @@ public: // Size: 0x88 class CDirectPlaybackUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x4]; // 0x68 public: bool m_bFinishEarly; // 0x6c bool m_bResetOnFinish; // 0x6d @@ -5015,6 +5225,8 @@ public: // Size: 0xa8 class CFollowPathUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x4]; // 0x68 public: float m_flBlendOutTime; // 0x6c bool m_bBlockNonPathMovement; // 0x70 @@ -5044,6 +5256,8 @@ public: // Size: 0x110 class CFollowAttachmentUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: FollowAttachmentSettings_t m_opFixedData; // 0x70 }; @@ -5052,6 +5266,8 @@ public: // Size: 0xa8 class CFootAdjustmentUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: CUtlVector< HSequence > m_clips; // 0x70 CPoseHandle m_hBasePoseCacheHandle; // 0x88 @@ -5101,6 +5317,8 @@ public: // Size: 0xc8 class CFootPinningUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: FootPinningPoseOpFixedData_t m_poseOpFixedData; // 0x70 FootPinningTimingSource m_eTimingSource; // 0xa0 @@ -5182,6 +5400,8 @@ public: // Size: 0x150 class CLookAtUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: LookAtOpFixedSettings_t m_opFixedSettings; // 0x70 private: @@ -5198,6 +5418,8 @@ public: // Size: 0xa0 class CMoverUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: CAnimInputDamping m_damping; // 0x70 AnimValueSource m_facingTarget; // 0x80 @@ -5302,6 +5524,8 @@ public: // Size: 0x90 class CStopAtGoalUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x4]; // 0x68 public: float m_flOuterRadius; // 0x6c float m_flInnerRadius; // 0x70 @@ -5317,6 +5541,8 @@ public: // Size: 0x88 class CTurnHelperUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x4]; // 0x68 public: AnimValueSource m_facingTarget; // 0x6c float m_turnStartTimeOffset; // 0x70 @@ -5333,6 +5559,8 @@ public: // Size: 0x1e0 class CTwoBoneIKUpdateNode : public CUnaryUpdateNode { +private: + [[maybe_unused]] uint8_t __pad0068[0x8]; // 0x68 public: TwoBoneIKSettings_t m_opFixedData; // 0x70 }; diff --git a/sdk/client.hpp b/sdk/client.hpp index 0274588f..c2a4c1d1 100644 --- a/sdk/client.hpp +++ b/sdk/client.hpp @@ -4,7 +4,7 @@ // ///////////////////////////////////////////////////////////// // Binary: client.dll -// Classes count: 407 +// Classes count: 420 // Enums count: 8 // Created using source2gen - github.com/neverlosecc/source2gen // ///////////////////////////////////////////////////////////// @@ -61,11 +61,16 @@ enum class CompositeMaterialInputLooseVariableType_t : uint32_t }; // Alignment: 4 -// Size: 0x2 +// Size: 0x7 enum class CompositeMaterialInputTextureType_t : uint32_t { INPUT_TEXTURE_TYPE_DEFAULT = 0x0, INPUT_TEXTURE_TYPE_NORMALMAP = 0x1, + INPUT_TEXTURE_TYPE_COLOR = 0x2, + INPUT_TEXTURE_TYPE_MASKS = 0x3, + INPUT_TEXTURE_TYPE_ROUGHNESS = 0x4, + INPUT_TEXTURE_TYPE_PEARLESCENCE_MASK = 0x5, + INPUT_TEXTURE_TYPE_AO = 0x6, }; // Alignment: 4 @@ -142,6 +147,7 @@ struct AttachmentHandle_t; struct CAttributeManager; struct C_EconItemView; struct C_CSGameRules; +struct CCSGameModeRules; struct C_SurvivalGameRules; struct C_RetakeGameRules; struct WeaponPurchaseTracker_t; @@ -182,6 +188,7 @@ struct CountdownTimer; struct shard_model_desc_t; struct C_AttributeContainer; struct EntitySpottedState_t; +struct CBasePlayerController; struct CPlayer_WeaponServices; struct CPlayer_ItemServices; struct CPlayer_AutoaimServices; @@ -198,12 +205,15 @@ struct CCSPlayer_ViewModelServices; struct C_WeaponCSBase; struct CCSPlayer_BulletServices; struct CCSPlayer_HostageServices; +struct CCSPlayer_BuyServices; struct CCSPlayer_GlowServices; // Alignment: 11 // Size: 0x78 class CEntityIdentity { +private: + [[maybe_unused]] uint8_t __pad0000[0x14]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "entityIdentityNameChanged" @@ -254,8 +264,12 @@ public: // Size: 0x38 class CScriptComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x28]; // 0x8 public: CUtlSymbolLarge m_scriptClassName; // 0x30 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CScriptComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CScriptComponent")->m_static_fields[1]->m_instance);}; }; @@ -273,6 +287,8 @@ public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex CNetworkVarChainer __m_pChainEntity; // 0x20 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponent")->m_static_fields[1]->m_instance);}; }; @@ -281,6 +297,8 @@ public: // Size: 0x10 class CGameSceneNodeHandle { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable CEntityHandle m_hOwner; // 0x8 @@ -292,6 +310,8 @@ public: // Size: 0x150 class CGameSceneNode { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkDisable CTransform m_nodeToWorld; // 0x10 @@ -395,9 +415,13 @@ public: // Size: 0x28 class CHitboxComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x1c]; // 0x8 public: // MNetworkEnable uint32_t m_bvDisabledHitGroups[1]; // 0x24 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CHitboxComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_referenced_but_impl_is_contained(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CHitboxComponent")->m_static_fields[1]->m_instance);}; }; @@ -406,6 +430,8 @@ public: // Size: 0x1c8 class CLightComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x40]; // 0x8 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -616,6 +642,8 @@ public: // MNetworkEnable // MNetworkChangeCallback "LightRenderingChanged" float m_flMinRoughness; // 0x1b8 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CLightComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CLightComponent")->m_static_fields[1]->m_instance);}; }; @@ -624,6 +652,8 @@ public: // Size: 0xd8 class CRenderComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x8]; // 0x8 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -644,6 +674,8 @@ private: [[maybe_unused]] uint8_t __pad0061[0x4f]; // 0x61 public: bool m_bInterpolationReadyToDraw; // 0xb0 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CRenderComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CRenderComponent")->m_static_fields[1]->m_instance);}; }; @@ -652,6 +684,8 @@ public: // Size: 0x28 class CBuoyancyHelper { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: float m_flFluidDensity; // 0x18 float m_flDisplacementFromObjects; // 0x1c @@ -666,6 +700,25 @@ public: int32_t command_number; // 0x78 }; +// Alignment: 3 +// Size: 0x48 +struct ViewAngleServerChange_t +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 +public: + // MNetworkEnable + FixAngleSet_t nType; // 0x30 +private: + [[maybe_unused]] uint8_t __pad0031[0x3]; // 0x31 +public: + // MNetworkEnable + // MNetworkEncoder + QAngle qAngle; // 0x34 + // MNetworkEnable + uint32_t nIndex; // 0x40 +}; + // Alignment: 0 // Size: 0x40 class CPlayer_AutoaimServices : public CPlayerPawnComponent @@ -678,6 +731,8 @@ public: // Size: 0x78 struct audioparams_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkEncoder @@ -699,6 +754,8 @@ public: // Size: 0x68 struct fogparams_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkEncoder @@ -782,7 +839,7 @@ public: }; // Alignment: 15 -// Size: 0x1c8 +// Size: 0x1d0 class CPlayer_MovementServices : public CPlayerPawnComponent { public: @@ -804,66 +861,66 @@ public: uint64_t m_nToggleButtonDownMask; // 0x188 // MNetworkEnable // MNetworkBitCount "12" - // MNetworkMinValue "0" - // MNetworkMaxValue "2048" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "2048.000000" // MNetworkEncodeFlags float m_flMaxspeed; // 0x190 // MNetworkEnable - float m_flForceSubtickMoveWhen; // 0x194 - float m_flForwardMove; // 0x198 - float m_flLeftMove; // 0x19c - float m_flUpMove; // 0x1a0 - Vector m_vecLastMovementImpulses; // 0x1a4 - QAngle m_vecOldViewAngles; // 0x1b0 + float m_arrForceSubtickMoveWhen[4]; // 0x194 + float m_flForwardMove; // 0x1a4 + float m_flLeftMove; // 0x1a8 + float m_flUpMove; // 0x1ac + Vector m_vecLastMovementImpulses; // 0x1b0 + QAngle m_vecOldViewAngles; // 0x1bc }; // Alignment: 12 -// Size: 0x208 +// Size: 0x210 class CPlayer_MovementServices_Humanoid : public CPlayer_MovementServices { public: - float m_flStepSoundTime; // 0x1c8 + float m_flStepSoundTime; // 0x1d0 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" // MNetworkBitCount "17" - // MNetworkMinValue "-4096" - // MNetworkMaxValue "4096" + // MNetworkMinValue "-4096.000000" + // MNetworkMaxValue "4096.000000" // MNetworkEncodeFlags - float m_flFallVelocity; // 0x1cc + float m_flFallVelocity; // 0x1d4 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - bool m_bInCrouch; // 0x1d0 + bool m_bInCrouch; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 + [[maybe_unused]] uint8_t __pad01d9[0x3]; // 0x1d9 public: // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - uint32_t m_nCrouchState; // 0x1d4 + uint32_t m_nCrouchState; // 0x1dc // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - GameTime_t m_flCrouchTransitionStartTime; // 0x1d8 + GameTime_t m_flCrouchTransitionStartTime; // 0x1e0 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - bool m_bDucked; // 0x1dc + bool m_bDucked; // 0x1e4 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - bool m_bDucking; // 0x1dd + bool m_bDucking; // 0x1e5 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - bool m_bInDuckJump; // 0x1de + bool m_bInDuckJump; // 0x1e6 private: - [[maybe_unused]] uint8_t __pad01df[0x1]; // 0x1df + [[maybe_unused]] uint8_t __pad01e7[0x1]; // 0x1e7 public: - Vector m_groundNormal; // 0x1e0 - float m_flSurfaceFriction; // 0x1ec - CUtlStringToken m_surfaceProps; // 0x1f0 + Vector m_groundNormal; // 0x1e8 + float m_flSurfaceFriction; // 0x1f4 + CUtlStringToken m_surfaceProps; // 0x1f8 private: - [[maybe_unused]] uint8_t __pad01f4[0xc]; // 0x1f4 + [[maybe_unused]] uint8_t __pad01fc[0xc]; // 0x1fc public: - int32_t m_nStepside; // 0x200 + int32_t m_nStepside; // 0x208 }; -// Alignment: 5 +// Alignment: 6 // Size: 0x58 class CPlayer_ObserverServices : public CPlayerPawnComponent { @@ -883,6 +940,7 @@ private: [[maybe_unused]] uint8_t __pad004d[0x3]; // 0x4d public: float m_flObserverChaseDistance; // 0x50 + GameTime_t m_flObserverChaseDistanceCalcTime; // 0x54 }; // Alignment: 0 @@ -925,6 +983,8 @@ public: // Size: 0x230 class CModelState { +private: + [[maybe_unused]] uint8_t __pad0000[0xa0]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "skeletonModelChanged" @@ -958,6 +1018,8 @@ public: // Size: 0x48 struct EntityRenderAttribute_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: // MNetworkEnable CUtlStringToken m_ID; // 0x30 @@ -969,6 +1031,8 @@ public: // Size: 0x68 struct ActiveModelConfig_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: // MNetworkEnable ModelConfigHandle_t m_Handle; // 0x28 @@ -987,6 +1051,8 @@ public: // Size: 0x3f0 class CSkeletonInstance : public CGameSceneNode { +private: + [[maybe_unused]] uint8_t __pad0150[0x10]; // 0x150 public: // MNetworkEnable CModelState m_modelState; // 0x160 @@ -1021,6 +1087,8 @@ public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex CNetworkVarChainer __m_pChainEntity; // 0x440 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentSkeletonInstance")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentSkeletonInstance")->m_static_fields[1]->m_instance);}; }; @@ -1035,6 +1103,8 @@ public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex CNetworkVarChainer __m_pChainEntity; // 0x1a0 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentPoint")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentPoint")->m_static_fields[1]->m_instance);}; }; @@ -1043,6 +1113,8 @@ public: // Size: 0x28 class CNetworkedSequenceOperation { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkSerializer "minusone" @@ -1051,8 +1123,8 @@ public: HSequence m_hSequence; // 0x8 // MNetworkEnable // MNetworkBitCount "15" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags // MNetworkPriority "32" // MNetworkSendProxyRecipientsFilter @@ -1060,8 +1132,8 @@ public: float m_flPrevCycle; // 0xc // MNetworkEnable // MNetworkBitCount "15" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags // MNetworkPriority "32" // MNetworkSendProxyRecipientsFilter @@ -1070,8 +1142,8 @@ public: float m_flCycle; // 0x10 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags CNetworkedQuantizedFloat m_flWeight; // 0x14 // MNetworkDisable @@ -1095,6 +1167,8 @@ public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex CNetworkVarChainer __m_pChainEntity; // 0x470 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentBaseModelEntity")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentBaseModelEntity")->m_static_fields[1]->m_instance);}; }; @@ -1103,6 +1177,8 @@ public: // Size: 0x12e0 class CAnimGraphNetworkedVariables { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkUserGroup "animationgraph" @@ -1230,6 +1306,8 @@ public: // Size: 0x10 class IntervalTimer { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable GameTime_t m_timestamp; // 0x8 @@ -1241,6 +1319,8 @@ public: // Size: 0x18 class CountdownTimer { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable float m_duration; // 0x8 @@ -1256,6 +1336,8 @@ public: // Size: 0x18 class EngineCountdownTimer { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable float m_duration; // 0x8 @@ -1305,8 +1387,8 @@ public: float m_flLastEventCycle; // 0x131c // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "-4" - // MNetworkMaxValue "12" + // MNetworkMinValue "-4.000000" + // MNetworkMaxValue "12.000000" // MNetworkEncodeFlags // MNetworkPriority "32" // MNetworkChangeCallback "playbackRateChangedCompat" @@ -1470,8 +1552,8 @@ public: // MNetworkUserGroup "Water" // MNetworkChangeCallback "OnWaterLevelChangeNetworked" // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags float m_flWaterLevel; // 0x420 // MNetworkEnable @@ -1483,8 +1565,8 @@ public: CHandle< C_BaseEntity > m_hGroundEntity; // 0x428 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "4" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "4.000000" // MNetworkEncodeFlags // MNetworkUserGroup "LocalPlayerExclusive" float m_flFriction; // 0x42c @@ -1549,6 +1631,8 @@ private: [[maybe_unused]] uint8_t __pad052b[0xd]; // 0x52b public: CUtlString m_sUniqueHammerID; // 0x538 + + // Static fields: static bool &Get_sm_bDatadescValidating(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fields[0]->m_instance);}; static bool &Get_sm_bAccurateTriggerBboxChecks(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fields[1]->m_instance);}; static bool &Get_sm_bDisableTouchFuncs(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fields[2]->m_instance);}; @@ -1629,6 +1713,8 @@ public: // Size: 0x208 class C_EnvWindShared { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable GameTime_t m_flStartTime; // 0x8 @@ -1704,6 +1790,8 @@ public: // Size: 0x2e0 class CProjectedTextureBase { +private: + [[maybe_unused]] uint8_t __pad0000[0xc]; // 0x0 public: // MNetworkEnable CHandle< C_BaseEntity > m_hTargetEntity; // 0xc @@ -1766,14 +1854,14 @@ public: uint32_t m_nShadowQuality; // 0x258 // MNetworkEnable // MNetworkBitCount "16" - // MNetworkMinValue "0" - // MNetworkMaxValue "500" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "500.000000" // MNetworkEncodeFlags float m_flNearZ; // 0x25c // MNetworkEnable // MNetworkBitCount "18" - // MNetworkMinValue "0" - // MNetworkMaxValue "1500" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1500.000000" // MNetworkEncodeFlags float m_flFarZ; // 0x260 // MNetworkEnable @@ -1782,6 +1870,8 @@ public: float m_flRotation; // 0x268 // MNetworkEnable bool m_bFlipHorizontal; // 0x26c + + // Static fields: static float &Get_m_flVisibleBBoxMinHeight(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CProjectedTextureBase")->m_static_fields[0]->m_instance);}; }; @@ -1813,6 +1903,8 @@ public: // Size: 0x10 class C_RopeKeyframe::CPhysicsDelegate { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: C_RopeKeyframe* m_pKeyframe; // 0x8 }; @@ -1833,18 +1925,12 @@ public: // No members available }; -// Alignment: 0 -// Size: 0x540 -class C_TriggerCamera : public C_BaseEntity -{ -public: - // No members available -}; - // Alignment: 13 // Size: 0x2e0 class CFlashlightEffect { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: bool m_bIsOn; // 0x10 private: @@ -1903,6 +1989,8 @@ public: // Size: 0xd0 class CGlowOverlay { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: Vector m_vPos; // 0x8 bool m_bDirectional; // 0x14 @@ -1937,8 +2025,10 @@ public: // Size: 0x8 class IClientAlphaProperty { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 2 @@ -1954,6 +2044,8 @@ public: // Size: 0x90 struct sky3dparams_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable int16_t scale; // 0x8 @@ -2008,6 +2100,8 @@ public: // Size: 0x30 struct VPhysicsCollisionAttribute_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable uint64_t m_nInteractsAs; // 0x8 @@ -2031,6 +2125,8 @@ public: // Size: 0xb0 class CCollisionProperty { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "CollisionAttributeChanged" @@ -2105,6 +2201,8 @@ public: // Size: 0x70 class CEffectData { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkEncoder @@ -2126,14 +2224,14 @@ public: float m_flScale; // 0x40 // MNetworkEnable // MNetworkBitCount "12" - // MNetworkMinValue "0" - // MNetworkMaxValue "1023" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1023.000000" // MNetworkEncodeFlags float m_flMagnitude; // 0x44 // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0" - // MNetworkMaxValue "1023" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1023.000000" // MNetworkEncodeFlags float m_flRadius; // 0x48 // MNetworkEnable @@ -2219,6 +2317,8 @@ public: // Size: 0x60 struct shard_model_desc_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable int32_t m_nModelID; // 0x8 @@ -2272,14 +2372,18 @@ public: // Size: 0x8 class C_GameRules { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 11 // Size: 0x58 class CGlowProperty { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: Vector m_fGlowColor; // 0x8 private: @@ -2323,6 +2427,8 @@ public: // Size: 0x40 struct C_fogplayerparams_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkUserGroup "PlayerFogController" @@ -2342,61 +2448,53 @@ public: float m_flNewFarZ; // 0x3c }; -// Alignment: 25 -// Size: 0x220 +// Alignment: 20 +// Size: 0x210 class CPlayer_CameraServices : public CPlayerPawnComponent { public: - // MNetworkEnable - uint32_t m_iFOV; // 0x40 - // MNetworkEnable - uint32_t m_iFOVStart; // 0x44 - // MNetworkEnable - GameTime_t m_flFOVTime; // 0x48 - // MNetworkEnable - // MNetworkUserGroup "LocalPlayerExclusive" - float m_flFOVRate; // 0x4c // MNetworkEnable // MNetworkEncoder - QAngle m_vecCsViewPunchAngle; // 0x50 + QAngle m_vecCsViewPunchAngle; // 0x40 // MNetworkEnable - GameTick_t m_nCsViewPunchAngleTick; // 0x5c + GameTick_t m_nCsViewPunchAngleTick; // 0x4c // MNetworkEnable - float m_flCsViewPunchAngleTickRatio; // 0x60 + float m_flCsViewPunchAngleTickRatio; // 0x50 +private: + [[maybe_unused]] uint8_t __pad0054[0x4]; // 0x54 +public: // MNetworkEnable - CHandle< C_BaseEntity > m_hZoomOwner; // 0x64 + C_fogplayerparams_t m_PlayerFog; // 0x58 // MNetworkEnable - C_fogplayerparams_t m_PlayerFog; // 0x68 + CHandle< C_ColorCorrection > m_hColorCorrectionCtrl; // 0x98 // MNetworkEnable - CHandle< C_ColorCorrection > m_hColorCorrectionCtrl; // 0xa8 - // MNetworkEnable - CHandle< C_BaseEntity > m_hViewEntity; // 0xac + CHandle< C_BaseEntity > m_hViewEntity; // 0x9c // MNetworkEnable // MNetworkUserGroup "LocalPlayerAndObserversExclusive" - CHandle< C_TonemapController2 > m_hTonemapController; // 0xb0 + CHandle< C_TonemapController2 > m_hTonemapController; // 0xa0 private: - [[maybe_unused]] uint8_t __pad00b4[0x4]; // 0xb4 + [[maybe_unused]] uint8_t __pad00a4[0x4]; // 0xa4 public: // MNetworkEnable // MNetworkUserGroup "LocalPlayerAndObserversExclusive" - audioparams_t m_audio; // 0xb8 + audioparams_t m_audio; // 0xa8 // MNetworkEnable // MNetworkUserGroup "LocalPlayerAndObserversExclusive" - C_NetworkUtlVectorBase< CHandle< C_PostProcessingVolume > > m_PostProcessingVolumes; // 0x130 - float m_flOldPlayerZ; // 0x148 - float m_flOldPlayerViewOffsetZ; // 0x14c - fogparams_t m_CurrentFog; // 0x150 - CHandle< C_FogController > m_hOldFogController; // 0x1b8 - bool m_bOverrideFogColor[5]; // 0x1bc - Color m_OverrideFogColor[5]; // 0x1c1 - bool m_bOverrideFogStartEnd[5]; // 0x1d5 + C_NetworkUtlVectorBase< CHandle< C_PostProcessingVolume > > m_PostProcessingVolumes; // 0x120 + float m_flOldPlayerZ; // 0x138 + float m_flOldPlayerViewOffsetZ; // 0x13c + fogparams_t m_CurrentFog; // 0x140 + CHandle< C_FogController > m_hOldFogController; // 0x1a8 + bool m_bOverrideFogColor[5]; // 0x1ac + Color m_OverrideFogColor[5]; // 0x1b1 + bool m_bOverrideFogStartEnd[5]; // 0x1c5 private: - [[maybe_unused]] uint8_t __pad01da[0x2]; // 0x1da + [[maybe_unused]] uint8_t __pad01ca[0x2]; // 0x1ca public: - float m_fOverrideFogStart[5]; // 0x1dc - float m_fOverrideFogEnd[5]; // 0x1f0 - CHandle< C_PostProcessingVolume > m_hActivePostProcessingVolume; // 0x204 - QAngle m_angDemoViewAngles; // 0x208 + float m_fOverrideFogStart[5]; // 0x1cc + float m_fOverrideFogEnd[5]; // 0x1e0 + CHandle< C_PostProcessingVolume > m_hActivePostProcessingVolume; // 0x1f4 + QAngle m_angDemoViewAngles; // 0x1f8 }; // Alignment: 4 @@ -2415,10 +2513,12 @@ public: C_SkyCamera* m_pNext; // 0x5d8 }; -// Alignment: 3 -// Size: 0x50 +// Alignment: 4 +// Size: 0x70 struct PhysicsRagdollPose_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -2426,7 +2526,12 @@ public: // MNetworkEnable // MNetworkChangeCallback "OnTransformChanged" C_NetworkUtlVectorBase< CTransform > m_Transforms; // 0x30 - bool m_bDirty; // 0x48 + // MNetworkEnable + CHandle< C_BaseEntity > m_hOwner; // 0x48 +private: + [[maybe_unused]] uint8_t __pad004c[0x1c]; // 0x4c +public: + bool m_bDirty; // 0x68 }; // Alignment: 0 @@ -2570,10 +2675,26 @@ public: int32_t m_nOldTimerState; // 0x584 }; +// Alignment: 2 +// Size: 0x20 +class CComicBook +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 +public: + // MPropertyDescription "Cover image to use. Likely starts with file://{images}/comics/..." + CPanoramaImageName m_CoverImage; // 0x8 + // MPropertyDescription "Comic book xml file. The xml that defines the layout and flow of the comic book." + // MPropertyCustomFGDType + CUtlString m_XmlFile; // 0x18 +}; + // Alignment: 2 // Size: 0x60 class CAttributeList { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkTypeAlias "CUtlVector< CEconItemAttribute >" @@ -2585,6 +2706,8 @@ public: // Size: 0x48 class CEconItemAttribute { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: // MNetworkEnable uint16_t m_iAttributeDefinitionIndex; // 0x30 @@ -2606,6 +2729,8 @@ public: // Size: 0x50 class CAttributeManager { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlVector< CHandle< C_BaseEntity > > m_Providers; // 0x8 // MNetworkEnable @@ -2635,6 +2760,8 @@ public: // Size: 0x448 class C_EconItemView : public IEconItemInterface { +private: + [[maybe_unused]] uint8_t __pad0008[0x58]; // 0x8 public: bool m_bInventoryImageRgbaRequested; // 0x60 bool m_bInventoryImageTriedCache; // 0x61 @@ -2698,6 +2825,8 @@ private: [[maybe_unused]] uint8_t __pad0412[0x2e]; // 0x412 public: bool m_bInitializedTags; // 0x440 + + // Static fields: static bool &Get_m_sbHasCleanedInventoryImageCacheDir(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_EconItemView")->m_static_fields[0]->m_instance);}; }; @@ -2713,6 +2842,8 @@ public: // Size: 0x18 struct EntitySpottedState_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "OnIsSpottedChanged" @@ -2740,6 +2871,8 @@ public: // Size: 0x118 class C_RetakeGameRules { +private: + [[maybe_unused]] uint8_t __pad0000[0xf8]; // 0x0 public: // MNetworkEnable int32_t m_nMatchSeed; // 0xf8 @@ -2756,10 +2889,66 @@ public: int32_t m_iBombSite; // 0x104 }; +// Alignment: 1 +// Size: 0x30 +class CCSGameModeRules +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 +public: + // MNetworkDisable + // MNetworkChangeAccessorFieldPathIndex + CNetworkVarChainer __m_pChainEntity; // 0x8 +}; + +// Alignment: 0 +// Size: 0x30 +class CCSGameModeRules_Noop : public CCSGameModeRules +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0xd0 +class CCSGameModeScript : public CBasePulseGraphInstance +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x30 +class CCSGameModeRules_Scripted : public CCSGameModeRules +{ +public: + // No members available +}; + +// Alignment: 5 +// Size: 0x40 +class CCSGameModeRules_Deathmatch : public CCSGameModeRules +{ +public: + bool m_bFirstThink; // 0x30 + bool m_bFirstThinkAfterConnected; // 0x31 +private: + [[maybe_unused]] uint8_t __pad0032[0x2]; // 0x32 +public: + // MNetworkEnable + GameTime_t m_flDMBonusStartTime; // 0x34 + // MNetworkEnable + float m_flDMBonusTimeLength; // 0x38 + // MNetworkEnable + int16_t m_nDMBonusWeaponLoadoutSlot; // 0x3c +}; + // Alignment: 18 // Size: 0x6c0 class C_SurvivalGameRules { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable Vector m_vecPlayAreaMins; // 0x8 @@ -2805,6 +2994,8 @@ public: // Size: 0x68 struct CSPerRoundStats_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: // MNetworkEnable int32_t m_iKills; // 0x30 @@ -2855,26 +3046,30 @@ public: int32_t m_iEnemy3Ks; // 0x70 }; -// Alignment: 4 -// Size: 0x9d8 +// Alignment: 6 +// Size: 0x9e0 class C_CSGO_TeamPreviewCharacterPosition : public C_BaseEntity { public: // MNetworkEnable - int32_t m_nOrdinal; // 0x540 + int32_t m_nVariant; // 0x540 + // MNetworkEnable + int32_t m_nRandom; // 0x544 + // MNetworkEnable + int32_t m_nOrdinal; // 0x548 private: - [[maybe_unused]] uint8_t __pad0544[0x4]; // 0x544 + [[maybe_unused]] uint8_t __pad054c[0x4]; // 0x54c public: // MNetworkEnable - CUtlString m_sWeaponName; // 0x548 + CUtlString m_sWeaponName; // 0x550 // MNetworkEnable - uint64_t m_xuid; // 0x550 + uint64_t m_xuid; // 0x558 // MNetworkEnable - C_EconItemView m_weaponItem; // 0x558 + C_EconItemView m_weaponItem; // 0x560 }; // Alignment: 0 -// Size: 0x9d8 +// Size: 0x9e0 class C_CSGO_TeamSelectCharacterPosition : public C_CSGO_TeamPreviewCharacterPosition { public: @@ -2882,7 +3077,7 @@ public: }; // Alignment: 0 -// Size: 0x9d8 +// Size: 0x9e0 class C_CSGO_TeamSelectTerroristPosition : public C_CSGO_TeamSelectCharacterPosition { public: @@ -2890,7 +3085,7 @@ public: }; // Alignment: 0 -// Size: 0x9d8 +// Size: 0x9e0 class C_CSGO_TeamSelectCounterTerroristPosition : public C_CSGO_TeamSelectCharacterPosition { public: @@ -2898,7 +3093,7 @@ public: }; // Alignment: 0 -// Size: 0x9d8 +// Size: 0x9e0 class C_CSGO_TeamIntroCharacterPosition : public C_CSGO_TeamPreviewCharacterPosition { public: @@ -2906,7 +3101,7 @@ public: }; // Alignment: 0 -// Size: 0x9d8 +// Size: 0x9e0 class C_CSGO_TeamIntroTerroristPosition : public C_CSGO_TeamIntroCharacterPosition { public: @@ -2914,13 +3109,37 @@ public: }; // Alignment: 0 -// Size: 0x9d8 +// Size: 0x9e0 class C_CSGO_TeamIntroCounterTerroristPosition : public C_CSGO_TeamIntroCharacterPosition { public: // No members available }; +// Alignment: 0 +// Size: 0x9e0 +class CCSGO_WingmanIntroCharacterPosition : public C_CSGO_TeamIntroCharacterPosition +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x9e0 +class CCSGO_WingmanIntroTerroristPosition : public CCSGO_WingmanIntroCharacterPosition +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x9e0 +class CCSGO_WingmanIntroCounterTerroristPosition : public CCSGO_WingmanIntroCharacterPosition +{ +public: + // No members available +}; + // Alignment: 0 // Size: 0x540 class C_CSMinimapBoundary : public C_BaseEntity @@ -2933,6 +3152,8 @@ public: // Size: 0x38 struct WeaponPurchaseCount_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: // MNetworkEnable uint16_t m_nItemDefIndex; // 0x30 @@ -2944,20 +3165,23 @@ public: // Size: 0x58 struct WeaponPurchaseTracker_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable C_UtlVectorEmbeddedNetworkVar< WeaponPurchaseCount_t > m_weaponPurchases; // 0x8 }; -// Alignment: 3 +// Alignment: 4 // Size: 0xf8 class CCSPlayer_ActionTrackingServices : public CPlayerPawnComponent { public: + CHandle< C_BasePlayerWeapon > m_hLastWeaponBeforeC4AutoSwitch; // 0x40 // MNetworkEnable - bool m_bIsRescuing; // 0x40 + bool m_bIsRescuing; // 0x44 private: - [[maybe_unused]] uint8_t __pad0041[0x7]; // 0x41 + [[maybe_unused]] uint8_t __pad0045[0x3]; // 0x45 public: // MNetworkEnable WeaponPurchaseTracker_t m_weaponPurchasesThisMatch; // 0x48 @@ -2969,6 +3193,8 @@ public: // Size: 0x590 class C_PlayerPing : public C_BaseEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0x30]; // 0x540 public: // MNetworkEnable CHandle< C_BaseEntity > m_hPlayer; // 0x570 @@ -3026,13 +3252,58 @@ public: int32_t m_totalHitsOnServer; // 0x40 }; -// Alignment: 2 -// Size: 0x228 +// Alignment: 5 +// Size: 0x48 +struct SellbackPurchaseEntry_t +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 +public: + // MNetworkEnable + uint16_t m_unDefIdx; // 0x30 +private: + [[maybe_unused]] uint8_t __pad0032[0x2]; // 0x32 +public: + // MNetworkEnable + int32_t m_nCost; // 0x34 + // MNetworkEnable + int32_t m_nPrevArmor; // 0x38 + // MNetworkEnable + bool m_bPrevHelmet; // 0x3c +private: + [[maybe_unused]] uint8_t __pad003d[0x3]; // 0x3d +public: + // MNetworkEnable + CEntityHandle m_hItem; // 0x40 +}; + +// Alignment: 1 +// Size: 0x90 +class CCSPlayer_BuyServices : public CPlayerPawnComponent +{ +public: + // MNetworkEnable + C_UtlVectorEmbeddedNetworkVar< SellbackPurchaseEntry_t > m_vecSellbackPurchaseEntries; // 0x40 +}; + +// Alignment: 7 +// Size: 0x230 class CCSPlayer_CameraServices : public CPlayer_CameraServices { public: - float m_flLastShotFOV; // 0x220 - float m_flDeathCamTilt; // 0x224 + // MNetworkEnable + uint32_t m_iFOV; // 0x210 + // MNetworkEnable + uint32_t m_iFOVStart; // 0x214 + // MNetworkEnable + GameTime_t m_flFOVTime; // 0x218 + // MNetworkEnable + // MNetworkUserGroup "LocalPlayerExclusive" + float m_flFOVRate; // 0x21c + // MNetworkEnable + CHandle< C_BaseEntity > m_hZoomOwner; // 0x220 + float m_flLastShotFOV; // 0x224 + float m_flDeathCamTilt; // 0x228 }; // Alignment: 2 @@ -3046,8 +3317,8 @@ public: CHandle< C_BaseEntity > m_hCarriedHostageProp; // 0x44 }; -// Alignment: 8 -// Size: 0x50 +// Alignment: 3 +// Size: 0x48 class CCSPlayer_ItemServices : public CPlayer_ItemServices { public: @@ -3057,111 +3328,87 @@ public: bool m_bHasHelmet; // 0x41 // MNetworkEnable bool m_bHasHeavyArmor; // 0x42 - // MNetworkEnable - bool m_bKevlarIsRefundable; // 0x43 - // MNetworkEnable - bool m_bAssaultSuitIsRefundable; // 0x44 - // MNetworkEnable - bool m_bDefuserIsRefundable; // 0x45 -private: - [[maybe_unused]] uint8_t __pad0046[0x2]; // 0x46 -public: - // MNetworkEnable - int32_t m_nPrevArmorValue; // 0x48 - // MNetworkEnable - bool m_bPrevHadHelmet; // 0x4c }; -// Alignment: 36 -// Size: 0x13d0 +// Alignment: 35 +// Size: 0x4d8 class CCSPlayer_MovementServices : public CPlayer_MovementServices_Humanoid { public: // MNetworkEnable - float m_flMaxFallVelocity; // 0x208 + float m_flMaxFallVelocity; // 0x210 // MNetworkEnable // MNetworkEncoder - Vector m_vecLadderNormal; // 0x20c + Vector m_vecLadderNormal; // 0x214 // MNetworkEnable - int32_t m_nLadderSurfacePropIndex; // 0x218 + int32_t m_nLadderSurfacePropIndex; // 0x220 // MNetworkEnable - // MNetworkUserGroup "LocalPlayerExclusive" - bool m_bAllowAutoMovement; // 0x21c + float m_flDuckAmount; // 0x224 + // MNetworkEnable + float m_flDuckSpeed; // 0x228 + // MNetworkEnable + bool m_bDuckOverride; // 0x22c + // MNetworkEnable + bool m_bDesiresDuck; // 0x22d private: - [[maybe_unused]] uint8_t __pad021d[0x3]; // 0x21d + [[maybe_unused]] uint8_t __pad022e[0x2]; // 0x22e public: - // MNetworkEnable - float m_flDuckAmount; // 0x220 - // MNetworkEnable - float m_flDuckSpeed; // 0x224 - // MNetworkEnable - bool m_bDuckOverride; // 0x228 -private: - [[maybe_unused]] uint8_t __pad0229[0x3]; // 0x229 -public: - float m_flDuckOffset; // 0x22c + float m_flDuckOffset; // 0x230 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" // MNetworkPriority "32" - uint32_t m_nDuckTimeMsecs; // 0x230 + uint32_t m_nDuckTimeMsecs; // 0x234 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - uint32_t m_nDuckJumpTimeMsecs; // 0x234 + uint32_t m_nDuckJumpTimeMsecs; // 0x238 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - uint32_t m_nJumpTimeMsecs; // 0x238 + uint32_t m_nJumpTimeMsecs; // 0x23c // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - float m_flLastDuckTime; // 0x23c + float m_flLastDuckTime; // 0x240 private: - [[maybe_unused]] uint8_t __pad0240[0x8]; // 0x240 + [[maybe_unused]] uint8_t __pad0244[0xc]; // 0x244 public: - Vector2D m_vecLastPositionAtFullCrouchSpeed; // 0x248 - bool m_duckUntilOnGround; // 0x250 - bool m_bHasWalkMovedSinceLastJump; // 0x251 - bool m_bInStuckTest; // 0x252 + Vector2D m_vecLastPositionAtFullCrouchSpeed; // 0x250 + bool m_duckUntilOnGround; // 0x258 + bool m_bHasWalkMovedSinceLastJump; // 0x259 + bool m_bInStuckTest; // 0x25a private: - [[maybe_unused]] uint8_t __pad0253[0x5]; // 0x253 + [[maybe_unused]] uint8_t __pad025b[0xd]; // 0x25b public: - uint64_t m_CachedGetPointContents[3][64]; // 0x258 - Vector m_CachedGetPointContentsPoint[3][64]; // 0x858 + float m_flStuckCheckTime[2][64]; // 0x268 + int32_t m_nTraceCount; // 0x468 + int32_t m_StuckLast; // 0x46c + bool m_bSpeedCropped; // 0x470 private: - [[maybe_unused]] uint8_t __pad1158[0x8]; // 0x1158 + [[maybe_unused]] uint8_t __pad0471[0x3]; // 0x471 public: - float m_flStuckCheckTime[2][64]; // 0x1160 - int32_t m_nTraceCount; // 0x1360 - int32_t m_StuckLast; // 0x1364 - bool m_bSpeedCropped; // 0x1368 + int32_t m_nOldWaterLevel; // 0x474 + float m_flWaterEntryTime; // 0x478 + Vector m_vecForward; // 0x47c + Vector m_vecLeft; // 0x488 + Vector m_vecUp; // 0x494 + Vector m_vecPreviouslyPredictedOrigin; // 0x4a0 + // MNetworkEnable + bool m_bOldJumpPressed; // 0x4ac private: - [[maybe_unused]] uint8_t __pad1369[0x3]; // 0x1369 + [[maybe_unused]] uint8_t __pad04ad[0x3]; // 0x4ad public: - int32_t m_nOldWaterLevel; // 0x136c - float m_flWaterEntryTime; // 0x1370 - Vector m_vecForward; // 0x1374 - Vector m_vecLeft; // 0x1380 - Vector m_vecUp; // 0x138c - Vector m_vecPreviouslyPredictedOrigin; // 0x1398 + float m_flJumpPressedTime; // 0x4b0 // MNetworkEnable - bool m_bOldJumpPressed; // 0x13a4 -private: - [[maybe_unused]] uint8_t __pad13a5[0x3]; // 0x13a5 -public: + float m_flJumpUntil; // 0x4b4 // MNetworkEnable - float m_flJumpUntil; // 0x13a8 + float m_flJumpVel; // 0x4b8 // MNetworkEnable - float m_flJumpVel; // 0x13ac + GameTime_t m_fStashGrenadeParameterWhen; // 0x4bc // MNetworkEnable - GameTime_t m_fStashGrenadeParameterWhen; // 0x13b0 -private: - [[maybe_unused]] uint8_t __pad13b4[0x4]; // 0x13b4 -public: + uint64_t m_nButtonDownMaskPrev; // 0x4c0 // MNetworkEnable - uint64_t m_nButtonDownMaskPrev; // 0x13b8 + float m_flOffsetTickCompleteTime; // 0x4c8 // MNetworkEnable - float m_flOffsetTickCompleteTime; // 0x13c0 - // MNetworkEnable - float m_flOffsetTickStashedSpeed; // 0x13c4 - bool m_bUpdatePredictedOriginAfterDataUpdate; // 0x13c8 + float m_flOffsetTickStashedSpeed; // 0x4cc + bool m_bUpdatePredictedOriginAfterDataUpdate; // 0x4d0 }; // Alignment: 16 @@ -3253,6 +3500,8 @@ public: // Size: 0x70 class CDamageRecord { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: // MNetworkEnable CHandle< C_CSPlayerPawnBase > m_PlayerDamager; // 0x28 @@ -3284,7 +3533,7 @@ public: EKillTypes_t m_killType; // 0x69 }; -// Alignment: 3 +// Alignment: 2 // Size: 0x98 class CCSPlayerController_DamageServices : public CPlayerControllerComponent { @@ -3293,7 +3542,9 @@ public: // MNetworkUserGroup "LocalPlayerExclusiveDuringRoundEnd" // MNetworkChangeCallback "OnDamageListUpdate" int32_t m_nSendUpdate; // 0x40 - int32_t m_nCachedSendUpdate; // 0x44 +private: + [[maybe_unused]] uint8_t __pad0044[0x4]; // 0x44 +public: // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusiveDuringRoundEnd" C_UtlVectorEmbeddedNetworkVar< CDamageRecord > m_DamageList; // 0x48 @@ -3346,8 +3597,8 @@ public: C_UtlVectorEmbeddedNetworkVar< C_EconItemView > m_vecCounterTerroristLoadoutCache; // 0xc0 }; -// Alignment: 108 -// Size: 0x1938 +// Alignment: 107 +// Size: 0x1940 class C_CSGameRules : public C_TeamplayRules { public: @@ -3466,134 +3717,126 @@ private: [[maybe_unused]] uint8_t __pad046d[0x3]; // 0x46d public: // MNetworkEnable - float m_flDMBonusStartTime; // 0x470 + int32_t m_nNextMapInMapgroup; // 0x470 // MNetworkEnable - float m_flDMBonusTimeLength; // 0x474 + char m_szTournamentEventName[512]; // 0x474 // MNetworkEnable - uint16_t m_unDMBonusWeaponItemDefIndex; // 0x478 + char m_szTournamentEventStage[512]; // 0x674 // MNetworkEnable - bool m_bDMBonusActive; // 0x47a + char m_szMatchStatTxt[512]; // 0x874 + // MNetworkEnable + char m_szTournamentPredictionsTxt[512]; // 0xa74 + // MNetworkEnable + int32_t m_nTournamentPredictionsPct; // 0xc74 + // MNetworkEnable + GameTime_t m_flCMMItemDropRevealStartTime; // 0xc78 + // MNetworkEnable + GameTime_t m_flCMMItemDropRevealEndTime; // 0xc7c + // MNetworkEnable + bool m_bIsDroppingItems; // 0xc80 + // MNetworkEnable + bool m_bIsQuestEligible; // 0xc81 private: - [[maybe_unused]] uint8_t __pad047b[0x1]; // 0x47b + [[maybe_unused]] uint8_t __pad0c82[0x2]; // 0xc82 public: // MNetworkEnable - int32_t m_nNextMapInMapgroup; // 0x47c + int32_t m_nGuardianModeWaveNumber; // 0xc84 // MNetworkEnable - char m_szTournamentEventName[512]; // 0x480 + int32_t m_nGuardianModeSpecialKillsRemaining; // 0xc88 // MNetworkEnable - char m_szTournamentEventStage[512]; // 0x680 + int32_t m_nGuardianModeSpecialWeaponNeeded; // 0xc8c + int32_t m_nGuardianGrenadesToGiveBots; // 0xc90 + int32_t m_nNumHeaviesToSpawn; // 0xc94 // MNetworkEnable - char m_szMatchStatTxt[512]; // 0x880 + uint32_t m_numGlobalGiftsGiven; // 0xc98 // MNetworkEnable - char m_szTournamentPredictionsTxt[512]; // 0xa80 + uint32_t m_numGlobalGifters; // 0xc9c // MNetworkEnable - int32_t m_nTournamentPredictionsPct; // 0xc80 + uint32_t m_numGlobalGiftsPeriodSeconds; // 0xca0 // MNetworkEnable - GameTime_t m_flCMMItemDropRevealStartTime; // 0xc84 + uint32_t m_arrFeaturedGiftersAccounts[4]; // 0xca4 // MNetworkEnable - GameTime_t m_flCMMItemDropRevealEndTime; // 0xc88 + uint32_t m_arrFeaturedGiftersGifts[4]; // 0xcb4 // MNetworkEnable - bool m_bIsDroppingItems; // 0xc8c + uint16_t m_arrProhibitedItemIndices[100]; // 0xcc4 // MNetworkEnable - bool m_bIsQuestEligible; // 0xc8d + uint32_t m_arrTournamentActiveCasterAccounts[4]; // 0xd8c + // MNetworkEnable + int32_t m_numBestOfMaps; // 0xd9c + // MNetworkEnable + int32_t m_nHalloweenMaskListSeed; // 0xda0 + // MNetworkEnable + bool m_bBombDropped; // 0xda4 + // MNetworkEnable + bool m_bBombPlanted; // 0xda5 private: - [[maybe_unused]] uint8_t __pad0c8e[0x2]; // 0xc8e + [[maybe_unused]] uint8_t __pad0da6[0x2]; // 0xda6 public: // MNetworkEnable - int32_t m_nGuardianModeWaveNumber; // 0xc90 + int32_t m_iRoundWinStatus; // 0xda8 // MNetworkEnable - int32_t m_nGuardianModeSpecialKillsRemaining; // 0xc94 + int32_t m_eRoundWinReason; // 0xdac // MNetworkEnable - int32_t m_nGuardianModeSpecialWeaponNeeded; // 0xc98 - int32_t m_nGuardianGrenadesToGiveBots; // 0xc9c - int32_t m_nNumHeaviesToSpawn; // 0xca0 + bool m_bTCantBuy; // 0xdb0 // MNetworkEnable - uint32_t m_numGlobalGiftsGiven; // 0xca4 - // MNetworkEnable - uint32_t m_numGlobalGifters; // 0xca8 - // MNetworkEnable - uint32_t m_numGlobalGiftsPeriodSeconds; // 0xcac - // MNetworkEnable - uint32_t m_arrFeaturedGiftersAccounts[4]; // 0xcb0 - // MNetworkEnable - uint32_t m_arrFeaturedGiftersGifts[4]; // 0xcc0 - // MNetworkEnable - uint16_t m_arrProhibitedItemIndices[100]; // 0xcd0 - // MNetworkEnable - uint32_t m_arrTournamentActiveCasterAccounts[4]; // 0xd98 - // MNetworkEnable - int32_t m_numBestOfMaps; // 0xda8 - // MNetworkEnable - int32_t m_nHalloweenMaskListSeed; // 0xdac - // MNetworkEnable - bool m_bBombDropped; // 0xdb0 - // MNetworkEnable - bool m_bBombPlanted; // 0xdb1 + bool m_bCTCantBuy; // 0xdb1 private: [[maybe_unused]] uint8_t __pad0db2[0x2]; // 0xdb2 public: // MNetworkEnable - int32_t m_iRoundWinStatus; // 0xdb4 + GameTime_t m_flGuardianBuyUntilTime; // 0xdb4 // MNetworkEnable - int32_t m_eRoundWinReason; // 0xdb8 + int32_t m_iMatchStats_RoundResults[30]; // 0xdb8 // MNetworkEnable - bool m_bTCantBuy; // 0xdbc + int32_t m_iMatchStats_PlayersAlive_CT[30]; // 0xe30 // MNetworkEnable - bool m_bCTCantBuy; // 0xdbd + int32_t m_iMatchStats_PlayersAlive_T[30]; // 0xea8 + // MNetworkEnable + float m_TeamRespawnWaveTimes[32]; // 0xf20 + // MNetworkEnable + GameTime_t m_flNextRespawnWave[32]; // 0xfa0 + // MNetworkEnable + int32_t m_nServerQuestID; // 0x1020 + // MNetworkEnable + Vector m_vMinimapMins; // 0x1024 + // MNetworkEnable + Vector m_vMinimapMaxs; // 0x1030 + // MNetworkEnable + float m_MinimapVerticalSectionHeights[8]; // 0x103c + bool m_bDontIncrementCoopWave; // 0x105c + bool m_bSpawnedTerrorHuntHeavy; // 0x105d private: - [[maybe_unused]] uint8_t __pad0dbe[0x2]; // 0xdbe + [[maybe_unused]] uint8_t __pad105e[0x2]; // 0x105e public: // MNetworkEnable - GameTime_t m_flGuardianBuyUntilTime; // 0xdc0 + int32_t m_nEndMatchMapGroupVoteTypes[10]; // 0x1060 // MNetworkEnable - int32_t m_iMatchStats_RoundResults[30]; // 0xdc4 + int32_t m_nEndMatchMapGroupVoteOptions[10]; // 0x1088 // MNetworkEnable - int32_t m_iMatchStats_PlayersAlive_CT[30]; // 0xe3c + int32_t m_nEndMatchMapVoteWinner; // 0x10b0 // MNetworkEnable - int32_t m_iMatchStats_PlayersAlive_T[30]; // 0xeb4 + int32_t m_iNumConsecutiveCTLoses; // 0x10b4 // MNetworkEnable - float m_TeamRespawnWaveTimes[32]; // 0xf2c - // MNetworkEnable - GameTime_t m_flNextRespawnWave[32]; // 0xfac - // MNetworkEnable - int32_t m_nServerQuestID; // 0x102c - // MNetworkEnable - Vector m_vMinimapMins; // 0x1030 - // MNetworkEnable - Vector m_vMinimapMaxs; // 0x103c - // MNetworkEnable - float m_MinimapVerticalSectionHeights[8]; // 0x1048 - bool m_bDontIncrementCoopWave; // 0x1068 - bool m_bSpawnedTerrorHuntHeavy; // 0x1069 + int32_t m_iNumConsecutiveTerroristLoses; // 0x10b8 private: - [[maybe_unused]] uint8_t __pad106a[0x2]; // 0x106a + [[maybe_unused]] uint8_t __pad10bc[0x1c]; // 0x10bc +public: + bool m_bMarkClientStopRecordAtRoundEnd; // 0x10d8 +private: + [[maybe_unused]] uint8_t __pad10d9[0x57]; // 0x10d9 public: // MNetworkEnable - int32_t m_nEndMatchMapGroupVoteTypes[10]; // 0x106c - // MNetworkEnable - int32_t m_nEndMatchMapGroupVoteOptions[10]; // 0x1094 - // MNetworkEnable - int32_t m_nEndMatchMapVoteWinner; // 0x10bc - // MNetworkEnable - int32_t m_iNumConsecutiveCTLoses; // 0x10c0 - // MNetworkEnable - int32_t m_iNumConsecutiveTerroristLoses; // 0x10c4 + bool m_bMatchAbortedDueToPlayerBan; // 0x1130 + bool m_bHasTriggeredRoundStartMusic; // 0x1131 + bool m_bHasTriggeredCoopSpawnReset; // 0x1132 + bool m_bSwitchingTeamsAtRoundReset; // 0x1133 + int32_t m_iMaxGunGameProgressiveWeaponIndex; // 0x1134 private: - [[maybe_unused]] uint8_t __pad10c8[0x18]; // 0x10c8 -public: - bool m_bMarkClientStopRecordAtRoundEnd; // 0x10e0 -private: - [[maybe_unused]] uint8_t __pad10e1[0x57]; // 0x10e1 + [[maybe_unused]] uint8_t __pad1138[0x18]; // 0x1138 public: // MNetworkEnable - bool m_bMatchAbortedDueToPlayerBan; // 0x1138 - bool m_bHasTriggeredRoundStartMusic; // 0x1139 - bool m_bHasTriggeredCoopSpawnReset; // 0x113a - bool m_bSwitchingTeamsAtRoundReset; // 0x113b - int32_t m_iMaxGunGameProgressiveWeaponIndex; // 0x113c -private: - [[maybe_unused]] uint8_t __pad1140[0x18]; // 0x1140 -public: + // MNetworkPolymorphic + CCSGameModeRules* m_pGameModeRules; // 0x1150 // MNetworkEnable C_SurvivalGameRules m_SurvivalRules; // 0x1158 // MNetworkEnable @@ -3601,9 +3844,16 @@ public: // MNetworkEnable // MNetworkChangeCallback "OnMatchEndCountChanged" uint8_t m_nMatchEndCount; // 0x1930 +private: + [[maybe_unused]] uint8_t __pad1931[0x3]; // 0x1931 +public: + // MNetworkEnable + int32_t m_nTTeamIntroVariant; // 0x1934 + // MNetworkEnable + int32_t m_nCTTeamIntroVariant; // 0x1938 // MNetworkEnable // MNetworkChangeCallback "OnTeamIntroPeriodChanged" - bool m_bTeamIntroPeriod; // 0x1931 + bool m_bTeamIntroPeriod; // 0x193c }; // Alignment: 7 @@ -3674,6 +3924,8 @@ public: // Size: 0xb0 class C_IronSightController { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: bool m_bIronSightAvailable; // 0x10 private: @@ -3709,8 +3961,8 @@ public: bool m_bPassWhenTrue; // 0x18 }; -// Alignment: 32 -// Size: 0x258 +// Alignment: 34 +// Size: 0x270 struct CompositeMaterialInputLooseVariable_t { public: @@ -3733,106 +3985,115 @@ public: // MPropertyAttrStateCallback bool m_bExposedVariableIsFixedRange; // 0x20 private: - [[maybe_unused]] uint8_t __pad0021[0x3]; // 0x21 + [[maybe_unused]] uint8_t __pad0021[0x7]; // 0x21 public: + // MPropertyFriendlyName "Exposed SetVisible When True" + // MPropertyAttrStateCallback + CUtlString m_strExposedVisibleWhenTrue; // 0x28 + // MPropertyFriendlyName "Exposed SetHidden When True" + // MPropertyAttrStateCallback + CUtlString m_strExposedHiddenWhenTrue; // 0x30 // MPropertyAutoRebuildOnChange // MPropertyFriendlyName "Type" - CompositeMaterialInputLooseVariableType_t m_nVariableType; // 0x24 + CompositeMaterialInputLooseVariableType_t m_nVariableType; // 0x38 // MPropertyFriendlyName "Value" // MPropertyAttrStateCallback - bool m_bValueBoolean; // 0x28 -private: - [[maybe_unused]] uint8_t __pad0029[0x3]; // 0x29 -public: - // MPropertyFriendlyName "X Value" - // MPropertyAttrStateCallback - // MPropertyAttributeRange "0 255" - int32_t m_nValueIntX; // 0x2c - // MPropertyFriendlyName "Y Value" - // MPropertyAttrStateCallback - // MPropertyAttributeRange "0 255" - int32_t m_nValueIntY; // 0x30 - // MPropertyFriendlyName "Z Value" - // MPropertyAttrStateCallback - // MPropertyAttributeRange "0 255" - int32_t m_nValueIntZ; // 0x34 - // MPropertyFriendlyName "W Value" - // MPropertyAttrStateCallback - // MPropertyAttributeRange "0 255" - int32_t m_nValueIntW; // 0x38 - // MPropertyFriendlyName "Specify Min/Max" - // MPropertyAttrStateCallback - bool m_bHasFloatBounds; // 0x3c + bool m_bValueBoolean; // 0x3c private: [[maybe_unused]] uint8_t __pad003d[0x3]; // 0x3d +public: + // MPropertyFriendlyName "X Value" + // MPropertyAttrStateCallback + // MPropertyAttributeRange "0 255" + int32_t m_nValueIntX; // 0x40 + // MPropertyFriendlyName "Y Value" + // MPropertyAttrStateCallback + // MPropertyAttributeRange "0 255" + int32_t m_nValueIntY; // 0x44 + // MPropertyFriendlyName "Z Value" + // MPropertyAttrStateCallback + // MPropertyAttributeRange "0 255" + int32_t m_nValueIntZ; // 0x48 + // MPropertyFriendlyName "W Value" + // MPropertyAttrStateCallback + // MPropertyAttributeRange "0 255" + int32_t m_nValueIntW; // 0x4c + // MPropertyFriendlyName "Specify Min/Max" + // MPropertyAttrStateCallback + bool m_bHasFloatBounds; // 0x50 +private: + [[maybe_unused]] uint8_t __pad0051[0x3]; // 0x51 public: // MPropertyFriendlyName "X Value" // MPropertyAttrStateCallback // MPropertyAttributeRange "0.0 1.0" - float m_flValueFloatX; // 0x40 + float m_flValueFloatX; // 0x54 // MPropertyFriendlyName "X Min" // MPropertyAttrStateCallback - float m_flValueFloatX_Min; // 0x44 + float m_flValueFloatX_Min; // 0x58 // MPropertyFriendlyName "X Max" // MPropertyAttrStateCallback - float m_flValueFloatX_Max; // 0x48 + float m_flValueFloatX_Max; // 0x5c // MPropertyFriendlyName "Y Value" // MPropertyAttrStateCallback // MPropertyAttributeRange "0.0 1.0" - float m_flValueFloatY; // 0x4c + float m_flValueFloatY; // 0x60 // MPropertyFriendlyName "Y Min" // MPropertyAttrStateCallback - float m_flValueFloatY_Min; // 0x50 + float m_flValueFloatY_Min; // 0x64 // MPropertyFriendlyName "Y Max" // MPropertyAttrStateCallback - float m_flValueFloatY_Max; // 0x54 + float m_flValueFloatY_Max; // 0x68 // MPropertyFriendlyName "Z Value" // MPropertyAttrStateCallback // MPropertyAttributeRange "0.0 1.0" - float m_flValueFloatZ; // 0x58 + float m_flValueFloatZ; // 0x6c // MPropertyFriendlyName "Z Min" // MPropertyAttrStateCallback - float m_flValueFloatZ_Min; // 0x5c + float m_flValueFloatZ_Min; // 0x70 // MPropertyFriendlyName "Z Max" // MPropertyAttrStateCallback - float m_flValueFloatZ_Max; // 0x60 + float m_flValueFloatZ_Max; // 0x74 // MPropertyFriendlyName "W Value" // MPropertyAttrStateCallback // MPropertyAttributeRange "0.0 1.0" - float m_flValueFloatW; // 0x64 + float m_flValueFloatW; // 0x78 // MPropertyFriendlyName "W Min" // MPropertyAttrStateCallback - float m_flValueFloatW_Min; // 0x68 + float m_flValueFloatW_Min; // 0x7c // MPropertyFriendlyName "W Max" // MPropertyAttrStateCallback - float m_flValueFloatW_Max; // 0x6c + float m_flValueFloatW_Max; // 0x80 // MPropertyFriendlyName "Value" // MPropertyAttrStateCallback - Color m_cValueColor4; // 0x70 + Color m_cValueColor4; // 0x84 // MPropertyFriendlyName "Value" // MPropertyAttrStateCallback - CompositeMaterialVarSystemVar_t m_nValueSystemVar; // 0x74 + CompositeMaterialVarSystemVar_t m_nValueSystemVar; // 0x88 +private: + [[maybe_unused]] uint8_t __pad008c[0x4]; // 0x8c +public: // MPropertyFriendlyName "Material" // MPropertyAttributeEditor "AssetBrowse( vmat )" // MPropertyAttrStateCallback - CResourceName m_strResourceMaterial; // 0x78 + CResourceName m_strResourceMaterial; // 0x90 // MPropertyFriendlyName "Texture" // MPropertyAttributeEditor "AssetBrowse( jpg, png, psd, tga )" // MPropertyAttrStateCallback - CUtlString m_strTextureContentAssetPath; // 0x158 + CUtlString m_strTextureContentAssetPath; // 0x170 // MPropertyHideField - CResourceName m_strTextureRuntimeResourcePath; // 0x160 + CResourceName m_strTextureRuntimeResourcePath; // 0x178 // MPropertyHideField - CUtlString m_strTextureCompilationVtexTemplate; // 0x240 + CUtlString m_strTextureCompilationVtexTemplate; // 0x258 // MPropertyFriendlyName "Texture Type" // MPropertyAttrStateCallback - CompositeMaterialInputTextureType_t m_nTextureType; // 0x248 + CompositeMaterialInputTextureType_t m_nTextureType; // 0x260 private: - [[maybe_unused]] uint8_t __pad024c[0x4]; // 0x24c + [[maybe_unused]] uint8_t __pad0264[0x4]; // 0x264 public: // MPropertyFriendlyName "String" // MPropertyAttrStateCallback - CUtlString m_strString; // 0x250 + CUtlString m_strString; // 0x268 }; // Alignment: 5 @@ -3856,8 +4117,8 @@ public: bool m_bPassWhenTrue; // 0x20 }; -// Alignment: 27 -// Size: 0x350 +// Alignment: 28 +// Size: 0x368 struct CompMatPropertyMutator_t { public: @@ -3903,54 +4164,58 @@ public: CompositeMaterialInputLooseVariable_t m_nSetValue_Value; // 0x68 // MPropertyFriendlyName "Target Texture Param" // MPropertyAttrStateCallback - CUtlString m_strGenerateTexture_TargetParam; // 0x2c0 + CUtlString m_strGenerateTexture_TargetParam; // 0x2d8 // MPropertyFriendlyName "Initial Container" // MPropertyAttrStateCallback - CUtlString m_strGenerateTexture_InitialContainer; // 0x2c8 + CUtlString m_strGenerateTexture_InitialContainer; // 0x2e0 // MPropertyFriendlyName "Resolution" // MPropertyAttrStateCallback - int32_t m_nResolution; // 0x2d0 + int32_t m_nResolution; // 0x2e8 + // MPropertyAutoRebuildOnChange + // MPropertyFriendlyName "Scratch Target" + // MPropertyAttrStateCallback + bool m_bIsScratchTarget; // 0x2ec // MPropertyAutoRebuildOnChange // MPropertyFriendlyName "Splat Debug info on Texture" // MPropertyAttrStateCallback - bool m_bSplatDebugInfo; // 0x2d4 + bool m_bSplatDebugInfo; // 0x2ed // MPropertyAutoRebuildOnChange // MPropertyFriendlyName "Capture in RenderDoc" // MPropertyAttrStateCallback - bool m_bCaptureInRenderDoc; // 0x2d5 + bool m_bCaptureInRenderDoc; // 0x2ee private: - [[maybe_unused]] uint8_t __pad02d6[0x2]; // 0x2d6 + [[maybe_unused]] uint8_t __pad02ef[0x1]; // 0x2ef public: // MPropertyFriendlyName "Texture Generation Instructions" // MPropertyAttrStateCallback - CUtlVector< CompMatPropertyMutator_t > m_vecTexGenInstructions; // 0x2d8 + CUtlVector< CompMatPropertyMutator_t > m_vecTexGenInstructions; // 0x2f0 // MPropertyFriendlyName "Mutators" // MPropertyAttrStateCallback - CUtlVector< CompMatPropertyMutator_t > m_vecConditionalMutators; // 0x2f0 + CUtlVector< CompMatPropertyMutator_t > m_vecConditionalMutators; // 0x308 // MPropertyFriendlyName "Container to Pop" // MPropertyAttrStateCallback - CUtlString m_strPopInputQueue_Container; // 0x308 + CUtlString m_strPopInputQueue_Container; // 0x320 // MPropertyFriendlyName "Input Container" // MPropertyAttrStateCallback - CUtlString m_strDrawText_InputContainerSrc; // 0x310 + CUtlString m_strDrawText_InputContainerSrc; // 0x328 // MPropertyFriendlyName "Input Container Property" // MPropertyAttrStateCallback - CUtlString m_strDrawText_InputContainerProperty; // 0x318 + CUtlString m_strDrawText_InputContainerProperty; // 0x330 // MPropertyFriendlyName "Text Position" // MPropertyAttrStateCallback - Vector2D m_vecDrawText_Position; // 0x320 + Vector2D m_vecDrawText_Position; // 0x338 // MPropertyFriendlyName "Text Color" // MPropertyAttrStateCallback - Color m_colDrawText_Color; // 0x328 + Color m_colDrawText_Color; // 0x340 private: - [[maybe_unused]] uint8_t __pad032c[0x4]; // 0x32c + [[maybe_unused]] uint8_t __pad0344[0x4]; // 0x344 public: // MPropertyFriendlyName "Font" // MPropertyAttrStateCallback - CUtlString m_strDrawText_Font; // 0x330 + CUtlString m_strDrawText_Font; // 0x348 // MPropertyFriendlyName "Conditions" // MPropertyAttrStateCallback - CUtlVector< CompMatMutatorCondition_t > m_vecConditions; // 0x338 + CUtlVector< CompMatMutatorCondition_t > m_vecConditions; // 0x350 }; // Alignment: 8 @@ -4009,13 +4274,15 @@ struct GeneratedTextureHandle_t public: // MPropertyFriendlyName "Generated Texture" // MPropertyAttributeEditor "CompositeMaterialTextureViewer" - CUtlString m_strBitmapName; // 0x8 + CUtlString m_strBitmapName; // 0x0 }; // Alignment: 4 // Size: 0x60 struct CompositeMaterial_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MPropertyGroupName "Target Material" // MPropertyAttributeEditor "CompositeMaterialKVInspector" @@ -4076,6 +4343,8 @@ public: // Size: 0x38 class CCompositeMaterialEditorDoc { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: int32_t m_nVersion; // 0x8 private: @@ -4089,6 +4358,8 @@ public: // Size: 0x4c0 class CGlobalLightBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: bool m_bSpotLight; // 0x10 private: @@ -4127,22 +4398,25 @@ public: float m_flCloud1Direction; // 0x98 float m_flCloud2Speed; // 0x9c float m_flCloud2Direction; // 0xa0 - float m_flAmbientScale1; // 0xa4 - float m_flAmbientScale2; // 0xa8 - float m_flGroundScale; // 0xac - float m_flLightScale; // 0xb0 - float m_flFoWDarkness; // 0xb4 - bool m_bEnableSeparateSkyboxFog; // 0xb8 private: - [[maybe_unused]] uint8_t __pad00b9[0x3]; // 0xb9 + [[maybe_unused]] uint8_t __pad00a4[0xc]; // 0xa4 public: - Vector m_vFowColor; // 0xbc - Vector m_ViewOrigin; // 0xc8 - QAngle m_ViewAngles; // 0xd4 - float m_flViewFoV; // 0xe0 - Vector m_WorldPoints[8]; // 0xe4 + float m_flAmbientScale1; // 0xb0 + float m_flAmbientScale2; // 0xb4 + float m_flGroundScale; // 0xb8 + float m_flLightScale; // 0xbc + float m_flFoWDarkness; // 0xc0 + bool m_bEnableSeparateSkyboxFog; // 0xc4 private: - [[maybe_unused]] uint8_t __pad0144[0x364]; // 0x144 + [[maybe_unused]] uint8_t __pad00c5[0x3]; // 0xc5 +public: + Vector m_vFowColor; // 0xc8 + Vector m_ViewOrigin; // 0xd4 + QAngle m_ViewAngles; // 0xe0 + float m_flViewFoV; // 0xec + Vector m_WorldPoints[8]; // 0xf0 +private: + [[maybe_unused]] uint8_t __pad0150[0x358]; // 0x150 public: Vector2D m_vFogOffsetLayer0; // 0x4a8 Vector2D m_vFogOffsetLayer1; // 0x4b0 @@ -4154,8 +4428,12 @@ public: // Size: 0xa30 class C_GlobalLight : public C_BaseEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0x4c0]; // 0x540 public: uint16_t m_WindClothForceHandle; // 0xa00 + + // Static fields: static C_GlobalLight* &Get_sm_pGlobalLight(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_GlobalLight")->m_static_fields[0]->m_instance);}; static CUtlStringToken &Get_sm_pSkyboxSlots(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_GlobalLight")->m_static_fields[1]->m_instance);}; static CUtlVector< C_GlobalLight* > &Get_sm_nonPrimaryGlobalLights(){return *reinterpret_cast*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_GlobalLight")->m_static_fields[2]->m_instance);}; @@ -4211,6 +4489,8 @@ public: // Size: 0x578 class C_VoteController : public C_BaseEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0x10]; // 0x540 public: // MNetworkEnable // MNetworkChangeCallback "RecvProxy_VoteType" @@ -4232,6 +4512,8 @@ public: // Size: 0xe88 class C_MapVetoPickController : public C_BaseEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0x10]; // 0x540 public: // MNetworkEnable int32_t m_nDraftType; // 0x550 @@ -4271,28 +4553,31 @@ public: // Size: 0x30 class CPlayerSprayDecalRenderHelper { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: - uint8_t __pad0000[0x30]; // Autoaligned + // No members available }; -// Alignment: 6 -// Size: 0x5b8 +// Alignment: 7 +// Size: 0x5c0 class C_CSGO_TeamPreviewCamera : public C_CSGO_MapPreviewCameraPath { public: - bool m_bDofEnabled; // 0x5a0 + int32_t m_nVariant; // 0x5a0 + bool m_bDofEnabled; // 0x5a4 private: - [[maybe_unused]] uint8_t __pad05a1[0x3]; // 0x5a1 + [[maybe_unused]] uint8_t __pad05a5[0x3]; // 0x5a5 public: - float m_flDofNearBlurry; // 0x5a4 - float m_flDofNearCrisp; // 0x5a8 - float m_flDofFarCrisp; // 0x5ac - float m_flDofFarBlurry; // 0x5b0 - float m_flDofTiltToGround; // 0x5b4 + float m_flDofNearBlurry; // 0x5a8 + float m_flDofNearCrisp; // 0x5ac + float m_flDofFarCrisp; // 0x5b0 + float m_flDofFarBlurry; // 0x5b4 + float m_flDofTiltToGround; // 0x5b8 }; // Alignment: 0 -// Size: 0x5b8 +// Size: 0x5c0 class C_CSGO_TeamSelectCamera : public C_CSGO_TeamPreviewCamera { public: @@ -4300,7 +4585,7 @@ public: }; // Alignment: 0 -// Size: 0x5b8 +// Size: 0x5c0 class C_CSGO_TerroristTeamIntroCamera : public C_CSGO_TeamPreviewCamera { public: @@ -4308,7 +4593,15 @@ public: }; // Alignment: 0 -// Size: 0x5b8 +// Size: 0x5c0 +class C_CSGO_TerroristWingmanIntroCamera : public C_CSGO_TeamPreviewCamera +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x5c0 class C_CSGO_CounterTerroristTeamIntroCamera : public C_CSGO_TeamPreviewCamera { public: @@ -4316,7 +4609,15 @@ public: }; // Alignment: 0 -// Size: 0x5b8 +// Size: 0x5c0 +class C_CSGO_CounterTerroristWingmanIntroCamera : public C_CSGO_TeamPreviewCamera +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x5c0 class C_CSGO_EndOfMatchCamera : public C_CSGO_TeamPreviewCamera { public: @@ -4324,7 +4625,7 @@ public: }; // Alignment: 0 -// Size: 0x9d8 +// Size: 0x9e0 class C_CSGO_EndOfMatchCharacterPosition : public C_CSGO_TeamPreviewCharacterPosition { public: @@ -4391,6 +4692,8 @@ public: // Size: 0x16c0 class C_EnvCombinedLightProbeVolume : public C_BaseEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0x10d0]; // 0x540 public: // MNetworkEnable // MNetworkChangeCallback "StateChanged" @@ -4462,6 +4765,8 @@ public: // Size: 0x6a0 class C_EnvCubemap : public C_BaseEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0xf0]; // 0x540 public: // MNetworkEnable CStrongHandle< InfoForResourceTypeCTextureBase > m_hCubemapTexture; // 0x630 @@ -4619,6 +4924,8 @@ public: // MNetworkEnable bool m_bIsEnabled; // 0x579 bool m_bGradientFogNeedsTextures; // 0x57a + + // Static fields: static C_GradientFog* &Get_sm_pGradientFog(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_GradientFog")->m_static_fields[0]->m_instance);}; }; @@ -4626,6 +4933,8 @@ public: // Size: 0x1598 class C_EnvLightProbeVolume : public C_BaseEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0xfe0]; // 0x540 public: // MNetworkEnable CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeTexture; // 0x1520 @@ -4674,6 +4983,29 @@ public: bool m_bEnabled; // 0x1591 }; +// Alignment: 6 +// Size: 0x570 +class C_PlayerVisibility : public C_BaseEntity +{ +public: + // MNetworkEnable + // MNetworkChangeCallback "PlayerVisibilityStateChanged" + float m_flVisibilityStrength; // 0x540 + // MNetworkEnable + // MNetworkChangeCallback "PlayerVisibilityStateChanged" + float m_flFogDistanceMultiplier; // 0x544 + // MNetworkEnable + // MNetworkChangeCallback "PlayerVisibilityStateChanged" + float m_flFogMaxDensityMultiplier; // 0x548 + // MNetworkEnable + // MNetworkChangeCallback "PlayerVisibilityStateChanged" + float m_flFadeTime; // 0x54c + // MNetworkEnable + bool m_bStartDisabled; // 0x550 + // MNetworkEnable + bool m_bIsEnabled; // 0x551 +}; + // Alignment: 8 // Size: 0x568 class C_TonemapController2 : public C_BaseEntity @@ -4826,6 +5158,8 @@ public: // Size: 0x558 class C_InfoVisibilityBox : public C_BaseEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0x4]; // 0x540 public: // MNetworkEnable int32_t m_nMode; // 0x544 @@ -5014,6 +5348,8 @@ public: // Size: 0x6c0 class CBasePlayerController : public C_BaseEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0x8]; // 0x540 public: int32_t m_nFinalPredictedTick; // 0x548 private: @@ -5058,6 +5394,9 @@ private: public: // MNetworkEnable uint32_t m_iDesiredFOV; // 0x6a4 + + // Static fields: + static bool &Get_sm_bRunningPredictedClientStringCommands(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBasePlayerController")->m_static_fields[0]->m_instance);}; }; // Alignment: 14 @@ -5093,8 +5432,8 @@ public: float m_flCrouchTime; // 0x174 }; -// Alignment: 22 -// Size: 0x320 +// Alignment: 21 +// Size: 0x240 class CBasePlayerWeaponVData : public CEntitySubclassVDataBase { public: @@ -5119,63 +5458,60 @@ public: // MPropertyDescription "Effect when firing this weapon" // MPropertyGroupName "Visuals" CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashParticle; // 0x118 - // MPropertyDescription "Effect to actually fire into the world from this weapon" - // MPropertyGroupName "Visuals" - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szTracerParticle; // 0x1f8 - ItemFlagTypes_t m_iFlags; // 0x2d8 + ItemFlagTypes_t m_iFlags; // 0x1f8 // MPropertyAttributeEditor "VDataChoice( scripts/ammo.vdata )" // MPropertyGroupName "Ammo" // MPropertyCustomFGDType - AmmoIndex_t m_nPrimaryAmmoType; // 0x2d9 + AmmoIndex_t m_nPrimaryAmmoType; // 0x1f9 // MPropertyAttributeEditor "VDataChoice( scripts/ammo.vdata )" // MPropertyGroupName "Ammo" // MPropertyCustomFGDType - AmmoIndex_t m_nSecondaryAmmoType; // 0x2da + AmmoIndex_t m_nSecondaryAmmoType; // 0x1fa private: - [[maybe_unused]] uint8_t __pad02db[0x1]; // 0x2db + [[maybe_unused]] uint8_t __pad01fb[0x1]; // 0x1fb public: // MPropertyFriendlyName "Primary Clip Size" // MPropertyDescription "How many bullets this gun can fire before it reloads (0 if no clip)" // MPropertyAttributeRange "0 255" // MPropertyGroupName "Ammo" - int32_t m_iMaxClip1; // 0x2dc + int32_t m_iMaxClip1; // 0x1fc // MPropertyFriendlyName "Secondary Clip Size" // MPropertyDescription "How many secondary bullets this gun can fire before it reloads (0 if no clip)" // MPropertyGroupName "Ammo" // MPropertyAttributeRange "0 255" - int32_t m_iMaxClip2; // 0x2e0 + int32_t m_iMaxClip2; // 0x200 // MPropertyDescription "Primary Initial Clip (-1 means use clip size)" // MPropertyGroupName "Ammo" // MPropertyAttributeRange "-1 255" - int32_t m_iDefaultClip1; // 0x2e4 + int32_t m_iDefaultClip1; // 0x204 // MPropertyDescription "Secondary Initial Clip (-1 means use clip size)" // MPropertyGroupName "Ammo" // MPropertyAttributeRange "-1 255" - int32_t m_iDefaultClip2; // 0x2e8 + int32_t m_iDefaultClip2; // 0x208 // MPropertyDescription "This value used to determine this weapon's importance in autoselection" // MPropertyGroupName "UI" - int32_t m_iWeight; // 0x2ec + int32_t m_iWeight; // 0x20c // MPropertyFriendlyName "Safe To Auto-Switch To" // MPropertyDescription "Whether this weapon is safe to automatically switch to (should be false for eg. explosives that can the player may accidentally hurt themselves with)" // MPropertyGroupName "UI" - bool m_bAutoSwitchTo; // 0x2f0 + bool m_bAutoSwitchTo; // 0x210 // MPropertyFriendlyName "Safe To Auto-Switch Away From" // MPropertyGroupName "UI" - bool m_bAutoSwitchFrom; // 0x2f1 + bool m_bAutoSwitchFrom; // 0x211 private: - [[maybe_unused]] uint8_t __pad02f2[0x2]; // 0x2f2 + [[maybe_unused]] uint8_t __pad0212[0x2]; // 0x212 public: // MPropertyGroupName "UI" - RumbleEffect_t m_iRumbleEffect; // 0x2f4 - CUtlMap< WeaponSound_t, CSoundEventName > m_aShootSounds; // 0x2f8 + RumbleEffect_t m_iRumbleEffect; // 0x214 + CUtlMap< WeaponSound_t, CSoundEventName > m_aShootSounds; // 0x218 // MPropertyFriendlyName "HUD Bucket" // MPropertyDescription "Which 'column' to display this weapon in the HUD" // MPropertyGroupName "UI" - int32_t m_iSlot; // 0x318 + int32_t m_iSlot; // 0x238 // MPropertyFriendlyName "HUD Bucket Position" // MPropertyDescription "Which 'row' to display this weapon in the HUD" // MPropertyGroupName "UI" - int32_t m_iPosition; // 0x31c + int32_t m_iPosition; // 0x23c }; // Alignment: 2 @@ -5188,6 +5524,8 @@ public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex CNetworkVarChainer __m_pChainEntity; // 0x1810 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentBaseAnimGraph")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentBaseAnimGraph")->m_static_fields[1]->m_instance);}; }; @@ -5196,6 +5534,8 @@ public: // Size: 0xcc0 class C_BaseModelEntity : public C_BaseEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0x4d0]; // 0x540 public: // MNetworkEnable // MNetworkUserGroup "CRenderComponent" @@ -5321,7 +5661,7 @@ public: bool m_bPassthoughCaller; // 0x594 }; -// Alignment: 23 +// Alignment: 24 // Size: 0x1270 class C_ParticleSystem : public C_BaseModelEntity { @@ -5360,10 +5700,9 @@ public: bool m_bNoSave; // 0x1014 // MNetworkEnable bool m_bNoFreeze; // 0x1015 - bool m_bStartActive; // 0x1016 -private: - [[maybe_unused]] uint8_t __pad1017[0x1]; // 0x1017 -public: + // MNetworkEnable + bool m_bNoRamp; // 0x1016 + bool m_bStartActive; // 0x1017 CUtlSymbolLarge m_iszEffectName; // 0x1018 CUtlSymbolLarge m_iszControlPointNames[64]; // 0x1020 int32_t m_nDataCP; // 0x1220 @@ -5449,13 +5788,13 @@ public: int32_t m_Exponent; // 0xcc8 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "360" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "360.000000" float m_InnerAngle; // 0xccc // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "360" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "360.000000" float m_OuterAngle; // 0xcd0 // MNetworkEnable float m_SpotRadius; // 0xcd4 @@ -5470,8 +5809,8 @@ public: CUtlSymbolLarge m_iszOverlayNames[10]; // 0x540 // MNetworkEnable // MNetworkBitCount "11" - // MNetworkMinValue "-1" - // MNetworkMaxValue "63" + // MNetworkMinValue "-1.000000" + // MNetworkMaxValue "63.000000" float m_flOverlayTimes[10]; // 0x590 // MNetworkEnable GameTime_t m_flStartTime; // 0x5b8 @@ -5529,13 +5868,13 @@ public: uint32_t m_nOuterMaxDist; // 0xcd0 // MNetworkEnable // MNetworkBitCount "6" - // MNetworkMinValue "0" - // MNetworkMaxValue "64" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "64.000000" // MNetworkEncodeFlags float m_flGlowProxySize; // 0xcd4 // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "100" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "100.000000" // MNetworkChangeCallback "OnHDRColorScaleChanged" float m_flHDRColorScale; // 0xcd8 private: @@ -5564,31 +5903,6 @@ public: float m_Radius; // 0xcc4 }; -// Alignment: 4 -// Size: 0x550 -class C_PointHMDAnchor : public C_BaseEntity -{ -public: - // MNetworkEnable - bool m_bDisabled; // 0x540 -private: - [[maybe_unused]] uint8_t __pad0541[0x3]; // 0x541 -public: - // MNetworkEnable - GameTime_t m_flEnableTime; // 0x544 - // MNetworkEnable - int32_t m_nPlayerIndex; // 0x548 - int32_t m_nLastSimulateFrame; // 0x54c -}; - -// Alignment: 0 -// Size: 0x550 -class C_PointHMDAnchorOverride : public C_PointHMDAnchor -{ -public: - // No members available -}; - // Alignment: 25 // Size: 0x5b8 class C_PointValueRemapper : public C_BaseEntity @@ -5654,6 +5968,8 @@ public: // Size: 0xf38 class C_PointWorldText : public C_ModelPointEntity { +private: + [[maybe_unused]] uint8_t __pad0cc0[0x8]; // 0xcc0 public: bool m_bForceRecreateNextUpdate; // 0xcc8 private: @@ -5742,6 +6058,8 @@ public: // Size: 0xd08 class C_EntityDissolve : public C_BaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0cc0[0x8]; // 0xcc0 public: // MNetworkEnable GameTime_t m_flStartTime; // 0xcc8 @@ -5869,6 +6187,8 @@ public: // Size: 0x10a8 class C_RopeKeyframe : public C_BaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0cc0[0x8]; // 0xcc0 public: CBitVec< 10 > m_LinksTouchingSomething; // 0xcc8 int32_t m_nLinksTouchingSomething; // 0xccc @@ -5923,8 +6243,8 @@ public: int16_t m_Slack; // 0x100a // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0.1" - // MNetworkMaxValue "10" + // MNetworkMinValue "0.100000" + // MNetworkMaxValue "10.000000" float m_TextureScale; // 0x100c // MNetworkEnable uint8_t m_fLockedPoints; // 0x1010 @@ -5955,7 +6275,7 @@ public: uint8_t m_bEndPointAttachmentAnglesDirty: 1; uint8_t m_bNewDataThisFrame: 1; uint8_t m_bPhysicsInitted: 1; - uint8_t __pad2: 4; // Autoaligned + uint8_t __pad2: 4; }; // 8 bits }; @@ -5963,6 +6283,8 @@ public: // Size: 0x5a0 class C_SceneEntity : public C_PointEntity { +private: + [[maybe_unused]] uint8_t __pad0540[0x8]; // 0x540 public: // MNetworkEnable bool m_bIsPlayingBack; // 0x548 @@ -6036,27 +6358,27 @@ public: // MNetworkBitCount "10" float m_flHazeScale; // 0xd04 // MNetworkEnable - // MNetworkMinValue "-360" - // MNetworkMaxValue "360" + // MNetworkMinValue "-360.000000" + // MNetworkMaxValue "360.000000" float m_flRotation; // 0xd08 // MNetworkEnable // MNetworkChangeCallback "OnHDRScaleChanged" float m_flHDRColorScale; // 0xd0c // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "2" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "2.000000" float m_flAlphaHaze; // 0xd10 // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "2" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "2.000000" float m_flAlphaScale; // 0xd14 // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "2" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "2.000000" float m_flAlphaHdr; // 0xd18 // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" float m_flFarZScale; // 0xd1c }; @@ -6079,6 +6401,14 @@ public: // No members available }; +// Alignment: 0 +// Size: 0xcc8 +class C_TriggerMultiple : public C_BaseTrigger +{ +public: + // No members available +}; + // Alignment: 0 // Size: 0xcc8 class C_TriggerLerpObject : public C_BaseTrigger @@ -6091,6 +6421,8 @@ public: // Size: 0x30 class CClientAlphaProperty : public IClientAlphaProperty { +private: + [[maybe_unused]] uint8_t __pad0008[0x8]; // 0x8 public: uint8_t m_nRenderFX; // 0x10 uint8_t m_nRenderMode; // 0x11 @@ -6118,8 +6450,8 @@ class C_Beam : public C_BaseModelEntity public: // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "-25" - // MNetworkMaxValue "25" + // MNetworkMinValue "-25.000000" + // MNetworkMaxValue "25.000000" // MNetworkEncodeFlags float m_flFrameRate; // 0xcc0 // MNetworkEnable @@ -6152,14 +6484,14 @@ private: public: // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0" - // MNetworkMaxValue "102.3" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "102.300003" // MNetworkEncodeFlags float m_fWidth; // 0xd44 // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0" - // MNetworkMaxValue "102.3" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "102.300003" // MNetworkEncodeFlags float m_fEndWidth; // 0xd48 // MNetworkEnable @@ -6168,25 +6500,25 @@ public: float m_fHaloScale; // 0xd50 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "64" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "64.000000" // MNetworkEncodeFlags float m_fAmplitude; // 0xd54 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "256" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "256.000000" // MNetworkEncodeFlags float m_fStartFrame; // 0xd58 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "100" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "100.000000" float m_fSpeed; // 0xd5c // MNetworkEnable // MNetworkBitCount "20" - // MNetworkMinValue "0" - // MNetworkMaxValue "256" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "256.000000" // MNetworkEncodeFlags // MNetworkPriority "32" float m_flFrame; // 0xd60 @@ -6228,6 +6560,8 @@ public: // MNetworkEnable bool m_bFakeLadder; // 0xd11 bool m_bHasSlack; // 0xd12 + + // Static fields: static CUtlVector< C_FuncLadder* > &Get_s_Ladders(){return *reinterpret_cast*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_FuncLadder")->m_static_fields[0]->m_instance);}; }; @@ -6255,6 +6589,8 @@ public: // Size: 0xdf0 class C_Sprite : public C_BaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0cc0[0x18]; // 0xcc0 public: // MNetworkEnable CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSpriteMaterial; // 0xcd8 @@ -6267,14 +6603,14 @@ private: public: // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "60" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "60.000000" // MNetworkEncodeFlags float m_flSpriteFramerate; // 0xce8 // MNetworkEnable // MNetworkBitCount "20" - // MNetworkMinValue "0" - // MNetworkMaxValue "256" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "256.000000" // MNetworkEncodeFlags float m_flFrame; // 0xcec GameTime_t m_flDieTime; // 0xcf0 @@ -6297,8 +6633,8 @@ private: public: // MNetworkEnable // MNetworkBitCount "6" - // MNetworkMinValue "0" - // MNetworkMaxValue "64" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "64.000000" // MNetworkEncodeFlags float m_flGlowProxySize; // 0xd14 // MNetworkEnable @@ -6334,6 +6670,8 @@ public: // Size: 0xcf0 class C_BaseClientUIEntity : public C_BaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0cc0[0x8]; // 0xcc0 public: // MNetworkEnable bool m_bEnabled; // 0xcc8 @@ -6363,6 +6701,8 @@ public: // Size: 0xec8 class C_PointClientUIHUD : public C_BaseClientUIEntity { +private: + [[maybe_unused]] uint8_t __pad0cf0[0x8]; // 0xcf0 public: bool m_bCheckCSSClasses; // 0xcf8 private: @@ -6404,6 +6744,8 @@ public: // Size: 0xf20 class C_PointClientUIWorldPanel : public C_BaseClientUIEntity { +private: + [[maybe_unused]] uint8_t __pad0cf0[0x8]; // 0xcf0 public: bool m_bForceRecreateNextUpdate; // 0xcf8 bool m_bMoveViewToPlayerNextThink; // 0xcf9 @@ -6496,33 +6838,6 @@ public: char m_messageText[512]; // 0xf20 }; -// Alignment: 14 -// Size: 0xfc0 -class C_PointHintUi : public C_PointClientUIWorldPanel -{ -public: - CUtlSymbolLarge m_pszLessonName; // 0xf50 - CUtlSymbolLarge m_pszCaption; // 0xf58 - Vector m_vOffset; // 0xf60 - WorldTextAttachmentType_t m_attachType; // 0xf6c - CHandle< C_BaseEntity > m_hIconTarget; // 0xf70 -private: - [[maybe_unused]] uint8_t __pad0f74[0x4]; // 0xf74 -public: - CUtlSymbolLarge m_szTargetAttachmentName; // 0xf78 - CUtlSymbolLarge m_pszCustomLayoutFile; // 0xf80 - int32_t m_nTrackedDeviceIndex; // 0xf88 - CHandle< C_PropVRHand > m_hHighlightHand; // 0xf8c - CUtlSymbolLarge m_pszHighlightControllerComponent; // 0xf90 - CUtlSymbolLarge m_pszHighlightControllerAction; // 0xf98 - Vector m_vecLocalHighlightPoint; // 0xfa0 -private: - [[maybe_unused]] uint8_t __pad0fac[0x4]; // 0xfac -public: - CUtlSymbolLarge m_pszHighlightOtherEntityName; // 0xfb0 - bool m_bUseOffScreenIndicator; // 0xfb8 -}; - // Alignment: 9 // Size: 0x728 class CInfoOffscreenPanoramaTexture : public C_PointEntity @@ -6573,6 +6888,31 @@ public: uint64_t m_ullRegisteredAsItemID; // 0x4a0 }; +// Alignment: 1 +// Size: 0xcd0 +class CBombTarget : public C_BaseTrigger +{ +public: + // MNetworkEnable + bool m_bBombPlantedHere; // 0xcc8 +}; + +// Alignment: 0 +// Size: 0xcc8 +class CHostageRescueZoneShim : public C_BaseTrigger +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0xcd0 +class CHostageRescueZone : public CHostageRescueZoneShim +{ +public: + // No members available +}; + // Alignment: 2 // Size: 0xcf8 class C_TriggerBuoyancy : public C_BaseTrigger @@ -6591,10 +6931,20 @@ public: CBuoyancyHelper m_BuoyancyHelper; // 0xcc0 }; -// Alignment: 54 -// Size: 0x848 +// Alignment: 0 +// Size: 0xcc0 +class CWaterSplasher : public C_BaseModelEntity +{ +public: + // No members available +}; + +// Alignment: 58 +// Size: 0x850 class CCSPlayerController : public CBasePlayerController { +private: + [[maybe_unused]] uint8_t __pad06c0[0x10]; // 0x6c0 public: // MNetworkEnable CCSPlayerController_InGameMoneyServices* m_pInGameMoneyServices; // 0x6d0 @@ -6653,84 +7003,94 @@ private: [[maybe_unused]] uint8_t __pad0749[0x3]; // 0x749 public: // MNetworkEnable - int32_t m_nEndMatchNextMapVote; // 0x74c + int32_t m_iCompetitiveRankingPredicted_Win; // 0x74c // MNetworkEnable - uint16_t m_unActiveQuestId; // 0x750 + int32_t m_iCompetitiveRankingPredicted_Loss; // 0x750 + // MNetworkEnable + int32_t m_iCompetitiveRankingPredicted_Tie; // 0x754 + // MNetworkEnable + int32_t m_nEndMatchNextMapVote; // 0x758 + // MNetworkEnable + uint16_t m_unActiveQuestId; // 0x75c private: - [[maybe_unused]] uint8_t __pad0752[0x2]; // 0x752 + [[maybe_unused]] uint8_t __pad075e[0x2]; // 0x75e public: // MNetworkEnable - QuestProgress::Reason m_nQuestProgressReason; // 0x754 + QuestProgress::Reason m_nQuestProgressReason; // 0x760 // MNetworkEnable - uint32_t m_unPlayerTvControlFlags; // 0x758 + uint32_t m_unPlayerTvControlFlags; // 0x764 private: - [[maybe_unused]] uint8_t __pad075c[0x6c]; // 0x75c + [[maybe_unused]] uint8_t __pad0768[0x68]; // 0x768 public: - int32_t m_iDraftIndex; // 0x7c8 - uint32_t m_msQueuedModeDisconnectionTimestamp; // 0x7cc - uint32_t m_uiAbandonRecordedReason; // 0x7d0 - bool m_bEverFullyConnected; // 0x7d4 - bool m_bAbandonAllowsSurrender; // 0x7d5 - bool m_bDisconnection1MinWarningPrinted; // 0x7d6 - bool m_bScoreReported; // 0x7d7 - // MNetworkEnable - int32_t m_nDisconnectionTick; // 0x7d8 + int32_t m_iDraftIndex; // 0x7d0 + uint32_t m_msQueuedModeDisconnectionTimestamp; // 0x7d4 + uint32_t m_uiAbandonRecordedReason; // 0x7d8 + bool m_bEverFullyConnected; // 0x7dc + bool m_bAbandonAllowsSurrender; // 0x7dd + bool m_bAbandonOffersInstantSurrender; // 0x7de + bool m_bDisconnection1MinWarningPrinted; // 0x7df + bool m_bScoreReported; // 0x7e0 private: - [[maybe_unused]] uint8_t __pad07dc[0xc]; // 0x7dc + [[maybe_unused]] uint8_t __pad07e1[0x3]; // 0x7e1 public: // MNetworkEnable - bool m_bControllingBot; // 0x7e8 - // MNetworkEnable - bool m_bHasControlledBotThisRound; // 0x7e9 - bool m_bHasBeenControlledByPlayerThisRound; // 0x7ea + int32_t m_nDisconnectionTick; // 0x7e4 private: - [[maybe_unused]] uint8_t __pad07eb[0x1]; // 0x7eb -public: - int32_t m_nBotsControlledThisRound; // 0x7ec - // MNetworkEnable - bool m_bCanControlObservedBot; // 0x7f0 -private: - [[maybe_unused]] uint8_t __pad07f1[0x3]; // 0x7f1 + [[maybe_unused]] uint8_t __pad07e8[0x8]; // 0x7e8 public: // MNetworkEnable - CHandle< C_CSPlayerPawn > m_hPlayerPawn; // 0x7f4 + bool m_bControllingBot; // 0x7f0 // MNetworkEnable - CHandle< C_CSObserverPawn > m_hObserverPawn; // 0x7f8 - // MNetworkEnable - bool m_bPawnIsAlive; // 0x7fc + bool m_bHasControlledBotThisRound; // 0x7f1 + bool m_bHasBeenControlledByPlayerThisRound; // 0x7f2 private: - [[maybe_unused]] uint8_t __pad07fd[0x3]; // 0x7fd + [[maybe_unused]] uint8_t __pad07f3[0x1]; // 0x7f3 +public: + int32_t m_nBotsControlledThisRound; // 0x7f4 + // MNetworkEnable + bool m_bCanControlObservedBot; // 0x7f8 +private: + [[maybe_unused]] uint8_t __pad07f9[0x3]; // 0x7f9 public: // MNetworkEnable - uint32_t m_iPawnHealth; // 0x800 + CHandle< C_CSPlayerPawn > m_hPlayerPawn; // 0x7fc // MNetworkEnable - int32_t m_iPawnArmor; // 0x804 + CHandle< C_CSObserverPawn > m_hObserverPawn; // 0x800 // MNetworkEnable - bool m_bPawnHasDefuser; // 0x808 - // MNetworkEnable - bool m_bPawnHasHelmet; // 0x809 - // MNetworkEnable - uint16_t m_nPawnCharacterDefIndex; // 0x80a - // MNetworkEnable - int32_t m_iPawnLifetimeStart; // 0x80c - // MNetworkEnable - int32_t m_iPawnLifetimeEnd; // 0x810 - // MNetworkEnable - int32_t m_iPawnGunGameLevel; // 0x814 - // MNetworkEnable - int32_t m_iPawnBotDifficulty; // 0x818 - // MNetworkEnable - CHandle< CCSPlayerController > m_hOriginalControllerOfCurrentPawn; // 0x81c - // MNetworkEnable - int32_t m_iScore; // 0x820 + bool m_bPawnIsAlive; // 0x804 private: - [[maybe_unused]] uint8_t __pad0824[0x4]; // 0x824 + [[maybe_unused]] uint8_t __pad0805[0x3]; // 0x805 public: // MNetworkEnable - C_NetworkUtlVectorBase< EKillTypes_t > m_vecKills; // 0x828 + uint32_t m_iPawnHealth; // 0x808 // MNetworkEnable - int32_t m_iMVPs; // 0x840 - bool m_bIsPlayerNameDirty; // 0x844 + int32_t m_iPawnArmor; // 0x80c + // MNetworkEnable + bool m_bPawnHasDefuser; // 0x810 + // MNetworkEnable + bool m_bPawnHasHelmet; // 0x811 + // MNetworkEnable + uint16_t m_nPawnCharacterDefIndex; // 0x812 + // MNetworkEnable + int32_t m_iPawnLifetimeStart; // 0x814 + // MNetworkEnable + int32_t m_iPawnLifetimeEnd; // 0x818 + // MNetworkEnable + int32_t m_iPawnGunGameLevel; // 0x81c + // MNetworkEnable + int32_t m_iPawnBotDifficulty; // 0x820 + // MNetworkEnable + CHandle< CCSPlayerController > m_hOriginalControllerOfCurrentPawn; // 0x824 + // MNetworkEnable + int32_t m_iScore; // 0x828 +private: + [[maybe_unused]] uint8_t __pad082c[0x4]; // 0x82c +public: + // MNetworkEnable + C_NetworkUtlVectorBase< EKillTypes_t > m_vecKills; // 0x830 + // MNetworkEnable + int32_t m_iMVPs; // 0x848 + bool m_bIsPlayerNameDirty; // 0x84c }; // Alignment: 2 @@ -6742,27 +7102,31 @@ public: CUtlSymbolLarge m_source; // 0xcc8 // MNetworkEnable CUtlSymbolLarge m_destination; // 0xcd0 + + // Static fields: static CUtlVector< C_FootstepControl* > &Get_sm_footstepControllers(){return *reinterpret_cast*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_FootstepControl")->m_static_fields[0]->m_instance);}; }; -// Alignment: 89 +// Alignment: 90 // Size: 0xda8 class CWeaponCSBaseVData : public CBasePlayerWeaponVData { public: - CSWeaponType m_WeaponType; // 0x320 - CSWeaponCategory m_WeaponCategory; // 0x324 + CSWeaponType m_WeaponType; // 0x240 + CSWeaponCategory m_WeaponCategory; // 0x244 // MPropertyStartGroup "Visuals" - CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szViewModel; // 0x328 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szPlayerModel; // 0x408 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szWorldDroppedModel; // 0x4e8 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szAimsightLensMaskModel; // 0x5c8 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szMagazineModel; // 0x6a8 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szHeatEffect; // 0x788 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szEjectBrassEffect; // 0x868 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashParticleAlt; // 0x948 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashThirdPersonParticle; // 0xa28 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashThirdPersonParticleAlt; // 0xb08 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szViewModel; // 0x248 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szPlayerModel; // 0x328 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szWorldDroppedModel; // 0x408 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szAimsightLensMaskModel; // 0x4e8 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szMagazineModel; // 0x5c8 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szHeatEffect; // 0x6a8 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szEjectBrassEffect; // 0x788 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashParticleAlt; // 0x868 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashThirdPersonParticle; // 0x948 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashThirdPersonParticleAlt; // 0xa28 + // MPropertyDescription "Effect to actually fire into the world from this weapon" + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szTracerParticle; // 0xb08 // MPropertyStartGroup "HUD Positions" // MPropertyFriendlyName "HUD Bucket" // MPropertyDescription "Which 'column' to display this weapon in the HUD" @@ -6770,7 +7134,7 @@ public: int32_t m_GearSlotPosition; // 0xbec // MPropertyFriendlyName "HUD Bucket Position" // MPropertyDescription "Default team (non Terrorist or Counter-Terrorist) 'row' to display this weapon in the HUD." - loadout_positions_t m_DefaultLoadoutPosition; // 0xbf0 + loadout_slot_t m_DefaultLoadoutSlot; // 0xbf0 private: [[maybe_unused]] uint8_t __pad0bf4[0x4]; // 0xbf4 public: @@ -6922,6 +7286,8 @@ public: // Size: 0xd08 class C_FuncConveyor : public C_BaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0cc0[0x8]; // 0xcc0 public: // MNetworkEnable Vector m_vecMoveDirEntitySpace; // 0xcc8 @@ -6943,12 +7309,16 @@ public: }; // Alignment: 2 -// Size: 0xd20 +// Size: 0x11a0 class CGrenadeTracer : public C_BaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0cc0[0x20]; // 0xcc0 public: float m_flTracerDuration; // 0xce0 GrenadeType_t m_nType; // 0xce4 + + // Static fields: static int32_t &Get_s_nColorIdx(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CGrenadeTracer")->m_static_fields[0]->m_instance);}; }; @@ -6956,6 +7326,8 @@ public: // Size: -0x7d60 class C_Inferno : public C_BaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0cc0[0x40]; // 0xcc0 public: ParticleIndex_t m_nfxFireDamageEffect; // 0xd00 // MNetworkEnable @@ -7267,6 +7639,8 @@ public: int32_t m_nImportance; // 0x548 int32_t m_nLightChoice; // 0x54c CHandle< C_BaseEntity > m_hLight; // 0x550 + + // Static fields: static CUtlVector< CInfoDynamicShadowHint* > &Get_m_AllHints(){return *reinterpret_cast*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CInfoDynamicShadowHint")->m_static_fields[0]->m_instance);}; }; @@ -7279,8 +7653,8 @@ public: Vector m_vBoxMaxs; // 0x564 }; -// Alignment: 10 -// Size: 0xd08 +// Alignment: 12 +// Size: 0xd20 class C_EnvSky : public C_BaseModelEntity { public: @@ -7289,34 +7663,40 @@ public: CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSkyMaterial; // 0xcc0 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - bool m_bStartDisabled; // 0xcc8 + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSkyMaterialLightingOnly; // 0xcc8 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - Color m_vTintColor; // 0xcc9 + bool m_bStartDisabled; // 0xcd0 + // MNetworkEnable + // MNetworkChangeCallback "SkyStateChanged" + Color m_vTintColor; // 0xcd1 + // MNetworkEnable + // MNetworkChangeCallback "SkyStateChanged" + Color m_vTintColorLightingOnly; // 0xcd5 private: - [[maybe_unused]] uint8_t __pad0ccd[0x3]; // 0xccd + [[maybe_unused]] uint8_t __pad0cd9[0x3]; // 0xcd9 public: // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - float m_flBrightnessScale; // 0xcd0 + float m_flBrightnessScale; // 0xcdc // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - int32_t m_nFogType; // 0xcd4 + int32_t m_nFogType; // 0xce0 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - float m_flFogMinStart; // 0xcd8 + float m_flFogMinStart; // 0xce4 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - float m_flFogMinEnd; // 0xcdc + float m_flFogMinEnd; // 0xce8 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - float m_flFogMaxStart; // 0xce0 + float m_flFogMaxStart; // 0xcec // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - float m_flFogMaxEnd; // 0xce4 + float m_flFogMaxEnd; // 0xcf0 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - bool m_bEnabled; // 0xce8 + bool m_bEnabled; // 0xcf4 }; // Alignment: 0 @@ -7375,6 +7755,8 @@ public: // Size: 0xd18 class C_PostProcessingVolume : public C_BaseTrigger { +private: + [[maybe_unused]] uint8_t __pad0cc8[0x10]; // 0xcc8 public: // MNetworkEnable CStrongHandle< InfoForResourceTypeCPostProcessingResource > m_hPostSettings; // 0xcd8 @@ -7468,6 +7850,8 @@ public: // Size: 0xf18 class CBaseAnimGraph : public C_BaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0cc0[0x8]; // 0xcc0 public: // MNetworkEnable bool m_bInitiallyPopulateInterpHistory; // 0xcc8 @@ -7538,6 +7922,8 @@ public: // Size: 0x1068 class C_BreakableProp : public CBaseProp { +private: + [[maybe_unused]] uint8_t __pad0f58[0x8]; // 0xf58 public: CEntityIOOutput m_OnBreak; // 0xf60 CEntityOutputTemplate< float32 > m_OnHealthChanged; // 0xf88 @@ -7716,6 +8102,8 @@ public: // Size: 0xf68 class C_PointCommentaryNode : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0f18[0x8]; // 0xf18 public: // MNetworkEnable bool m_bActive; // 0xf20 @@ -7766,53 +8154,55 @@ public: }; // Alignment: 19 -// Size: 0x10a8 +// Size: 0x10b0 class C_BaseFlex : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0f18[0x10]; // 0xf18 public: // MNetworkEnable // MNetworkBitCount "12" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags - C_NetworkUtlVectorBase< float32 > m_flexWeight; // 0xf20 + C_NetworkUtlVectorBase< float32 > m_flexWeight; // 0xf28 // MNetworkEnable // MNetworkEncoder // MNetworkChangeCallback "OnViewTargetChanged" - Vector m_vLookTargetPosition; // 0xf38 + Vector m_vLookTargetPosition; // 0xf40 private: - [[maybe_unused]] uint8_t __pad0f44[0xc]; // 0xf44 + [[maybe_unused]] uint8_t __pad0f4c[0xc]; // 0xf4c public: // MNetworkEnable - bool m_blinktoggle; // 0xf50 + bool m_blinktoggle; // 0xf58 private: - [[maybe_unused]] uint8_t __pad0f51[0x5f]; // 0xf51 + [[maybe_unused]] uint8_t __pad0f59[0x5f]; // 0xf59 public: - int32_t m_nLastFlexUpdateFrameCount; // 0xfb0 - Vector m_CachedViewTarget; // 0xfb4 - uint32_t m_nNextSceneEventId; // 0xfc0 - int32_t m_iBlink; // 0xfc4 - float m_blinktime; // 0xfc8 - bool m_prevblinktoggle; // 0xfcc + int32_t m_nLastFlexUpdateFrameCount; // 0xfb8 + Vector m_CachedViewTarget; // 0xfbc + uint32_t m_nNextSceneEventId; // 0xfc8 + int32_t m_iBlink; // 0xfcc + float m_blinktime; // 0xfd0 + bool m_prevblinktoggle; // 0xfd4 private: - [[maybe_unused]] uint8_t __pad0fcd[0x3]; // 0xfcd + [[maybe_unused]] uint8_t __pad0fd5[0x3]; // 0xfd5 public: - int32_t m_iJawOpen; // 0xfd0 - float m_flJawOpenAmount; // 0xfd4 - float m_flBlinkAmount; // 0xfd8 - AttachmentHandle_t m_iMouthAttachment; // 0xfdc - AttachmentHandle_t m_iEyeAttachment; // 0xfdd - bool m_bResetFlexWeightsOnModelChange; // 0xfde + int32_t m_iJawOpen; // 0xfd8 + float m_flJawOpenAmount; // 0xfdc + float m_flBlinkAmount; // 0xfe0 + AttachmentHandle_t m_iMouthAttachment; // 0xfe4 + AttachmentHandle_t m_iEyeAttachment; // 0xfe5 + bool m_bResetFlexWeightsOnModelChange; // 0xfe6 private: - [[maybe_unused]] uint8_t __pad0fdf[0x19]; // 0xfdf + [[maybe_unused]] uint8_t __pad0fe7[0x19]; // 0xfe7 public: - int32_t m_nEyeOcclusionRendererBone; // 0xff8 - matrix3x4_t m_mEyeOcclusionRendererCameraToBoneTransform; // 0xffc - Vector m_vEyeOcclusionRendererHalfExtent; // 0x102c + int32_t m_nEyeOcclusionRendererBone; // 0x1000 + matrix3x4_t m_mEyeOcclusionRendererCameraToBoneTransform; // 0x1004 + Vector m_vEyeOcclusionRendererHalfExtent; // 0x1034 private: - [[maybe_unused]] uint8_t __pad1038[0x10]; // 0x1038 + [[maybe_unused]] uint8_t __pad1040[0x10]; // 0x1040 public: - C_BaseFlex::Emphasized_Phoneme m_PhonemeClasses[3]; // 0x1048 + C_BaseFlex::Emphasized_Phoneme m_PhonemeClasses[3]; // 0x1050 }; // Alignment: 14 @@ -7930,8 +8320,8 @@ public: // MNetworkEnable // MNetworkSerializer "angle_normalize_positive" // MNetworkBitCount "7" - // MNetworkMinValue "0" - // MNetworkMaxValue "360" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "360.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "OnAngChanged" float m_angle; // 0xfa8 @@ -7954,6 +8344,8 @@ public: // Size: 0x11c0 class C_BasePropDoor : public C_DynamicProp { +private: + [[maybe_unused]] uint8_t __pad1180[0x10]; // 0x1180 public: // MNetworkEnable DoorState_t m_eDoorState; // 0x1190 @@ -8001,6 +8393,8 @@ public: // Size: 0xf90 class C_RagdollProp : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0f18[0x8]; // 0xf18 public: // MNetworkEnable // MNetworkEncoder @@ -8013,8 +8407,8 @@ public: C_NetworkUtlVectorBase< QAngle > m_ragAngles; // 0xf38 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags float m_flBlendWeight; // 0xf50 // MNetworkEnable @@ -8032,6 +8426,8 @@ public: // Size: 0xfd8 class C_LocalTempEntity : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0f18[0x18]; // 0xf18 public: int32_t flags; // 0xf30 GameTime_t die; // 0xf34 @@ -8070,150 +8466,126 @@ public: // Size: 0x10d8 class C_ShatterGlassShardPhysics : public C_PhysicsProp { +private: + [[maybe_unused]] uint8_t __pad1070[0x8]; // 0x1070 public: // MNetworkEnable shard_model_desc_t m_ShardDesc; // 0x1078 }; -// Alignment: 1 -// Size: 0xf48 -class C_PointHintUIButtonHighlightModel : public CBaseAnimGraph -{ -public: - matrix3x4_t m_mComponentTransform; // 0xf18 -}; - -// Alignment: 1 -// Size: 0xf48 -class C_PointHintUIArrowHighlightModel : public CBaseAnimGraph -{ -public: - matrix3x4_t m_mArrowLocalTransform; // 0xf18 -}; - -// Alignment: 4 -// Size: 0xfb0 -class C_PointHintUIHighlightModel : public CBaseAnimGraph -{ -public: - CUtlVector< matrix3x4a_t > m_vecRenderModelComponentTransforms; // 0xf48 - int32_t m_nTrackedDeviceIndex; // 0xf60 -private: - [[maybe_unused]] uint8_t __pad0f64[0x14]; // 0xf64 -public: - matrix3x4_t m_matLocalHighlight; // 0xf78 - bool m_bVisible; // 0xfa8 -}; - // Alignment: 20 -// Size: 0x15f0 +// Size: 0x15f8 class C_EconEntity : public C_BaseFlex { -public: - float m_flFlexDelayTime; // 0x10b8 private: - [[maybe_unused]] uint8_t __pad10bc[0x4]; // 0x10bc + [[maybe_unused]] uint8_t __pad10b0[0x10]; // 0x10b0 public: - float32* m_flFlexDelayedWeight; // 0x10c0 - bool m_bAttributesInitialized; // 0x10c8 + float m_flFlexDelayTime; // 0x10c0 private: - [[maybe_unused]] uint8_t __pad10c9[0x7]; // 0x10c9 + [[maybe_unused]] uint8_t __pad10c4[0x4]; // 0x10c4 public: - // MNetworkEnable - C_AttributeContainer m_AttributeManager; // 0x10d0 - // MNetworkEnable - uint32_t m_OriginalOwnerXuidLow; // 0x1578 - // MNetworkEnable - uint32_t m_OriginalOwnerXuidHigh; // 0x157c - // MNetworkEnable - int32_t m_nFallbackPaintKit; // 0x1580 - // MNetworkEnable - int32_t m_nFallbackSeed; // 0x1584 - // MNetworkEnable - float m_flFallbackWear; // 0x1588 - // MNetworkEnable - int32_t m_nFallbackStatTrak; // 0x158c - bool m_bClientside; // 0x1590 - bool m_bParticleSystemsCreated; // 0x1591 + float32* m_flFlexDelayedWeight; // 0x10c8 + bool m_bAttributesInitialized; // 0x10d0 private: - [[maybe_unused]] uint8_t __pad1592[0x6]; // 0x1592 + [[maybe_unused]] uint8_t __pad10d1[0x7]; // 0x10d1 public: - CUtlVector< int32 > m_vecAttachedParticles; // 0x1598 - CHandle< CBaseAnimGraph > m_hViewmodelAttachment; // 0x15b0 - int32_t m_iOldTeam; // 0x15b4 - bool m_bAttachmentDirty; // 0x15b8 + // MNetworkEnable + C_AttributeContainer m_AttributeManager; // 0x10d8 + // MNetworkEnable + uint32_t m_OriginalOwnerXuidLow; // 0x1580 + // MNetworkEnable + uint32_t m_OriginalOwnerXuidHigh; // 0x1584 + // MNetworkEnable + int32_t m_nFallbackPaintKit; // 0x1588 + // MNetworkEnable + int32_t m_nFallbackSeed; // 0x158c + // MNetworkEnable + float m_flFallbackWear; // 0x1590 + // MNetworkEnable + int32_t m_nFallbackStatTrak; // 0x1594 + bool m_bClientside; // 0x1598 + bool m_bParticleSystemsCreated; // 0x1599 private: - [[maybe_unused]] uint8_t __pad15b9[0x3]; // 0x15b9 + [[maybe_unused]] uint8_t __pad159a[0x6]; // 0x159a public: - int32_t m_nUnloadedModelIndex; // 0x15bc - int32_t m_iNumOwnerValidationRetries; // 0x15c0 + CUtlVector< int32 > m_vecAttachedParticles; // 0x15a0 + CHandle< CBaseAnimGraph > m_hViewmodelAttachment; // 0x15b8 + int32_t m_iOldTeam; // 0x15bc + bool m_bAttachmentDirty; // 0x15c0 private: - [[maybe_unused]] uint8_t __pad15c4[0xc]; // 0x15c4 + [[maybe_unused]] uint8_t __pad15c1[0x3]; // 0x15c1 public: - CHandle< C_BaseEntity > m_hOldProvidee; // 0x15d0 + int32_t m_nUnloadedModelIndex; // 0x15c4 + int32_t m_iNumOwnerValidationRetries; // 0x15c8 private: - [[maybe_unused]] uint8_t __pad15d4[0x4]; // 0x15d4 + [[maybe_unused]] uint8_t __pad15cc[0xc]; // 0x15cc public: - CUtlVector< C_EconEntity::AttachedModelData_t > m_vecAttachedModels; // 0x15d8 + CHandle< C_BaseEntity > m_hOldProvidee; // 0x15d8 +private: + [[maybe_unused]] uint8_t __pad15dc[0x4]; // 0x15dc +public: + CUtlVector< C_EconEntity::AttachedModelData_t > m_vecAttachedModels; // 0x15e0 }; // Alignment: 2 -// Size: 0x15f8 +// Size: 0x1600 class C_EconWearable : public C_EconEntity { public: - int32_t m_nForceSkin; // 0x15f0 - bool m_bAlwaysAllow; // 0x15f4 + int32_t m_nForceSkin; // 0x15f8 + bool m_bAlwaysAllow; // 0x15fc }; // Alignment: 12 -// Size: 0x10f8 +// Size: 0x1100 class C_BaseGrenade : public C_BaseFlex { public: - bool m_bHasWarnedAI; // 0x10a8 - bool m_bIsSmokeGrenade; // 0x10a9 + bool m_bHasWarnedAI; // 0x10b0 + bool m_bIsSmokeGrenade; // 0x10b1 // MNetworkEnable - bool m_bIsLive; // 0x10aa + bool m_bIsLive; // 0x10b2 private: - [[maybe_unused]] uint8_t __pad10ab[0x1]; // 0x10ab + [[maybe_unused]] uint8_t __pad10b3[0x1]; // 0x10b3 public: // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0" - // MNetworkMaxValue "1024" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1024.000000" // MNetworkEncodeFlags - float m_DmgRadius; // 0x10ac + float m_DmgRadius; // 0x10b4 // MNetworkEnable - GameTime_t m_flDetonateTime; // 0x10b0 - float m_flWarnAITime; // 0x10b4 + GameTime_t m_flDetonateTime; // 0x10b8 + float m_flWarnAITime; // 0x10bc // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0" - // MNetworkMaxValue "256" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "256.000000" // MNetworkEncodeFlags - float m_flDamage; // 0x10b8 + float m_flDamage; // 0x10c0 private: - [[maybe_unused]] uint8_t __pad10bc[0x4]; // 0x10bc + [[maybe_unused]] uint8_t __pad10c4[0x4]; // 0x10c4 public: - CUtlSymbolLarge m_iszBounceSound; // 0x10c0 - CUtlString m_ExplosionSound; // 0x10c8 + CUtlSymbolLarge m_iszBounceSound; // 0x10c8 + CUtlString m_ExplosionSound; // 0x10d0 private: - [[maybe_unused]] uint8_t __pad10d0[0x4]; // 0x10d0 + [[maybe_unused]] uint8_t __pad10d8[0x4]; // 0x10d8 public: // MNetworkEnable - CHandle< C_BaseEntity > m_hThrower; // 0x10d4 + CHandle< C_BaseEntity > m_hThrower; // 0x10dc private: - [[maybe_unused]] uint8_t __pad10d8[0x18]; // 0x10d8 + [[maybe_unused]] uint8_t __pad10e0[0x18]; // 0x10e0 public: - GameTime_t m_flNextAttack; // 0x10f0 - CHandle< C_BaseEntity > m_hOriginalThrower; // 0x10f4 + GameTime_t m_flNextAttack; // 0x10f8 + CHandle< C_BaseEntity > m_hOriginalThrower; // 0x10fc }; // Alignment: 2 // Size: 0xf28 class C_BRC4Target : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0f18[0x8]; // 0xf18 public: // MNetworkEnable bool m_bBrokenOpen; // 0xf20 @@ -8228,6 +8600,8 @@ public: // Size: 0xf40 class C_ParadropChopper : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0f18[0x8]; // 0xf18 public: Vector m_vecLastRopeTargetPos; // 0xf20 GameTime_t m_flLastRopeTime; // 0xf2c @@ -8250,6 +8624,8 @@ public: // Size: 0xf70 class C_Dronegun : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0f18[0x8]; // 0xf18 public: // MNetworkEnable Vector m_vecAttentionTarget; // 0xf20 @@ -8278,6 +8654,8 @@ public: // Size: 0x12d0 class C_Drone : public C_PhysicsProp { +private: + [[maybe_unused]] uint8_t __pad1070[0x10]; // 0x1070 public: CUtlVector< Vector > m_vecClientSideTrailPositions; // 0x1080 // MNetworkEnable @@ -8412,6 +8790,8 @@ public: // Size: 0xf80 class C_BaseViewModel : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0f18[0x8]; // 0xf18 public: Vector m_vecLastFacing; // 0xf20 // MNetworkEnable @@ -8480,91 +8860,93 @@ public: }; // Alignment: 15 -// Size: 0x1180 +// Size: 0x1188 class C_BaseCSGrenadeProjectile : public C_BaseGrenade { public: // MNetworkEnable - Vector m_vInitialVelocity; // 0x10f8 + Vector m_vInitialVelocity; // 0x1100 // MNetworkEnable - int32_t m_nBounces; // 0x1104 + int32_t m_nBounces; // 0x110c // MNetworkEnable - CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_nExplodeEffectIndex; // 0x1108 + CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_nExplodeEffectIndex; // 0x1110 // MNetworkEnable - int32_t m_nExplodeEffectTickBegin; // 0x1110 + int32_t m_nExplodeEffectTickBegin; // 0x1118 // MNetworkEnable - Vector m_vecExplodeEffectOrigin; // 0x1114 - GameTime_t m_flSpawnTime; // 0x1120 - Vector vecLastTrailLinePos; // 0x1124 - GameTime_t flNextTrailLineTime; // 0x1130 - bool m_bExplodeEffectBegan; // 0x1134 - bool m_bCanCreateGrenadeTrail; // 0x1135 + Vector m_vecExplodeEffectOrigin; // 0x111c + GameTime_t m_flSpawnTime; // 0x1128 + Vector vecLastTrailLinePos; // 0x112c + GameTime_t flNextTrailLineTime; // 0x1138 + bool m_bExplodeEffectBegan; // 0x113c + bool m_bCanCreateGrenadeTrail; // 0x113d private: - [[maybe_unused]] uint8_t __pad1136[0x2]; // 0x1136 + [[maybe_unused]] uint8_t __pad113e[0x2]; // 0x113e public: - ParticleIndex_t m_nSnapshotTrajectoryEffectIndex; // 0x1138 + ParticleIndex_t m_nSnapshotTrajectoryEffectIndex; // 0x1140 private: - [[maybe_unused]] uint8_t __pad113c[0x4]; // 0x113c + [[maybe_unused]] uint8_t __pad1144[0x4]; // 0x1144 public: - CStrongHandle< InfoForResourceTypeIParticleSnapshot > m_hSnapshotTrajectoryParticleSnapshot; // 0x1140 - CUtlVector< Vector > m_arrTrajectoryTrailPoints; // 0x1148 - CUtlVector< float32 > m_arrTrajectoryTrailPointCreationTimes; // 0x1160 - float m_flTrajectoryTrailEffectCreationTime; // 0x1178 + CStrongHandle< InfoForResourceTypeIParticleSnapshot > m_hSnapshotTrajectoryParticleSnapshot; // 0x1148 + CUtlVector< Vector > m_arrTrajectoryTrailPoints; // 0x1150 + CUtlVector< float32 > m_arrTrajectoryTrailPointCreationTimes; // 0x1168 + float m_flTrajectoryTrailEffectCreationTime; // 0x1180 + + // Static fields: static float &Get_s_flThinkInterval(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseCSGrenadeProjectile")->m_static_fields[0]->m_instance);}; }; // Alignment: 4 -// Size: 0x1110 +// Size: 0x1118 class C_BreachChargeProjectile : public C_BaseGrenade { public: // MNetworkEnable - bool m_bShouldExplode; // 0x10f8 + bool m_bShouldExplode; // 0x1100 private: - [[maybe_unused]] uint8_t __pad10f9[0x3]; // 0x10f9 + [[maybe_unused]] uint8_t __pad1101[0x3]; // 0x1101 public: // MNetworkEnable - CHandle< C_BaseEntity > m_weaponThatThrewMe; // 0x10fc + CHandle< C_BaseEntity > m_weaponThatThrewMe; // 0x1104 // MNetworkEnable - int32_t m_nParentBoneIndex; // 0x1100 + int32_t m_nParentBoneIndex; // 0x1108 // MNetworkEnable - Vector m_vecParentBonePos; // 0x1104 + Vector m_vecParentBonePos; // 0x110c }; // Alignment: 4 -// Size: 0x1130 +// Size: 0x1138 class C_BumpMineProjectile : public C_BaseGrenade { public: - bool m_bShouldExplode; // 0x10f8 + bool m_bShouldExplode; // 0x1100 private: - [[maybe_unused]] uint8_t __pad10f9[0x3]; // 0x10f9 + [[maybe_unused]] uint8_t __pad1101[0x3]; // 0x1101 public: // MNetworkEnable - int32_t m_nParentBoneIndex; // 0x10fc + int32_t m_nParentBoneIndex; // 0x1104 // MNetworkEnable - Vector m_vecParentBonePos; // 0x1100 + Vector m_vecParentBonePos; // 0x1108 // MNetworkEnable - bool m_bArmed; // 0x110c + bool m_bArmed; // 0x1114 }; // Alignment: 6 -// Size: 0x1190 +// Size: 0x1198 class C_TripWireFireProjectile : public C_BaseGrenade { public: // MNetworkEnable - GameTime_t m_flAttachTime; // 0x10f8 + GameTime_t m_flAttachTime; // 0x1100 // MNetworkEnable - Vector m_vecTripWireEndPositions[10]; // 0x10fc + Vector m_vecTripWireEndPositions[10]; // 0x1104 // MNetworkEnable - bool m_bTripWireEndPositionsUsed[10]; // 0x1174 + bool m_bTripWireEndPositionsUsed[10]; // 0x117c private: - [[maybe_unused]] uint8_t __pad117e[0x2]; // 0x117e + [[maybe_unused]] uint8_t __pad1186[0x2]; // 0x1186 public: - int32_t m_nTripWireStartIndex0; // 0x1180 - int32_t m_nTripWireEndIndex0; // 0x1184 - int32_t m_nTripWireCenterIndex0; // 0x1188 + int32_t m_nTripWireStartIndex0; // 0x1188 + int32_t m_nTripWireEndIndex0; // 0x118c + int32_t m_nTripWireCenterIndex0; // 0x1190 }; // Alignment: 0 @@ -8579,6 +8961,8 @@ public: // Size: 0x1088 class C_PhysPropLootCrate : public C_PhysicsPropMultiplayer { +private: + [[maybe_unused]] uint8_t __pad1070[0x8]; // 0x1070 public: // MNetworkEnable bool m_bRenderInPSPM; // 0x1078 @@ -8618,7 +9002,7 @@ public: }; // Alignment: 0 -// Size: 0x11a0 +// Size: 0x11a8 class C_SensorGrenadeProjectile : public C_BaseCSGrenadeProjectile { public: @@ -8626,19 +9010,19 @@ public: }; // Alignment: 5 -// Size: 0x1170 +// Size: 0x1178 class C_CSGO_PreviewModel : public C_BaseFlex { public: - CUtlString m_animgraph; // 0x10a8 - CUtlString m_animgraphCharacterModeString; // 0x10b0 - CUtlString m_defaultAnim; // 0x10b8 - AnimLoopMode_t m_nDefaultAnimLoopMode; // 0x10c0 - float m_flInitialModelScale; // 0x10c4 + CUtlString m_animgraph; // 0x10b0 + CUtlString m_animgraphCharacterModeString; // 0x10b8 + CUtlString m_defaultAnim; // 0x10c0 + AnimLoopMode_t m_nDefaultAnimLoopMode; // 0x10c8 + float m_flInitialModelScale; // 0x10cc }; // Alignment: 0 -// Size: 0x1170 +// Size: 0x1178 class C_CSGO_PreviewModelAlias_csgo_item_previewmodel : public C_CSGO_PreviewModel { public: @@ -8697,12 +9081,14 @@ public: // Size: 0xf28 class C_Multimeter : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0f18[0x8]; // 0xf18 public: CHandle< C_PlantedC4 > m_hTargetC4; // 0xf20 }; -// Alignment: 21 -// Size: 0xf88 +// Alignment: 27 +// Size: 0xf98 class C_PlantedC4 : public CBaseAnimGraph { public: @@ -8725,50 +9111,68 @@ public: // MNetworkEnable GameTime_t m_flC4Blow; // 0xf48 // MNetworkEnable - float m_flTimerLength; // 0xf4c - float m_bTenSecWarning; // 0xf50 - float m_bTriggerWarning; // 0xf54 - float m_bExplodeWarning; // 0xf58 - bool m_bLocalBRMusicPlayed; // 0xf5c + bool m_bCannotBeDefused; // 0xf4c + // MNetworkEnable + bool m_bHasExploded; // 0xf4d private: - [[maybe_unused]] uint8_t __pad0f5d[0x3]; // 0xf5d + [[maybe_unused]] uint8_t __pad0f4e[0x2]; // 0xf4e public: // MNetworkEnable - float m_flDefuseLength; // 0xf60 + float m_flTimerLength; // 0xf50 // MNetworkEnable - GameTime_t m_flDefuseCountDown; // 0xf64 - // MNetworkEnable - bool m_bBombDefused; // 0xf68 + bool m_bBeingDefused; // 0xf54 private: - [[maybe_unused]] uint8_t __pad0f69[0x3]; // 0xf69 + [[maybe_unused]] uint8_t __pad0f55[0x3]; // 0xf55 +public: + float m_bTenSecWarning; // 0xf58 + float m_bTriggerWarning; // 0xf5c + float m_bExplodeWarning; // 0xf60 + bool m_bC4Activated; // 0xf64 + bool m_bLocalBRMusicPlayed; // 0xf65 +private: + [[maybe_unused]] uint8_t __pad0f66[0x2]; // 0xf66 public: // MNetworkEnable - CHandle< C_CSPlayerPawnBase > m_hBombDefuser; // 0xf6c + float m_flDefuseLength; // 0xf68 // MNetworkEnable - CHandle< C_BaseEntity > m_hControlPanel; // 0xf70 - CHandle< C_Multimeter > m_hDefuserMultimeter; // 0xf74 - GameTime_t m_flNextRadarFlashTime; // 0xf78 - bool m_bRadarFlash; // 0xf7c + GameTime_t m_flDefuseCountDown; // 0xf6c + // MNetworkEnable + bool m_bBombDefused; // 0xf70 private: - [[maybe_unused]] uint8_t __pad0f7d[0x3]; // 0xf7d + [[maybe_unused]] uint8_t __pad0f71[0x3]; // 0xf71 public: - CHandle< C_CSPlayerPawnBase > m_hLocalDefusingPlayerHandle; // 0xf80 + // MNetworkEnable + // MNetworkChangeCallback "OnDefuserChanged" + CHandle< C_CSPlayerPawnBase > m_hBombDefuser; // 0xf74 + // MNetworkEnable + CHandle< C_BaseEntity > m_hControlPanel; // 0xf78 + CHandle< C_Multimeter > m_hDefuserMultimeter; // 0xf7c + GameTime_t m_flNextRadarFlashTime; // 0xf80 + bool m_bRadarFlash; // 0xf84 +private: + [[maybe_unused]] uint8_t __pad0f85[0x3]; // 0xf85 +public: + CHandle< C_CSPlayerPawn > m_pBombDefuser; // 0xf88 + GameTime_t m_fLastDefuseTime; // 0xf8c + CBasePlayerController* m_pPredictionOwner; // 0xf90 }; // Alignment: 2 -// Size: 0x16f8 +// Size: 0x1700 class C_Item : public C_EconEntity { public: // MNetworkEnable - bool m_bShouldGlow; // 0x15f0 - char m_pReticleHintTextName[256]; // 0x15f1 + bool m_bShouldGlow; // 0x15f8 + char m_pReticleHintTextName[256]; // 0x15f9 }; -// Alignment: 7 +// Alignment: 8 // Size: 0x1650 class C_Chicken : public C_DynamicProp { +private: + [[maybe_unused]] uint8_t __pad1180[0x8]; // 0x1180 public: CHandle< CBaseAnimGraph > m_hHolidayHatAddon; // 0x1188 // MNetworkEnable @@ -8789,44 +9193,48 @@ public: // MNetworkEnable uint32_t m_OriginalOwnerXuidHigh; // 0x1644 bool m_bAttributesInitialized; // 0x1648 +private: + [[maybe_unused]] uint8_t __pad1649[0x3]; // 0x1649 +public: + ParticleIndex_t m_hWaterWakeParticles; // 0x164c }; // Alignment: 10 -// Size: 0x1638 +// Size: 0x1640 class C_BasePlayerWeapon : public C_EconEntity { public: // MNetworkEnable // MNetworkChangeCallback "OnWeaponStateChanged" - WeaponState_t m_iState; // 0x15f0 - WeaponState_t m_iOldState; // 0x15f4 - bool m_bRemoveable; // 0x15f8 + WeaponState_t m_iState; // 0x15f8 + WeaponState_t m_iOldState; // 0x15fc + bool m_bRemoveable; // 0x1600 private: - [[maybe_unused]] uint8_t __pad15f9[0x3]; // 0x15f9 + [[maybe_unused]] uint8_t __pad1601[0x3]; // 0x1601 public: // MNetworkEnable // MNetworkUserGroup "LocalWeaponExclusive" - GameTick_t m_nNextPrimaryAttackTick; // 0x15fc + GameTick_t m_nNextPrimaryAttackTick; // 0x1604 // MNetworkEnable // MNetworkUserGroup "LocalWeaponExclusive" - float m_flNextPrimaryAttackTickRatio; // 0x1600 + float m_flNextPrimaryAttackTickRatio; // 0x1608 // MNetworkEnable // MNetworkUserGroup "LocalWeaponExclusive" - GameTick_t m_nNextSecondaryAttackTick; // 0x1604 + GameTick_t m_nNextSecondaryAttackTick; // 0x160c // MNetworkEnable // MNetworkUserGroup "LocalWeaponExclusive" - float m_flNextSecondaryAttackTickRatio; // 0x1608 + float m_flNextSecondaryAttackTickRatio; // 0x1610 // MNetworkEnable // MNetworkSerializer "minusone" // MNetworkPriority "32" - int32_t m_iClip1; // 0x160c + int32_t m_iClip1; // 0x1614 // MNetworkEnable // MNetworkSerializer "minusone" // MNetworkUserGroup "LocalWeaponExclusive" - int32_t m_iClip2; // 0x1610 + int32_t m_iClip2; // 0x1618 // MNetworkEnable // MNetworkUserGroup "LocalWeaponExclusive" - int32_t m_pReserveAmmo[2]; // 0x1614 + int32_t m_pReserveAmmo[2]; // 0x161c }; // Alignment: 7 @@ -8850,94 +9258,83 @@ public: }; // Alignment: 8 -// Size: 0x1138 +// Size: 0x1140 class C_BaseCombatCharacter : public C_BaseFlex { public: // MNetworkEnable // MNetworkChangeCallback "OnWearablesChanged" - C_NetworkUtlVectorBase< CHandle< C_EconWearable > > m_hMyWearables; // 0x10a8 - int32_t m_bloodColor; // 0x10c0 - AttachmentHandle_t m_leftFootAttachment; // 0x10c4 - AttachmentHandle_t m_rightFootAttachment; // 0x10c5 + C_NetworkUtlVectorBase< CHandle< C_EconWearable > > m_hMyWearables; // 0x10b0 + int32_t m_bloodColor; // 0x10c8 + AttachmentHandle_t m_leftFootAttachment; // 0x10cc + AttachmentHandle_t m_rightFootAttachment; // 0x10cd private: - [[maybe_unused]] uint8_t __pad10c6[0x2]; // 0x10c6 + [[maybe_unused]] uint8_t __pad10ce[0x2]; // 0x10ce public: - C_BaseCombatCharacter::WaterWakeMode_t m_nWaterWakeMode; // 0x10c8 - float m_flWaterWorldZ; // 0x10cc - float m_flWaterNextTraceTime; // 0x10d0 + C_BaseCombatCharacter::WaterWakeMode_t m_nWaterWakeMode; // 0x10d0 + float m_flWaterWorldZ; // 0x10d4 + float m_flWaterNextTraceTime; // 0x10d8 // MNetworkEnable - float m_flFieldOfView; // 0x10d4 + float m_flFieldOfView; // 0x10dc }; // Alignment: 26 -// Size: 0x1280 +// Size: 0x12d0 class C_BasePlayerPawn : public C_BaseCombatCharacter { public: // MNetworkEnable - CPlayer_WeaponServices* m_pWeaponServices; // 0x1138 + CPlayer_WeaponServices* m_pWeaponServices; // 0x1140 // MNetworkEnable - CPlayer_ItemServices* m_pItemServices; // 0x1140 + CPlayer_ItemServices* m_pItemServices; // 0x1148 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - CPlayer_AutoaimServices* m_pAutoaimServices; // 0x1148 + CPlayer_AutoaimServices* m_pAutoaimServices; // 0x1150 // MNetworkEnable - CPlayer_ObserverServices* m_pObserverServices; // 0x1150 + CPlayer_ObserverServices* m_pObserverServices; // 0x1158 // MNetworkEnable - CPlayer_WaterServices* m_pWaterServices; // 0x1158 + CPlayer_WaterServices* m_pWaterServices; // 0x1160 // MNetworkEnable - CPlayer_UseServices* m_pUseServices; // 0x1160 + CPlayer_UseServices* m_pUseServices; // 0x1168 // MNetworkEnable - CPlayer_FlashlightServices* m_pFlashlightServices; // 0x1168 + CPlayer_FlashlightServices* m_pFlashlightServices; // 0x1170 // MNetworkEnable - CPlayer_CameraServices* m_pCameraServices; // 0x1170 + CPlayer_CameraServices* m_pCameraServices; // 0x1178 // MNetworkEnable - CPlayer_MovementServices* m_pMovementServices; // 0x1178 + CPlayer_MovementServices* m_pMovementServices; // 0x1180 private: - [[maybe_unused]] uint8_t __pad1180[0x8]; // 0x1180 + [[maybe_unused]] uint8_t __pad1188[0x8]; // 0x1188 public: // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - FixAngleSet_t m_fixAngleChangeType; // 0x1188 -private: - [[maybe_unused]] uint8_t __pad1189[0x3]; // 0x1189 -public: + C_UtlVectorEmbeddedNetworkVar< ViewAngleServerChange_t > m_ServerViewAngleChanges; // 0x1190 + uint32_t m_nHighestConsumedServerViewAngleChangeIndex; // 0x11e0 + QAngle v_angle; // 0x11e4 + QAngle v_anglePrevious; // 0x11f0 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - QAngle m_fixAngleChangeAngle; // 0x118c + uint32_t m_iHideHUD; // 0x11fc // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - // MNetworkChangeCallback "OnServerAngleChange" - int32_t m_fixAngleChangeTick; // 0x1198 - QAngle v_angle; // 0x119c + sky3dparams_t m_skybox3d; // 0x1200 // MNetworkEnable - // MNetworkUserGroup "LocalPlayerExclusive" - uint32_t m_iHideHUD; // 0x11a8 -private: - [[maybe_unused]] uint8_t __pad11ac[0x4]; // 0x11ac -public: - // MNetworkEnable - // MNetworkUserGroup "LocalPlayerExclusive" - sky3dparams_t m_skybox3d; // 0x11b0 - // MNetworkEnable - GameTime_t m_flDeathTime; // 0x1240 - Vector m_vecPredictionError; // 0x1244 - GameTime_t m_flPredictionErrorTime; // 0x1250 - float m_flFOVSensitivityAdjust; // 0x1254 - float m_flMouseSensitivity; // 0x1258 - Vector m_vOldOrigin; // 0x125c - float m_flOldSimulationTime; // 0x1268 - int32_t m_nLastExecutedCommandNumber; // 0x126c - int32_t m_nLastExecutedCommandTick; // 0x1270 + GameTime_t m_flDeathTime; // 0x1290 + Vector m_vecPredictionError; // 0x1294 + GameTime_t m_flPredictionErrorTime; // 0x12a0 + float m_flFOVSensitivityAdjust; // 0x12a4 + float m_flMouseSensitivity; // 0x12a8 + Vector m_vOldOrigin; // 0x12ac + float m_flOldSimulationTime; // 0x12b8 + int32_t m_nLastExecutedCommandNumber; // 0x12bc + int32_t m_nLastExecutedCommandTick; // 0x12c0 // MNetworkEnable // MNetworkChangeCallback "OnControllerChanged" - CHandle< CBasePlayerController > m_hController; // 0x1274 - bool m_bIsSwappingToPredictableController; // 0x1278 + CHandle< CBasePlayerController > m_hController; // 0x12c4 + bool m_bIsSwappingToPredictableController; // 0x12c8 }; // Alignment: 0 -// Size: 0x16f8 +// Size: 0x1700 class C_ItemCash : public C_Item { public: @@ -8966,194 +9363,196 @@ public: }; // Alignment: 59 -// Size: 0x1950 +// Size: 0x1970 class C_WeaponCSBase : public C_BasePlayerWeapon { -public: - // MNetworkEnable - float m_flFireSequenceStartTime; // 0x1670 - // MNetworkEnable - int32_t m_nFireSequenceStartTimeChange; // 0x1674 - int32_t m_nFireSequenceStartTimeAck; // 0x1678 - // MNetworkEnable - bool m_bPlayerFireEventIsPrimary; // 0x167c private: - [[maybe_unused]] uint8_t __pad167d[0x3]; // 0x167d + [[maybe_unused]] uint8_t __pad1640[0x38]; // 0x1640 public: - HSequence m_seqIdle; // 0x1680 - HSequence m_seqFirePrimary; // 0x1684 - HSequence m_seqFireSecondary; // 0x1688 // MNetworkEnable - int32_t m_nRefundable; // 0x168c + float m_flFireSequenceStartTime; // 0x1678 + // MNetworkEnable + int32_t m_nFireSequenceStartTimeChange; // 0x167c + int32_t m_nFireSequenceStartTimeAck; // 0x1680 + // MNetworkEnable + bool m_bPlayerFireEventIsPrimary; // 0x1684 private: - [[maybe_unused]] uint8_t __pad1690[0x10]; // 0x1690 + [[maybe_unused]] uint8_t __pad1685[0x3]; // 0x1685 public: - float m_flCrosshairDistance; // 0x16a0 - int32_t m_iAmmoLastCheck; // 0x16a4 - int32_t m_iAlpha; // 0x16a8 - int32_t m_iScopeTextureID; // 0x16ac - int32_t m_iCrosshairTextureID; // 0x16b0 - float m_flGunAccuracyPosition; // 0x16b4 + HSequence m_seqIdle; // 0x1688 + HSequence m_seqFirePrimary; // 0x168c + HSequence m_seqFireSecondary; // 0x1690 +private: + [[maybe_unused]] uint8_t __pad1694[0x14]; // 0x1694 +public: + float m_flCrosshairDistance; // 0x16a8 + int32_t m_iAmmoLastCheck; // 0x16ac + int32_t m_iAlpha; // 0x16b0 + int32_t m_iScopeTextureID; // 0x16b4 + int32_t m_iCrosshairTextureID; // 0x16b8 + float m_flGunAccuracyPosition; // 0x16bc // MNetworkEnable // MNetworkUserGroup "LocalWeaponExclusive" - uint32_t m_nViewModelIndex; // 0x16b8 - bool m_bReloadsWithClips; // 0x16bc + uint32_t m_nViewModelIndex; // 0x16c0 + bool m_bReloadsWithClips; // 0x16c4 private: - [[maybe_unused]] uint8_t __pad16bd[0x3]; // 0x16bd + [[maybe_unused]] uint8_t __pad16c5[0x3]; // 0x16c5 public: // MNetworkEnable // MNetworkUserGroup "LocalWeaponExclusive" // MNetworkPriority "32" - GameTime_t m_flTimeWeaponIdle; // 0x16c0 - bool m_bFireOnEmpty; // 0x16c4 + GameTime_t m_flTimeWeaponIdle; // 0x16c8 + bool m_bFireOnEmpty; // 0x16cc private: - [[maybe_unused]] uint8_t __pad16c5[0x3]; // 0x16c5 + [[maybe_unused]] uint8_t __pad16cd[0x3]; // 0x16cd public: - CEntityIOOutput m_OnPlayerPickup; // 0x16c8 + CEntityIOOutput m_OnPlayerPickup; // 0x16d0 // MNetworkEnable - CSWeaponMode m_weaponMode; // 0x16f0 - float m_flTurningInaccuracyDelta; // 0x16f4 - Vector m_vecTurningInaccuracyEyeDirLast; // 0x16f8 - float m_flTurningInaccuracy; // 0x1704 + CSWeaponMode m_weaponMode; // 0x16f8 + float m_flTurningInaccuracyDelta; // 0x16fc + Vector m_vecTurningInaccuracyEyeDirLast; // 0x1700 + float m_flTurningInaccuracy; // 0x170c // MNetworkEnable - float m_fAccuracyPenalty; // 0x1708 - GameTime_t m_flLastAccuracyUpdateTime; // 0x170c - float m_fAccuracySmoothedForZoom; // 0x1710 - GameTime_t m_fScopeZoomEndTime; // 0x1714 + float m_fAccuracyPenalty; // 0x1710 + GameTime_t m_flLastAccuracyUpdateTime; // 0x1714 + float m_fAccuracySmoothedForZoom; // 0x1718 + GameTime_t m_fScopeZoomEndTime; // 0x171c // MNetworkEnable - int32_t m_iRecoilIndex; // 0x1718 + int32_t m_iRecoilIndex; // 0x1720 // MNetworkEnable - float m_flRecoilIndex; // 0x171c + float m_flRecoilIndex; // 0x1724 // MNetworkEnable - bool m_bBurstMode; // 0x1720 + bool m_bBurstMode; // 0x1728 private: - [[maybe_unused]] uint8_t __pad1721[0x3]; // 0x1721 + [[maybe_unused]] uint8_t __pad1729[0x3]; // 0x1729 public: // MNetworkEnable - GameTime_t m_flPostponeFireReadyTime; // 0x1724 + GameTime_t m_flPostponeFireReadyTime; // 0x172c // MNetworkEnable - bool m_bInReload; // 0x1728 + bool m_bInReload; // 0x1730 // MNetworkEnable - bool m_bReloadVisuallyComplete; // 0x1729 -private: - [[maybe_unused]] uint8_t __pad172a[0x2]; // 0x172a -public: - // MNetworkEnable - GameTime_t m_flDroppedAtTime; // 0x172c - // MNetworkEnable - bool m_bIsHauledBack; // 0x1730 - // MNetworkEnable - bool m_bSilencerOn; // 0x1731 + bool m_bReloadVisuallyComplete; // 0x1731 private: [[maybe_unused]] uint8_t __pad1732[0x2]; // 0x1732 public: // MNetworkEnable - GameTime_t m_flTimeSilencerSwitchComplete; // 0x1734 + GameTime_t m_flDroppedAtTime; // 0x1734 // MNetworkEnable - int32_t m_iOriginalTeamNumber; // 0x1738 - float m_flNextAttackRenderTimeOffset; // 0x173c + bool m_bIsHauledBack; // 0x1738 + // MNetworkEnable + bool m_bSilencerOn; // 0x1739 private: - [[maybe_unused]] uint8_t __pad1740[0x78]; // 0x1740 -public: - bool m_bVisualsDataSet; // 0x17b8 - bool m_bOldFirstPersonSpectatedState; // 0x17b9 -private: - [[maybe_unused]] uint8_t __pad17ba[0x2]; // 0x17ba -public: - CHandle< C_BaseEntity > m_hOurPing; // 0x17bc - CEntityIndex m_nOurPingIndex; // 0x17c0 - Vector m_vecOurPingPos; // 0x17c4 - bool m_bGlowForPing; // 0x17d0 - bool m_bUIWeapon; // 0x17d1 -private: - [[maybe_unused]] uint8_t __pad17d2[0xe]; // 0x17d2 + [[maybe_unused]] uint8_t __pad173a[0x2]; // 0x173a public: // MNetworkEnable - CHandle< C_CSPlayerPawnBase > m_hPrevOwner; // 0x17e0 + GameTime_t m_flTimeSilencerSwitchComplete; // 0x173c + // MNetworkEnable + int32_t m_iOriginalTeamNumber; // 0x1740 + float m_flNextAttackRenderTimeOffset; // 0x1744 private: - [[maybe_unused]] uint8_t __pad17e4[0x20]; // 0x17e4 + [[maybe_unused]] uint8_t __pad1748[0x78]; // 0x1748 public: - bool m_donated; // 0x1804 + bool m_bVisualsDataSet; // 0x17c0 + bool m_bOldFirstPersonSpectatedState; // 0x17c1 private: - [[maybe_unused]] uint8_t __pad1805[0x3]; // 0x1805 + [[maybe_unused]] uint8_t __pad17c2[0x2]; // 0x17c2 +public: + CHandle< C_BaseEntity > m_hOurPing; // 0x17c4 + CEntityIndex m_nOurPingIndex; // 0x17c8 + Vector m_vecOurPingPos; // 0x17cc + bool m_bGlowForPing; // 0x17d8 + bool m_bUIWeapon; // 0x17d9 +private: + [[maybe_unused]] uint8_t __pad17da[0xe]; // 0x17da public: // MNetworkEnable - GameTime_t m_fLastShotTime; // 0x1808 - bool m_bWasOwnedByCT; // 0x180c - bool m_bWasOwnedByTerrorist; // 0x180d -private: - [[maybe_unused]] uint8_t __pad180e[0x2]; // 0x180e -public: - float m_gunHeat; // 0x1810 - uint32_t m_smokeAttachments; // 0x1814 - GameTime_t m_lastSmokeTime; // 0x1818 - float m_flLastClientFireBulletTime; // 0x181c -private: - [[maybe_unused]] uint8_t __pad1820[0x50]; // 0x1820 -public: - C_IronSightController m_IronSightController; // 0x1870 + CHandle< C_CSPlayerPawnBase > m_hPrevOwner; // 0x17e8 // MNetworkEnable - int32_t m_iIronSightMode; // 0x1920 + GameTick_t m_nDropTick; // 0x17ec private: - [[maybe_unused]] uint8_t __pad1924[0xc]; // 0x1924 + [[maybe_unused]] uint8_t __pad17f0[0x1c]; // 0x17f0 +public: + bool m_donated; // 0x180c +private: + [[maybe_unused]] uint8_t __pad180d[0x3]; // 0x180d public: - GameTime_t m_flLastLOSTraceFailureTime; // 0x1930 // MNetworkEnable - int32_t m_iNumEmptyAttacks; // 0x1934 + GameTime_t m_fLastShotTime; // 0x1810 + bool m_bWasOwnedByCT; // 0x1814 + bool m_bWasOwnedByTerrorist; // 0x1815 +private: + [[maybe_unused]] uint8_t __pad1816[0x2]; // 0x1816 +public: + float m_gunHeat; // 0x1818 + uint32_t m_smokeAttachments; // 0x181c + GameTime_t m_lastSmokeTime; // 0x1820 + float m_flLastClientFireBulletTime; // 0x1824 +private: + [[maybe_unused]] uint8_t __pad1828[0x58]; // 0x1828 +public: + C_IronSightController m_IronSightController; // 0x1880 + // MNetworkEnable + int32_t m_iIronSightMode; // 0x1930 +private: + [[maybe_unused]] uint8_t __pad1934[0xc]; // 0x1934 +public: + GameTime_t m_flLastLOSTraceFailureTime; // 0x1940 + // MNetworkEnable + int32_t m_iNumEmptyAttacks; // 0x1944 }; // Alignment: 6 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponCSBaseGun : public C_WeaponCSBase { public: // MNetworkEnable - int32_t m_zoomLevel; // 0x1950 + int32_t m_zoomLevel; // 0x1970 // MNetworkEnable - int32_t m_iBurstShotsRemaining; // 0x1954 - int32_t m_iSilencerBodygroup; // 0x1958 + int32_t m_iBurstShotsRemaining; // 0x1974 + int32_t m_iSilencerBodygroup; // 0x1978 private: - [[maybe_unused]] uint8_t __pad195c[0xc]; // 0x195c + [[maybe_unused]] uint8_t __pad197c[0xc]; // 0x197c public: - int32_t m_silencedModelIndex; // 0x1968 - bool m_inPrecache; // 0x196c + int32_t m_silencedModelIndex; // 0x1988 + bool m_inPrecache; // 0x198c // MNetworkEnable - bool m_bNeedsBoltAction; // 0x196d + bool m_bNeedsBoltAction; // 0x198d }; // Alignment: 12 -// Size: 0x19b0 +// Size: 0x19d0 class C_C4 : public C_WeaponCSBase { public: - char m_szScreenText[32]; // 0x1950 - ParticleIndex_t m_bombdroppedlightParticleIndex; // 0x1970 + char m_szScreenText[32]; // 0x1970 + ParticleIndex_t m_bombdroppedlightParticleIndex; // 0x1990 // MNetworkEnable - bool m_bStartedArming; // 0x1974 + bool m_bStartedArming; // 0x1994 private: - [[maybe_unused]] uint8_t __pad1975[0x3]; // 0x1975 + [[maybe_unused]] uint8_t __pad1995[0x3]; // 0x1995 public: // MNetworkEnable - GameTime_t m_fArmedTime; // 0x1978 + GameTime_t m_fArmedTime; // 0x1998 // MNetworkEnable - bool m_bBombPlacedAnimation; // 0x197c + bool m_bBombPlacedAnimation; // 0x199c // MNetworkEnable - bool m_bShowC4LED; // 0x197d + bool m_bShowC4LED; // 0x199d // MNetworkEnable - bool m_bIsPlantingViaUse; // 0x197e + bool m_bIsPlantingViaUse; // 0x199e private: - [[maybe_unused]] uint8_t __pad197f[0x1]; // 0x197f + [[maybe_unused]] uint8_t __pad199f[0x1]; // 0x199f public: // MNetworkEnable - EntitySpottedState_t m_entitySpottedState; // 0x1980 - int32_t m_nSpotRules; // 0x1998 - bool m_bPlayedArmingBeeps[7]; // 0x199c - bool m_bBombPlanted; // 0x19a3 - bool m_bDroppedFromDeath; // 0x19a4 + EntitySpottedState_t m_entitySpottedState; // 0x19a0 + int32_t m_nSpotRules; // 0x19b8 + bool m_bPlayedArmingBeeps[7]; // 0x19bc + bool m_bBombPlanted; // 0x19c3 + bool m_bDroppedFromDeath; // 0x19c4 }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_DEagle : public C_WeaponCSBaseGun { public: @@ -9161,7 +9560,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponElite : public C_WeaponCSBaseGun { public: @@ -9169,7 +9568,7 @@ public: }; // Alignment: 0 -// Size: 0x1950 +// Size: 0x1970 class C_WeaponNOVA : public C_WeaponCSBase { public: @@ -9177,7 +9576,7 @@ public: }; // Alignment: 0 -// Size: 0x1950 +// Size: 0x1970 class C_WeaponSawedoff : public C_WeaponCSBase { public: @@ -9185,16 +9584,16 @@ public: }; // Alignment: 1 -// Size: 0x1980 +// Size: 0x19a0 class C_WeaponTaser : public C_WeaponCSBaseGun { public: // MNetworkEnable - GameTime_t m_fFireTime; // 0x1970 + GameTime_t m_fFireTime; // 0x1990 }; // Alignment: 0 -// Size: 0x1950 +// Size: 0x1970 class C_WeaponXM1014 : public C_WeaponCSBase { public: @@ -9202,7 +9601,7 @@ public: }; // Alignment: 0 -// Size: 0x1950 +// Size: 0x1970 class C_Knife : public C_WeaponCSBase { public: @@ -9210,7 +9609,7 @@ public: }; // Alignment: 0 -// Size: 0x1950 +// Size: 0x1970 class C_KnifeGG : public C_Knife { public: @@ -9218,127 +9617,132 @@ public: }; // Alignment: 1 -// Size: 0x1960 +// Size: 0x1980 class C_Melee : public C_WeaponCSBase { public: // MNetworkEnable - GameTime_t m_flThrowAt; // 0x1950 + GameTime_t m_flThrowAt; // 0x1970 }; // Alignment: 2 -// Size: 0x1980 +// Size: 0x19a0 class C_WeaponZoneRepulsor : public C_WeaponCSBaseGun { public: - float m_flPitchLocal; // 0x1970 - GameTime_t m_flLastTimeNotIdle; // 0x1974 + float m_flPitchLocal; // 0x1990 + GameTime_t m_flLastTimeNotIdle; // 0x1994 }; // Alignment: 1 -// Size: 0x1980 +// Size: 0x19a0 class C_WeaponShield : public C_WeaponCSBaseGun { public: // MNetworkEnable - float m_flDisplayHealth; // 0x1970 + float m_flDisplayHealth; // 0x1990 }; // Alignment: 1 -// Size: 0x11a8 +// Size: 0x11b0 class C_MolotovProjectile : public C_BaseCSGrenadeProjectile { public: // MNetworkEnable - bool m_bIsIncGrenade; // 0x1180 + bool m_bIsIncGrenade; // 0x1188 }; // Alignment: 1 -// Size: 0x11a8 +// Size: 0x11b0 class C_DecoyProjectile : public C_BaseCSGrenadeProjectile { +private: + [[maybe_unused]] uint8_t __pad1188[0x20]; // 0x1188 public: - GameTime_t m_flTimeParticleEffectSpawn; // 0x11a0 + GameTime_t m_flTimeParticleEffectSpawn; // 0x11a8 }; // Alignment: 8 -// Size: 0x1310 +// Size: 0x1328 class C_SmokeGrenadeProjectile : public C_BaseCSGrenadeProjectile { +private: + [[maybe_unused]] uint8_t __pad1188[0x8]; // 0x1188 public: // MNetworkEnable - int32_t m_nSmokeEffectTickBegin; // 0x1188 + int32_t m_nSmokeEffectTickBegin; // 0x1190 // MNetworkEnable - bool m_bDidSmokeEffect; // 0x118c + bool m_bDidSmokeEffect; // 0x1194 private: - [[maybe_unused]] uint8_t __pad118d[0x3]; // 0x118d + [[maybe_unused]] uint8_t __pad1195[0x3]; // 0x1195 public: // MNetworkEnable - int32_t m_nRandomSeed; // 0x1190 + int32_t m_nRandomSeed; // 0x1198 // MNetworkEnable - Vector m_vSmokeColor; // 0x1194 + Vector m_vSmokeColor; // 0x119c // MNetworkEnable - Vector m_vSmokeDetonationPos; // 0x11a0 + Vector m_vSmokeDetonationPos; // 0x11a8 private: - [[maybe_unused]] uint8_t __pad11ac[0x4]; // 0x11ac + [[maybe_unused]] uint8_t __pad11b4[0x4]; // 0x11b4 public: // MNetworkEnable // MNetworkChangeCallback "OnSimulationChanged" - CUtlVector< uint8 > m_VoxelFrameData; // 0x11b0 - bool m_bSmokeVolumeDataReceived; // 0x11c8 - bool m_bSmokeEffectSpawned; // 0x11c9 + CUtlVector< uint8 > m_VoxelFrameData; // 0x11b8 + bool m_bSmokeVolumeDataReceived; // 0x11d0 + bool m_bSmokeEffectSpawned; // 0x11d1 }; -// Alignment: 8 -// Size: 0x1990 +// Alignment: 9 +// Size: 0x19b0 class C_BaseCSGrenade : public C_WeaponCSBase { -public: - // MNetworkEnable - bool m_bRedraw; // 0x1970 - // MNetworkEnable - bool m_bIsHeldByPlayer; // 0x1971 - // MNetworkEnable - bool m_bPinPulled; // 0x1972 private: - [[maybe_unused]] uint8_t __pad1973[0x1]; // 0x1973 + [[maybe_unused]] uint8_t __pad1970[0x20]; // 0x1970 public: // MNetworkEnable - EGrenadeThrowState m_eThrowStatus; // 0x1974 + bool m_bRedraw; // 0x1990 // MNetworkEnable - GameTime_t m_fThrowTime; // 0x1978 + bool m_bIsHeldByPlayer; // 0x1991 // MNetworkEnable - float m_flThrowStrength; // 0x197c + bool m_bPinPulled; // 0x1992 // MNetworkEnable - float m_flThrowStrengthApproach; // 0x1980 + bool m_bJumpThrow; // 0x1993 // MNetworkEnable - GameTime_t m_fDropTime; // 0x1984 + EGrenadeThrowState m_eThrowStatus; // 0x1994 + // MNetworkEnable + GameTime_t m_fThrowTime; // 0x1998 + // MNetworkEnable + float m_flThrowStrength; // 0x199c + // MNetworkEnable + float m_flThrowStrengthApproach; // 0x19a0 + // MNetworkEnable + GameTime_t m_fDropTime; // 0x19a4 }; // Alignment: 2 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponBaseItem : public C_WeaponCSBase { public: // MNetworkEnable - CountdownTimer m_SequenceCompleteTimer; // 0x1950 + CountdownTimer m_SequenceCompleteTimer; // 0x1970 // MNetworkEnable - bool m_bRedraw; // 0x1968 + bool m_bRedraw; // 0x1988 }; // Alignment: 2 -// Size: 0x1700 +// Size: 0x1708 class C_ItemDogtags : public C_Item { public: // MNetworkEnable - CHandle< C_CSPlayerPawnBase > m_OwningPlayer; // 0x16f8 + CHandle< C_CSPlayerPawnBase > m_OwningPlayer; // 0x1700 // MNetworkEnable - CHandle< C_CSPlayerPawnBase > m_KillingPlayer; // 0x16fc + CHandle< C_CSPlayerPawnBase > m_KillingPlayer; // 0x1704 }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_Item_Healthshot : public C_WeaponBaseItem { public: @@ -9346,79 +9750,81 @@ public: }; // Alignment: 2 -// Size: 0x1960 +// Size: 0x1980 class C_Fists : public C_WeaponCSBase { public: // MNetworkEnable - bool m_bPlayingUninterruptableAct; // 0x1950 + bool m_bPlayingUninterruptableAct; // 0x1970 private: - [[maybe_unused]] uint8_t __pad1951[0x3]; // 0x1951 + [[maybe_unused]] uint8_t __pad1971[0x3]; // 0x1971 public: // MNetworkEnable // MNetworkChangeCallback "OnUninterruptChanged" - PlayerAnimEvent_t m_nUninterruptableActivity; // 0x1954 + PlayerAnimEvent_t m_nUninterruptableActivity; // 0x1974 }; // Alignment: 27 -// Size: 0x20b0 +// Size: 0x20d0 class C_Tablet : public C_WeaponCSBase { -public: - // MNetworkEnable - GameTime_t m_flUpgradeExpirationTime[4]; // 0x1958 - // MNetworkEnable - int32_t m_vecLocalHexFlags[42]; // 0x1968 - // MNetworkEnable - int32_t m_nContractKillGridIndex; // 0x1a10 - // MNetworkEnable - int32_t m_nContractKillGridHighResIndex; // 0x1a14 - // MNetworkEnable - bool m_bTabletReceptionIsBlocked; // 0x1a18 private: - [[maybe_unused]] uint8_t __pad1a19[0x3]; // 0x1a19 + [[maybe_unused]] uint8_t __pad1970[0x8]; // 0x1970 public: // MNetworkEnable - float m_flScanProgress; // 0x1a1c + GameTime_t m_flUpgradeExpirationTime[4]; // 0x1978 // MNetworkEnable - GameTime_t m_flBootTime; // 0x1a20 + int32_t m_vecLocalHexFlags[42]; // 0x1988 // MNetworkEnable - GameTime_t m_flShowMapTime; // 0x1a24 + int32_t m_nContractKillGridIndex; // 0x1a30 // MNetworkEnable - Vector m_vecNearestMetalCratePos; // 0x1a28 + int32_t m_nContractKillGridHighResIndex; // 0x1a34 // MNetworkEnable - tablet_skin_state_t m_skinState; // 0x1a34 + bool m_bTabletReceptionIsBlocked; // 0x1a38 private: - [[maybe_unused]] uint8_t __pad1a35[0x3]; // 0x1a35 + [[maybe_unused]] uint8_t __pad1a39[0x3]; // 0x1a39 public: // MNetworkEnable - int32_t m_vecNotificationIds[8]; // 0x1a38 + float m_flScanProgress; // 0x1a3c // MNetworkEnable - GameTime_t m_vecNotificationTimestamps[8]; // 0x1a58 + GameTime_t m_flBootTime; // 0x1a40 // MNetworkEnable - int32_t m_nLastPurchaseIndex; // 0x1a78 + GameTime_t m_flShowMapTime; // 0x1a44 // MNetworkEnable - Vector m_vecPlayerPositionHistory[24]; // 0x1a7c - int32_t m_vecLocalHexFlagsClientCopy[42]; // 0x1b9c - GameTime_t m_vecLastHexPlayerOccupancyChange[42][6]; // 0x1c44 + Vector m_vecNearestMetalCratePos; // 0x1a48 + // MNetworkEnable + tablet_skin_state_t m_skinState; // 0x1a54 private: - [[maybe_unused]] uint8_t __pad2034[0x34]; // 0x2034 + [[maybe_unused]] uint8_t __pad1a55[0x3]; // 0x1a55 public: - CStrongHandle< InfoForResourceTypeIMaterial2 > m_radarMaterial; // 0x2068 - CStrongHandle< InfoForResourceTypeIMaterial2 > m_buildingMaterial; // 0x2070 - CStrongHandle< InfoForResourceTypeIMaterial2 > m_hZoneOverlayMaterial; // 0x2078 - float m_flNoiseFadeAlpha; // 0x2080 - Color m_WorkingColor; // 0x2084 - Vector m_vecLastCameraPos; // 0x2088 - QAngle m_angLastCameraAng; // 0x2094 - int32_t m_nDrawElementCount; // 0x20a0 - float m_flPrevScanProgress; // 0x20a4 - int32_t m_nRenderTargetRes; // 0x20a8 - float m_flLastClosePoseParamVal; // 0x20ac + // MNetworkEnable + int32_t m_vecNotificationIds[8]; // 0x1a58 + // MNetworkEnable + GameTime_t m_vecNotificationTimestamps[8]; // 0x1a78 + // MNetworkEnable + int32_t m_nLastPurchaseIndex; // 0x1a98 + // MNetworkEnable + Vector m_vecPlayerPositionHistory[24]; // 0x1a9c + int32_t m_vecLocalHexFlagsClientCopy[42]; // 0x1bbc + GameTime_t m_vecLastHexPlayerOccupancyChange[42][6]; // 0x1c64 +private: + [[maybe_unused]] uint8_t __pad2054[0x34]; // 0x2054 +public: + CStrongHandle< InfoForResourceTypeIMaterial2 > m_radarMaterial; // 0x2088 + CStrongHandle< InfoForResourceTypeIMaterial2 > m_buildingMaterial; // 0x2090 + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hZoneOverlayMaterial; // 0x2098 + float m_flNoiseFadeAlpha; // 0x20a0 + Color m_WorkingColor; // 0x20a4 + Vector m_vecLastCameraPos; // 0x20a8 + QAngle m_angLastCameraAng; // 0x20b4 + int32_t m_nDrawElementCount; // 0x20c0 + float m_flPrevScanProgress; // 0x20c4 + int32_t m_nRenderTargetRes; // 0x20c8 + float m_flLastClosePoseParamVal; // 0x20cc }; // Alignment: 0 -// Size: 0x1960 +// Size: 0x1980 class C_BreachCharge : public C_WeaponCSBase { public: @@ -9426,7 +9832,7 @@ public: }; // Alignment: 0 -// Size: 0x1950 +// Size: 0x1970 class C_BumpMine : public C_WeaponCSBase { public: @@ -9434,7 +9840,7 @@ public: }; // Alignment: 0 -// Size: 0x1990 +// Size: 0x19b0 class C_TripWireFire : public C_BaseCSGrenade { public: @@ -9442,7 +9848,7 @@ public: }; // Alignment: 0 -// Size: 0xf88 +// Size: 0xf98 class C_PlantedC4Survival : public C_PlantedC4 { public: @@ -9450,559 +9856,596 @@ public: }; // Alignment: 0 -// Size: 0x1990 +// Size: 0x19b0 class C_SensorGrenade : public C_BaseCSGrenade { public: // No members available }; -// Alignment: 184 -// Size: 0x1828 +// Alignment: 185 +// Size: 0x1870 class C_CSPlayerPawnBase : public C_BasePlayerPawn { +private: + [[maybe_unused]] uint8_t __pad12d0[0x18]; // 0x12d0 public: // MNetworkEnable - CCSPlayer_ActionTrackingServices* m_pActionTrackingServices; // 0x1298 + CCSPlayer_ActionTrackingServices* m_pActionTrackingServices; // 0x12e8 // MNetworkEnable - CCSPlayer_PingServices* m_pPingServices; // 0x12a0 + CCSPlayer_PingServices* m_pPingServices; // 0x12f0 // MNetworkEnable - CCSPlayer_ViewModelServices* m_pViewModelServices; // 0x12a8 - float m_fRenderingClipPlane[4]; // 0x12b0 - int32_t m_nLastClipPlaneSetupFrame; // 0x12c0 - Vector m_vecLastClipCameraPos; // 0x12c4 - Vector m_vecLastClipCameraForward; // 0x12d0 - bool m_bClipHitStaticWorld; // 0x12dc - bool m_bCachedPlaneIsValid; // 0x12dd + CCSPlayer_ViewModelServices* m_pViewModelServices; // 0x12f8 + float m_fRenderingClipPlane[4]; // 0x1300 + int32_t m_nLastClipPlaneSetupFrame; // 0x1310 + Vector m_vecLastClipCameraPos; // 0x1314 + Vector m_vecLastClipCameraForward; // 0x1320 + bool m_bClipHitStaticWorld; // 0x132c + bool m_bCachedPlaneIsValid; // 0x132d private: - [[maybe_unused]] uint8_t __pad12de[0x2]; // 0x12de + [[maybe_unused]] uint8_t __pad132e[0x2]; // 0x132e public: - C_WeaponCSBase* m_pClippingWeapon; // 0x12e0 + C_WeaponCSBase* m_pClippingWeapon; // 0x1330 // MNetworkEnable - bool m_bHasFemaleVoice; // 0x12e8 + bool m_bHasFemaleVoice; // 0x1338 private: - [[maybe_unused]] uint8_t __pad12e9[0x3]; // 0x12e9 + [[maybe_unused]] uint8_t __pad1339[0x3]; // 0x1339 public: - CSPlayerState m_previousPlayerState; // 0x12ec - float m_flLastCollisionCeiling; // 0x12f0 - float m_flLastCollisionCeilingChangeTime; // 0x12f4 + CSPlayerState m_previousPlayerState; // 0x133c + float m_flLastCollisionCeiling; // 0x1340 + float m_flLastCollisionCeilingChangeTime; // 0x1344 private: - [[maybe_unused]] uint8_t __pad12f8[0x58]; // 0x12f8 + [[maybe_unused]] uint8_t __pad1348[0x18]; // 0x1348 public: - bool m_bInLanding; // 0x1350 + bool m_bInLanding; // 0x1360 private: - [[maybe_unused]] uint8_t __pad1351[0x3]; // 0x1351 + [[maybe_unused]] uint8_t __pad1361[0x3]; // 0x1361 public: - float m_flLandingTime; // 0x1354 - GameTime_t m_grenadeParameterStashTime; // 0x1358 - bool m_bGrenadeParametersStashed; // 0x135c + float m_flLandingTime; // 0x1364 + GameTime_t m_grenadeParameterStashTime; // 0x1368 + bool m_bGrenadeParametersStashed; // 0x136c private: - [[maybe_unused]] uint8_t __pad135d[0x3]; // 0x135d + [[maybe_unused]] uint8_t __pad136d[0x3]; // 0x136d public: - QAngle m_angStashedShootAngles; // 0x1360 - Vector m_vecStashedGrenadeThrowPosition; // 0x136c - Vector m_vecStashedVelocity; // 0x1378 - QAngle m_angShootAngleHistory[2]; // 0x1384 - Vector m_vecThrowPositionHistory[2]; // 0x139c - Vector m_vecVelocityHistory[2]; // 0x13b4 + QAngle m_angStashedShootAngles; // 0x1370 + Vector m_vecStashedGrenadeThrowPosition; // 0x137c + Vector m_vecStashedVelocity; // 0x1388 + QAngle m_angShootAngleHistory[2]; // 0x1394 + Vector m_vecThrowPositionHistory[2]; // 0x13ac + Vector m_vecVelocityHistory[2]; // 0x13c4 private: - [[maybe_unused]] uint8_t __pad13cc[0x4]; // 0x13cc + [[maybe_unused]] uint8_t __pad13dc[0x4]; // 0x13dc public: // MNetworkEnable // MNetworkEncoder // MNetworkChangeCallback "OnThirdPersonHeadingChanged" // MNetworkPriority "32" - QAngle m_thirdPersonHeading; // 0x13d0 -private: - [[maybe_unused]] uint8_t __pad13dc[0xc]; // 0x13dc -public: - // MNetworkEnable - // MNetworkChangeCallback "OnSlopeDropOffsetChanged" - // MNetworkPriority "32" - float m_flSlopeDropOffset; // 0x13e8 + QAngle m_thirdPersonHeading; // 0x13e0 private: [[maybe_unused]] uint8_t __pad13ec[0xc]; // 0x13ec public: // MNetworkEnable - // MNetworkChangeCallback "OnSlopeDropHeightChanged" + // MNetworkChangeCallback "OnSlopeDropOffsetChanged" // MNetworkPriority "32" - float m_flSlopeDropHeight; // 0x13f8 + float m_flSlopeDropOffset; // 0x13f8 private: [[maybe_unused]] uint8_t __pad13fc[0xc]; // 0x13fc +public: + // MNetworkEnable + // MNetworkChangeCallback "OnSlopeDropHeightChanged" + // MNetworkPriority "32" + float m_flSlopeDropHeight; // 0x1408 +private: + [[maybe_unused]] uint8_t __pad140c[0xc]; // 0x140c public: // MNetworkEnable // MNetworkChangeCallback "OnHeadConstraintChanged" // MNetworkPriority "32" - Vector m_vHeadConstraintOffset; // 0x1408 + Vector m_vHeadConstraintOffset; // 0x1418 private: - [[maybe_unused]] uint8_t __pad1414[0xc]; // 0x1414 -public: - bool m_bClientTransparentImmunityAlphaEffectEnabled; // 0x1420 - bool m_bClientDeferDrawToImmunityAlphaPass; // 0x1421 - // MNetworkEnable - bool m_bIsScoped; // 0x1422 - // MNetworkEnable - bool m_bIsWalking; // 0x1423 - // MNetworkEnable - bool m_bResumeZoom; // 0x1424 -private: - [[maybe_unused]] uint8_t __pad1425[0x3]; // 0x1425 + [[maybe_unused]] uint8_t __pad1424[0xc]; // 0x1424 public: // MNetworkEnable - CSPlayerState m_iPlayerState; // 0x1428 + bool m_bIsScoped; // 0x1430 // MNetworkEnable - bool m_bIsDefusing; // 0x142c + bool m_bIsWalking; // 0x1431 // MNetworkEnable - bool m_bIsGrabbingHostage; // 0x142d + bool m_bResumeZoom; // 0x1432 private: - [[maybe_unused]] uint8_t __pad142e[0x2]; // 0x142e + [[maybe_unused]] uint8_t __pad1433[0x1]; // 0x1433 public: // MNetworkEnable - CSPlayerBlockingUseAction_t m_iBlockingUseActionInProgress; // 0x1430 + CSPlayerState m_iPlayerState; // 0x1434 // MNetworkEnable - bool m_bIsRescuing; // 0x1434 + bool m_bIsDefusing; // 0x1438 + // MNetworkEnable + bool m_bIsGrabbingHostage; // 0x1439 private: - [[maybe_unused]] uint8_t __pad1435[0x3]; // 0x1435 + [[maybe_unused]] uint8_t __pad143a[0x2]; // 0x143a public: // MNetworkEnable - GameTime_t m_fImmuneToGunGameDamageTime; // 0x1438 - GameTime_t m_fImmuneToGunGameDamageTimeLast; // 0x143c + CSPlayerBlockingUseAction_t m_iBlockingUseActionInProgress; // 0x143c // MNetworkEnable - bool m_bGunGameImmunity; // 0x1440 - // MNetworkEnable - bool m_bHasMovedSinceSpawn; // 0x1441 - // MNetworkEnable - bool m_bMadeFinalGunGameProgressiveKill; // 0x1442 + bool m_bIsRescuing; // 0x1440 private: - [[maybe_unused]] uint8_t __pad1443[0x1]; // 0x1443 + [[maybe_unused]] uint8_t __pad1441[0x3]; // 0x1441 public: // MNetworkEnable - int32_t m_iGunGameProgressiveWeaponIndex; // 0x1444 + GameTime_t m_fImmuneToGunGameDamageTime; // 0x1444 + GameTime_t m_fImmuneToGunGameDamageTimeLast; // 0x1448 // MNetworkEnable - int32_t m_iNumGunGameTRKillPoints; // 0x1448 + bool m_bGunGameImmunity; // 0x144c // MNetworkEnable - int32_t m_iNumGunGameKillsWithCurrentWeapon; // 0x144c + bool m_bHasMovedSinceSpawn; // 0x144d // MNetworkEnable - uint32_t m_unTotalRoundDamageDealt; // 0x1450 - // MNetworkEnable - float m_fMolotovUseTime; // 0x1454 - // MNetworkEnable - float m_fMolotovDamageTime; // 0x1458 - // MNetworkEnable - bool m_bInBombZone; // 0x145c + bool m_bMadeFinalGunGameProgressiveKill; // 0x144e private: - [[maybe_unused]] uint8_t __pad145d[0x3]; // 0x145d + [[maybe_unused]] uint8_t __pad144f[0x1]; // 0x144f public: // MNetworkEnable - int32_t m_nWhichBombZone; // 0x1460 + int32_t m_iGunGameProgressiveWeaponIndex; // 0x1450 // MNetworkEnable - bool m_bInBuyZone; // 0x1464 + int32_t m_iNumGunGameTRKillPoints; // 0x1454 // MNetworkEnable - bool m_bInNoDefuseArea; // 0x1465 + int32_t m_iNumGunGameKillsWithCurrentWeapon; // 0x1458 + // MNetworkEnable + uint32_t m_unTotalRoundDamageDealt; // 0x145c + // MNetworkEnable + float m_fMolotovUseTime; // 0x1460 + // MNetworkEnable + float m_fMolotovDamageTime; // 0x1464 + // MNetworkEnable + bool m_bInBombZone; // 0x1468 private: - [[maybe_unused]] uint8_t __pad1466[0x2]; // 0x1466 + [[maybe_unused]] uint8_t __pad1469[0x3]; // 0x1469 public: // MNetworkEnable - int32_t m_iThrowGrenadeCounter; // 0x1468 + int32_t m_nWhichBombZone; // 0x146c // MNetworkEnable - bool m_bWaitForNoAttack; // 0x146c + bool m_bInBuyZone; // 0x1470 // MNetworkEnable - bool m_bIsRespawningForDMBonus; // 0x146d + bool m_bInNoDefuseArea; // 0x1471 private: - [[maybe_unused]] uint8_t __pad146e[0x2]; // 0x146e + [[maybe_unused]] uint8_t __pad1472[0x2]; // 0x1472 public: // MNetworkEnable - float m_flGuardianTooFarDistFrac; // 0x1470 + int32_t m_iThrowGrenadeCounter; // 0x1474 // MNetworkEnable - GameTime_t m_flDetectedByEnemySensorTime; // 0x1474 - float m_flNextGuardianTooFarWarning; // 0x1478 - bool m_bSuppressGuardianTooFarWarningAudio; // 0x147c - // MNetworkEnable - bool m_bKilledByTaser; // 0x147d + bool m_bWaitForNoAttack; // 0x1478 private: - [[maybe_unused]] uint8_t __pad147e[0x2]; // 0x147e + [[maybe_unused]] uint8_t __pad1479[0x3]; // 0x1479 public: // MNetworkEnable - int32_t m_iMoveState; // 0x1480 + float m_flGuardianTooFarDistFrac; // 0x147c // MNetworkEnable - bool m_bCanMoveDuringFreezePeriod; // 0x1484 + GameTime_t m_flDetectedByEnemySensorTime; // 0x1480 + float m_flNextGuardianTooFarWarning; // 0x1484 + bool m_bSuppressGuardianTooFarWarningAudio; // 0x1488 // MNetworkEnable - bool m_isCurrentGunGameLeader; // 0x1485 - // MNetworkEnable - bool m_isCurrentGunGameTeamLeader; // 0x1486 + bool m_bKilledByTaser; // 0x1489 private: - [[maybe_unused]] uint8_t __pad1487[0x1]; // 0x1487 + [[maybe_unused]] uint8_t __pad148a[0x2]; // 0x148a public: // MNetworkEnable - float m_flLowerBodyYawTarget; // 0x1488 + int32_t m_iMoveState; // 0x148c // MNetworkEnable - bool m_bStrafing; // 0x148c + bool m_bCanMoveDuringFreezePeriod; // 0x1490 // MNetworkEnable - char m_szLastPlaceName[18]; // 0x148d + bool m_isCurrentGunGameLeader; // 0x1491 + // MNetworkEnable + bool m_isCurrentGunGameTeamLeader; // 0x1492 private: - [[maybe_unused]] uint8_t __pad149f[0x1]; // 0x149f + [[maybe_unused]] uint8_t __pad1493[0x1]; // 0x1493 public: - GameTime_t m_flLastSpawnTimeIndex; // 0x14a0 // MNetworkEnable - GameTime_t m_flEmitSoundTime; // 0x14a4 + float m_flLowerBodyYawTarget; // 0x1494 // MNetworkEnable - int32_t m_iAddonBits; // 0x14a8 + bool m_bStrafing; // 0x1498 // MNetworkEnable - int32_t m_iPrimaryAddon; // 0x14ac + char m_szLastPlaceName[18]; // 0x1499 +private: + [[maybe_unused]] uint8_t __pad14ab[0x1]; // 0x14ab +public: + GameTime_t m_flLastSpawnTimeIndex; // 0x14ac // MNetworkEnable - int32_t m_iSecondaryAddon; // 0x14b0 + GameTime_t m_flEmitSoundTime; // 0x14b0 // MNetworkEnable - int32_t m_iProgressBarDuration; // 0x14b4 + int32_t m_iAddonBits; // 0x14b4 // MNetworkEnable - float m_flProgressBarStartTime; // 0x14b8 + int32_t m_iPrimaryAddon; // 0x14b8 // MNetworkEnable - float m_flStamina; // 0x14bc + int32_t m_iSecondaryAddon; // 0x14bc // MNetworkEnable - int32_t m_iDirection; // 0x14c0 + int32_t m_iProgressBarDuration; // 0x14c0 // MNetworkEnable - int32_t m_iShotsFired; // 0x14c4 + float m_flProgressBarStartTime; // 0x14c4 + // MNetworkEnable + float m_flStamina; // 0x14c8 + // MNetworkEnable + int32_t m_iDirection; // 0x14cc + // MNetworkEnable + int32_t m_iShotsFired; // 0x14d0 // MNetworkEnable // MNetworkChangeCallback "OnNightVisionChanged" - bool m_bNightVisionOn; // 0x14c8 + bool m_bNightVisionOn; // 0x14d4 // MNetworkEnable - bool m_bHasNightVision; // 0x14c9 + bool m_bHasNightVision; // 0x14d5 private: - [[maybe_unused]] uint8_t __pad14ca[0x2]; // 0x14ca + [[maybe_unused]] uint8_t __pad14d6[0x2]; // 0x14d6 public: // MNetworkEnable - float m_flVelocityModifier; // 0x14cc + float m_flVelocityModifier; // 0x14d8 // MNetworkEnable - int32_t m_iStartAccount; // 0x14d0 + float m_flHitHeading; // 0x14dc // MNetworkEnable - bool m_bIsSpawnRappelling; // 0x14d4 + int32_t m_nHitBodyPart; // 0x14e0 + // MNetworkEnable + int32_t m_iStartAccount; // 0x14e4 + // MNetworkEnable + bool m_bIsSpawnRappelling; // 0x14e8 private: - [[maybe_unused]] uint8_t __pad14d5[0x3]; // 0x14d5 + [[maybe_unused]] uint8_t __pad14e9[0x3]; // 0x14e9 public: // MNetworkEnable - Vector m_vecSpawnRappellingRopeOrigin; // 0x14d8 - float m_flSpawnRappellingFadeOutForClientViewOffset; // 0x14e4 + Vector m_vecSpawnRappellingRopeOrigin; // 0x14ec + float m_flSpawnRappellingFadeOutForClientViewOffset; // 0x14f8 // MNetworkEnable - int32_t m_nSurvivalTeam; // 0x14e8 + int32_t m_nSurvivalTeam; // 0x14fc // MNetworkEnable - CHandle< C_CSPlayerPawnBase > m_hSurvivalAssassinationTarget; // 0x14ec + CHandle< C_CSPlayerPawnBase > m_hSurvivalAssassinationTarget; // 0x1500 // MNetworkEnable - float m_flHealthShotBoostExpirationTime; // 0x14f0 - float m_flLastKnownParachuteScreenEffectAmount; // 0x14f4 - Vector m_vecIntroStartEyePosition; // 0x14f8 - Vector m_vecIntroStartPlayerForward; // 0x1504 - float m_flClientDeathTime; // 0x1510 + float m_flHealthShotBoostExpirationTime; // 0x1504 + float m_flLastKnownParachuteScreenEffectAmount; // 0x1508 + Vector m_vecIntroStartEyePosition; // 0x150c + Vector m_vecIntroStartPlayerForward; // 0x1518 + GameTime_t m_flClientDeathTime; // 0x1524 private: - [[maybe_unused]] uint8_t __pad1514[0x8]; // 0x1514 + [[maybe_unused]] uint8_t __pad1528[0x8]; // 0x1528 public: - float m_flNightVisionAlpha; // 0x151c - bool m_bScreenTearFrameCaptured; // 0x1520 + float m_flNightVisionAlpha; // 0x1530 + bool m_bScreenTearFrameCaptured; // 0x1534 private: - [[maybe_unused]] uint8_t __pad1521[0x3]; // 0x1521 + [[maybe_unused]] uint8_t __pad1535[0x3]; // 0x1535 public: - float m_flFlashBangTime; // 0x1524 - float m_flFlashScreenshotAlpha; // 0x1528 - float m_flFlashOverlayAlpha; // 0x152c - bool m_bFlashBuildUp; // 0x1530 - bool m_bFlashDspHasBeenCleared; // 0x1531 - bool m_bFlashScreenshotHasBeenGrabbed; // 0x1532 + float m_flFlashBangTime; // 0x1538 + float m_flFlashScreenshotAlpha; // 0x153c + float m_flFlashOverlayAlpha; // 0x1540 + bool m_bFlashBuildUp; // 0x1544 + bool m_bFlashDspHasBeenCleared; // 0x1545 + bool m_bFlashScreenshotHasBeenGrabbed; // 0x1546 private: - [[maybe_unused]] uint8_t __pad1533[0x1]; // 0x1533 + [[maybe_unused]] uint8_t __pad1547[0x1]; // 0x1547 public: // MNetworkEnable // MNetworkChangeCallback "OnFlashMaxAlphaChanged" - float m_flFlashMaxAlpha; // 0x1534 + float m_flFlashMaxAlpha; // 0x1548 // MNetworkEnable // MNetworkChangeCallback "OnFlashDurationChanged" - float m_flFlashDuration; // 0x1538 - float m_flLastFiredWeaponTime; // 0x153c - Vector m_lastStandingPos; // 0x1540 - Vector m_vecLastMuzzleFlashPos; // 0x154c - QAngle m_angLastMuzzleFlashAngle; // 0x1558 - CHandle< C_BaseEntity > m_hMuzzleFlashShape; // 0x1564 - int32_t m_iHealthBarRenderMaskIndex; // 0x1568 - float m_flHealthFadeValue; // 0x156c - float m_flHealthFadeAlpha; // 0x1570 - int32_t m_nMyCollisionGroup; // 0x1574 - float m_ignoreLadderJumpTime; // 0x1578 + float m_flFlashDuration; // 0x154c + float m_flLastFiredWeaponTime; // 0x1550 + Vector m_lastStandingPos; // 0x1554 + Vector m_vecLastMuzzleFlashPos; // 0x1560 + QAngle m_angLastMuzzleFlashAngle; // 0x156c + CHandle< C_BaseEntity > m_hMuzzleFlashShape; // 0x1578 + int32_t m_iHealthBarRenderMaskIndex; // 0x157c + float m_flHealthFadeValue; // 0x1580 + float m_flHealthFadeAlpha; // 0x1584 + int32_t m_nMyCollisionGroup; // 0x1588 + float m_ignoreLadderJumpTime; // 0x158c + CountdownTimer m_ladderSurpressionTimer; // 0x1590 + Vector m_lastLadderNormal; // 0x15a8 + Vector m_lastLadderPos; // 0x15b4 private: - [[maybe_unused]] uint8_t __pad157c[0x4]; // 0x157c + [[maybe_unused]] uint8_t __pad15c0[0x8]; // 0x15c0 public: - CountdownTimer m_ladderSurpressionTimer; // 0x1580 - Vector m_lastLadderNormal; // 0x1598 - Vector m_lastLadderPos; // 0x15a4 + float m_flDeathCCWeight; // 0x15c8 + bool m_bOldIsScoped; // 0x15cc private: - [[maybe_unused]] uint8_t __pad15b0[0x8]; // 0x15b0 + [[maybe_unused]] uint8_t __pad15cd[0x3]; // 0x15cd public: - float m_flDeathCCWeight; // 0x15b8 - bool m_bOldIsScoped; // 0x15bc + float m_flPrevRoundEndTime; // 0x15d0 + float m_flPrevMatchEndTime; // 0x15d4 + // MNetworkEnable + uint16_t m_unCurrentEquipmentValue; // 0x15d8 + // MNetworkEnable + uint16_t m_unRoundStartEquipmentValue; // 0x15da + // MNetworkEnable + uint16_t m_unFreezetimeEndEquipmentValue; // 0x15dc + // MNetworkEnable + bool m_passiveItems[4]; // 0x15de private: - [[maybe_unused]] uint8_t __pad15bd[0x3]; // 0x15bd + [[maybe_unused]] uint8_t __pad15e2[0x2]; // 0x15e2 public: - float m_flPrevRoundEndTime; // 0x15c0 - float m_flPrevMatchEndTime; // 0x15c4 + Vector m_vecThirdPersonViewPositionOverride; // 0x15e4 // MNetworkEnable - uint16_t m_unCurrentEquipmentValue; // 0x15c8 + int32_t m_nHeavyAssaultSuitCooldownRemaining; // 0x15f0 // MNetworkEnable - uint16_t m_unRoundStartEquipmentValue; // 0x15ca - // MNetworkEnable - uint16_t m_unFreezetimeEndEquipmentValue; // 0x15cc - // MNetworkEnable - bool m_passiveItems[4]; // 0x15ce -private: - [[maybe_unused]] uint8_t __pad15d2[0x2]; // 0x15d2 -public: - Vector m_vecThirdPersonViewPositionOverride; // 0x15d4 - // MNetworkEnable - int32_t m_nHeavyAssaultSuitCooldownRemaining; // 0x15e0 - // MNetworkEnable - int32_t m_ArmorValue; // 0x15e4 + int32_t m_ArmorValue; // 0x15f4 // MNetworkEnable // MNetworkEncoder // MNetworkChangeCallback "playerEyeAnglesChanged" // MNetworkPriority "32" - QAngle m_angEyeAngles; // 0x15e8 + QAngle m_angEyeAngles; // 0x15f8 private: - [[maybe_unused]] uint8_t __pad15f4[0xc]; // 0x15f4 + [[maybe_unused]] uint8_t __pad1604[0xc]; // 0x1604 public: // MNetworkEnable - bool m_bInHostageRescueZone; // 0x1600 + bool m_bInHostageRescueZone; // 0x1610 private: - [[maybe_unused]] uint8_t __pad1601[0x3]; // 0x1601 + [[maybe_unused]] uint8_t __pad1611[0x3]; // 0x1611 public: - float m_fNextThinkPushAway; // 0x1604 - bool m_bShouldAutobuyDMWeapons; // 0x1608 - bool m_bShouldAutobuyNow; // 0x1609 + float m_fNextThinkPushAway; // 0x1614 + bool m_bShouldAutobuyDMWeapons; // 0x1618 + bool m_bShouldAutobuyNow; // 0x1619 // MNetworkEnable - bool m_bHud_MiniScoreHidden; // 0x160a + bool m_bHud_MiniScoreHidden; // 0x161a // MNetworkEnable - bool m_bHud_RadarHidden; // 0x160b + bool m_bHud_RadarHidden; // 0x161b // MNetworkEnable - CEntityIndex m_nLastKillerIndex; // 0x160c + CEntityIndex m_nLastKillerIndex; // 0x161c // MNetworkEnable - int32_t m_nLastConcurrentKilled; // 0x1610 + int32_t m_nLastConcurrentKilled; // 0x1620 // MNetworkEnable - int32_t m_nDeathCamMusic; // 0x1614 - CEntityIndex m_iIDEntIndex; // 0x1618 + int32_t m_nDeathCamMusic; // 0x1624 + CEntityIndex m_iIDEntIndex; // 0x1628 private: - [[maybe_unused]] uint8_t __pad161c[0x4]; // 0x161c + [[maybe_unused]] uint8_t __pad162c[0x4]; // 0x162c public: - CountdownTimer m_delayTargetIDTimer; // 0x1620 - CEntityIndex m_iTargetedWeaponEntIndex; // 0x1638 - CEntityIndex m_iOldIDEntIndex; // 0x163c - CountdownTimer m_holdTargetIDTimer; // 0x1640 + CountdownTimer m_delayTargetIDTimer; // 0x1630 + CEntityIndex m_iTargetedWeaponEntIndex; // 0x1648 + CEntityIndex m_iOldIDEntIndex; // 0x164c + CountdownTimer m_holdTargetIDTimer; // 0x1650 private: - [[maybe_unused]] uint8_t __pad1658[0x4c]; // 0x1658 + [[maybe_unused]] uint8_t __pad1668[0x4c]; // 0x1668 +public: + float m_flCurrentMusicStartTime; // 0x16b4 + float m_flMusicRoundStartTime; // 0x16b8 + bool m_bDeferStartMusicOnWarmup; // 0x16bc +private: + [[maybe_unused]] uint8_t __pad16bd[0x3]; // 0x16bd public: - float m_flCurrentMusicStartTime; // 0x16a4 - float m_flMusicRoundStartTime; // 0x16a8 // MNetworkEnable - int32_t m_cycleLatch; // 0x16ac - float m_serverIntendedCycle; // 0x16b0 + int32_t m_cycleLatch; // 0x16c0 + float m_serverIntendedCycle; // 0x16c4 // MNetworkEnable // MNetworkChangeCallback "RecvProxy_PatchEconIndices" - uint32_t m_vecPlayerPatchEconIndices[5]; // 0x16b4 + uint32_t m_vecPlayerPatchEconIndices[5]; // 0x16c8 private: - [[maybe_unused]] uint8_t __pad16c8[0x8]; // 0x16c8 + [[maybe_unused]] uint8_t __pad16dc[0x8]; // 0x16dc public: // MNetworkEnable - bool m_bHideTargetID; // 0x16d0 + bool m_bHideTargetID; // 0x16e4 private: - [[maybe_unused]] uint8_t __pad16d1[0x3]; // 0x16d1 + [[maybe_unused]] uint8_t __pad16e5[0x3]; // 0x16e5 public: - float m_nextTaserShakeTime; // 0x16d4 - float m_firstTaserShakeTime; // 0x16d8 - float m_flLastSmokeOverlayAlpha; // 0x16dc - Vector m_vLastSmokeOverlayColor; // 0x16e0 - ParticleIndex_t m_nPlayerSmokedFx; // 0x16ec - float m_flNextMagDropTime; // 0x16f0 - int32_t m_nLastMagDropAttachmentIndex; // 0x16f4 - CUtlVector< C_BulletHitModel* > m_vecBulletHitModels; // 0x16f8 - CUtlVector< C_PickUpModelSlerper* > m_vecPickupModelSlerpers; // 0x1710 - Vector m_vecLastAliveLocalVelocity; // 0x1728 - float m_flLastNearbyItemHighlightCheck; // 0x1734 - bool m_bInSurvivalDangerZone; // 0x1738 - bool m_bNearDangerZone; // 0x1739 + float m_nextTaserShakeTime; // 0x16e8 + float m_firstTaserShakeTime; // 0x16ec + float m_flLastSmokeOverlayAlpha; // 0x16f0 + Vector m_vLastSmokeOverlayColor; // 0x16f4 + ParticleIndex_t m_nPlayerSmokedFx; // 0x1700 + float m_flNextMagDropTime; // 0x1704 + int32_t m_nLastMagDropAttachmentIndex; // 0x1708 private: - [[maybe_unused]] uint8_t __pad173a[0x36]; // 0x173a + [[maybe_unused]] uint8_t __pad170c[0x4]; // 0x170c +public: + CUtlVector< C_BulletHitModel* > m_vecBulletHitModels; // 0x1710 + CUtlVector< C_PickUpModelSlerper* > m_vecPickupModelSlerpers; // 0x1728 + Vector m_vecLastAliveLocalVelocity; // 0x1740 + float m_flLastNearbyItemHighlightCheck; // 0x174c + bool m_bInSurvivalDangerZone; // 0x1750 + bool m_bNearDangerZone; // 0x1751 +private: + [[maybe_unused]] uint8_t __pad1752[0x36]; // 0x1752 public: // MNetworkEnable - EntitySpottedState_t m_entitySpottedState; // 0x1770 + EntitySpottedState_t m_entitySpottedState; // 0x1788 // MNetworkEnable - float m_flTimeOfLastInjury; // 0x1788 + float m_flTimeOfLastInjury; // 0x17a0 // MNetworkEnable - RelativeDamagedDirection_t m_nRelativeDirectionOfLastInjury; // 0x178c + RelativeDamagedDirection_t m_nRelativeDirectionOfLastInjury; // 0x17a4 // MNetworkEnable - int32_t m_nSurvivalTeamNumber; // 0x1790 + int32_t m_nSurvivalTeamNumber; // 0x17a8 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - float m_flNextSprayDecalTime; // 0x1794 - bool m_bPreviouslyInBuyZone; // 0x1798 + float m_flNextSprayDecalTime; // 0x17ac + bool m_bPreviouslyInBuyZone; // 0x17b0 private: - [[maybe_unused]] uint8_t __pad1799[0x3]; // 0x1799 + [[maybe_unused]] uint8_t __pad17b1[0x3]; // 0x17b1 public: - uint32_t m_unPreviousWeaponHash; // 0x179c - uint32_t m_unWeaponHash; // 0x17a0 - bool m_bPrevDefuser; // 0x17a4 - bool m_bPrevHelmet; // 0x17a5 + uint32_t m_unPreviousWeaponHash; // 0x17b4 + uint32_t m_unWeaponHash; // 0x17b8 + bool m_bPrevDefuser; // 0x17bc + bool m_bPrevHelmet; // 0x17bd private: - [[maybe_unused]] uint8_t __pad17a6[0x2]; // 0x17a6 + [[maybe_unused]] uint8_t __pad17be[0x2]; // 0x17be public: - int32_t m_nPrevArmorVal; // 0x17a8 - bool m_bGuardianShouldSprayCustomXMark; // 0x17ac + int32_t m_nPrevArmorVal; // 0x17c0 + int32_t m_nPrevGrenadeAmmoCount; // 0x17c4 + bool m_bGuardianShouldSprayCustomXMark; // 0x17c8 private: - [[maybe_unused]] uint8_t __pad17ad[0x3]; // 0x17ad + [[maybe_unused]] uint8_t __pad17c9[0x3]; // 0x17c9 public: // MNetworkEnable - // MNetworkEncoder - QAngle m_aimPunchAngle; // 0x17b0 + // MNetworkBitCount "32" + QAngle m_aimPunchAngle; // 0x17cc // MNetworkEnable - // MNetworkEncoder - QAngle m_aimPunchAngleVel; // 0x17bc + // MNetworkBitCount "32" + QAngle m_aimPunchAngleVel; // 0x17d8 // MNetworkEnable - int32_t m_aimPunchTickBase; // 0x17c8 + int32_t m_aimPunchTickBase; // 0x17e4 // MNetworkEnable - float m_aimPunchTickFraction; // 0x17cc - CUtlVector< QAngle > m_aimPunchCache; // 0x17d0 + float m_aimPunchTickFraction; // 0x17e8 private: - [[maybe_unused]] uint8_t __pad17e8[0x8]; // 0x17e8 + [[maybe_unused]] uint8_t __pad17ec[0x4]; // 0x17ec public: - float m_flOldFallVelocity; // 0x17f0 - bool m_bHasDeathInfo; // 0x17f4 + CUtlVector< QAngle > m_aimPunchCache; // 0x17f0 private: - [[maybe_unused]] uint8_t __pad17f5[0x3]; // 0x17f5 + [[maybe_unused]] uint8_t __pad1808[0x8]; // 0x1808 public: - float m_flDeathInfoTime; // 0x17f8 - Vector m_vecDeathInfoOrigin; // 0x17fc - // MNetworkEnable - bool m_bKilledByHeadshot; // 0x1808 + float m_flOldFallVelocity; // 0x1810 + bool m_bHasDeathInfo; // 0x1814 private: - [[maybe_unused]] uint8_t __pad1809[0x3]; // 0x1809 + [[maybe_unused]] uint8_t __pad1815[0x3]; // 0x1815 +public: + float m_flDeathInfoTime; // 0x1818 + Vector m_vecDeathInfoOrigin; // 0x181c + // MNetworkEnable + bool m_bKilledByHeadshot; // 0x1828 +private: + [[maybe_unused]] uint8_t __pad1829[0x3]; // 0x1829 public: // MNetworkEnable - CHandle< CCSPlayerController > m_hOriginalController; // 0x180c + CHandle< CCSPlayerController > m_hOriginalController; // 0x182c private: - [[maybe_unused]] uint8_t __pad1810[0x10]; // 0x1810 + [[maybe_unused]] uint8_t __pad1830[0x10]; // 0x1830 public: - float m_flLandseconds; // 0x1820 + float m_flLandseconds; // 0x1840 }; // Alignment: 1 -// Size: 0x1830 +// Size: 0x1878 class C_CSObserverPawn : public C_CSPlayerPawnBase { public: - CEntityHandle m_hDetectParentChange; // 0x1828 + CEntityHandle m_hDetectParentChange; // 0x1870 }; -// Alignment: 20 -// Size: 0x1f30 +// Alignment: 22 +// Size: 0x23a0 class C_CSPlayerPawn : public C_CSPlayerPawnBase { public: // MNetworkEnable - CCSPlayer_BulletServices* m_pBulletServices; // 0x1828 + CCSPlayer_BulletServices* m_pBulletServices; // 0x1870 // MNetworkEnable - CCSPlayer_HostageServices* m_pHostageServices; // 0x1830 + CCSPlayer_HostageServices* m_pHostageServices; // 0x1878 // MNetworkEnable - CCSPlayer_GlowServices* m_pGlowServices; // 0x1838 + CCSPlayer_BuyServices* m_pBuyServices; // 0x1880 // MNetworkEnable - bool m_bIsBuyMenuOpen; // 0x1840 + CCSPlayer_GlowServices* m_pGlowServices; // 0x1888 + // MNetworkEnable + bool m_bIsBuyMenuOpen; // 0x1890 private: - [[maybe_unused]] uint8_t __pad1841[0xbf]; // 0x1841 + [[maybe_unused]] uint8_t __pad1891[0xe7]; // 0x1891 public: // MNetworkEnable // MNetworkChangeCallback "OnRetakesOfferingChanged" - int32_t m_iRetakesOffering; // 0x1900 + int32_t m_iRetakesOffering; // 0x1978 // MNetworkEnable // MNetworkChangeCallback "OnRetakesOfferingCardChanged" - int32_t m_iRetakesOfferingCard; // 0x1904 + int32_t m_iRetakesOfferingCard; // 0x197c // MNetworkEnable - bool m_bRetakesHasDefuseKit; // 0x1908 + bool m_bRetakesHasDefuseKit; // 0x1980 // MNetworkEnable - bool m_bRetakesMVPLastRound; // 0x1909 + bool m_bRetakesMVPLastRound; // 0x1981 private: - [[maybe_unused]] uint8_t __pad190a[0x2]; // 0x190a + [[maybe_unused]] uint8_t __pad1982[0x2]; // 0x1982 public: // MNetworkEnable - int32_t m_iRetakesMVPBoostItem; // 0x190c + int32_t m_iRetakesMVPBoostItem; // 0x1984 // MNetworkEnable - loadout_positions_t m_RetakesMVPBoostExtraUtility; // 0x1910 + loadout_slot_t m_RetakesMVPBoostExtraUtility; // 0x1988 private: - [[maybe_unused]] uint8_t __pad1914[0x1c]; // 0x1914 + [[maybe_unused]] uint8_t __pad198c[0x1c]; // 0x198c public: - bool m_bNeedToReApplyGloves; // 0x1930 + bool m_bNeedToReApplyGloves; // 0x19a8 private: - [[maybe_unused]] uint8_t __pad1931[0x7]; // 0x1931 + [[maybe_unused]] uint8_t __pad19a9[0x7]; // 0x19a9 public: // MNetworkEnable - C_EconItemView m_EconGloves; // 0x1938 - bool m_bMustSyncRagdollState; // 0x1d80 + C_EconItemView m_EconGloves; // 0x19b0 + bool m_bMustSyncRagdollState; // 0x1df8 private: - [[maybe_unused]] uint8_t __pad1d81[0x3]; // 0x1d81 + [[maybe_unused]] uint8_t __pad1df9[0x3]; // 0x1df9 public: // MNetworkEnable - int32_t m_nRagdollDamageBone; // 0x1d84 + int32_t m_nRagdollDamageBone; // 0x1dfc // MNetworkEnable - Vector m_vRagdollDamageForce; // 0x1d88 + Vector m_vRagdollDamageForce; // 0x1e00 // MNetworkEnable - Vector m_vRagdollDamagePosition; // 0x1d94 + Vector m_vRagdollDamagePosition; // 0x1e0c // MNetworkEnable - char m_szRagdollDamageWeaponName[64]; // 0x1da0 + char m_szRagdollDamageWeaponName[64]; // 0x1e18 // MNetworkEnable - bool m_bRagdollDamageHeadshot; // 0x1de0 + bool m_bRagdollDamageHeadshot; // 0x1e58 private: - [[maybe_unused]] uint8_t __pad1de1[0x127]; // 0x1de1 + [[maybe_unused]] uint8_t __pad1e59[0x517]; // 0x1e59 public: - bool m_bLastHeadBoneTransformIsValid; // 0x1f08 + bool m_bLastHeadBoneTransformIsValid; // 0x2370 private: - [[maybe_unused]] uint8_t __pad1f09[0x1b]; // 0x1f09 + [[maybe_unused]] uint8_t __pad2371[0x1b]; // 0x2371 public: // MNetworkEnable - QAngle m_qDeathEyeAngles; // 0x1f24 + QAngle m_qDeathEyeAngles; // 0x238c + bool m_bSkipOneHeadConstraintUpdate; // 0x2398 }; -// Alignment: 16 -// Size: 0x11c0 +// Alignment: 23 +// Size: 0x1210 class C_Hostage : public C_BaseCombatCharacter { public: // MNetworkEnable - EntitySpottedState_t m_entitySpottedState; // 0x1138 + EntitySpottedState_t m_entitySpottedState; // 0x1140 // MNetworkEnable - CHandle< C_BaseEntity > m_leader; // 0x1150 + CHandle< C_BaseEntity > m_leader; // 0x1158 +private: + [[maybe_unused]] uint8_t __pad115c[0x4]; // 0x115c +public: // MNetworkEnable - Vector m_vel; // 0x1154 + CountdownTimer m_reuseTimer; // 0x1160 + // MNetworkEnable + Vector m_vel; // 0x1178 // MNetworkEnable // MNetworkChangeCallback "RecvProxy_Rescued" - bool m_isRescued; // 0x1160 + bool m_isRescued; // 0x1184 // MNetworkEnable // MNetworkChangeCallback "RecvProxy_Jumped" - bool m_jumpedThisFrame; // 0x1161 + bool m_jumpedThisFrame; // 0x1185 private: - [[maybe_unused]] uint8_t __pad1162[0x2]; // 0x1162 + [[maybe_unused]] uint8_t __pad1186[0x2]; // 0x1186 public: // MNetworkEnable - int32_t m_nHostageState; // 0x1164 + // MNetworkChangeCallback "OnHostageStateChanged" + int32_t m_nHostageState; // 0x1188 // MNetworkEnable - GameTime_t m_flRescueStartTime; // 0x1168 - // MNetworkEnable - GameTime_t m_flGrabSuccessTime; // 0x116c - // MNetworkEnable - GameTime_t m_flDropStartTime; // 0x1170 - GameTime_t m_flDeadOrRescuedTime; // 0x1174 - CountdownTimer m_blinkTimer; // 0x1178 - Vector m_lookAt; // 0x1190 + bool m_bHandsHaveBeenCut; // 0x118c private: - [[maybe_unused]] uint8_t __pad119c[0x4]; // 0x119c + [[maybe_unused]] uint8_t __pad118d[0x3]; // 0x118d public: - CountdownTimer m_lookAroundTimer; // 0x11a0 - bool m_isInit; // 0x11b8 - AttachmentHandle_t m_eyeAttachment; // 0x11b9 - AttachmentHandle_t m_chestAttachment; // 0x11ba + // MNetworkEnable + // MNetworkChangeCallback "OnGrabberChanged" + CHandle< C_CSPlayerPawn > m_hHostageGrabber; // 0x1190 + GameTime_t m_fLastGrabTime; // 0x1194 + Vector m_vecGrabbedPos; // 0x1198 + // MNetworkEnable + GameTime_t m_flRescueStartTime; // 0x11a4 + // MNetworkEnable + GameTime_t m_flGrabSuccessTime; // 0x11a8 + // MNetworkEnable + GameTime_t m_flDropStartTime; // 0x11ac + GameTime_t m_flDeadOrRescuedTime; // 0x11b0 +private: + [[maybe_unused]] uint8_t __pad11b4[0x4]; // 0x11b4 +public: + CountdownTimer m_blinkTimer; // 0x11b8 + Vector m_lookAt; // 0x11d0 +private: + [[maybe_unused]] uint8_t __pad11dc[0x4]; // 0x11dc +public: + CountdownTimer m_lookAroundTimer; // 0x11e0 + bool m_isInit; // 0x11f8 + AttachmentHandle_t m_eyeAttachment; // 0x11f9 + AttachmentHandle_t m_chestAttachment; // 0x11fa +private: + [[maybe_unused]] uint8_t __pad11fb[0x5]; // 0x11fb +public: + CBasePlayerController* m_pPredictionOwner; // 0x1200 + GameTime_t m_fNewestAlphaThinkTime; // 0x1208 }; // Alignment: 0 -// Size: 0x1138 +// Size: 0x1140 class C_NetTestBaseCombatCharacter : public C_BaseCombatCharacter { public: @@ -10010,7 +10453,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_AK47 : public C_WeaponCSBaseGun { public: @@ -10018,7 +10461,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponAug : public C_WeaponCSBaseGun { public: @@ -10026,7 +10469,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponAWP : public C_WeaponCSBaseGun { public: @@ -10034,7 +10477,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponBizon : public C_WeaponCSBaseGun { public: @@ -10042,7 +10485,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponFamas : public C_WeaponCSBaseGun { public: @@ -10050,7 +10493,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponFiveSeven : public C_WeaponCSBaseGun { public: @@ -10058,7 +10501,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponG3SG1 : public C_WeaponCSBaseGun { public: @@ -10066,7 +10509,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponGalilAR : public C_WeaponCSBaseGun { public: @@ -10074,7 +10517,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponGlock : public C_WeaponCSBaseGun { public: @@ -10082,7 +10525,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponHKP2000 : public C_WeaponCSBaseGun { public: @@ -10090,7 +10533,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponM4A1 : public C_WeaponCSBaseGun { public: @@ -10098,7 +10541,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponMAC10 : public C_WeaponCSBaseGun { public: @@ -10106,7 +10549,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponMag7 : public C_WeaponCSBaseGun { public: @@ -10114,7 +10557,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponMP7 : public C_WeaponCSBaseGun { public: @@ -10122,7 +10565,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponMP9 : public C_WeaponCSBaseGun { public: @@ -10130,7 +10573,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponNegev : public C_WeaponCSBaseGun { public: @@ -10138,7 +10581,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponP250 : public C_WeaponCSBaseGun { public: @@ -10146,7 +10589,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponP90 : public C_WeaponCSBaseGun { public: @@ -10154,7 +10597,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponSCAR20 : public C_WeaponCSBaseGun { public: @@ -10162,7 +10605,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponSG556 : public C_WeaponCSBaseGun { public: @@ -10170,7 +10613,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponSSG08 : public C_WeaponCSBaseGun { public: @@ -10178,7 +10621,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponTec9 : public C_WeaponCSBaseGun { public: @@ -10186,7 +10629,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponUMP45 : public C_WeaponCSBaseGun { public: @@ -10194,7 +10637,7 @@ public: }; // Alignment: 0 -// Size: 0x1970 +// Size: 0x1990 class C_WeaponM249 : public C_WeaponCSBaseGun { public: @@ -10202,7 +10645,7 @@ public: }; // Alignment: 0 -// Size: 0x19b0 +// Size: 0x19d0 class C_MolotovGrenade : public C_BaseCSGrenade { public: @@ -10210,7 +10653,7 @@ public: }; // Alignment: 0 -// Size: 0x19b0 +// Size: 0x19d0 class C_IncendiaryGrenade : public C_MolotovGrenade { public: @@ -10218,7 +10661,7 @@ public: }; // Alignment: 0 -// Size: 0x1990 +// Size: 0x19b0 class C_DecoyGrenade : public C_BaseCSGrenade { public: @@ -10226,7 +10669,7 @@ public: }; // Alignment: 0 -// Size: 0x1990 +// Size: 0x19b0 class C_Flashbang : public C_BaseCSGrenade { public: @@ -10234,7 +10677,7 @@ public: }; // Alignment: 0 -// Size: 0x1990 +// Size: 0x19b0 class C_HEGrenade : public C_BaseCSGrenade { public: @@ -10242,7 +10685,7 @@ public: }; // Alignment: 0 -// Size: 0x1990 +// Size: 0x19b0 class C_SmokeGrenade : public C_BaseCSGrenade { public: @@ -10250,17 +10693,17 @@ public: }; // Alignment: 3 -// Size: 0x1fc0 +// Size: 0x2438 class C_CSGO_PreviewPlayer : public C_CSPlayerPawn { public: - CUtlString m_animgraph; // 0x1f30 - CUtlString m_animgraphCharacterModeString; // 0x1f38 - float m_flInitialModelScale; // 0x1f40 + CUtlString m_animgraph; // 0x23a0 + CUtlString m_animgraphCharacterModeString; // 0x23a8 + float m_flInitialModelScale; // 0x23b0 }; // Alignment: 0 -// Size: 0x1fc0 +// Size: 0x2438 class C_CSGO_PreviewPlayerAlias_csgo_player_previewmodel : public C_CSGO_PreviewPlayer { public: @@ -10268,7 +10711,7 @@ public: }; // Alignment: 0 -// Size: 0x1fc0 +// Size: 0x2438 class C_CSGO_TeamPreviewModel : public C_CSGO_PreviewPlayer { public: diff --git a/sdk/engine2.hpp b/sdk/engine2.hpp index 2849e477..f91e9d85 100644 --- a/sdk/engine2.hpp +++ b/sdk/engine2.hpp @@ -59,6 +59,8 @@ struct CScriptComponent; // Size: 0x28 struct EngineLoopState_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: int32_t m_nPlatWindowWidth; // 0x18 int32_t m_nPlatWindowHeight; // 0x1c @@ -70,8 +72,10 @@ public: // Size: 0x1 struct EventModInitialized_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -94,8 +98,10 @@ public: // Size: 0x1 struct EventSplitScreenStateChanged_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 8 @@ -286,8 +292,10 @@ public: // Size: 0x1 struct EventClientPredictionPostNetupdate_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -302,8 +310,10 @@ public: // Size: 0x1 struct EventClientProcessNetworking_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 @@ -398,14 +408,18 @@ public: // Size: 0x8 class IHandleEntity { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 1 // Size: 0x28 class CNetworkVarChainer { +private: + [[maybe_unused]] uint8_t __pad0000[0x20]; // 0x0 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -416,16 +430,20 @@ public: // Size: 0x1 class CVariantDefaultAllocator { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x10 struct EntOutput_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: - uint8_t __pad0000[0x10]; // Autoaligned + // No members available }; // Alignment: 7 @@ -449,22 +467,28 @@ public: // Size: 0x8 class CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x30 struct EntInput_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: - uint8_t __pad0000[0x30]; // Autoaligned + // No members available }; // Alignment: 4 // Size: 0x28 class CEntityComponentHelper { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: uint32_t m_flags; // 0x8 private: @@ -482,6 +506,8 @@ public: // Size: 0x78 class CEntityIdentity { +private: + [[maybe_unused]] uint8_t __pad0000[0x14]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "entityIdentityNameChanged" @@ -514,8 +540,10 @@ public: // Size: 0x8 class CEmptyEntityInstance { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 3 @@ -540,6 +568,8 @@ public: // Size: 0x28 class CEntityIOOutput { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: CVariantBase< CVariantDefaultAllocator > m_Value; // 0x18 }; @@ -548,8 +578,12 @@ public: // Size: 0x38 class CScriptComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x28]; // 0x8 public: CUtlSymbolLarge m_scriptClassName; // 0x30 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("engine2.dll")->FindDeclaredClass("CScriptComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("engine2.dll")->FindDeclaredClass("CScriptComponent")->m_static_fields[1]->m_instance);}; }; diff --git a/sdk/host.hpp b/sdk/host.hpp index cdc64f20..7229829e 100644 --- a/sdk/host.hpp +++ b/sdk/host.hpp @@ -13,12 +13,14 @@ // Size: 0x10 class CAnimScriptBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: bool m_bIsValid; // 0x8 }; // Alignment: 1 -// Size: 0x38 +// Size: 0x20 class EmptyTestScript : public CAnimScriptBase { public: diff --git a/sdk/particles.hpp b/sdk/particles.hpp index 562aaaf0..68960694 100644 --- a/sdk/particles.hpp +++ b/sdk/particles.hpp @@ -4,7 +4,7 @@ // ///////////////////////////////////////////////////////////// // Binary: particles.dll -// Classes count: 428 +// Classes count: 438 // Enums count: 68 // Created using source2gen - github.com/neverlosecc/source2gen // ///////////////////////////////////////////////////////////// @@ -619,7 +619,7 @@ enum class TextureRepetitionMode_t : uint32_t }; // Alignment: 4 -// Size: 0x16 +// Size: 0x18 enum class ParticleFloatType_t : uint32_t { PF_TYPE_INVALID = 0xffffffffffffffff, @@ -633,17 +633,19 @@ enum class ParticleFloatType_t : uint32_t PF_TYPE_CONTROL_POINT_CHANGE_AGE = 0x7, PF_TYPE_CONTROL_POINT_SPEED = 0x8, PF_TYPE_PARTICLE_DETAIL_LEVEL = 0x9, - PF_TYPE_RENDERER_CAMERA_DISTANCE = 0xa, - PF_TYPE_RENDERER_CAMERA_DOT_PRODUCT = 0xb, - PF_TYPE_PARTICLE_NOISE = 0xc, - PF_TYPE_PARTICLE_AGE = 0xd, - PF_TYPE_PARTICLE_AGE_NORMALIZED = 0xe, - PF_TYPE_PARTICLE_FLOAT = 0xf, - PF_TYPE_PARTICLE_VECTOR_COMPONENT = 0x10, - PF_TYPE_PARTICLE_SPEED = 0x11, - PF_TYPE_PARTICLE_NUMBER = 0x12, - PF_TYPE_PARTICLE_NUMBER_NORMALIZED = 0x13, - PF_TYPE_COUNT = 0x14, + PF_TYPE_CONCURRENT_DEF_COUNT = 0xa, + PF_TYPE_CLOSEST_CAMERA_DISTANCE = 0xb, + PF_TYPE_RENDERER_CAMERA_DISTANCE = 0xc, + PF_TYPE_RENDERER_CAMERA_DOT_PRODUCT = 0xd, + PF_TYPE_PARTICLE_NOISE = 0xe, + PF_TYPE_PARTICLE_AGE = 0xf, + PF_TYPE_PARTICLE_AGE_NORMALIZED = 0x10, + PF_TYPE_PARTICLE_FLOAT = 0x11, + PF_TYPE_PARTICLE_VECTOR_COMPONENT = 0x12, + PF_TYPE_PARTICLE_SPEED = 0x13, + PF_TYPE_PARTICLE_NUMBER = 0x14, + PF_TYPE_PARTICLE_NUMBER_NORMALIZED = 0x15, + PF_TYPE_COUNT = 0x16, }; // Alignment: 4 @@ -811,6 +813,9 @@ struct ParticleAttributeIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("particles.dll")->FindDeclaredClass("ParticleAttributeIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 3 @@ -836,8 +841,8 @@ public: int32_t m_nValue; // 0x8 }; -// Alignment: 15 -// Size: 0x58 +// Alignment: 16 +// Size: 0x68 struct ParticlePreviewState_t { public: @@ -859,6 +864,10 @@ public: bool m_bShouldDrawAttachmentNames; // 0x52 bool m_bShouldDrawControlPointAxes; // 0x53 bool m_bAnimationNonLooping; // 0x54 +private: + [[maybe_unused]] uint8_t __pad0055[0x3]; // 0x55 +public: + Vector m_vecPreviewGravity; // 0x58 }; // Alignment: 6 @@ -875,7 +884,7 @@ public: }; // Alignment: 3 -// Size: 0x78 +// Size: 0x88 struct ParticleControlPointConfiguration_t { public: @@ -888,24 +897,30 @@ public: // Size: 0x10 class IParticleCollection { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: - uint8_t __pad0000[0x10]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x8 class IControlPointEditorData { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x8 class IParticleSystemDefinition { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 18 @@ -1085,7 +1100,7 @@ public: float m_flTimeDuration; // 0x14 }; -// Alignment: 63 +// Alignment: 64 // Size: 0x3e0 class CParticleSystemDefinition : public IParticleSystemDefinition { @@ -1240,8 +1255,10 @@ public: bool m_bShouldBatch; // 0x30c // MPropertyFriendlyName "Hitboxes fall back to render bounds" bool m_bShouldHitboxesFallbackToRenderBounds; // 0x30d + // MPropertyFriendlyName "Hitboxes fall back to snapshot" + bool m_bShouldHitboxesFallbackToSnapshot; // 0x30e private: - [[maybe_unused]] uint8_t __pad030e[0x2]; // 0x30e + [[maybe_unused]] uint8_t __pad030f[0x1]; // 0x30f public: // MPropertyStartGroup "Rendering Options" // MPropertyFriendlyName "view model effect" @@ -1263,22 +1280,24 @@ public: // MParticleAdvancedField bool m_bShouldSort; // 0x328 private: - [[maybe_unused]] uint8_t __pad0329[0x3f]; // 0x329 + [[maybe_unused]] uint8_t __pad0329[0x47]; // 0x329 public: // MPropertySuppressField - CUtlVector< ParticleControlPointConfiguration_t > m_controlPointConfigurations; // 0x368 + CUtlVector< ParticleControlPointConfiguration_t > m_controlPointConfigurations; // 0x370 }; // Alignment: 0 // Size: 0x10 class CParticleInput { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: - uint8_t __pad0000[0x10]; // Autoaligned + // No members available }; -// Alignment: 44 -// Size: 0x150 +// Alignment: 45 +// Size: 0x158 class CParticleFloatInput : public CParticleInput { public: @@ -1322,32 +1341,33 @@ public: float m_flNoiseImgPreviewScale; // 0xcc bool m_bNoiseImgPreviewLive; // 0xd0 private: - [[maybe_unused]] uint8_t __pad00d1[0x8]; // 0xd1 + [[maybe_unused]] uint8_t __pad00d1[0xb]; // 0xd1 public: - bool m_bUseBoundsCenter; // 0xd9 + float m_flNoCameraFallback; // 0xdc + bool m_bUseBoundsCenter; // 0xe0 private: - [[maybe_unused]] uint8_t __pad00da[0x2]; // 0xda + [[maybe_unused]] uint8_t __pad00e1[0x3]; // 0xe1 public: - ParticleFloatInputMode_t m_nInputMode; // 0xdc - float m_flMultFactor; // 0xe0 - float m_flInput0; // 0xe4 - float m_flInput1; // 0xe8 - float m_flOutput0; // 0xec - float m_flOutput1; // 0xf0 - float m_flNotchedRangeMin; // 0xf4 - float m_flNotchedRangeMax; // 0xf8 - float m_flNotchedOutputOutside; // 0xfc - float m_flNotchedOutputInside; // 0x100 - ParticleFloatBiasType_t m_nBiasType; // 0x104 - float m_flBiasParameter; // 0x108 + ParticleFloatInputMode_t m_nInputMode; // 0xe4 + float m_flMultFactor; // 0xe8 + float m_flInput0; // 0xec + float m_flInput1; // 0xf0 + float m_flOutput0; // 0xf4 + float m_flOutput1; // 0xf8 + float m_flNotchedRangeMin; // 0xfc + float m_flNotchedRangeMax; // 0x100 + float m_flNotchedOutputOutside; // 0x104 + float m_flNotchedOutputInside; // 0x108 + ParticleFloatBiasType_t m_nBiasType; // 0x10c + float m_flBiasParameter; // 0x110 private: - [[maybe_unused]] uint8_t __pad010c[0x4]; // 0x10c + [[maybe_unused]] uint8_t __pad0114[0x4]; // 0x114 public: - CPiecewiseCurve m_Curve; // 0x110 + CPiecewiseCurve m_Curve; // 0x118 }; // Alignment: 0 -// Size: 0x150 +// Size: 0x158 class CParticleCollectionFloatInput : public CParticleFloatInput { public: @@ -1355,129 +1375,131 @@ public: }; // Alignment: 16 -// Size: 0x1b0 +// Size: 0x1c0 class CParticleFunction { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MPropertyFriendlyName "operator strength" // MPropertySortPriority "-100" CParticleCollectionFloatInput m_flOpStrength; // 0x8 // MPropertyFriendlyName "operator end cap state" // MPropertySortPriority "-100" - ParticleEndcapMode_t m_nOpEndCapState; // 0x158 + ParticleEndcapMode_t m_nOpEndCapState; // 0x160 // MPropertyStartGroup "Operator Fade" // MPropertyFriendlyName "operator start fadein" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpStartFadeInTime; // 0x15c + float m_flOpStartFadeInTime; // 0x164 // MPropertyFriendlyName "operator end fadein" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpEndFadeInTime; // 0x160 + float m_flOpEndFadeInTime; // 0x168 // MPropertyFriendlyName "operator start fadeout" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpStartFadeOutTime; // 0x164 + float m_flOpStartFadeOutTime; // 0x16c // MPropertyFriendlyName "operator end fadeout" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpEndFadeOutTime; // 0x168 + float m_flOpEndFadeOutTime; // 0x170 // MPropertyFriendlyName "operator fade oscillate" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpFadeOscillatePeriod; // 0x16c + float m_flOpFadeOscillatePeriod; // 0x174 // MPropertyFriendlyName "normalize fade times to endcap" // MParticleAdvancedField // MPropertySortPriority "-100" - bool m_bNormalizeToStopTime; // 0x170 + bool m_bNormalizeToStopTime; // 0x178 private: - [[maybe_unused]] uint8_t __pad0171[0x3]; // 0x171 + [[maybe_unused]] uint8_t __pad0179[0x3]; // 0x179 public: // MPropertyStartGroup "Operator Fade Time Offset" // MPropertyFriendlyName "operator fade time offset min" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpTimeOffsetMin; // 0x174 + float m_flOpTimeOffsetMin; // 0x17c // MPropertyFriendlyName "operator fade time offset max" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpTimeOffsetMax; // 0x178 + float m_flOpTimeOffsetMax; // 0x180 // MPropertyFriendlyName "operator fade time offset seed" // MParticleAdvancedField // MPropertySortPriority "-100" - int32_t m_nOpTimeOffsetSeed; // 0x17c + int32_t m_nOpTimeOffsetSeed; // 0x184 // MPropertyStartGroup "Operator Fade Timescale Modifiers" // MPropertyFriendlyName "operator fade time scale seed" // MParticleAdvancedField // MPropertySortPriority "-100" - int32_t m_nOpTimeScaleSeed; // 0x180 + int32_t m_nOpTimeScaleSeed; // 0x188 // MPropertyFriendlyName "operator fade time scale min" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpTimeScaleMin; // 0x184 + float m_flOpTimeScaleMin; // 0x18c // MPropertyFriendlyName "operator fade time scale max" // MParticleAdvancedField // MPropertySortPriority "-100" - float m_flOpTimeScaleMax; // 0x188 + float m_flOpTimeScaleMax; // 0x190 private: - [[maybe_unused]] uint8_t __pad018c[0x1]; // 0x18c + [[maybe_unused]] uint8_t __pad0194[0x2]; // 0x194 public: // MPropertyStartGroup // MPropertySuppressField - bool m_bDisableOperator; // 0x18d + bool m_bDisableOperator; // 0x196 private: - [[maybe_unused]] uint8_t __pad018e[0x2]; // 0x18e + [[maybe_unused]] uint8_t __pad0197[0x1]; // 0x197 public: // MPropertyFriendlyName "operator help and notes" // MParticleHelpField // MParticleAdvancedField // MPropertySortPriority "-100" - CUtlString m_Notes; // 0x190 + CUtlString m_Notes; // 0x198 }; // Alignment: 0 -// Size: 0x1b0 -class CParticleFunctionForce : public CParticleFunction -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class CParticleFunctionOperator : public CParticleFunction { public: // No members available }; +// Alignment: 0 +// Size: 0x1d0 +class CParticleFunctionForce : public CParticleFunction +{ +public: + // No members available +}; + // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class CParticleFunctionPreEmission : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Run Only Once" - bool m_bRunOnce; // 0x1b0 + bool m_bRunOnce; // 0x1c0 }; // Alignment: 3 // Size: 0x200 class CParticleFunctionRenderer : public CParticleFunction { + // Collision detected(0x1b8->0x1c0), output may be wrong. public: - // MPropertySortPriority "-1" - CParticleVisibilityInputs VisibilityInputs; // 0x1b0 + // Skipped field "VisibilityInputs" @ 0x1b8 because of the struct collision // MPropertyStartGroup "Rendering filter" // MPropertyFriendlyName "I cannot be refracted through refracting objects like water" // MPropertySortPriority "-1" - bool m_bCannotBeRefracted; // 0x1f4 + bool m_bCannotBeRefracted; // 0x1fc // MPropertyFriendlyName "Skip rendering on mobile" // MPropertySortPriority "-1" - bool m_bSkipRenderingOnMobile; // 0x1f5 + bool m_bSkipRenderingOnMobile; // 0x1fd }; // Alignment: 0 -// Size: 0x150 +// Size: 0x158 class CParticleCollectionRendererFloatInput : public CParticleCollectionFloatInput { public: @@ -1485,49 +1507,49 @@ public: }; // Alignment: 16 -// Size: 0x950 +// Size: 0x988 struct TextureControls_t { public: // MPropertyFriendlyName "horizontal texture scale" CParticleCollectionRendererFloatInput m_flFinalTextureScaleU; // 0x0 // MPropertyFriendlyName "vertical texture scale" - CParticleCollectionRendererFloatInput m_flFinalTextureScaleV; // 0x150 + CParticleCollectionRendererFloatInput m_flFinalTextureScaleV; // 0x158 // MPropertyFriendlyName "horizontal texture offset" - CParticleCollectionRendererFloatInput m_flFinalTextureOffsetU; // 0x2a0 + CParticleCollectionRendererFloatInput m_flFinalTextureOffsetU; // 0x2b0 // MPropertyFriendlyName "vertical texture offset" - CParticleCollectionRendererFloatInput m_flFinalTextureOffsetV; // 0x3f0 + CParticleCollectionRendererFloatInput m_flFinalTextureOffsetV; // 0x408 // MPropertyFriendlyName "texture rotation / animation rate scale" - CParticleCollectionRendererFloatInput m_flFinalTextureUVRotation; // 0x540 + CParticleCollectionRendererFloatInput m_flFinalTextureUVRotation; // 0x560 // MPropertyFriendlyName "Infinite Zoom Scale" - CParticleCollectionRendererFloatInput m_flZoomScale; // 0x690 + CParticleCollectionRendererFloatInput m_flZoomScale; // 0x6b8 // MPropertyFriendlyName "Distortion Amount" - CParticleCollectionRendererFloatInput m_flDistortion; // 0x7e0 + CParticleCollectionRendererFloatInput m_flDistortion; // 0x810 // MPropertyFriendlyName "Randomize Initial Offset" - bool m_bRandomizeOffsets; // 0x930 + bool m_bRandomizeOffsets; // 0x968 // MPropertyFriendlyName "Clamp UVs" - bool m_bClampUVs; // 0x931 + bool m_bClampUVs; // 0x969 private: - [[maybe_unused]] uint8_t __pad0932[0x2]; // 0x932 + [[maybe_unused]] uint8_t __pad096a[0x2]; // 0x96a public: // MPropertyFriendlyName "per-particle scalar for blend" - SpriteCardPerParticleScale_t m_nPerParticleBlend; // 0x934 + SpriteCardPerParticleScale_t m_nPerParticleBlend; // 0x96c // MPropertyFriendlyName "per-particle scalar for scale" - SpriteCardPerParticleScale_t m_nPerParticleScale; // 0x938 + SpriteCardPerParticleScale_t m_nPerParticleScale; // 0x970 // MPropertyFriendlyName "per-particle scalar for horizontal offset" - SpriteCardPerParticleScale_t m_nPerParticleOffsetU; // 0x93c + SpriteCardPerParticleScale_t m_nPerParticleOffsetU; // 0x974 // MPropertyFriendlyName "per-particle scalar for vertical offset" - SpriteCardPerParticleScale_t m_nPerParticleOffsetV; // 0x940 + SpriteCardPerParticleScale_t m_nPerParticleOffsetV; // 0x978 // MPropertyFriendlyName "per-particle scalar for rotation" - SpriteCardPerParticleScale_t m_nPerParticleRotation; // 0x944 + SpriteCardPerParticleScale_t m_nPerParticleRotation; // 0x97c // MPropertyFriendlyName "per-particle scalar for zoom" - SpriteCardPerParticleScale_t m_nPerParticleZoom; // 0x948 + SpriteCardPerParticleScale_t m_nPerParticleZoom; // 0x980 // MPropertyFriendlyName "per-particle scalar for distortion" - SpriteCardPerParticleScale_t m_nPerParticleDistortion; // 0x94c + SpriteCardPerParticleScale_t m_nPerParticleDistortion; // 0x984 }; // Alignment: 23 -// Size: 0x638 +// Size: 0x658 class CParticleVecInput : public CParticleInput { public: @@ -1550,20 +1572,20 @@ public: Vector m_vCPRelativePosition; // 0x90 Vector m_vCPRelativeDir; // 0x9c CParticleFloatInput m_FloatComponentX; // 0xa8 - CParticleFloatInput m_FloatComponentY; // 0x1f8 - CParticleFloatInput m_FloatComponentZ; // 0x348 - CParticleFloatInput m_FloatInterp; // 0x498 - float m_flInterpInput0; // 0x5e8 - float m_flInterpInput1; // 0x5ec - Vector m_vInterpOutput0; // 0x5f0 - Vector m_vInterpOutput1; // 0x5fc - CColorGradient m_Gradient; // 0x608 - Vector m_vRandomMin; // 0x620 - Vector m_vRandomMax; // 0x62c + CParticleFloatInput m_FloatComponentY; // 0x200 + CParticleFloatInput m_FloatComponentZ; // 0x358 + CParticleFloatInput m_FloatInterp; // 0x4b0 + float m_flInterpInput0; // 0x608 + float m_flInterpInput1; // 0x60c + Vector m_vInterpOutput0; // 0x610 + Vector m_vInterpOutput1; // 0x61c + CColorGradient m_Gradient; // 0x628 + Vector m_vRandomMin; // 0x640 + Vector m_vRandomMax; // 0x64c }; // Alignment: 0 -// Size: 0x638 +// Size: 0x658 class CParticleCollectionVecInput : public CParticleVecInput { public: @@ -1571,7 +1593,7 @@ public: }; // Alignment: 2 -// Size: 0x158 +// Size: 0x160 struct FloatInputMaterialVariable_t { public: @@ -1582,7 +1604,7 @@ public: }; // Alignment: 0 -// Size: 0x638 +// Size: 0x658 class CParticleCollectionRendererVecInput : public CParticleCollectionVecInput { public: @@ -1590,7 +1612,7 @@ public: }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class CParticleFunctionConstraint : public CParticleFunction { public: @@ -1622,13 +1644,13 @@ public: // Size: 0x1c0 class CParticleFunctionEmitter : public CParticleFunction { + // Collision detected(0x1b8->0x1c0), output may be wrong. public: - // MPropertyFriendlyName "Emitter Index" - int32_t m_nEmitterIndex; // 0x1b0 + // Skipped field "m_nEmitterIndex" @ 0x1b8 because of the struct collision }; // Alignment: 0 -// Size: 0x150 +// Size: 0x158 class CPerParticleFloatInput : public CParticleFloatInput { public: @@ -1639,13 +1661,13 @@ public: // Size: 0x1c0 class CParticleFunctionInitializer : public CParticleFunction { + // Collision detected(0x1b8->0x1c0), output may be wrong. public: - // MPropertyFriendlyName "Associated emitter Index" - int32_t m_nAssociatedEmitterIndex; // 0x1b0 + // Skipped field "m_nAssociatedEmitterIndex" @ 0x1b8 because of the struct collision }; // Alignment: 9 -// Size: 0xad8 +// Size: 0xb18 struct TextureGroup_t { public: @@ -1680,11 +1702,11 @@ public: CParticleCollectionRendererFloatInput m_flTextureBlend; // 0x38 // MPropertyFriendlyName "Texture Controls" // MPropertySuppressExpr "( m_nTextureType == SPRITECARD_TEXTURE_NORMALMAP || m_nTextureType == SPRITECARD_TEXTURE_ANIMMOTIONVEC || m_nTextureType == SPRITECARD_TEXTURE_6POINT_XYZ_A || m_nTextureType == SPRITECARD_TEXTURE_6POINT_NEGXYZ_E )" - TextureControls_t m_TextureControls; // 0x188 + TextureControls_t m_TextureControls; // 0x190 }; // Alignment: 0 -// Size: 0x150 +// Size: 0x158 class CParticleRemapFloatInput : public CParticleFloatInput { public: @@ -1692,7 +1714,7 @@ public: }; // Alignment: 61 -// Size: 0x2390 +// Size: 0x2470 class CBaseRendererSource2 : public CParticleFunctionRenderer { public: @@ -1702,236 +1724,236 @@ public: CParticleCollectionRendererFloatInput m_flRadiusScale; // 0x200 // MPropertyFriendlyName "alpha scale" // MPropertySortPriority "700" - CParticleCollectionRendererFloatInput m_flAlphaScale; // 0x350 + CParticleCollectionRendererFloatInput m_flAlphaScale; // 0x358 // MPropertyFriendlyName "rotation roll scale" // MPropertySortPriority "700" - CParticleCollectionRendererFloatInput m_flRollScale; // 0x4a0 + CParticleCollectionRendererFloatInput m_flRollScale; // 0x4b0 // MPropertyFriendlyName "per-particle alpha scale attribute" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "700" - ParticleAttributeIndex_t m_nAlpha2Field; // 0x5f0 + ParticleAttributeIndex_t m_nAlpha2Field; // 0x608 private: - [[maybe_unused]] uint8_t __pad05f4[0x4]; // 0x5f4 + [[maybe_unused]] uint8_t __pad060c[0x4]; // 0x60c public: // MPropertyFriendlyName "color blend" // MPropertySortPriority "700" - CParticleCollectionRendererVecInput m_vecColorScale; // 0x5f8 + CParticleCollectionRendererVecInput m_vecColorScale; // 0x610 // MPropertyFriendlyName "color blend type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0xc30 + ParticleColorBlendType_t m_nColorBlendType; // 0xc68 // MPropertyStartGroup "+Material" // MPropertyFriendlyName "Shader" // MPropertySortPriority "600" - SpriteCardShaderType_t m_nShaderType; // 0xc34 + SpriteCardShaderType_t m_nShaderType; // 0xc6c // MPropertyFriendlyName "Custom Shader" // MPropertySuppressExpr "m_nShaderType != SPRITECARD_SHADER_CUSTOM" // MPropertySortPriority "600" - CUtlString m_strShaderOverride; // 0xc38 + CUtlString m_strShaderOverride; // 0xc70 // MPropertyFriendlyName "X offset of center point" // MPropertySortPriority "600" - CParticleCollectionRendererFloatInput m_flCenterXOffset; // 0xc40 + CParticleCollectionRendererFloatInput m_flCenterXOffset; // 0xc78 // MPropertyFriendlyName "Y offset of center point" // MPropertySortPriority "600" - CParticleCollectionRendererFloatInput m_flCenterYOffset; // 0xd90 + CParticleCollectionRendererFloatInput m_flCenterYOffset; // 0xdd0 // MPropertyFriendlyName "Bump Strength" // MPropertySortPriority "600" - float m_flBumpStrength; // 0xee0 + float m_flBumpStrength; // 0xf28 // MPropertyFriendlyName "Sheet Crop Behavior" // MPropertySortPriority "600" - ParticleSequenceCropOverride_t m_nCropTextureOverride; // 0xee4 + ParticleSequenceCropOverride_t m_nCropTextureOverride; // 0xf2c // MPropertyFriendlyName "Textures" // MParticleRequireDefaultArrayEntry // MPropertyAutoExpandSelf // MPropertySortPriority "600" - CUtlVector< TextureGroup_t > m_vecTexturesInput; // 0xee8 + CUtlVector< TextureGroup_t > m_vecTexturesInput; // 0xf30 // MPropertyStartGroup "Animation" // MPropertyFriendlyName "animation rate" // MPropertyAttributeRange "0 5" // MPropertySortPriority "500" - float m_flAnimationRate; // 0xf00 + float m_flAnimationRate; // 0xf48 // MPropertyFriendlyName "animation type" // MPropertySortPriority "500" - AnimationType_t m_nAnimationType; // 0xf04 + AnimationType_t m_nAnimationType; // 0xf4c // MPropertyFriendlyName "set animation value in FPS" // MPropertySortPriority "500" - bool m_bAnimateInFPS; // 0xf08 + bool m_bAnimateInFPS; // 0xf50 private: - [[maybe_unused]] uint8_t __pad0f09[0x7]; // 0xf09 + [[maybe_unused]] uint8_t __pad0f51[0x7]; // 0xf51 public: // MPropertyStartGroup "Lighting and Shadows" // MPropertyFriendlyName "self illum amount" // MPropertyAttributeRange "0 2" // MPropertySortPriority "400" - CParticleCollectionRendererFloatInput m_flSelfIllumAmount; // 0xf10 + CParticleCollectionRendererFloatInput m_flSelfIllumAmount; // 0xf58 // MPropertyFriendlyName "diffuse lighting amount" // MPropertyAttributeRange "0 1" // MPropertySortPriority "400" - CParticleCollectionRendererFloatInput m_flDiffuseAmount; // 0x1060 + CParticleCollectionRendererFloatInput m_flDiffuseAmount; // 0x10b0 // MPropertyFriendlyName "diffuse lighting origin Control Point" // MPropertySortPriority "400" - int32_t m_nLightingControlPoint; // 0x11b0 + int32_t m_nLightingControlPoint; // 0x1208 // MPropertyFriendlyName "self illum per-particle" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "400" - ParticleAttributeIndex_t m_nSelfIllumPerParticle; // 0x11b4 + ParticleAttributeIndex_t m_nSelfIllumPerParticle; // 0x120c // MPropertyStartGroup "+Color and alpha adjustments" // MPropertyFriendlyName "output blend mode" // MPropertySortPriority "300" - ParticleOutputBlendMode_t m_nOutputBlendMode; // 0x11b8 + ParticleOutputBlendMode_t m_nOutputBlendMode; // 0x1210 // MPropertyFriendlyName "Gamma-correct vertex colors" // MPropertySortPriority "300" - bool m_bGammaCorrectVertexColors; // 0x11bc + bool m_bGammaCorrectVertexColors; // 0x1214 // MPropertyFriendlyName "Saturate color pre alphablend" // MPropertySortPriority "300" // MPropertySuppressExpr "mod!=dota" - bool m_bSaturateColorPreAlphaBlend; // 0x11bd + bool m_bSaturateColorPreAlphaBlend; // 0x1215 private: - [[maybe_unused]] uint8_t __pad11be[0x2]; // 0x11be + [[maybe_unused]] uint8_t __pad1216[0x2]; // 0x1216 public: // MPropertyFriendlyName "add self amount over alphablend" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flAddSelfAmount; // 0x11c0 + CParticleCollectionRendererFloatInput m_flAddSelfAmount; // 0x1218 // MPropertyFriendlyName "desaturation amount" // MPropertyAttributeRange "0 1" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flDesaturation; // 0x1310 + CParticleCollectionRendererFloatInput m_flDesaturation; // 0x1370 // MPropertyFriendlyName "overbright factor" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flOverbrightFactor; // 0x1460 + CParticleCollectionRendererFloatInput m_flOverbrightFactor; // 0x14c8 // MPropertyFriendlyName "HSV Shift Control Point" // MPropertySortPriority "300" - int32_t m_nHSVShiftControlPoint; // 0x15b0 + int32_t m_nHSVShiftControlPoint; // 0x1620 // MPropertyFriendlyName "Apply fog to particle" // MPropertySortPriority "300" - ParticleFogType_t m_nFogType; // 0x15b4 + ParticleFogType_t m_nFogType; // 0x1624 // MPropertyFriendlyName "Fog Scale" // MPropertySortPriority "300" // MPropertySuppressExpr "mod != hlx" - CParticleCollectionRendererFloatInput m_flFogAmount; // 0x15b8 + CParticleCollectionRendererFloatInput m_flFogAmount; // 0x1628 // MPropertyFriendlyName "Apply fog of war to color" // MPropertySortPriority "300" // MPropertySuppressExpr "mod != dota" - bool m_bTintByFOW; // 0x1708 + bool m_bTintByFOW; // 0x1780 // MPropertyFriendlyName "Apply global light to color" // MPropertySortPriority "300" // MPropertySuppressExpr "mod != dota" - bool m_bTintByGlobalLight; // 0x1709 + bool m_bTintByGlobalLight; // 0x1781 private: - [[maybe_unused]] uint8_t __pad170a[0x2]; // 0x170a + [[maybe_unused]] uint8_t __pad1782[0x2]; // 0x1782 public: // MPropertyStartGroup "Color and alpha adjustments/Alpha Reference" // MPropertyFriendlyName "alpha reference" // MPropertySortPriority "300" - SpriteCardPerParticleScale_t m_nPerParticleAlphaReference; // 0x170c + SpriteCardPerParticleScale_t m_nPerParticleAlphaReference; // 0x1784 // MPropertyFriendlyName "alpha reference window size" // MPropertySortPriority "300" - SpriteCardPerParticleScale_t m_nPerParticleAlphaRefWindow; // 0x1710 + SpriteCardPerParticleScale_t m_nPerParticleAlphaRefWindow; // 0x1788 // MPropertyFriendlyName "alpha reference type" // MPropertySortPriority "300" - ParticleAlphaReferenceType_t m_nAlphaReferenceType; // 0x1714 + ParticleAlphaReferenceType_t m_nAlphaReferenceType; // 0x178c // MPropertyFriendlyName "alpha reference softness" // MPropertyAttributeRange "0 1" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flAlphaReferenceSoftness; // 0x1718 + CParticleCollectionRendererFloatInput m_flAlphaReferenceSoftness; // 0x1790 // MPropertyFriendlyName "source alpha value to map to alpha of zero" // MPropertyAttributeRange "0 1" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flSourceAlphaValueToMapToZero; // 0x1868 + CParticleCollectionRendererFloatInput m_flSourceAlphaValueToMapToZero; // 0x18e8 // MPropertyFriendlyName "source alpha value to map to alpha of 1" // MPropertyAttributeRange "0 1" // MPropertySortPriority "300" - CParticleCollectionRendererFloatInput m_flSourceAlphaValueToMapToOne; // 0x19b8 + CParticleCollectionRendererFloatInput m_flSourceAlphaValueToMapToOne; // 0x1a40 // MPropertyStartGroup "Refraction" // MPropertyFriendlyName "refract background" // MPropertySortPriority "200" - bool m_bRefract; // 0x1b08 + bool m_bRefract; // 0x1b98 // MPropertyFriendlyName "refract draws opaque - alpha scales refraction" // MPropertySortPriority "200" // MPropertySuppressExpr "!m_bRefract" - bool m_bRefractSolid; // 0x1b09 + bool m_bRefractSolid; // 0x1b99 private: - [[maybe_unused]] uint8_t __pad1b0a[0x6]; // 0x1b0a + [[maybe_unused]] uint8_t __pad1b9a[0x6]; // 0x1b9a public: // MPropertyFriendlyName "refract amount" // MPropertyAttributeRange "-2 2" // MPropertySortPriority "200" // MPropertySuppressExpr "!m_bRefract" - CParticleCollectionRendererFloatInput m_flRefractAmount; // 0x1b10 + CParticleCollectionRendererFloatInput m_flRefractAmount; // 0x1ba0 // MPropertyFriendlyName "refract blur radius" // MPropertySortPriority "200" // MPropertySuppressExpr "!m_bRefract" - int32_t m_nRefractBlurRadius; // 0x1c60 + int32_t m_nRefractBlurRadius; // 0x1cf8 // MPropertyFriendlyName "refract blur type" // MPropertySortPriority "200" // MPropertySuppressExpr "!m_bRefract" - BlurFilterType_t m_nRefractBlurType; // 0x1c64 + BlurFilterType_t m_nRefractBlurType; // 0x1cfc // MPropertyStartGroup // MPropertyFriendlyName "Only Render in effects bloom pass" // MPropertySortPriority "1100" - bool m_bOnlyRenderInEffectsBloomPass; // 0x1c68 + bool m_bOnlyRenderInEffectsBloomPass; // 0x1d00 // MPropertyFriendlyName "Only Render in effects water pass" // MPropertySortPriority "1050" // MPropertySuppressExpr "mod != csgo" - bool m_bOnlyRenderInEffectsWaterPass; // 0x1c69 + bool m_bOnlyRenderInEffectsWaterPass; // 0x1d01 // MPropertyFriendlyName "Use Mixed Resolution Rendering" // MPropertySortPriority "1200" - bool m_bUseMixedResolutionRendering; // 0x1c6a + bool m_bUseMixedResolutionRendering; // 0x1d02 // MPropertyFriendlyName "Only Render in effects game overlay pass" // MPropertySortPriority "1210" // MPropertySuppressExpr "mod != csgo" - bool m_bOnlyRenderInEffecsGameOverlay; // 0x1c6b + bool m_bOnlyRenderInEffecsGameOverlay; // 0x1d03 // MPropertyStartGroup "Stencil" // MPropertyFriendlyName "stencil test ID" // MPropertySortPriority "0" - char m_stencilTestID[128]; // 0x1c6c + char m_stencilTestID[128]; // 0x1d04 // MPropertyFriendlyName "only write where stencil is NOT stencil test ID" // MPropertySortPriority "0" - bool m_bStencilTestExclude; // 0x1cec + bool m_bStencilTestExclude; // 0x1d84 // MPropertyFriendlyName "stencil write ID" // MPropertySortPriority "0" - char m_stencilWriteID[128]; // 0x1ced + char m_stencilWriteID[128]; // 0x1d85 // MPropertyFriendlyName "write stencil on z-buffer test success" // MPropertySortPriority "0" - bool m_bWriteStencilOnDepthPass; // 0x1d6d + bool m_bWriteStencilOnDepthPass; // 0x1e05 // MPropertyFriendlyName "write stencil on z-buffer test failure" // MPropertySortPriority "0" - bool m_bWriteStencilOnDepthFail; // 0x1d6e + bool m_bWriteStencilOnDepthFail; // 0x1e06 // MPropertyStartGroup "Depth buffer control and effects" // MPropertyFriendlyName "reverse z-buffer test" // MPropertySortPriority "900" - bool m_bReverseZBuffering; // 0x1d6f + bool m_bReverseZBuffering; // 0x1e07 // MPropertyFriendlyName "disable z-buffer test" // MPropertySortPriority "900" - bool m_bDisableZBuffering; // 0x1d70 + bool m_bDisableZBuffering; // 0x1e08 private: - [[maybe_unused]] uint8_t __pad1d71[0x3]; // 0x1d71 + [[maybe_unused]] uint8_t __pad1e09[0x3]; // 0x1e09 public: // MPropertyFriendlyName "Depth feathering mode" // MPropertySortPriority "900" - ParticleDepthFeatheringMode_t m_nFeatheringMode; // 0x1d74 + ParticleDepthFeatheringMode_t m_nFeatheringMode; // 0x1e0c // MPropertyFriendlyName "particle feathering closest distance to surface" // MPropertySortPriority "900" - CParticleCollectionRendererFloatInput m_flFeatheringMinDist; // 0x1d78 + CParticleCollectionRendererFloatInput m_flFeatheringMinDist; // 0x1e10 // MPropertyFriendlyName "particle feathering farthest distance to surface" // MPropertySortPriority "900" - CParticleCollectionRendererFloatInput m_flFeatheringMaxDist; // 0x1ec8 + CParticleCollectionRendererFloatInput m_flFeatheringMaxDist; // 0x1f68 // MPropertyFriendlyName "particle feathering filter" // MPropertySortPriority "900" - CParticleCollectionRendererFloatInput m_flFeatheringFilter; // 0x2018 + CParticleCollectionRendererFloatInput m_flFeatheringFilter; // 0x20c0 // MPropertyFriendlyName "depth comparison bias" // MPropertySortPriority "900" - float m_flDepthBias; // 0x2168 + float m_flDepthBias; // 0x2218 // MPropertyFriendlyName "Sort Method" // MPropertySortPriority "900" - ParticleSortingChoiceList_t m_nSortMethod; // 0x216c + ParticleSortingChoiceList_t m_nSortMethod; // 0x221c // MPropertyStartGroup "Animation" // MPropertyFriendlyName "blend sequence animation frames" // MPropertySortPriority "500" - bool m_bBlendFramesSeq0; // 0x2170 + bool m_bBlendFramesSeq0; // 0x2220 // MPropertyFriendlyName "use max-luminance blending for sequence" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bBlendFramesSeq0" - bool m_bMaxLuminanceBlendingSequence0; // 0x2171 + bool m_bMaxLuminanceBlendingSequence0; // 0x2221 }; // Alignment: 3 @@ -1948,7 +1970,7 @@ public: }; // Alignment: 22 -// Size: 0x13c0 +// Size: 0x1420 class C_OP_RenderCables : public CParticleFunctionRenderer { public: @@ -1958,71 +1980,71 @@ public: CParticleCollectionFloatInput m_flRadiusScale; // 0x200 // MPropertyFriendlyName "alpha scale" // MPropertySortPriority "700" - CParticleCollectionFloatInput m_flAlphaScale; // 0x350 + CParticleCollectionFloatInput m_flAlphaScale; // 0x358 // MPropertyFriendlyName "color blend" // MPropertySortPriority "700" - CParticleCollectionVecInput m_vecColorScale; // 0x4a0 + CParticleCollectionVecInput m_vecColorScale; // 0x4b0 // MPropertyFriendlyName "color blend type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0xad8 + ParticleColorBlendType_t m_nColorBlendType; // 0xb08 private: - [[maybe_unused]] uint8_t __pad0adc[0x4]; // 0xadc + [[maybe_unused]] uint8_t __pad0b0c[0x4]; // 0xb0c public: // MPropertyStartGroup - CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0xae0 + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0xb10 // MPropertyFriendlyName "texture repetition mode" - TextureRepetitionMode_t m_nTextureRepetitionMode; // 0xae8 + TextureRepetitionMode_t m_nTextureRepetitionMode; // 0xb18 private: - [[maybe_unused]] uint8_t __pad0aec[0x4]; // 0xaec + [[maybe_unused]] uint8_t __pad0b1c[0x4]; // 0xb1c public: // MPropertyFriendlyName "texture repetitions" - CParticleCollectionFloatInput m_flTextureRepeatsPerSegment; // 0xaf0 + CParticleCollectionFloatInput m_flTextureRepeatsPerSegment; // 0xb20 // MPropertyFriendlyName "texture repetitions around cable" - CParticleCollectionFloatInput m_flTextureRepeatsCircumference; // 0xc40 + CParticleCollectionFloatInput m_flTextureRepeatsCircumference; // 0xc78 // MPropertyFriendlyName "color map offset along path" - CParticleCollectionFloatInput m_flColorMapOffsetV; // 0xd90 + CParticleCollectionFloatInput m_flColorMapOffsetV; // 0xdd0 // MPropertyFriendlyName "color map offset around cable" - CParticleCollectionFloatInput m_flColorMapOffsetU; // 0xee0 + CParticleCollectionFloatInput m_flColorMapOffsetU; // 0xf28 // MPropertyFriendlyName "normal map offset along path" - CParticleCollectionFloatInput m_flNormalMapOffsetV; // 0x1030 + CParticleCollectionFloatInput m_flNormalMapOffsetV; // 0x1080 // MPropertyFriendlyName "normal map offset around cable" - CParticleCollectionFloatInput m_flNormalMapOffsetU; // 0x1180 + CParticleCollectionFloatInput m_flNormalMapOffsetU; // 0x11d8 // MPropertyFriendlyName "draw caps at each end of the cable" - bool m_bDrawCableCaps; // 0x12d0 + bool m_bDrawCableCaps; // 0x1330 private: - [[maybe_unused]] uint8_t __pad12d1[0x3]; // 0x12d1 + [[maybe_unused]] uint8_t __pad1331[0x3]; // 0x1331 public: // MPropertyFriendlyName "cable end cap shape factor" // MPropertyAttributeRange "0 2" - float m_flCapRoundness; // 0x12d4 + float m_flCapRoundness; // 0x1334 // MPropertyFriendlyName "cable end cap offset amount" // MPropertyAttributeRange "0 2" - float m_flCapOffsetAmount; // 0x12d8 + float m_flCapOffsetAmount; // 0x1338 // MPropertyFriendlyName "tessellation scale factor" - float m_flTessScale; // 0x12dc + float m_flTessScale; // 0x133c // MPropertyFriendlyName "minimum steps between particles" - int32_t m_nMinTesselation; // 0x12e0 + int32_t m_nMinTesselation; // 0x1340 // MPropertyFriendlyName "maximum steps between particles" - int32_t m_nMaxTesselation; // 0x12e4 + int32_t m_nMaxTesselation; // 0x1344 // MPropertyFriendlyName "roundness factor" - int32_t m_nRoundness; // 0x12e8 + int32_t m_nRoundness; // 0x1348 private: - [[maybe_unused]] uint8_t __pad12ec[0x4]; // 0x12ec + [[maybe_unused]] uint8_t __pad134c[0x4]; // 0x134c public: // MPropertyFriendlyName "diffuse lighting origin" // MParticleInputOptional - CParticleTransformInput m_LightingTransform; // 0x12f0 + CParticleTransformInput m_LightingTransform; // 0x1350 // MPropertyFriendlyName "material float variables" - CUtlVector< FloatInputMaterialVariable_t > m_MaterialFloatVars; // 0x1358 + CUtlVector< FloatInputMaterialVariable_t > m_MaterialFloatVars; // 0x13b8 private: - [[maybe_unused]] uint8_t __pad1370[0x18]; // 0x1370 + [[maybe_unused]] uint8_t __pad13d0[0x18]; // 0x13d0 public: // MPropertyFriendlyName "material vector variables" - CUtlVector< VecInputMaterialVariable_t > m_MaterialVecVars; // 0x1388 + CUtlVector< VecInputMaterialVariable_t > m_MaterialVecVars; // 0x13e8 }; // Alignment: 0 -// Size: 0x638 +// Size: 0x658 class CPerParticleVecInput : public CParticleVecInput { public: @@ -2030,7 +2052,7 @@ public: }; // Alignment: 2 -// Size: 0x640 +// Size: 0x660 struct VecInputMaterialVariable_t { public: @@ -2041,129 +2063,129 @@ public: }; // Alignment: 27 -// Size: 0x2a80 +// Size: 0x2b90 class C_OP_RenderSprites : public CBaseRendererSource2 { public: // MPropertyStartGroup "Animation" // MPropertyFriendlyName "sequence id override" // MPropertySortPriority "500" - CParticleCollectionRendererFloatInput m_nSequenceOverride; // 0x2390 + CParticleCollectionRendererFloatInput m_nSequenceOverride; // 0x2470 // MPropertyStartGroup "Orientation" // MPropertyFriendlyName "orientation type" // MPropertySortPriority "750" - ParticleOrientationChoiceList_t m_nOrientationType; // 0x24e0 + ParticleOrientationChoiceList_t m_nOrientationType; // 0x25c8 // MPropertyFriendlyName "orientation control point" // MPropertySortPriority "750" // MPropertySuppressExpr "m_nOrientationType != PARTICLE_ORIENTATION_ALIGN_TO_PARTICLE_NORMAL && m_nOrientationType != PARTICLE_ORIENTATION_SCREENALIGN_TO_PARTICLE_NORMAL" - int32_t m_nOrientationControlPoint; // 0x24e4 + int32_t m_nOrientationControlPoint; // 0x25cc // MPropertyFriendlyName "enable yaw for particles aligned to normals" // MPropertySortPriority "750" // MPropertySuppressExpr "m_nOrientationType != PARTICLE_ORIENTATION_ALIGN_TO_PARTICLE_NORMAL && m_nOrientationType != PARTICLE_ORIENTATION_SCREENALIGN_TO_PARTICLE_NORMAL" - bool m_bUseYawWithNormalAligned; // 0x24e8 + bool m_bUseYawWithNormalAligned; // 0x25d0 private: - [[maybe_unused]] uint8_t __pad24e9[0x3]; // 0x24e9 + [[maybe_unused]] uint8_t __pad25d1[0x3]; // 0x25d1 public: // MPropertyStartGroup "Fading and culling" // MPropertyFriendlyName "minimum visual screen size" // MPropertySortPriority "1000" - float m_flMinSize; // 0x24ec + float m_flMinSize; // 0x25d4 // MPropertyFriendlyName "maximum visual screen size" // MPropertySortPriority "1000" - float m_flMaxSize; // 0x24f0 + float m_flMaxSize; // 0x25d8 // MPropertyFriendlyName "Factor to map size adjustment to alpha" // MPropertySortPriority "1000" - float m_flAlphaAdjustWithSizeAdjust; // 0x24f4 + float m_flAlphaAdjustWithSizeAdjust; // 0x25dc // MPropertyFriendlyName "screen size to start fading" // MPropertySortPriority "1000" - CParticleCollectionRendererFloatInput m_flStartFadeSize; // 0x24f8 + CParticleCollectionRendererFloatInput m_flStartFadeSize; // 0x25e0 // MPropertyFriendlyName "screen size to fade away" // MPropertySortPriority "1000" - CParticleCollectionRendererFloatInput m_flEndFadeSize; // 0x2648 + CParticleCollectionRendererFloatInput m_flEndFadeSize; // 0x2738 // MPropertyFriendlyName "start fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flStartFadeDot; // 0x2798 + float m_flStartFadeDot; // 0x2890 // MPropertyFriendlyName "end fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flEndFadeDot; // 0x279c + float m_flEndFadeDot; // 0x2894 // MPropertyStartGroup "Distance to alpha coding" // MPropertyFriendlyName "distance alpha" // MPropertySortPriority "0" - bool m_bDistanceAlpha; // 0x27a0 + bool m_bDistanceAlpha; // 0x2898 // MPropertyFriendlyName "use soft edges for distance alpha" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bDistanceAlpha" - bool m_bSoftEdges; // 0x27a1 + bool m_bSoftEdges; // 0x2899 private: - [[maybe_unused]] uint8_t __pad27a2[0x2]; // 0x27a2 + [[maybe_unused]] uint8_t __pad289a[0x2]; // 0x289a public: // MPropertyFriendlyName "start value for soft edges for distance alpha" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bDistanceAlpha" - float m_flEdgeSoftnessStart; // 0x27a4 + float m_flEdgeSoftnessStart; // 0x289c // MPropertyFriendlyName "end value for soft edges for distance alpha" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bDistanceAlpha" - float m_flEdgeSoftnessEnd; // 0x27a8 + float m_flEdgeSoftnessEnd; // 0x28a0 // MPropertyStartGroup "Outlining" // MPropertyFriendlyName "enable particle outlining" // MPropertySortPriority "0" - bool m_bOutline; // 0x27ac + bool m_bOutline; // 0x28a4 // MPropertyFriendlyName "outline color" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - Color m_OutlineColor; // 0x27ad + Color m_OutlineColor; // 0x28a5 private: - [[maybe_unused]] uint8_t __pad27b1[0x3]; // 0x27b1 + [[maybe_unused]] uint8_t __pad28a9[0x3]; // 0x28a9 public: // MPropertyFriendlyName "outline alpha" // MPropertyAttributeRange "0 255" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - int32_t m_nOutlineAlpha; // 0x27b4 + int32_t m_nOutlineAlpha; // 0x28ac // MPropertyFriendlyName "outline start 0" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - float m_flOutlineStart0; // 0x27b8 + float m_flOutlineStart0; // 0x28b0 // MPropertyFriendlyName "outline start 1" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - float m_flOutlineStart1; // 0x27bc + float m_flOutlineStart1; // 0x28b4 // MPropertyFriendlyName "outline end 0" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - float m_flOutlineEnd0; // 0x27c0 + float m_flOutlineEnd0; // 0x28b8 // MPropertyFriendlyName "outline end 1" // MPropertySortPriority "0" // MPropertySuppressExpr "!m_bOutline" - float m_flOutlineEnd1; // 0x27c4 + float m_flOutlineEnd1; // 0x28bc // MPropertyStartGroup "Lighting and Shadows" // MPropertyFriendlyName "lighting mode" // MPropertySortPriority "400" // MPropertySuppressExpr "mod != hlx" - ParticleLightingQuality_t m_nLightingMode; // 0x27c8 + ParticleLightingQuality_t m_nLightingMode; // 0x28c0 private: - [[maybe_unused]] uint8_t __pad27cc[0x4]; // 0x27cc + [[maybe_unused]] uint8_t __pad28c4[0x4]; // 0x28c4 public: // MPropertyFriendlyName "vertex lighting tessellation (0-5)" // MPropertyAttributeRange "0 5" // MPropertySortPriority "400" // MPropertySuppressExpr "mod != hlx || m_nLightingMode != PARTICLE_LIGHTING_PER_VERTEX" - CParticleCollectionRendererFloatInput m_flLightingTessellation; // 0x27d0 + CParticleCollectionRendererFloatInput m_flLightingTessellation; // 0x28c8 // MPropertyFriendlyName "lighting directionality" // MPropertySortPriority "400" // MPropertySuppressExpr "mod != hlx" - CParticleCollectionRendererFloatInput m_flLightingDirectionality; // 0x2920 + CParticleCollectionRendererFloatInput m_flLightingDirectionality; // 0x2a20 // MPropertyFriendlyName "Particle Shadows" // MPropertySortPriority "400" - bool m_bParticleShadows; // 0x2a70 + bool m_bParticleShadows; // 0x2b78 private: - [[maybe_unused]] uint8_t __pad2a71[0x3]; // 0x2a71 + [[maybe_unused]] uint8_t __pad2b79[0x3]; // 0x2b79 public: // MPropertyFriendlyName "Shadow Density" // MPropertySortPriority "400" // MPropertySuppressExpr "!m_bParticleShadows" - float m_flShadowDensity; // 0x2a74 + float m_flShadowDensity; // 0x2b7c }; // Alignment: 1 @@ -2186,8 +2208,10 @@ public: // Size: 0x8 class IParticleEffect { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 0 @@ -2198,6 +2222,14 @@ public: // No members available }; +// Alignment: 0 +// Size: 0x140 +class CParticleBindingRealPulse : public CParticleCollectionBindingInstance +{ +public: + // No members available +}; + // Alignment: 6 // Size: 0x38 struct ParticleNamedValueConfiguration_t @@ -2245,14 +2277,18 @@ public: // Size: 0x28 class CParticleProperty { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: - uint8_t __pad0000[0x28]; // Autoaligned + // No members available }; // Alignment: 32 // Size: 0xc8 class CNewParticleEffect : public IParticleEffect { +private: + [[maybe_unused]] uint8_t __pad0008[0x8]; // 0x8 public: CNewParticleEffect* m_pNext; // 0x10 CNewParticleEffect* m_pPrev; // 0x18 @@ -2302,265 +2338,270 @@ public: }; // Alignment: 5 -// Size: 0x470 +// Size: 0x490 class C_OP_ConstrainDistance : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "minimum distance" - CParticleCollectionFloatInput m_fMinDistance; // 0x1b0 + CParticleCollectionFloatInput m_fMinDistance; // 0x1c0 // MPropertyFriendlyName "maximum distance" - CParticleCollectionFloatInput m_fMaxDistance; // 0x300 + CParticleCollectionFloatInput m_fMaxDistance; // 0x318 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x450 + int32_t m_nControlPointNumber; // 0x470 // MPropertyFriendlyName "offset of center" // MVectorIsCoordinate - Vector m_CenterOffset; // 0x454 + Vector m_CenterOffset; // 0x474 // MPropertyFriendlyName "global center point" - bool m_bGlobalCenter; // 0x460 + bool m_bGlobalCenter; // 0x480 }; // Alignment: 2 -// Size: 0x450 +// Size: 0x470 class C_OP_CollideWithSelf : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "particle radius scale" - CPerParticleFloatInput m_flRadiusScale; // 0x1b0 + CPerParticleFloatInput m_flRadiusScale; // 0x1c0 // MPropertyFriendlyName "minimum speed for check" - CPerParticleFloatInput m_flMinimumSpeed; // 0x300 + CPerParticleFloatInput m_flMinimumSpeed; // 0x318 }; // Alignment: 2 -// Size: 0x450 +// Size: 0x470 class C_OP_CollideWithParentParticles : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "parent particle radius scale" - CPerParticleFloatInput m_flParentRadiusScale; // 0x1b0 + CPerParticleFloatInput m_flParentRadiusScale; // 0x1c0 // MPropertyFriendlyName "particle radius scale" - CPerParticleFloatInput m_flRadiusScale; // 0x300 + CPerParticleFloatInput m_flRadiusScale; // 0x318 }; // Alignment: 8 -// Size: 0x210 +// Size: 0x220 class C_OP_ConstrainDistanceToPath : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "minimum distance" - float m_fMinDistance; // 0x1b0 + float m_fMinDistance; // 0x1c0 // MPropertyFriendlyName "maximum distance" - float m_flMaxDistance0; // 0x1b4 + float m_flMaxDistance0; // 0x1c4 // MPropertyFriendlyName "maximum distance middle" - float m_flMaxDistanceMid; // 0x1b8 + float m_flMaxDistanceMid; // 0x1c8 // MPropertyFriendlyName "maximum distance end" - float m_flMaxDistance1; // 0x1bc - CPathParameters m_PathParameters; // 0x1c0 + float m_flMaxDistance1; // 0x1cc + CPathParameters m_PathParameters; // 0x1d0 // MPropertyFriendlyName "travel time" - float m_flTravelTime; // 0x200 + float m_flTravelTime; // 0x210 // MPropertyFriendlyName "travel time scale field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldScale; // 0x204 + ParticleAttributeIndex_t m_nFieldScale; // 0x214 // MPropertyFriendlyName "manual time placement field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nManualTField; // 0x208 + ParticleAttributeIndex_t m_nManualTField; // 0x218 }; // Alignment: 5 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_ConstrainDistanceToUserSpecifiedPath : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "minimum distance" - float m_fMinDistance; // 0x1b0 + float m_fMinDistance; // 0x1c0 // MPropertyFriendlyName "maximum distance" - float m_flMaxDistance; // 0x1b4 + float m_flMaxDistance; // 0x1c4 // MPropertyFriendlyName "Time scale" - float m_flTimeScale; // 0x1b8 + float m_flTimeScale; // 0x1c8 // MPropertyFriendlyName "Treat path as a loop" - bool m_bLoopedPath; // 0x1bc + bool m_bLoopedPath; // 0x1cc private: - [[maybe_unused]] uint8_t __pad01bd[0x3]; // 0x1bd + [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd public: // MPropertyFriendlyName "path points" - CUtlVector< PointDefinitionWithTimeValues_t > m_pointList; // 0x1c0 + CUtlVector< PointDefinitionWithTimeValues_t > m_pointList; // 0x1d0 }; // Alignment: 7 -// Size: 0x470 +// Size: 0x490 class C_OP_PlanarConstraint : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "plane point" // MVectorIsCoordinate - Vector m_PointOnPlane; // 0x1b0 + Vector m_PointOnPlane; // 0x1c0 // MPropertyFriendlyName "plane normal" - Vector m_PlaneNormal; // 0x1bc + Vector m_PlaneNormal; // 0x1cc // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1c8 + int32_t m_nControlPointNumber; // 0x1d8 // MPropertyFriendlyName "global origin" - bool m_bGlobalOrigin; // 0x1cc + bool m_bGlobalOrigin; // 0x1dc // MPropertyFriendlyName "global normal" - bool m_bGlobalNormal; // 0x1cd + bool m_bGlobalNormal; // 0x1dd private: - [[maybe_unused]] uint8_t __pad01ce[0x2]; // 0x1ce + [[maybe_unused]] uint8_t __pad01de[0x2]; // 0x1de public: // MPropertyFriendlyName "radius scale" - CPerParticleFloatInput m_flRadiusScale; // 0x1d0 + CPerParticleFloatInput m_flRadiusScale; // 0x1e0 // MPropertyFriendlyName "falloff distance from control point" - CParticleCollectionFloatInput m_flMaximumDistanceToCP; // 0x320 + CParticleCollectionFloatInput m_flMaximumDistanceToCP; // 0x338 }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class C_OP_WorldCollideConstraint : public CParticleFunctionConstraint { public: // No members available }; -// Alignment: 26 -// Size: 0x910 +// Alignment: 27 +// Size: 0x950 class C_OP_WorldTraceConstraint : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "control point for fast collision tests" - int32_t m_nCP; // 0x1b0 + int32_t m_nCP; // 0x1c0 // MPropertyFriendlyName "control point offset for fast collisions" // MVectorIsCoordinate - Vector m_vecCpOffset; // 0x1b4 + Vector m_vecCpOffset; // 0x1c4 // MPropertyFriendlyName "collision mode" - ParticleCollisionMode_t m_nCollisionMode; // 0x1c0 + ParticleCollisionMode_t m_nCollisionMode; // 0x1d0 // MPropertyFriendlyName "minimum detail collision mode" - ParticleCollisionMode_t m_nCollisionModeMin; // 0x1c4 + ParticleCollisionMode_t m_nCollisionModeMin; // 0x1d4 // MPropertyStartGroup "Collision Options" // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x1c8 + ParticleTraceSet_t m_nTraceSet; // 0x1d8 // MPropertyFriendlyName "collision group" - char m_CollisionGroupName[128]; // 0x1cc + char m_CollisionGroupName[128]; // 0x1dc // MPropertyFriendlyName "World Only" - bool m_bWorldOnly; // 0x24c + bool m_bWorldOnly; // 0x25c // MPropertyFriendlyName "brush only" - bool m_bBrushOnly; // 0x24d + bool m_bBrushOnly; // 0x25d // MPropertyFriendlyName "include water" - bool m_bIncludeWater; // 0x24e + bool m_bIncludeWater; // 0x25e private: - [[maybe_unused]] uint8_t __pad024f[0x1]; // 0x24f + [[maybe_unused]] uint8_t __pad025f[0x1]; // 0x25f public: // MPropertyFriendlyName "CP Entity to Ignore for Collisions" - int32_t m_nIgnoreCP; // 0x250 + int32_t m_nIgnoreCP; // 0x260 // MPropertyFriendlyName "control point movement distance tolerance" // MPropertySuppressExpr "m_nCollisionMode == COLLISION_MODE_PER_PARTICLE_TRACE" - float m_flCpMovementTolerance; // 0x254 + float m_flCpMovementTolerance; // 0x264 // MPropertyFriendlyName "plane cache retest rate" // MPropertySuppressExpr "m_nCollisionMode != COLLISION_MODE_PER_FRAME_PLANESET" - float m_flRetestRate; // 0x258 + float m_flRetestRate; // 0x268 // MPropertyFriendlyName "trace accuracy tolerance" // MPropertySuppressExpr "m_nCollisionMode != COLLISION_MODE_USE_NEAREST_TRACE" - float m_flTraceTolerance; // 0x25c + float m_flTraceTolerance; // 0x26c // MPropertyFriendlyName "Confirm Collision Speed Threshold" // MPropertySuppressExpr "m_nCollisionMode == COLLISION_MODE_PER_PARTICLE_TRACE" - float m_flCollisionConfirmationSpeed; // 0x260 + float m_flCollisionConfirmationSpeed; // 0x270 // MPropertyFriendlyName "Max Confirmation Traces Per Fame" // MPropertySuppressExpr "m_nCollisionMode == COLLISION_MODE_PER_PARTICLE_TRACE" - float m_nMaxTracesPerFrame; // 0x264 + float m_nMaxTracesPerFrame; // 0x274 // MPropertyStartGroup "Impact Options" // MPropertyFriendlyName "radius scale" - CPerParticleFloatInput m_flRadiusScale; // 0x268 + CPerParticleFloatInput m_flRadiusScale; // 0x278 // MPropertyFriendlyName "amount of bounce" - CPerParticleFloatInput m_flBounceAmount; // 0x3b8 + CPerParticleFloatInput m_flBounceAmount; // 0x3d0 // MPropertyFriendlyName "amount of slide" - CPerParticleFloatInput m_flSlideAmount; // 0x508 + CPerParticleFloatInput m_flSlideAmount; // 0x528 // MPropertyFriendlyName "Random Direction scale" - CPerParticleFloatInput m_flRandomDirScale; // 0x658 + CPerParticleFloatInput m_flRandomDirScale; // 0x680 // MPropertyFriendlyName "Add Decay to Bounce" - bool m_bDecayBounce; // 0x7a8 + bool m_bDecayBounce; // 0x7d8 // MPropertyFriendlyName "kill particle on collision" - bool m_bKillonContact; // 0x7a9 + bool m_bKillonContact; // 0x7d9 private: - [[maybe_unused]] uint8_t __pad07aa[0x2]; // 0x7aa + [[maybe_unused]] uint8_t __pad07da[0x2]; // 0x7da public: // MPropertyFriendlyName "minimum speed to kill on collision" - float m_flMinSpeed; // 0x7ac + float m_flMinSpeed; // 0x7dc // MPropertyFriendlyName "Set Normal" - bool m_bSetNormal; // 0x7b0 + bool m_bSetNormal; // 0x7e0 private: - [[maybe_unused]] uint8_t __pad07b1[0x3]; // 0x7b1 + [[maybe_unused]] uint8_t __pad07e1[0x3]; // 0x7e1 public: // MPropertyFriendlyName "Stick On Collision Cache Field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nStickOnCollisionField; // 0x7b4 + ParticleAttributeIndex_t m_nStickOnCollisionField; // 0x7e4 // MPropertyFriendlyName "Speed to stop when sticking" - CPerParticleFloatInput m_flStopSpeed; // 0x7b8 + CPerParticleFloatInput m_flStopSpeed; // 0x7e8 // MPropertyFriendlyName "Entity Hitbox Cache Field (Requires Stick on Collision)" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nEntityStickDataField; // 0x908 + ParticleAttributeIndex_t m_nEntityStickDataField; // 0x940 + // MPropertyFriendlyName "Entity Normal Cache Field (Requires Stick on Collision)" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nEntityStickNormalField; // 0x944 }; -// Alignment: 4 -// Size: 0xe30 +// Alignment: 5 +// Size: 0xe80 class C_OP_BoxConstraint : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "min coords" - CParticleCollectionVecInput m_vecMin; // 0x1b0 + CParticleCollectionVecInput m_vecMin; // 0x1c0 // MPropertyFriendlyName "max coords" - CParticleCollectionVecInput m_vecMax; // 0x7e8 + CParticleCollectionVecInput m_vecMax; // 0x818 // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0xe20 + int32_t m_nCP; // 0xe70 // MPropertyFriendlyName "use local space" - bool m_bLocalSpace; // 0xe24 + bool m_bLocalSpace; // 0xe74 + // MPropertyFriendlyName "Take radius into account" + bool m_bAccountForRadius; // 0xe75 }; // Alignment: 5 -// Size: 0x700 +// Size: 0x730 class C_OP_RopeSpringConstraint : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "slack" - CParticleCollectionFloatInput m_flRestLength; // 0x1b0 + CParticleCollectionFloatInput m_flRestLength; // 0x1c0 // MPropertyFriendlyName "minimum segment length %" - CParticleCollectionFloatInput m_flMinDistance; // 0x300 + CParticleCollectionFloatInput m_flMinDistance; // 0x318 // MPropertyFriendlyName "maximum segment length %" - CParticleCollectionFloatInput m_flMaxDistance; // 0x450 + CParticleCollectionFloatInput m_flMaxDistance; // 0x470 // MPropertyFriendlyName "scale factor for spring correction" - float m_flAdjustmentScale; // 0x5a0 + float m_flAdjustmentScale; // 0x5c8 private: - [[maybe_unused]] uint8_t __pad05a4[0x4]; // 0x5a4 + [[maybe_unused]] uint8_t __pad05cc[0x4]; // 0x5cc public: // MPropertyFriendlyName "manual resting spacing" - CParticleCollectionFloatInput m_flInitialRestingLength; // 0x5a8 + CParticleCollectionFloatInput m_flInitialRestingLength; // 0x5d0 }; // Alignment: 5 -// Size: 0xd30 +// Size: 0xd80 class C_OP_SpringToVectorConstraint : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "slack" - CPerParticleFloatInput m_flRestLength; // 0x1b0 + CPerParticleFloatInput m_flRestLength; // 0x1c0 // MPropertyFriendlyName "minimum segment length %" - CPerParticleFloatInput m_flMinDistance; // 0x300 + CPerParticleFloatInput m_flMinDistance; // 0x318 // MPropertyFriendlyName "maximum segment length %" - CPerParticleFloatInput m_flMaxDistance; // 0x450 + CPerParticleFloatInput m_flMaxDistance; // 0x470 // MPropertyFriendlyName "resting spacing" - CPerParticleFloatInput m_flRestingLength; // 0x5a0 + CPerParticleFloatInput m_flRestingLength; // 0x5c8 // MPropertyFriendlyName "anchor vector" - CPerParticleVecInput m_vecAnchorVector; // 0x6f0 + CPerParticleVecInput m_vecAnchorVector; // 0x720 }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_ConstrainLineLength : public CParticleFunctionConstraint { public: // MPropertyFriendlyName "minimum length" - float m_flMinDistance; // 0x1b0 + float m_flMinDistance; // 0x1c0 // MPropertyFriendlyName "maximum length" - float m_flMaxDistance; // 0x1b4 + float m_flMaxDistance; // 0x1c4 }; // Alignment: 11 -// Size: 0xcb0 +// Size: 0xcf0 class C_INIT_RingWave : public CParticleFunctionInitializer { public: @@ -2569,23 +2610,23 @@ public: // MPropertyFriendlyName "even distribution count" CParticleCollectionFloatInput m_flParticlesPerOrbit; // 0x228 // MPropertyFriendlyName "initial radius" - CPerParticleFloatInput m_flInitialRadius; // 0x378 + CPerParticleFloatInput m_flInitialRadius; // 0x380 // MPropertyFriendlyName "thickness" - CPerParticleFloatInput m_flThickness; // 0x4c8 + CPerParticleFloatInput m_flThickness; // 0x4d8 // MPropertyFriendlyName "min initial speed" - CPerParticleFloatInput m_flInitialSpeedMin; // 0x618 + CPerParticleFloatInput m_flInitialSpeedMin; // 0x630 // MPropertyFriendlyName "max initial speed" - CPerParticleFloatInput m_flInitialSpeedMax; // 0x768 + CPerParticleFloatInput m_flInitialSpeedMax; // 0x788 // MPropertyFriendlyName "roll" - CPerParticleFloatInput m_flRoll; // 0x8b8 + CPerParticleFloatInput m_flRoll; // 0x8e0 // MPropertyFriendlyName "pitch" - CPerParticleFloatInput m_flPitch; // 0xa08 + CPerParticleFloatInput m_flPitch; // 0xa38 // MPropertyFriendlyName "yaw" - CPerParticleFloatInput m_flYaw; // 0xb58 + CPerParticleFloatInput m_flYaw; // 0xb90 // MPropertyFriendlyName "even distribution" - bool m_bEvenDistribution; // 0xca8 + bool m_bEvenDistribution; // 0xce8 // MPropertyFriendlyName "XY velocity only" - bool m_bXYVelocityOnly; // 0xca9 + bool m_bXYVelocityOnly; // 0xce9 }; // Alignment: 7 @@ -2610,7 +2651,7 @@ public: }; // Alignment: 10 -// Size: 0x780 +// Size: 0x7a0 class C_INIT_CreateInEpitrochoid : public CParticleFunctionInitializer { public: @@ -2625,17 +2666,17 @@ public: // MPropertyFriendlyName "particle density" CPerParticleFloatInput m_flParticleDensity; // 0x230 // MPropertyFriendlyName "point offset" - CPerParticleFloatInput m_flOffset; // 0x380 + CPerParticleFloatInput m_flOffset; // 0x388 // MPropertyFriendlyName "radius 1" - CPerParticleFloatInput m_flRadius1; // 0x4d0 + CPerParticleFloatInput m_flRadius1; // 0x4e0 // MPropertyFriendlyName "radius 2" - CPerParticleFloatInput m_flRadius2; // 0x620 + CPerParticleFloatInput m_flRadius2; // 0x638 // MPropertyFriendlyName "use particle count instead of creation time" - bool m_bUseCount; // 0x770 + bool m_bUseCount; // 0x790 // MPropertyFriendlyName "local space" - bool m_bUseLocalCoords; // 0x771 + bool m_bUseLocalCoords; // 0x791 // MPropertyFriendlyName "offset from existing position" - bool m_bOffsetExistingPos; // 0x772 + bool m_bOffsetExistingPos; // 0x792 }; // Alignment: 14 @@ -2675,7 +2716,7 @@ public: }; // Alignment: 13 -// Size: 0x10f0 +// Size: 0x1130 class C_INIT_CreateOnModel : public CParticleFunctionInitializer { public: @@ -2696,27 +2737,27 @@ public: // MPropertyFriendlyName "hitbox scale" CParticleCollectionVecInput m_vecHitBoxScale; // 0x298 // MPropertyFriendlyName "inherited velocity scale" - float m_flBoneVelocity; // 0x8d0 + float m_flBoneVelocity; // 0x8f0 // MPropertyFriendlyName "maximum inherited velocity" - float m_flMaxBoneVelocity; // 0x8d4 + float m_flMaxBoneVelocity; // 0x8f4 // MPropertyFriendlyName "direction bias" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecDirectionBias; // 0x8d8 + CParticleCollectionVecInput m_vecDirectionBias; // 0x8f8 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0xf10 + char m_HitboxSetName[128]; // 0xf50 // MPropertyFriendlyName "bias in local space" - bool m_bLocalCoords; // 0xf90 + bool m_bLocalCoords; // 0xfd0 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0xf91 + bool m_bUseBones; // 0xfd1 private: - [[maybe_unused]] uint8_t __pad0f92[0x6]; // 0xf92 + [[maybe_unused]] uint8_t __pad0fd2[0x6]; // 0xfd2 public: // MPropertyFriendlyName "hitbox shell thickness" - CParticleCollectionFloatInput m_flShellSize; // 0xf98 + CParticleCollectionFloatInput m_flShellSize; // 0xfd8 }; // Alignment: 14 -// Size: 0x12c0 +// Size: 0x1310 class C_INIT_CreateOnModelAtHeight : public CParticleFunctionInitializer { public: @@ -2739,29 +2780,29 @@ public: // MPropertyFriendlyName "relative desired height" CParticleCollectionFloatInput m_flDesiredHeight; // 0x1d0 // MPropertyFriendlyName "model hitbox scale" - CParticleCollectionVecInput m_vecHitBoxScale; // 0x320 + CParticleCollectionVecInput m_vecHitBoxScale; // 0x328 // MPropertyFriendlyName "direction bias" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecDirectionBias; // 0x958 + CParticleCollectionVecInput m_vecDirectionBias; // 0x980 // MPropertyFriendlyName "bias type" - ParticleHitboxBiasType_t m_nBiasType; // 0xf90 + ParticleHitboxBiasType_t m_nBiasType; // 0xfd8 // MPropertyFriendlyName "bias in local space" - bool m_bLocalCoords; // 0xf94 + bool m_bLocalCoords; // 0xfdc // MPropertyFriendlyName "bias prefers moving hitboxes" - bool m_bPreferMovingBoxes; // 0xf95 + bool m_bPreferMovingBoxes; // 0xfdd // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0xf96 + char m_HitboxSetName[128]; // 0xfde private: - [[maybe_unused]] uint8_t __pad1016[0x2]; // 0x1016 + [[maybe_unused]] uint8_t __pad105e[0x2]; // 0x105e public: // MPropertyFriendlyName "hitbox velocity inherited scale" - CParticleCollectionFloatInput m_flHitboxVelocityScale; // 0x1018 + CParticleCollectionFloatInput m_flHitboxVelocityScale; // 0x1060 // MPropertyFriendlyName "max hitbox velocity" - CParticleCollectionFloatInput m_flMaxBoneVelocity; // 0x1168 + CParticleCollectionFloatInput m_flMaxBoneVelocity; // 0x11b8 }; // Alignment: 9 -// Size: 0x9e0 +// Size: 0xa10 class C_INIT_SetHitboxToClosest : public CParticleFunctionInitializer { public: @@ -2772,24 +2813,24 @@ public: // MPropertyFriendlyName "model hitbox scale" CParticleCollectionVecInput m_vecHitBoxScale; // 0x1c8 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x800 + char m_HitboxSetName[128]; // 0x820 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x880 + bool m_bUseBones; // 0x8a0 // MPropertyFriendlyName "get closest point on closest hitbox" - bool m_bUseClosestPointOnHitbox; // 0x881 + bool m_bUseClosestPointOnHitbox; // 0x8a1 private: - [[maybe_unused]] uint8_t __pad0882[0x2]; // 0x882 + [[maybe_unused]] uint8_t __pad08a2[0x2]; // 0x8a2 public: // MPropertyFriendlyName "closest point test type" - ClosestPointTestType_t m_nTestType; // 0x884 + ClosestPointTestType_t m_nTestType; // 0x8a4 // MPropertyFriendlyName "hybrid ratio" - CParticleCollectionFloatInput m_flHybridRatio; // 0x888 + CParticleCollectionFloatInput m_flHybridRatio; // 0x8a8 // MPropertyFriendlyName "set initial position" - bool m_bUpdatePosition; // 0x9d8 + bool m_bUpdatePosition; // 0xa00 }; // Alignment: 9 -// Size: 0x9f0 +// Size: 0xa10 class C_INIT_SetHitboxToModel : public CParticleFunctionInitializer { public: @@ -2806,72 +2847,72 @@ public: CParticleCollectionVecInput m_vecHitBoxScale; // 0x1d0 // MPropertyFriendlyName "direction bias" // MVectorIsCoordinate - Vector m_vecDirectionBias; // 0x808 + Vector m_vecDirectionBias; // 0x828 // MPropertyFriendlyName "maintain existing hitbox" - bool m_bMaintainHitbox; // 0x814 + bool m_bMaintainHitbox; // 0x834 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x815 + bool m_bUseBones; // 0x835 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x816 + char m_HitboxSetName[128]; // 0x836 private: - [[maybe_unused]] uint8_t __pad0896[0x2]; // 0x896 + [[maybe_unused]] uint8_t __pad08b6[0x2]; // 0x8b6 public: // MPropertyFriendlyName "hitbox shell thickness" - CParticleCollectionFloatInput m_flShellSize; // 0x898 + CParticleCollectionFloatInput m_flShellSize; // 0x8b8 }; // Alignment: 14 -// Size: 0x1a40 +// Size: 0x1ac0 class C_INIT_CreateWithinSphereTransform : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "distance min" CPerParticleFloatInput m_fRadiusMin; // 0x1c0 // MPropertyFriendlyName "distance max" - CPerParticleFloatInput m_fRadiusMax; // 0x310 + CPerParticleFloatInput m_fRadiusMax; // 0x318 // MPropertyFriendlyName "distance bias" // MVectorIsCoordinate - CPerParticleVecInput m_vecDistanceBias; // 0x460 + CPerParticleVecInput m_vecDistanceBias; // 0x470 // MPropertyFriendlyName "distance bias absolute value" // MVectorIsCoordinate - Vector m_vecDistanceBiasAbs; // 0xa98 + Vector m_vecDistanceBiasAbs; // 0xac8 private: - [[maybe_unused]] uint8_t __pad0aa4[0x4]; // 0xaa4 + [[maybe_unused]] uint8_t __pad0ad4[0x4]; // 0xad4 public: // MPropertyFriendlyName "input position transform" - CParticleTransformInput m_TransformInput; // 0xaa8 + CParticleTransformInput m_TransformInput; // 0xad8 // MPropertyFriendlyName "speed min" - CPerParticleFloatInput m_fSpeedMin; // 0xb10 + CPerParticleFloatInput m_fSpeedMin; // 0xb40 // MPropertyFriendlyName "speed max" - CPerParticleFloatInput m_fSpeedMax; // 0xc60 + CPerParticleFloatInput m_fSpeedMax; // 0xc98 // MPropertyFriendlyName "speed random exponent" - float m_fSpeedRandExp; // 0xdb0 + float m_fSpeedRandExp; // 0xdf0 // MPropertyFriendlyName "bias in local system" - bool m_bLocalCoords; // 0xdb4 + bool m_bLocalCoords; // 0xdf4 private: - [[maybe_unused]] uint8_t __pad0db5[0x3]; // 0xdb5 + [[maybe_unused]] uint8_t __pad0df5[0x3]; // 0xdf5 public: // MPropertyFriendlyName "randomly distribution growth time" - float m_flEndCPGrowthTime; // 0xdb8 + float m_flEndCPGrowthTime; // 0xdf8 private: - [[maybe_unused]] uint8_t __pad0dbc[0x4]; // 0xdbc + [[maybe_unused]] uint8_t __pad0dfc[0x4]; // 0xdfc public: // MPropertyFriendlyName "speed in local coordinate system min" // MVectorIsCoordinate - CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0xdc0 + CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0xe00 // MPropertyFriendlyName "speed in local coordinate system max" // MVectorIsCoordinate - CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0x13f8 + CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0x1458 // MPropertyFriendlyName "Output vector" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1a30 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1ab0 // MPropertyFriendlyName "Velocity vector" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldVelocity; // 0x1a34 + ParticleAttributeIndex_t m_nFieldVelocity; // 0x1ab4 }; // Alignment: 5 -// Size: 0xe40 +// Size: 0xe80 class C_INIT_CreateWithinBox : public CParticleFunctionInitializer { public: @@ -2880,47 +2921,47 @@ public: CPerParticleVecInput m_vecMin; // 0x1c0 // MPropertyFriendlyName "max" // MVectorIsCoordinate - CPerParticleVecInput m_vecMax; // 0x7f8 + CPerParticleVecInput m_vecMax; // 0x818 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0xe30 + int32_t m_nControlPointNumber; // 0xe70 // MPropertyFriendlyName "use local space" - bool m_bLocalSpace; // 0xe34 + bool m_bLocalSpace; // 0xe74 private: - [[maybe_unused]] uint8_t __pad0e35[0x3]; // 0xe35 + [[maybe_unused]] uint8_t __pad0e75[0x3]; // 0xe75 public: // MPropertyFriendlyName "Random number generator controls" - CRandomNumberGeneratorParameters m_randomnessParameters; // 0xe38 + CRandomNumberGeneratorParameters m_randomnessParameters; // 0xe78 }; // Alignment: 10 -// Size: 0x9b0 +// Size: 0x9e0 class C_INIT_CreateOnGrid : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "X Dimension Count" CParticleCollectionFloatInput m_nXCount; // 0x1c0 // MPropertyFriendlyName "Y Dimension Count" - CParticleCollectionFloatInput m_nYCount; // 0x310 + CParticleCollectionFloatInput m_nYCount; // 0x318 // MPropertyFriendlyName "Z Dimension Count" - CParticleCollectionFloatInput m_nZCount; // 0x460 + CParticleCollectionFloatInput m_nZCount; // 0x470 // MPropertyFriendlyName "X Dimension Spacing" - CParticleCollectionFloatInput m_nXSpacing; // 0x5b0 + CParticleCollectionFloatInput m_nXSpacing; // 0x5c8 // MPropertyFriendlyName "Y Dimension Spacing" - CParticleCollectionFloatInput m_nYSpacing; // 0x700 + CParticleCollectionFloatInput m_nYSpacing; // 0x720 // MPropertyFriendlyName "Z Dimension Spacing" - CParticleCollectionFloatInput m_nZSpacing; // 0x850 + CParticleCollectionFloatInput m_nZSpacing; // 0x878 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x9a0 + int32_t m_nControlPointNumber; // 0x9d0 // MPropertyFriendlyName "use local space" - bool m_bLocalSpace; // 0x9a4 + bool m_bLocalSpace; // 0x9d4 // MPropertyFriendlyName "center around control point" - bool m_bCenter; // 0x9a5 + bool m_bCenter; // 0x9d5 // MPropertyFriendlyName "hollow" - bool m_bHollow; // 0x9a6 + bool m_bHollow; // 0x9d6 }; // Alignment: 6 -// Size: 0xeb0 +// Size: 0xef0 class C_INIT_PositionOffset : public CParticleFunctionInitializer { public: @@ -2929,18 +2970,18 @@ public: CPerParticleVecInput m_OffsetMin; // 0x1c0 // MPropertyFriendlyName "offset max" // MVectorIsCoordinate - CPerParticleVecInput m_OffsetMax; // 0x7f8 + CPerParticleVecInput m_OffsetMax; // 0x818 // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0xe30 + CParticleTransformInput m_TransformInput; // 0xe70 // MPropertyFriendlyName "offset in local space 0/1" - bool m_bLocalCoords; // 0xe98 + bool m_bLocalCoords; // 0xed8 // MPropertyFriendlyName "offset proportional to radius 0/1" - bool m_bProportional; // 0xe99 + bool m_bProportional; // 0xed9 private: - [[maybe_unused]] uint8_t __pad0e9a[0x2]; // 0xe9a + [[maybe_unused]] uint8_t __pad0eda[0x2]; // 0xeda public: // MPropertyFriendlyName "Random number generator controls" - CRandomNumberGeneratorParameters m_randomnessParameters; // 0xe9c + CRandomNumberGeneratorParameters m_randomnessParameters; // 0xedc }; // Alignment: 3 @@ -2957,42 +2998,42 @@ public: }; // Alignment: 13 -// Size: 0x510 +// Size: 0x520 class C_INIT_PositionPlaceOnGround : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "offset" CPerParticleFloatInput m_flOffset; // 0x1c0 // MPropertyFriendlyName "max trace length" - CPerParticleFloatInput m_flMaxTraceLength; // 0x310 + CPerParticleFloatInput m_flMaxTraceLength; // 0x318 // MPropertyFriendlyName "collision group" - char m_CollisionGroupName[128]; // 0x460 + char m_CollisionGroupName[128]; // 0x470 // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x4e0 + ParticleTraceSet_t m_nTraceSet; // 0x4f0 private: - [[maybe_unused]] uint8_t __pad04e4[0xc]; // 0x4e4 + [[maybe_unused]] uint8_t __pad04f4[0xc]; // 0x4f4 public: // MPropertyFriendlyName "No Collision Behavior" - ParticleTraceMissBehavior_t m_nTraceMissBehavior; // 0x4f0 + ParticleTraceMissBehavior_t m_nTraceMissBehavior; // 0x500 // MPropertyFriendlyName "include water" - bool m_bIncludeWater; // 0x4f4 + bool m_bIncludeWater; // 0x504 // MPropertyFriendlyName "set normal" - bool m_bSetNormal; // 0x4f5 + bool m_bSetNormal; // 0x505 // MPropertyFriendlyName "set Previous XYZ only" - bool m_bSetPXYZOnly; // 0x4f6 + bool m_bSetPXYZOnly; // 0x506 // MPropertyFriendlyName "Trace along particle normal" - bool m_bTraceAlongNormal; // 0x4f7 + bool m_bTraceAlongNormal; // 0x507 // MPropertyFriendlyName "Offset only if trace hit" - bool m_bOffsetonColOnly; // 0x4f8 + bool m_bOffsetonColOnly; // 0x508 private: - [[maybe_unused]] uint8_t __pad04f9[0x3]; // 0x4f9 + [[maybe_unused]] uint8_t __pad0509[0x3]; // 0x509 public: // MPropertyFriendlyName "offset final position by this fraction of the particle radius" - float m_flOffsetByRadiusFactor; // 0x4fc + float m_flOffsetByRadiusFactor; // 0x50c // MPropertyFriendlyName "preserve initial Z-offset relative to cp" - int32_t m_nPreserveOffsetCP; // 0x500 + int32_t m_nPreserveOffsetCP; // 0x510 // MPropertyFriendlyName "CP Entity to Ignore for Collisions" - int32_t m_nIgnoreCP; // 0x504 + int32_t m_nIgnoreCP; // 0x514 }; // Alignment: 3 @@ -3009,7 +3050,7 @@ public: }; // Alignment: 7 -// Size: 0x10f0 +// Size: 0x1140 class C_INIT_VelocityRandom : public CParticleFunctionInitializer { public: @@ -3021,24 +3062,24 @@ public: // MPropertyFriendlyName "random speed min" CPerParticleFloatInput m_fSpeedMin; // 0x1c8 // MPropertyFriendlyName "random speed max" - CPerParticleFloatInput m_fSpeedMax; // 0x318 + CPerParticleFloatInput m_fSpeedMax; // 0x320 // MPropertyFriendlyName "speed in local coordinate system min" // MVectorIsCoordinate - CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0x468 + CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0x478 // MPropertyFriendlyName "speed in local coordinate system max" // MVectorIsCoordinate - CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0xaa0 + CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0xad0 // MPropertyFriendlyName "Ignore delta time (RenderTrails)" - bool m_bIgnoreDT; // 0x10d8 + bool m_bIgnoreDT; // 0x1128 private: - [[maybe_unused]] uint8_t __pad10d9[0x3]; // 0x10d9 + [[maybe_unused]] uint8_t __pad1129[0x3]; // 0x1129 public: // MPropertyFriendlyName "Random number generator controls" - CRandomNumberGeneratorParameters m_randomnessParameters; // 0x10dc + CRandomNumberGeneratorParameters m_randomnessParameters; // 0x112c }; // Alignment: 10 -// Size: 0x18e0 +// Size: 0x1960 class C_INIT_InitialVelocityNoise : public CParticleFunctionInitializer { public: @@ -3052,20 +3093,20 @@ public: // MVectorIsCoordinate CPerParticleVecInput m_vecOffsetLoc; // 0x1d8 // MPropertyFriendlyName "time coordinate offset" - CPerParticleFloatInput m_flOffset; // 0x810 + CPerParticleFloatInput m_flOffset; // 0x830 // MPropertyFriendlyName "output minimum" - CPerParticleVecInput m_vecOutputMin; // 0x960 + CPerParticleVecInput m_vecOutputMin; // 0x988 // MPropertyFriendlyName "output maximum" - CPerParticleVecInput m_vecOutputMax; // 0xf98 + CPerParticleVecInput m_vecOutputMax; // 0xfe0 // MPropertyFriendlyName "time noise coordinate scale" - CPerParticleFloatInput m_flNoiseScale; // 0x15d0 + CPerParticleFloatInput m_flNoiseScale; // 0x1638 // MPropertyFriendlyName "spatial noise coordinate scale" - CPerParticleFloatInput m_flNoiseScaleLoc; // 0x1720 + CPerParticleFloatInput m_flNoiseScaleLoc; // 0x1790 // MPropertyFriendlyName "input local space velocity (optional)" // MParticleInputOptional - CParticleTransformInput m_TransformInput; // 0x1870 + CParticleTransformInput m_TransformInput; // 0x18e8 // MPropertyFriendlyName "ignore delta time" - bool m_bIgnoreDt; // 0x18d8 + bool m_bIgnoreDt; // 0x1950 }; // Alignment: 5 @@ -3305,6 +3346,8 @@ public: // Size: 0x210 class C_INIT_RandomColor : public CParticleFunctionInitializer { +private: + [[maybe_unused]] uint8_t __pad01c0[0x1c]; // 0x1c0 public: // MPropertyFriendlyName "color1" Color m_ColorMin; // 0x1dc @@ -3333,6 +3376,8 @@ public: // Size: 0x200 class C_INIT_ColorLitPerParticle : public CParticleFunctionInitializer { +private: + [[maybe_unused]] uint8_t __pad01c0[0x18]; // 0x1c0 public: // MPropertyFriendlyName "color1" Color m_ColorMin; // 0x1d8 @@ -3420,7 +3465,7 @@ public: }; // Alignment: 1 -// Size: 0x800 +// Size: 0x820 class C_INIT_ScaleVelocity : public CParticleFunctionInitializer { public: @@ -3430,7 +3475,7 @@ public: }; // Alignment: 10 -// Size: 0xe50 +// Size: 0xe90 class C_INIT_PositionWarp : public CParticleFunctionInitializer { public: @@ -3439,24 +3484,24 @@ public: CParticleCollectionVecInput m_vecWarpMin; // 0x1c0 // MPropertyFriendlyName "warp max" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecWarpMax; // 0x7f8 + CParticleCollectionVecInput m_vecWarpMax; // 0x818 // MPropertyFriendlyName "warp scale control point number" - int32_t m_nScaleControlPointNumber; // 0xe30 + int32_t m_nScaleControlPointNumber; // 0xe70 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0xe34 + int32_t m_nControlPointNumber; // 0xe74 // MPropertyFriendlyName "radius scale component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nRadiusComponent; // 0xe38 + int32_t m_nRadiusComponent; // 0xe78 // MPropertyFriendlyName "warp transition time (treats min/max as start/end sizes)" - float m_flWarpTime; // 0xe3c + float m_flWarpTime; // 0xe7c // MPropertyFriendlyName "warp transition start time" - float m_flWarpStartTime; // 0xe40 + float m_flWarpStartTime; // 0xe80 // MPropertyFriendlyName "previous position sacale" - float m_flPrevPosScale; // 0xe44 + float m_flPrevPosScale; // 0xe84 // MPropertyFriendlyName "reverse warp (0/1)" - bool m_bInvertWarp; // 0xe48 + bool m_bInvertWarp; // 0xe88 // MPropertyFriendlyName "use particle count instead of time" - bool m_bUseCount; // 0xe49 + bool m_bUseCount; // 0xe89 }; // Alignment: 6 @@ -3473,11 +3518,11 @@ public: // MPropertyFriendlyName "warp amount" CPerParticleFloatInput m_InputValue; // 0x1d8 // MPropertyFriendlyName "previous position scale" - float m_flPrevPosScale; // 0x328 + float m_flPrevPosScale; // 0x330 // MPropertyFriendlyName "warp scale control point number" - int32_t m_nScaleControlPointNumber; // 0x32c + int32_t m_nScaleControlPointNumber; // 0x334 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x330 + int32_t m_nControlPointNumber; // 0x338 }; // Alignment: 10 @@ -3536,24 +3581,24 @@ public: }; // Alignment: 7 -// Size: 0x860 +// Size: 0x880 class C_INIT_MoveBetweenPoints : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "minimum speed" CPerParticleFloatInput m_flSpeedMin; // 0x1c0 // MPropertyFriendlyName "maximum speed" - CPerParticleFloatInput m_flSpeedMax; // 0x310 + CPerParticleFloatInput m_flSpeedMax; // 0x318 // MPropertyFriendlyName "end spread" - CPerParticleFloatInput m_flEndSpread; // 0x460 + CPerParticleFloatInput m_flEndSpread; // 0x470 // MPropertyFriendlyName "start offset" - CPerParticleFloatInput m_flStartOffset; // 0x5b0 + CPerParticleFloatInput m_flStartOffset; // 0x5c8 // MPropertyFriendlyName "end offset" - CPerParticleFloatInput m_flEndOffset; // 0x700 + CPerParticleFloatInput m_flEndOffset; // 0x720 // MPropertyFriendlyName "end control point" - int32_t m_nEndControlPointNumber; // 0x850 + int32_t m_nEndControlPointNumber; // 0x878 // MPropertyFriendlyName "bias lifetime by trail length" - bool m_bTrailBias; // 0x854 + bool m_bTrailBias; // 0x87c }; // Alignment: 11 @@ -3675,7 +3720,7 @@ public: }; // Alignment: 4 -// Size: 0x870 +// Size: 0x890 class C_INIT_VelocityFromCP : public CParticleFunctionInitializer { public: @@ -3683,11 +3728,11 @@ public: CParticleCollectionVecInput m_velocityInput; // 0x1c0 // MPropertyFriendlyName "local space" // MParticleInputOptional - CParticleTransformInput m_transformInput; // 0x7f8 + CParticleTransformInput m_transformInput; // 0x818 // MPropertyFriendlyName "velocity scale" - float m_flVelocityScale; // 0x860 + float m_flVelocityScale; // 0x880 // MPropertyFriendlyName "direction only" - bool m_bDirectionOnly; // 0x864 + bool m_bDirectionOnly; // 0x884 }; // Alignment: 8 @@ -3786,24 +3831,24 @@ public: }; // Alignment: 6 -// Size: 0x4c0 +// Size: 0x4d0 class C_INIT_CreateSequentialPathV2 : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "maximum distance" CPerParticleFloatInput m_fMaxDistance; // 0x1c0 // MPropertyFriendlyName "particles to map from start to end" - CParticleCollectionFloatInput m_flNumToAssign; // 0x310 + CParticleCollectionFloatInput m_flNumToAssign; // 0x318 // MPropertyFriendlyName "restart behavior (0 = bounce, 1 = loop )" - bool m_bLoop; // 0x460 + bool m_bLoop; // 0x470 // MPropertyFriendlyName "use sequential CP pairs between start and end point" - bool m_bCPPairs; // 0x461 + bool m_bCPPairs; // 0x471 // MPropertyFriendlyName "save offset" - bool m_bSaveOffset; // 0x462 + bool m_bSaveOffset; // 0x472 private: - [[maybe_unused]] uint8_t __pad0463[0xd]; // 0x463 + [[maybe_unused]] uint8_t __pad0473[0xd]; // 0x473 public: - CPathParameters m_PathParams; // 0x470 + CPathParameters m_PathParams; // 0x480 }; // Alignment: 6 @@ -4033,7 +4078,7 @@ public: }; // Alignment: 4 -// Size: 0x320 +// Size: 0x330 class C_INIT_CreateFromCPs : public CParticleFunctionInitializer { public: @@ -4052,7 +4097,7 @@ public: }; // Alignment: 15 -// Size: 0x910 +// Size: 0x930 class C_INIT_DistanceToCPInit : public CParticleFunctionInitializer { public: @@ -4065,40 +4110,40 @@ public: // MPropertyFriendlyName "distance minimum" CPerParticleFloatInput m_flInputMin; // 0x1c8 // MPropertyFriendlyName "distance maximum" - CPerParticleFloatInput m_flInputMax; // 0x318 + CPerParticleFloatInput m_flInputMax; // 0x320 // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x468 + CPerParticleFloatInput m_flOutputMin; // 0x478 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x5b8 + CPerParticleFloatInput m_flOutputMax; // 0x5d0 // MPropertyFriendlyName "control point" - int32_t m_nStartCP; // 0x708 + int32_t m_nStartCP; // 0x728 // MPropertyFriendlyName "ensure line of sight" - bool m_bLOS; // 0x70c + bool m_bLOS; // 0x72c // MPropertyFriendlyName "LOS collision group" - char m_CollisionGroupName[128]; // 0x70d + char m_CollisionGroupName[128]; // 0x72d private: - [[maybe_unused]] uint8_t __pad078d[0x3]; // 0x78d + [[maybe_unused]] uint8_t __pad07ad[0x3]; // 0x7ad public: // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x790 + ParticleTraceSet_t m_nTraceSet; // 0x7b0 private: - [[maybe_unused]] uint8_t __pad0794[0x4]; // 0x794 + [[maybe_unused]] uint8_t __pad07b4[0x4]; // 0x7b4 public: // MPropertyFriendlyName "Maximum Trace Length" - CPerParticleFloatInput m_flMaxTraceLength; // 0x798 + CPerParticleFloatInput m_flMaxTraceLength; // 0x7b8 // MPropertyFriendlyName "LOS Failure Scalar" - float m_flLOSScale; // 0x8e8 + float m_flLOSScale; // 0x910 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x8ec + ParticleSetMethod_t m_nSetMethod; // 0x914 // MPropertyFriendlyName "only active within specified distance" - bool m_bActiveRange; // 0x8f0 + bool m_bActiveRange; // 0x918 private: - [[maybe_unused]] uint8_t __pad08f1[0x3]; // 0x8f1 + [[maybe_unused]] uint8_t __pad0919[0x3]; // 0x919 public: // MPropertyFriendlyName "distance component scale" - Vector m_vecDistanceScale; // 0x8f4 + Vector m_vecDistanceScale; // 0x91c // MPropertyFriendlyName "remap bias" - float m_flRemapBias; // 0x900 + float m_flRemapBias; // 0x928 }; // Alignment: 8 @@ -4167,7 +4212,7 @@ public: }; // Alignment: 3 -// Size: 0x320 +// Size: 0x330 class C_INIT_DistanceCull : public CParticleFunctionInitializer { public: @@ -4179,11 +4224,11 @@ public: // MPropertyFriendlyName "cull distance" CParticleCollectionFloatInput m_flDistance; // 0x1c8 // MPropertyFriendlyName "cull inside instead of outside" - bool m_bCullInside; // 0x318 + bool m_bCullInside; // 0x320 }; // Alignment: 3 -// Size: 0x320 +// Size: 0x330 class C_INIT_PlaneCull : public CParticleFunctionInitializer { public: @@ -4195,11 +4240,11 @@ public: // MPropertyFriendlyName "cull offset" CParticleCollectionFloatInput m_flDistance; // 0x1c8 // MPropertyFriendlyName "flip cull normal" - bool m_bCullInside; // 0x318 + bool m_bCullInside; // 0x320 }; // Alignment: 1 -// Size: 0x310 +// Size: 0x320 class C_INIT_DistanceToNeighborCull : public CParticleFunctionInitializer { public: @@ -4294,8 +4339,8 @@ public: bool m_bPerParticle; // 0x1e4 }; -// Alignment: 9 -// Size: 0x330 +// Alignment: 10 +// Size: 0x490 class C_INIT_InitFromCPSnapshot : public CParticleFunctionInitializer { public: @@ -4318,10 +4363,12 @@ private: public: // MPropertyFriendlyName "Snapshot increment amount" CParticleCollectionFloatInput m_nSnapShotIncrement; // 0x1d8 + // MPropertyFriendlyName "Manual Snapshot Index" + CPerParticleFloatInput m_nManualSnapshotIndex; // 0x330 // MPropertyFriendlyName "random seed" - int32_t m_nRandomSeed; // 0x328 + int32_t m_nRandomSeed; // 0x488 // MPropertyFriendlyName "local space angles" - bool m_bLocalSpaceAngles; // 0x32c + bool m_bLocalSpaceAngles; // 0x48c }; // Alignment: 17 @@ -4382,7 +4429,7 @@ public: }; // Alignment: 5 -// Size: 0x810 +// Size: 0x830 class C_INIT_InitFromVectorFieldSnapshot : public CParticleFunctionInitializer { public: @@ -4485,6 +4532,8 @@ public: // Size: 0x1e0 class C_INIT_RemapInitialVisibilityScalar : public CParticleFunctionInitializer { +private: + [[maybe_unused]] uint8_t __pad01c0[0x4]; // 0x1c0 public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" @@ -4757,23 +4806,23 @@ public: }; // Alignment: 5 -// Size: 0x5c0 +// Size: 0x5e0 class C_INIT_CreateParticleImpulse : public CParticleFunctionInitializer { public: // MPropertyFriendlyName "radius" CPerParticleFloatInput m_InputRadius; // 0x1c0 // MPropertyFriendlyName "magnitude" - CPerParticleFloatInput m_InputMagnitude; // 0x310 + CPerParticleFloatInput m_InputMagnitude; // 0x318 // MPropertyFriendlyName "force falloff function" - ParticleFalloffFunction_t m_nFalloffFunction; // 0x460 + ParticleFalloffFunction_t m_nFalloffFunction; // 0x470 private: - [[maybe_unused]] uint8_t __pad0464[0x4]; // 0x464 + [[maybe_unused]] uint8_t __pad0474[0x4]; // 0x474 public: // MPropertyFriendlyName "exponential falloff exponent" - CPerParticleFloatInput m_InputFalloffExp; // 0x468 + CPerParticleFloatInput m_InputFalloffExp; // 0x478 // MPropertyFriendlyName "impulse type" - ParticleImpulseType_t m_nImpulseType; // 0x5b8 + ParticleImpulseType_t m_nImpulseType; // 0x5d0 }; // Alignment: 2 @@ -4785,11 +4834,11 @@ public: CPerParticleFloatInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x310 + ParticleAttributeIndex_t m_nOutputField; // 0x318 }; // Alignment: 6 -// Size: 0xeb0 +// Size: 0xef0 class C_INIT_SetVectorAttributeToVectorExpression : public CParticleFunctionInitializer { public: @@ -4801,14 +4850,14 @@ public: // MPropertyFriendlyName "input 1" CPerParticleVecInput m_vInput1; // 0x1c8 // MPropertyFriendlyName "input 2" - CPerParticleVecInput m_vInput2; // 0x800 + CPerParticleVecInput m_vInput2; // 0x820 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOutputField; // 0xe38 + ParticleAttributeIndex_t m_nOutputField; // 0xe78 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0xe3c + ParticleSetMethod_t m_nSetMethod; // 0xe7c // MPropertyFriendlyName "normalize result" - bool m_bNormalizedOutput; // 0xe40 + bool m_bNormalizedOutput; // 0xe80 }; // Alignment: 2 @@ -4820,11 +4869,11 @@ public: CParticleCollectionFloatInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x310 + ParticleAttributeIndex_t m_nOutputField; // 0x318 }; // Alignment: 4 -// Size: 0x470 +// Size: 0x480 class C_INIT_InitFloat : public CParticleFunctionInitializer { public: @@ -4832,15 +4881,15 @@ public: CPerParticleFloatInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x310 + ParticleAttributeIndex_t m_nOutputField; // 0x318 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x314 + ParticleSetMethod_t m_nSetMethod; // 0x31c // MPropertyFriendlyName "per-particle strength" - CPerParticleFloatInput m_InputStrength; // 0x318 + CPerParticleFloatInput m_InputStrength; // 0x320 }; // Alignment: 2 -// Size: 0x800 +// Size: 0x820 class C_INIT_InitVecCollection : public CParticleFunctionInitializer { public: @@ -4848,11 +4897,11 @@ public: CParticleCollectionVecInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOutputField; // 0x7f8 + ParticleAttributeIndex_t m_nOutputField; // 0x818 }; // Alignment: 5 -// Size: 0x810 +// Size: 0x830 class C_INIT_InitVec : public CParticleFunctionInitializer { public: @@ -4860,18 +4909,18 @@ public: CPerParticleVecInput m_InputValue; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOutputField; // 0x7f8 + ParticleAttributeIndex_t m_nOutputField; // 0x818 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x7fc + ParticleSetMethod_t m_nSetMethod; // 0x81c // MPropertyFriendlyName "normalize result" - bool m_bNormalizedOutput; // 0x800 + bool m_bNormalizedOutput; // 0x820 // MPropertyFriendlyName "set previous position" // MPropertySuppressExpr "m_nOutputField != PARTICLE_ATTRIBUTE_XYZ" - bool m_bWritePreviousPosition; // 0x801 + bool m_bWritePreviousPosition; // 0x821 }; // Alignment: 5 -// Size: 0x470 +// Size: 0x480 class C_OP_InstantaneousEmitter : public CParticleFunctionEmitter { public: @@ -4879,44 +4928,44 @@ public: // MPropertyAttributeRange "1 1000" CParticleCollectionFloatInput m_nParticlesToEmit; // 0x1c0 // MPropertyFriendlyName "emission start time" - CParticleCollectionFloatInput m_flStartTime; // 0x310 + CParticleCollectionFloatInput m_flStartTime; // 0x318 // MPropertyFriendlyName "emission scale from killed parent particles" - float m_flInitFromKilledParentParticles; // 0x460 + float m_flInitFromKilledParentParticles; // 0x470 // MPropertyFriendlyName "maximum emission per frame" - int32_t m_nMaxEmittedPerFrame; // 0x464 + int32_t m_nMaxEmittedPerFrame; // 0x474 // MPropertyFriendlyName "control point with snapshot data" - int32_t m_nSnapshotControlPoint; // 0x468 + int32_t m_nSnapshotControlPoint; // 0x478 }; // Alignment: 10 -// Size: 0x5d0 +// Size: 0x5f0 class C_OP_ContinuousEmitter : public CParticleFunctionEmitter { public: // MPropertyFriendlyName "emission duration" CParticleCollectionFloatInput m_flEmissionDuration; // 0x1c0 // MPropertyFriendlyName "emission start time" - CParticleCollectionFloatInput m_flStartTime; // 0x310 + CParticleCollectionFloatInput m_flStartTime; // 0x318 // MPropertyFriendlyName "emission rate" - CParticleCollectionFloatInput m_flEmitRate; // 0x460 + CParticleCollectionFloatInput m_flEmitRate; // 0x470 // MPropertyFriendlyName "scale emission to used control points" // MParticleMaxVersion - float m_flEmissionScale; // 0x5b0 + float m_flEmissionScale; // 0x5c8 // MPropertyFriendlyName "scale emission by parent particle count" - float m_flScalePerParentParticle; // 0x5b4 + float m_flScalePerParentParticle; // 0x5cc // MPropertyFriendlyName "emit particles for killed parent particles" - bool m_bInitFromKilledParentParticles; // 0x5b8 + bool m_bInitFromKilledParentParticles; // 0x5d0 private: - [[maybe_unused]] uint8_t __pad05b9[0x3]; // 0x5b9 + [[maybe_unused]] uint8_t __pad05d1[0x3]; // 0x5d1 public: // MPropertyFriendlyName "control point with snapshot data" - int32_t m_nSnapshotControlPoint; // 0x5bc + int32_t m_nSnapshotControlPoint; // 0x5d4 // MPropertyFriendlyName "limit per update" - int32_t m_nLimitPerUpdate; // 0x5c0 + int32_t m_nLimitPerUpdate; // 0x5d8 // MPropertyFriendlyName "force emit on first update" - bool m_bForceEmitOnFirstUpdate; // 0x5c4 + bool m_bForceEmitOnFirstUpdate; // 0x5dc // MPropertyFriendlyName "force emit on last update" - bool m_bForceEmitOnLastUpdate; // 0x5c5 + bool m_bForceEmitOnLastUpdate; // 0x5dd }; // Alignment: 15 @@ -4963,468 +5012,1026 @@ public: }; // Alignment: 8 -// Size: 0x5d0 +// Size: 0x5e0 class C_OP_MaintainEmitter : public CParticleFunctionEmitter { public: // MPropertyFriendlyName "count to maintain" CParticleCollectionFloatInput m_nParticlesToMaintain; // 0x1c0 // MPropertyFriendlyName "emission start time" - float m_flStartTime; // 0x310 + float m_flStartTime; // 0x318 private: - [[maybe_unused]] uint8_t __pad0314[0x4]; // 0x314 + [[maybe_unused]] uint8_t __pad031c[0x4]; // 0x31c public: // MPropertyFriendlyName "emission duration" - CParticleCollectionFloatInput m_flEmissionDuration; // 0x318 + CParticleCollectionFloatInput m_flEmissionDuration; // 0x320 // MPropertyFriendlyName "emission rate" - float m_flEmissionRate; // 0x468 + float m_flEmissionRate; // 0x478 // MPropertyFriendlyName "control point with snapshot data" - int32_t m_nSnapshotControlPoint; // 0x46c + int32_t m_nSnapshotControlPoint; // 0x47c // MPropertyFriendlyName "group emission times for new particles" - bool m_bEmitInstantaneously; // 0x470 + bool m_bEmitInstantaneously; // 0x480 // MPropertyFriendlyName "perform final emit on stop" - bool m_bFinalEmitOnStop; // 0x471 + bool m_bFinalEmitOnStop; // 0x481 private: - [[maybe_unused]] uint8_t __pad0472[0x6]; // 0x472 + [[maybe_unused]] uint8_t __pad0482[0x6]; // 0x482 public: // MPropertyFriendlyName "total count scale" - CParticleCollectionFloatInput m_flScale; // 0x478 + CParticleCollectionFloatInput m_flScale; // 0x488 }; // Alignment: 2 -// Size: 0x1d0 +// Size: 0x1f0 class C_OP_RandomForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "min force" // MVectorIsCoordinate - Vector m_MinForce; // 0x1b0 + Vector m_MinForce; // 0x1d0 // MPropertyFriendlyName "max force" // MVectorIsCoordinate - Vector m_MaxForce; // 0x1bc + Vector m_MaxForce; // 0x1dc }; // Alignment: 2 -// Size: 0x310 +// Size: 0x330 class C_OP_CPVelocityForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "control point" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "velocity scale" - CPerParticleFloatInput m_flScale; // 0x1b8 + CPerParticleFloatInput m_flScale; // 0x1d8 }; // Alignment: 3 -// Size: 0x1d0 +// Size: 0x1f0 class C_OP_ParentVortices : public CParticleFunctionForce { public: // MPropertyFriendlyName "amount of force" - float m_flForceScale; // 0x1b0 + float m_flForceScale; // 0x1d0 // MPropertyFriendlyName "twist axis" // MVectorIsCoordinate - Vector m_vecTwistAxis; // 0x1b4 + Vector m_vecTwistAxis; // 0x1d4 // MPropertyFriendlyName "flip twist axis with yaw" - bool m_bFlipBasedOnYaw; // 0x1c0 + bool m_bFlipBasedOnYaw; // 0x1e0 }; // Alignment: 4 -// Size: 0x1d0 +// Size: 0x1f0 class C_OP_TwistAroundAxis : public CParticleFunctionForce { public: // MPropertyFriendlyName "amount of force" - float m_fForceAmount; // 0x1b0 + float m_fForceAmount; // 0x1d0 // MPropertyFriendlyName "twist axis" // MVectorIsCoordinate - Vector m_TwistAxis; // 0x1b4 + Vector m_TwistAxis; // 0x1d4 // MPropertyFriendlyName "object local space axis 0/1" - bool m_bLocalSpace; // 0x1c0 + bool m_bLocalSpace; // 0x1e0 private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01e1[0x3]; // 0x1e1 public: // MPropertyFriendlyName "control point" - int32_t m_nControlPointNumber; // 0x1c4 + int32_t m_nControlPointNumber; // 0x1e4 }; // Alignment: 6 -// Size: 0x4e0 +// Size: 0x510 class C_OP_AttractToControlPoint : public CParticleFunctionForce { public: // MPropertyFriendlyName "component scale" // MVectorIsCoordinate - Vector m_vecComponentScale; // 0x1b0 + Vector m_vecComponentScale; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc public: // MPropertyFriendlyName "amount of force (or Max Force)" - CPerParticleFloatInput m_fForceAmount; // 0x1c0 + CPerParticleFloatInput m_fForceAmount; // 0x1e0 // MPropertyFriendlyName "falloff power" - float m_fFalloffPower; // 0x310 + float m_fFalloffPower; // 0x338 private: - [[maybe_unused]] uint8_t __pad0314[0x4]; // 0x314 + [[maybe_unused]] uint8_t __pad033c[0x4]; // 0x33c public: // MPropertyFriendlyName "input position transform" - CParticleTransformInput m_TransformInput; // 0x318 + CParticleTransformInput m_TransformInput; // 0x340 // MPropertyFriendlyName "Min Pullforce" - CPerParticleFloatInput m_fForceAmountMin; // 0x380 + CPerParticleFloatInput m_fForceAmountMin; // 0x3a8 // MPropertyFriendlyName "Apply Min Pullforce" - bool m_bApplyMinForce; // 0x4d0 + bool m_bApplyMinForce; // 0x500 }; // Alignment: 7 -// Size: 0x1f0 +// Size: 0x210 class C_OP_ForceBasedOnDistanceToPlane : public CParticleFunctionForce { public: // MPropertyFriendlyName "min distance from plane" - float m_flMinDist; // 0x1b0 + float m_flMinDist; // 0x1d0 // MPropertyFriendlyName "force at min distance" // MVectorIsCoordinate - Vector m_vecForceAtMinDist; // 0x1b4 + Vector m_vecForceAtMinDist; // 0x1d4 // MPropertyFriendlyName "max distance from plane" - float m_flMaxDist; // 0x1c0 + float m_flMaxDist; // 0x1e0 // MPropertyFriendlyName "force at max distance" // MVectorIsCoordinate - Vector m_vecForceAtMaxDist; // 0x1c4 + Vector m_vecForceAtMaxDist; // 0x1e4 // MPropertyFriendlyName "plane normal" // MVectorIsCoordinate - Vector m_vecPlaneNormal; // 0x1d0 + Vector m_vecPlaneNormal; // 0x1f0 // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1dc + int32_t m_nControlPointNumber; // 0x1fc // MPropertyFriendlyName "exponent" - float m_flExponent; // 0x1e0 + float m_flExponent; // 0x200 }; // Alignment: 4 -// Size: 0x1d0 +// Size: 0x1f0 class C_OP_TimeVaryingForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "time to start transition" - float m_flStartLerpTime; // 0x1b0 + float m_flStartLerpTime; // 0x1d0 // MPropertyFriendlyName "starting force" // MVectorIsCoordinate - Vector m_StartingForce; // 0x1b4 + Vector m_StartingForce; // 0x1d4 // MPropertyFriendlyName "time to end transition" - float m_flEndLerpTime; // 0x1c0 + float m_flEndLerpTime; // 0x1e0 // MPropertyFriendlyName "ending force" // MVectorIsCoordinate - Vector m_EndingForce; // 0x1c4 + Vector m_EndingForce; // 0x1e4 }; // Alignment: 8 -// Size: 0x1f0 +// Size: 0x210 class C_OP_TurbulenceForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "noise scale 0" - float m_flNoiseCoordScale0; // 0x1b0 + float m_flNoiseCoordScale0; // 0x1d0 // MPropertyFriendlyName "noise scale 1" - float m_flNoiseCoordScale1; // 0x1b4 + float m_flNoiseCoordScale1; // 0x1d4 // MPropertyFriendlyName "noise scale 2" - float m_flNoiseCoordScale2; // 0x1b8 + float m_flNoiseCoordScale2; // 0x1d8 // MPropertyFriendlyName "noise scale 3" - float m_flNoiseCoordScale3; // 0x1bc + float m_flNoiseCoordScale3; // 0x1dc // MPropertyFriendlyName "noise amount 0" // MVectorIsCoordinate - Vector m_vecNoiseAmount0; // 0x1c0 + Vector m_vecNoiseAmount0; // 0x1e0 // MPropertyFriendlyName "noise amount 1" // MVectorIsCoordinate - Vector m_vecNoiseAmount1; // 0x1cc + Vector m_vecNoiseAmount1; // 0x1ec // MPropertyFriendlyName "noise amount 2" // MVectorIsCoordinate - Vector m_vecNoiseAmount2; // 0x1d8 + Vector m_vecNoiseAmount2; // 0x1f8 // MPropertyFriendlyName "noise amount 3" // MVectorIsCoordinate - Vector m_vecNoiseAmount3; // 0x1e4 + Vector m_vecNoiseAmount3; // 0x204 }; -// Alignment: 6 -// Size: 0x1700 +// Alignment: 7 +// Size: 0x1df0 class C_OP_CurlNoiseForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "noise type" - ParticleDirectionNoiseType_t m_nNoiseType; // 0x1b0 + ParticleDirectionNoiseType_t m_nNoiseType; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "noise frequency" // MVectorIsCoordinate - CPerParticleVecInput m_vecNoiseFreq; // 0x1b8 + CPerParticleVecInput m_vecNoiseFreq; // 0x1d8 // MPropertyFriendlyName "noise amplitude" // MVectorIsCoordinate - CPerParticleVecInput m_vecNoiseScale; // 0x7f0 + CPerParticleVecInput m_vecNoiseScale; // 0x830 + // MPropertyFriendlyName "offset" + // MVectorIsCoordinate + CPerParticleVecInput m_vecOffset; // 0xe88 // MPropertyFriendlyName "offset rate" // MVectorIsCoordinate - CPerParticleVecInput m_vecOffsetRate; // 0xe28 + CPerParticleVecInput m_vecOffsetRate; // 0x14e0 // MPropertyFriendlyName "worley seed" - CPerParticleFloatInput m_flWorleySeed; // 0x1460 + CPerParticleFloatInput m_flWorleySeed; // 0x1b38 // MPropertyFriendlyName "worley jitter" - CPerParticleFloatInput m_flWorleyJitter; // 0x15b0 + CPerParticleFloatInput m_flWorleyJitter; // 0x1c90 }; // Alignment: 3 -// Size: 0x940 +// Size: 0x990 class C_OP_PerParticleForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "force scale" - CPerParticleFloatInput m_flForceScale; // 0x1b0 + CPerParticleFloatInput m_flForceScale; // 0x1d0 // MPropertyFriendlyName "force to apply" // MVectorIsCoordinate - CPerParticleVecInput m_vForce; // 0x300 + CPerParticleVecInput m_vForce; // 0x328 // MPropertyFriendlyName "local space control point" - int32_t m_nCP; // 0x938 + int32_t m_nCP; // 0x980 }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1e0 class C_OP_WindForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "force to apply" // MVectorIsCoordinate - Vector m_vForce; // 0x1b0 + Vector m_vForce; // 0x1d0 }; -// Alignment: 4 -// Size: 0xe30 +// Alignment: 11 +// Size: 0x1df0 class C_OP_ExternalWindForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "sample position" - CPerParticleVecInput m_vecSamplePosition; // 0x1b0 + CPerParticleVecInput m_vecSamplePosition; // 0x1d0 // MPropertyFriendlyName "force scale" - CPerParticleVecInput m_vecScale; // 0x7e8 + CPerParticleVecInput m_vecScale; // 0x828 // MPropertyFriendlyName "sample wind" - bool m_bSampleWind; // 0xe20 + bool m_bSampleWind; // 0xe80 // MPropertyFriendlyName "sample water current" - bool m_bSampleWater; // 0xe21 + bool m_bSampleWater; // 0xe81 + // MPropertyFriendlyName "dampen gravity/buoyancy near water plane" + // MPropertySuppressExpr "!m_bSampleWater" + bool m_bDampenNearWaterPlane; // 0xe82 + // MPropertyFriendlyName "sample local gravity" + bool m_bSampleGravity; // 0xe83 +private: + [[maybe_unused]] uint8_t __pad0e84[0x4]; // 0xe84 +public: + // MPropertyFriendlyName "gravity force" + // MPropertySuppressExpr "m_bSampleGravity" + CPerParticleVecInput m_vecGravityForce; // 0xe88 + // MPropertyFriendlyName "use Movement Basic for Local Gravity & Buoyancy Scale" + // MPropertySuppressExpr "!m_bSampleGravity" + bool m_bUseBasicMovementGravity; // 0x14e0 +private: + [[maybe_unused]] uint8_t __pad14e1[0x7]; // 0x14e1 +public: + // MPropertyFriendlyName "local gravity scale" + // MPropertySuppressExpr "!m_bSampleGravity" + CPerParticleFloatInput m_flLocalGravityScale; // 0x14e8 + // MPropertyFriendlyName "local gravity buoyancy scale" + // MPropertySuppressExpr "!m_bSampleGravity" + CPerParticleFloatInput m_flLocalBuoyancyScale; // 0x1640 + // MPropertyFriendlyName "buoyancy force" + // MPropertySuppressExpr "!m_bSampleWater || m_bSampleGravity" + CPerParticleVecInput m_vecBuoyancyForce; // 0x1798 }; // Alignment: 5 -// Size: 0x310 +// Size: 0x330 class C_OP_ExternalGameImpulseForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "force scale" - CPerParticleFloatInput m_flForceScale; // 0x1b0 + CPerParticleFloatInput m_flForceScale; // 0x1d0 // MPropertyFriendlyName "rope shake" - bool m_bRopes; // 0x300 + bool m_bRopes; // 0x328 // MPropertyFriendlyName "limit rope impulses to Z" - bool m_bRopesZOnly; // 0x301 + bool m_bRopesZOnly; // 0x329 // MPropertyFriendlyName "explosions" - bool m_bExplosions; // 0x302 + bool m_bExplosions; // 0x32a // MPropertyFriendlyName "particle systems" - bool m_bParticles; // 0x303 + bool m_bParticles; // 0x32b }; // Alignment: 3 -// Size: 0x7f0 +// Size: 0x830 class C_OP_LocalAccelerationForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "local space control point" - int32_t m_nCP; // 0x1b0 + int32_t m_nCP; // 0x1d0 // MPropertyFriendlyName "scale control point" - int32_t m_nScaleCP; // 0x1b4 + int32_t m_nScaleCP; // 0x1d4 // MPropertyFriendlyName "local space acceleration" - CParticleCollectionVecInput m_vecAccel; // 0x1b8 + CParticleCollectionVecInput m_vecAccel; // 0x1d8 }; -// Alignment: 2 -// Size: 0x1c0 +// Alignment: 3 +// Size: 0x1e0 class C_OP_DensityForce : public CParticleFunctionForce { public: // MPropertyFriendlyName "Radius scale for particle influence" - float m_flRadiusScale; // 0x1b0 + float m_flRadiusScale; // 0x1d0 // MPropertyFriendlyName "Scale of force" - float m_flForceScale; // 0x1b4 + float m_flForceScale; // 0x1d4 + // MPropertyFriendlyName "Target density" + float m_flTargetDensity; // 0x1d8 }; // Alignment: 3 -// Size: 0x940 +// Size: 0x980 class C_OP_BasicMovement : public CParticleFunctionOperator { public: // MPropertyFriendlyName "gravity" // MVectorIsCoordinate - CParticleCollectionVecInput m_Gravity; // 0x1b0 + CParticleCollectionVecInput m_Gravity; // 0x1c0 // MPropertyFriendlyName "drag" // MPropertyAttributeRange "-1 1" - CParticleCollectionFloatInput m_fDrag; // 0x7e8 + CParticleCollectionFloatInput m_fDrag; // 0x818 // MPropertyFriendlyName "max constraint passes" - int32_t m_nMaxConstraintPasses; // 0x938 + int32_t m_nMaxConstraintPasses; // 0x970 }; // Alignment: 7 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_FadeAndKill : public CParticleFunctionOperator { public: // MPropertyFriendlyName "start fade in time" - float m_flStartFadeInTime; // 0x1b0 + float m_flStartFadeInTime; // 0x1c0 // MPropertyFriendlyName "end fade in time" - float m_flEndFadeInTime; // 0x1b4 + float m_flEndFadeInTime; // 0x1c4 // MPropertyFriendlyName "start fade out time" - float m_flStartFadeOutTime; // 0x1b8 + float m_flStartFadeOutTime; // 0x1c8 // MPropertyFriendlyName "end fade out time" - float m_flEndFadeOutTime; // 0x1bc + float m_flEndFadeOutTime; // 0x1cc // MPropertyFriendlyName "start alpha" - float m_flStartAlpha; // 0x1c0 + float m_flStartAlpha; // 0x1d0 // MPropertyFriendlyName "end alpha" - float m_flEndAlpha; // 0x1c4 + float m_flEndAlpha; // 0x1d4 // MPropertyFriendlyName "force preserving particle order" - bool m_bForcePreserveParticleOrder; // 0x1c8 + bool m_bForcePreserveParticleOrder; // 0x1d8 }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_FadeAndKillForTracers : public CParticleFunctionOperator { public: // MPropertyFriendlyName "start fade in time" - float m_flStartFadeInTime; // 0x1b0 + float m_flStartFadeInTime; // 0x1c0 // MPropertyFriendlyName "end fade in time" - float m_flEndFadeInTime; // 0x1b4 + float m_flEndFadeInTime; // 0x1c4 // MPropertyFriendlyName "start fade out time" - float m_flStartFadeOutTime; // 0x1b8 + float m_flStartFadeOutTime; // 0x1c8 // MPropertyFriendlyName "end fade out time" - float m_flEndFadeOutTime; // 0x1bc + float m_flEndFadeOutTime; // 0x1cc // MPropertyFriendlyName "start alpha" - float m_flStartAlpha; // 0x1c0 + float m_flStartAlpha; // 0x1d0 // MPropertyFriendlyName "end alpha" - float m_flEndAlpha; // 0x1c4 + float m_flEndAlpha; // 0x1d4 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_FadeIn : public CParticleFunctionOperator { public: // MPropertyFriendlyName "fade in time min" - float m_flFadeInTimeMin; // 0x1b0 + float m_flFadeInTimeMin; // 0x1c0 // MPropertyFriendlyName "fade in time max" - float m_flFadeInTimeMax; // 0x1b4 + float m_flFadeInTimeMax; // 0x1c4 // MPropertyFriendlyName "fade in time exponent" - float m_flFadeInTimeExp; // 0x1b8 + float m_flFadeInTimeExp; // 0x1c8 // MPropertyFriendlyName "proportional 0/1" - bool m_bProportional; // 0x1bc + bool m_bProportional; // 0x1cc }; // Alignment: 6 -// Size: 0x200 +// Size: 0x210 class C_OP_FadeOut : public CParticleFunctionOperator { public: // MPropertyFriendlyName "fade out time min" - float m_flFadeOutTimeMin; // 0x1b0 + float m_flFadeOutTimeMin; // 0x1c0 // MPropertyFriendlyName "fade out time max" - float m_flFadeOutTimeMax; // 0x1b4 + float m_flFadeOutTimeMax; // 0x1c4 // MPropertyFriendlyName "fade out time exponent" - float m_flFadeOutTimeExp; // 0x1b8 + float m_flFadeOutTimeExp; // 0x1c8 // MPropertyFriendlyName "fade bias" - float m_flFadeBias; // 0x1bc + float m_flFadeBias; // 0x1cc private: - [[maybe_unused]] uint8_t __pad01c0[0x30]; // 0x1c0 + [[maybe_unused]] uint8_t __pad01d0[0x30]; // 0x1d0 public: // MPropertyFriendlyName "proportional 0/1" - bool m_bProportional; // 0x1f0 + bool m_bProportional; // 0x200 // MPropertyFriendlyName "ease in and out" - bool m_bEaseInAndOut; // 0x1f1 + bool m_bEaseInAndOut; // 0x201 }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_FadeInSimple : public CParticleFunctionOperator { public: // MPropertyFriendlyName "proportional fade in time" - float m_flFadeInTime; // 0x1b0 + float m_flFadeInTime; // 0x1c0 // MPropertyFriendlyName "alpha field" // MPropertyAttributeChoiceName "particlefield_alpha" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 }; // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_FadeOutSimple : public CParticleFunctionOperator { public: // MPropertyFriendlyName "proportional fade out time" - float m_flFadeOutTime; // 0x1b0 + float m_flFadeOutTime; // 0x1c0 // MPropertyFriendlyName "alpha field" // MPropertyAttributeChoiceName "particlefield_alpha" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 }; // Alignment: 3 -// Size: 0x460 +// Size: 0x480 class C_OP_ClampScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x1b8 + CPerParticleFloatInput m_flOutputMin; // 0x1c8 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x308 + CPerParticleFloatInput m_flOutputMax; // 0x320 }; // Alignment: 3 -// Size: 0xe30 +// Size: 0xe80 class C_OP_ClampVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "output minimum" // MVectorIsSometimesCoordinate - CPerParticleVecInput m_vecOutputMin; // 0x1b8 + CPerParticleVecInput m_vecOutputMin; // 0x1c8 // MPropertyFriendlyName "output maximum" // MVectorIsSometimesCoordinate - CPerParticleVecInput m_vecOutputMax; // 0x7f0 + CPerParticleVecInput m_vecOutputMax; // 0x820 }; // Alignment: 13 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_OscillateScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "oscillation rate min" - float m_RateMin; // 0x1b0 + float m_RateMin; // 0x1c0 // MPropertyFriendlyName "oscillation rate max" - float m_RateMax; // 0x1b4 + float m_RateMax; // 0x1c4 // MPropertyFriendlyName "oscillation frequency min" - float m_FrequencyMin; // 0x1b8 + float m_FrequencyMin; // 0x1c8 // MPropertyFriendlyName "oscillation frequency max" - float m_FrequencyMax; // 0x1bc + float m_FrequencyMax; // 0x1cc // MPropertyFriendlyName "oscillation field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1c0 + ParticleAttributeIndex_t m_nField; // 0x1d0 // MPropertyFriendlyName "proportional 0/1" - bool m_bProportional; // 0x1c4 + bool m_bProportional; // 0x1d4 // MPropertyFriendlyName "start/end proportional" - bool m_bProportionalOp; // 0x1c5 + bool m_bProportionalOp; // 0x1d5 private: - [[maybe_unused]] uint8_t __pad01c6[0x2]; // 0x1c6 + [[maybe_unused]] uint8_t __pad01d6[0x2]; // 0x1d6 public: + // MPropertyFriendlyName "start time min" + float m_flStartTime_min; // 0x1d8 + // MPropertyFriendlyName "start time max" + float m_flStartTime_max; // 0x1dc + // MPropertyFriendlyName "end time min" + float m_flEndTime_min; // 0x1e0 + // MPropertyFriendlyName "end time max" + float m_flEndTime_max; // 0x1e4 + // MPropertyFriendlyName "oscillation multiplier" + float m_flOscMult; // 0x1e8 + // MPropertyFriendlyName "oscillation start phase" + float m_flOscAdd; // 0x1ec +}; + +// Alignment: 5 +// Size: 0x200 +class C_OP_OscillateScalarSimple : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "oscillation rate" + float m_Rate; // 0x1c0 + // MPropertyFriendlyName "oscillation frequency" + float m_Frequency; // 0x1c4 + // MPropertyFriendlyName "oscillation field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nField; // 0x1c8 + // MPropertyFriendlyName "oscillation multiplier" + float m_flOscMult; // 0x1cc + // MPropertyFriendlyName "oscillation start phase" + float m_flOscAdd; // 0x1d0 +}; + +// Alignment: 15 +// Size: 0x610 +class C_OP_OscillateVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "oscillation rate min" + // MVectorIsSometimesCoordinate + Vector m_RateMin; // 0x1c0 + // MPropertyFriendlyName "oscillation rate max" + // MVectorIsSometimesCoordinate + Vector m_RateMax; // 0x1cc + // MPropertyFriendlyName "oscillation frequency min" + // MVectorIsSometimesCoordinate + Vector m_FrequencyMin; // 0x1d8 + // MPropertyFriendlyName "oscillation frequency max" + // MVectorIsSometimesCoordinate + Vector m_FrequencyMax; // 0x1e4 + // MPropertyFriendlyName "oscillation field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nField; // 0x1f0 + // MPropertyFriendlyName "proportional 0/1" + bool m_bProportional; // 0x1f4 + // MPropertyFriendlyName "start/end proportional" + bool m_bProportionalOp; // 0x1f5 + // MPropertyFriendlyName "offset instead of accelerate position" + bool m_bOffset; // 0x1f6 +private: + [[maybe_unused]] uint8_t __pad01f7[0x1]; // 0x1f7 +public: + // MPropertyFriendlyName "start time min" + float m_flStartTime_min; // 0x1f8 + // MPropertyFriendlyName "start time max" + float m_flStartTime_max; // 0x1fc + // MPropertyFriendlyName "end time min" + float m_flEndTime_min; // 0x200 + // MPropertyFriendlyName "end time max" + float m_flEndTime_max; // 0x204 + // MPropertyFriendlyName "oscillation multiplier" + CPerParticleFloatInput m_flOscMult; // 0x208 + // MPropertyFriendlyName "oscillation start phase" + CPerParticleFloatInput m_flOscAdd; // 0x360 + // MPropertyFriendlyName "rate scale" + CPerParticleFloatInput m_flRateScale; // 0x4b8 +}; + +// Alignment: 6 +// Size: 0x1f0 +class C_OP_OscillateVectorSimple : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "oscillation rate" + // MVectorIsSometimesCoordinate + Vector m_Rate; // 0x1c0 + // MPropertyFriendlyName "oscillation frequency" + Vector m_Frequency; // 0x1cc + // MPropertyFriendlyName "oscillation field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nField; // 0x1d8 + // MPropertyFriendlyName "oscillation multiplier" + float m_flOscMult; // 0x1dc + // MPropertyFriendlyName "oscillation start phase" + float m_flOscAdd; // 0x1e0 + // MPropertyFriendlyName "offset instead of accelerate position" + bool m_bOffset; // 0x1e4 +}; + +// Alignment: 9 +// Size: 0x1e0 +class C_OP_DifferencePreviousParticle : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "input field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "difference minimum" + float m_flInputMin; // 0x1c8 + // MPropertyFriendlyName "difference maximum" + float m_flInputMax; // 0x1cc + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1d0 + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1d4 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x1d8 + // MPropertyFriendlyName "only active within specified difference" + bool m_bActiveRange; // 0x1dc + // MPropertyFriendlyName "also set ouput to previous particle" + bool m_bSetPreviousParticle; // 0x1dd +}; + +// Alignment: 2 +// Size: 0x320 +class C_OP_PointVectorAtNextParticle : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 +private: + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 +public: + // MPropertyFriendlyName "Interpolation" + CPerParticleFloatInput m_flInterpolation; // 0x1c8 +}; + +// Alignment: 7 +// Size: 0x1e0 +class C_OP_RemapScalar : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "input field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "input minimum" + float m_flInputMin; // 0x1c8 + // MPropertyFriendlyName "input maximum" + float m_flInputMax; // 0x1cc + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1d0 + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1d4 + // MPropertyFriendlyName "use old code" + bool m_bOldCode; // 0x1d8 +}; + +// Alignment: 8 +// Size: 0x1f0 +class C_OP_RemapDensityToVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Radius scale for particle influence" + float m_flRadiusScale; // 0x1c0 + // MPropertyFriendlyName "Output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "Density value to map to min value" + float m_flDensityMin; // 0x1c8 + // MPropertyFriendlyName "Density value to map to max value" + float m_flDensityMax; // 0x1cc + // MPropertyFriendlyName "Output minimum" + Vector m_vecOutputMin; // 0x1d0 + // MPropertyFriendlyName "Output maximum" + Vector m_vecOutputMax; // 0x1dc + // MPropertyFriendlyName "Use parent density instead of ours" + bool m_bUseParentDensity; // 0x1e8 +private: + [[maybe_unused]] uint8_t __pad01e9[0x3]; // 0x1e9 +public: + // MPropertyFriendlyName "Resolution to use for creating a voxel grid" + int32_t m_nVoxelGridResolution; // 0x1ec +}; + +// Alignment: 3 +// Size: 0x1d0 +class C_OP_Diffusion : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Radius scale for particle influence" + float m_flRadiusScale; // 0x1c0 + // MPropertyFriendlyName "Output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "Resolution to use for creating a voxel grid" + int32_t m_nVoxelGridResolution; // 0x1c8 +}; + +// Alignment: 6 +// Size: 0x1e0 +class C_OP_RemapScalarEndCap : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "input field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "input minimum" + float m_flInputMin; // 0x1c8 + // MPropertyFriendlyName "input maximum" + float m_flInputMax; // 0x1cc + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1d0 + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1d4 +}; + +// Alignment: 3 +// Size: 0x1d0 +class C_OP_ReinitializeScalarEndCap : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "minimum" + float m_flOutputMin; // 0x1c4 + // MPropertyFriendlyName "maximum" + float m_flOutputMax; // 0x1c8 +}; + +// Alignment: 8 +// Size: 0x1e0 +class C_OP_RemapScalarOnceTimed : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "remap time proportional" + bool m_bProportional; // 0x1c0 +private: + [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 +public: + // MPropertyFriendlyName "input field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldInput; // 0x1c4 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c8 + // MPropertyFriendlyName "input minimum" + float m_flInputMin; // 0x1cc + // MPropertyFriendlyName "input maximum" + float m_flInputMax; // 0x1d0 + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1d4 + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1d8 + // MPropertyFriendlyName "remap time" + float m_flRemapTime; // 0x1dc +}; + +// Alignment: 7 +// Size: 0x1e0 +class C_OP_RemapParticleCountOnScalarEndCap : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "input minimum" + int32_t m_nInputMin; // 0x1c4 + // MPropertyFriendlyName "input maximum" + int32_t m_nInputMax; // 0x1c8 + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1cc + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1d0 + // MPropertyFriendlyName "count back from last particle" + bool m_bBackwards; // 0x1d4 +private: + [[maybe_unused]] uint8_t __pad01d5[0x3]; // 0x1d5 +public: + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x1d8 +}; + +// Alignment: 7 +// Size: 0x730 +class C_OP_RemapParticleCountToScalar : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 +private: + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 +public: + // MPropertyFriendlyName "input minimum" + CParticleCollectionFloatInput m_nInputMin; // 0x1c8 + // MPropertyFriendlyName "input maximum" + CParticleCollectionFloatInput m_nInputMax; // 0x320 + // MPropertyFriendlyName "output minimum" + CParticleCollectionFloatInput m_flOutputMin; // 0x478 + // MPropertyFriendlyName "output maximum" + CParticleCollectionFloatInput m_flOutputMax; // 0x5d0 + // MPropertyFriendlyName + bool m_bActiveRange; // 0x728 +private: + [[maybe_unused]] uint8_t __pad0729[0x3]; // 0x729 +public: + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x72c +}; + +// Alignment: 7 +// Size: 0x1e0 +class C_OP_RemapVisibilityScalar : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "input field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "visibility minimum" + float m_flInputMin; // 0x1c8 + // MPropertyFriendlyName "visibility maximum" + float m_flInputMax; // 0x1cc + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1d0 + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1d4 + // MPropertyFriendlyName "radius scale" + float m_flRadiusScale; // 0x1d8 +}; + +// Alignment: 8 +// Size: 0x250 +class C_OP_RemapTransformVisibilityToScalar : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x1c0 +private: + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 +public: + // MPropertyFriendlyName "transform input" + CParticleTransformInput m_TransformInput; // 0x1c8 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x230 + // MPropertyFriendlyName "CP visibility minimum" + float m_flInputMin; // 0x234 + // MPropertyFriendlyName "CP visibility maximum" + float m_flInputMax; // 0x238 + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x23c + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x240 + // MPropertyFriendlyName "visibility radius" + float m_flRadius; // 0x244 +}; + +// Alignment: 8 +// Size: 0x260 +class C_OP_RemapTransformVisibilityToVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x1c0 +private: + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 +public: + // MPropertyFriendlyName "transform input" + CParticleTransformInput m_TransformInput; // 0x1c8 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x230 + // MPropertyFriendlyName "CP visibility minimum" + float m_flInputMin; // 0x234 + // MPropertyFriendlyName "CP visibility maximum" + float m_flInputMax; // 0x238 + // MPropertyFriendlyName "output minimum" + Vector m_vecOutputMin; // 0x23c + // MPropertyFriendlyName "output maximum" + Vector m_vecOutputMax; // 0x248 + // MPropertyFriendlyName "visibility radius" + float m_flRadius; // 0x254 +}; + +// Alignment: 4 +// Size: 0x330 +class C_OP_LerpScalar : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 +private: + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 +public: + // MPropertyFriendlyName "value to lerp to" + CPerParticleFloatInput m_flOutput; // 0x1c8 + // MPropertyFriendlyName "start time" + float m_flStartTime; // 0x320 + // MPropertyFriendlyName "end time" + float m_flEndTime; // 0x324 +}; + +// Alignment: 3 +// Size: 0x1d0 +class C_OP_LerpEndCapScalar : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "value to lerp to" + float m_flOutput; // 0x1c4 + // MPropertyFriendlyName "lerp time" + float m_flLerpTime; // 0x1c8 +}; + +// Alignment: 3 +// Size: 0x1e0 +class C_OP_LerpEndCapVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "value to lerp to" + // MVectorIsSometimesCoordinate + Vector m_vecOutput; // 0x1c4 + // MPropertyFriendlyName "lerp time" + float m_flLerpTime; // 0x1d0 +}; + +// Alignment: 5 +// Size: 0x1e0 +class C_OP_LerpVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "value to lerp to" + // MVectorIsSometimesCoordinate + Vector m_vecOutput; // 0x1c4 + // MPropertyFriendlyName "start time" + float m_flStartTime; // 0x1d0 + // MPropertyFriendlyName "end time" + float m_flEndTime; // 0x1d4 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x1d8 +}; + +// Alignment: 4 +// Size: 0x350 +class C_OP_LerpToOtherAttribute : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Interpolation" + CPerParticleFloatInput m_flInterpolation; // 0x1c0 + // MPropertyFriendlyName "input attribute from" + // MPropertyAttributeChoiceName "particlefield" + ParticleAttributeIndex_t m_nFieldInputFrom; // 0x318 + // MPropertyFriendlyName "input attribute to" + // MPropertyAttributeChoiceName "particlefield" + ParticleAttributeIndex_t m_nFieldInput; // 0x31c + // MPropertyFriendlyName "output attribute" + // MPropertyAttributeChoiceName "particlefield" + ParticleAttributeIndex_t m_nFieldOutput; // 0x320 +}; + +// Alignment: 7 +// Size: 0x1e0 +class C_OP_RemapSpeed : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "input minimum" + float m_flInputMin; // 0x1c4 + // MPropertyFriendlyName "input maximum" + float m_flInputMax; // 0x1c8 + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1cc + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1d0 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x1d4 + // MPropertyFriendlyName "ignore delta time" + bool m_bIgnoreDelta; // 0x1d8 +}; + +// Alignment: 3 +// Size: 0x1d0 +class C_OP_RemapVectortoCP : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output control point" + int32_t m_nOutControlPointNumber; // 0x1c0 + // MPropertyFriendlyName "input field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldInput; // 0x1c4 + // MPropertyFriendlyName "particle number to read" + int32_t m_nParticleNumber; // 0x1c8 +}; + +// Alignment: 8 +// Size: 0x210 +class C_OP_RampScalarLinear : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "ramp rate min" + float m_RateMin; // 0x1c0 + // MPropertyFriendlyName "ramp rate max" + float m_RateMax; // 0x1c4 // MPropertyFriendlyName "start time min" float m_flStartTime_min; // 0x1c8 // MPropertyFriendlyName "start time max" @@ -5433,712 +6040,208 @@ public: float m_flEndTime_min; // 0x1d0 // MPropertyFriendlyName "end time max" float m_flEndTime_max; // 0x1d4 - // MPropertyFriendlyName "oscillation multiplier" - float m_flOscMult; // 0x1d8 - // MPropertyFriendlyName "oscillation start phase" - float m_flOscAdd; // 0x1dc -}; - -// Alignment: 5 -// Size: 0x1f0 -class C_OP_OscillateScalarSimple : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "oscillation rate" - float m_Rate; // 0x1b0 - // MPropertyFriendlyName "oscillation frequency" - float m_Frequency; // 0x1b4 - // MPropertyFriendlyName "oscillation field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1b8 - // MPropertyFriendlyName "oscillation multiplier" - float m_flOscMult; // 0x1bc - // MPropertyFriendlyName "oscillation start phase" - float m_flOscAdd; // 0x1c0 -}; - -// Alignment: 15 -// Size: 0x5f0 -class C_OP_OscillateVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "oscillation rate min" - // MVectorIsSometimesCoordinate - Vector m_RateMin; // 0x1b0 - // MPropertyFriendlyName "oscillation rate max" - // MVectorIsSometimesCoordinate - Vector m_RateMax; // 0x1bc - // MPropertyFriendlyName "oscillation frequency min" - // MVectorIsSometimesCoordinate - Vector m_FrequencyMin; // 0x1c8 - // MPropertyFriendlyName "oscillation frequency max" - // MVectorIsSometimesCoordinate - Vector m_FrequencyMax; // 0x1d4 - // MPropertyFriendlyName "oscillation field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nField; // 0x1e0 - // MPropertyFriendlyName "proportional 0/1" - bool m_bProportional; // 0x1e4 - // MPropertyFriendlyName "start/end proportional" - bool m_bProportionalOp; // 0x1e5 - // MPropertyFriendlyName "offset instead of accelerate position" - bool m_bOffset; // 0x1e6 private: - [[maybe_unused]] uint8_t __pad01e7[0x1]; // 0x1e7 -public: - // MPropertyFriendlyName "start time min" - float m_flStartTime_min; // 0x1e8 - // MPropertyFriendlyName "start time max" - float m_flStartTime_max; // 0x1ec - // MPropertyFriendlyName "end time min" - float m_flEndTime_min; // 0x1f0 - // MPropertyFriendlyName "end time max" - float m_flEndTime_max; // 0x1f4 - // MPropertyFriendlyName "oscillation multiplier" - CPerParticleFloatInput m_flOscMult; // 0x1f8 - // MPropertyFriendlyName "oscillation start phase" - CPerParticleFloatInput m_flOscAdd; // 0x348 - // MPropertyFriendlyName "rate scale" - CPerParticleFloatInput m_flRateScale; // 0x498 -}; - -// Alignment: 6 -// Size: 0x1e0 -class C_OP_OscillateVectorSimple : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "oscillation rate" - // MVectorIsSometimesCoordinate - Vector m_Rate; // 0x1b0 - // MPropertyFriendlyName "oscillation frequency" - Vector m_Frequency; // 0x1bc - // MPropertyFriendlyName "oscillation field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nField; // 0x1c8 - // MPropertyFriendlyName "oscillation multiplier" - float m_flOscMult; // 0x1cc - // MPropertyFriendlyName "oscillation start phase" - float m_flOscAdd; // 0x1d0 - // MPropertyFriendlyName "offset instead of accelerate position" - bool m_bOffset; // 0x1d4 -}; - -// Alignment: 9 -// Size: 0x1d0 -class C_OP_DifferencePreviousParticle : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "input field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 - // MPropertyFriendlyName "difference minimum" - float m_flInputMin; // 0x1b8 - // MPropertyFriendlyName "difference maximum" - float m_flInputMax; // 0x1bc - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c0 - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c4 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1c8 - // MPropertyFriendlyName "only active within specified difference" - bool m_bActiveRange; // 0x1cc - // MPropertyFriendlyName "also set ouput to previous particle" - bool m_bSetPreviousParticle; // 0x1cd -}; - -// Alignment: 2 -// Size: 0x310 -class C_OP_PointVectorAtNextParticle : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 -public: - // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x1b8 -}; - -// Alignment: 6 -// Size: 0x1d0 -class C_OP_RemapScalar : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "input field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 - // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1b8 - // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1bc - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c0 - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c4 -}; - -// Alignment: 6 -// Size: 0x1e0 -class C_OP_RemapDensityToVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "Radius scale for particle influence" - float m_flRadiusScale; // 0x1b0 - // MPropertyFriendlyName "Output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 - // MPropertyFriendlyName "Density value to map to min value" - float m_flDensityMin; // 0x1b8 - // MPropertyFriendlyName "Density value to map to max value" - float m_flDensityMax; // 0x1bc - // MPropertyFriendlyName "Output minimum" - Vector m_vecOutputMin; // 0x1c0 - // MPropertyFriendlyName "Output maximum" - Vector m_vecOutputMax; // 0x1cc -}; - -// Alignment: 6 -// Size: 0x1d0 -class C_OP_RemapScalarEndCap : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "input field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 - // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1b8 - // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1bc - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c0 - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c4 -}; - -// Alignment: 3 -// Size: 0x1c0 -class C_OP_ReinitializeScalarEndCap : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "minimum" - float m_flOutputMin; // 0x1b4 - // MPropertyFriendlyName "maximum" - float m_flOutputMax; // 0x1b8 -}; - -// Alignment: 8 -// Size: 0x1d0 -class C_OP_RemapScalarOnceTimed : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "remap time proportional" - bool m_bProportional; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b1[0x3]; // 0x1b1 -public: - // MPropertyFriendlyName "input field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b4 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b8 - // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1bc - // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1c0 - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c4 - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c8 - // MPropertyFriendlyName "remap time" - float m_flRemapTime; // 0x1cc -}; - -// Alignment: 7 -// Size: 0x1d0 -class C_OP_RemapParticleCountOnScalarEndCap : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "input minimum" - int32_t m_nInputMin; // 0x1b4 - // MPropertyFriendlyName "input maximum" - int32_t m_nInputMax; // 0x1b8 - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1bc - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c0 - // MPropertyFriendlyName "count back from last particle" - bool m_bBackwards; // 0x1c4 -private: - [[maybe_unused]] uint8_t __pad01c5[0x3]; // 0x1c5 -public: - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1c8 -}; - -// Alignment: 7 -// Size: 0x700 -class C_OP_RemapParticleCountToScalar : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 -public: - // MPropertyFriendlyName "input minimum" - CParticleCollectionFloatInput m_nInputMin; // 0x1b8 - // MPropertyFriendlyName "input maximum" - CParticleCollectionFloatInput m_nInputMax; // 0x308 - // MPropertyFriendlyName "output minimum" - CParticleCollectionFloatInput m_flOutputMin; // 0x458 - // MPropertyFriendlyName "output maximum" - CParticleCollectionFloatInput m_flOutputMax; // 0x5a8 - // MPropertyFriendlyName - bool m_bActiveRange; // 0x6f8 -private: - [[maybe_unused]] uint8_t __pad06f9[0x3]; // 0x6f9 -public: - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x6fc -}; - -// Alignment: 7 -// Size: 0x1d0 -class C_OP_RemapVisibilityScalar : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "input field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 - // MPropertyFriendlyName "visibility minimum" - float m_flInputMin; // 0x1b8 - // MPropertyFriendlyName "visibility maximum" - float m_flInputMax; // 0x1bc - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c0 - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c4 - // MPropertyFriendlyName "radius scale" - float m_flRadiusScale; // 0x1c8 -}; - -// Alignment: 8 -// Size: 0x240 -class C_OP_RemapTransformVisibilityToScalar : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 -public: - // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b8 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x220 - // MPropertyFriendlyName "CP visibility minimum" - float m_flInputMin; // 0x224 - // MPropertyFriendlyName "CP visibility maximum" - float m_flInputMax; // 0x228 - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x22c - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x230 - // MPropertyFriendlyName "visibility radius" - float m_flRadius; // 0x234 -}; - -// Alignment: 8 -// Size: 0x250 -class C_OP_RemapTransformVisibilityToVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 -public: - // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b8 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x220 - // MPropertyFriendlyName "CP visibility minimum" - float m_flInputMin; // 0x224 - // MPropertyFriendlyName "CP visibility maximum" - float m_flInputMax; // 0x228 - // MPropertyFriendlyName "output minimum" - Vector m_vecOutputMin; // 0x22c - // MPropertyFriendlyName "output maximum" - Vector m_vecOutputMax; // 0x238 - // MPropertyFriendlyName "visibility radius" - float m_flRadius; // 0x244 -}; - -// Alignment: 4 -// Size: 0x310 -class C_OP_LerpScalar : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 -public: - // MPropertyFriendlyName "value to lerp to" - CPerParticleFloatInput m_flOutput; // 0x1b8 - // MPropertyFriendlyName "start time" - float m_flStartTime; // 0x308 - // MPropertyFriendlyName "end time" - float m_flEndTime; // 0x30c -}; - -// Alignment: 3 -// Size: 0x1c0 -class C_OP_LerpEndCapScalar : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "value to lerp to" - float m_flOutput; // 0x1b4 - // MPropertyFriendlyName "lerp time" - float m_flLerpTime; // 0x1b8 -}; - -// Alignment: 3 -// Size: 0x1d0 -class C_OP_LerpEndCapVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "value to lerp to" - // MVectorIsSometimesCoordinate - Vector m_vecOutput; // 0x1b4 - // MPropertyFriendlyName "lerp time" - float m_flLerpTime; // 0x1c0 -}; - -// Alignment: 5 -// Size: 0x1d0 -class C_OP_LerpVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "value to lerp to" - // MVectorIsSometimesCoordinate - Vector m_vecOutput; // 0x1b4 - // MPropertyFriendlyName "start time" - float m_flStartTime; // 0x1c0 - // MPropertyFriendlyName "end time" - float m_flEndTime; // 0x1c4 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1c8 -}; - -// Alignment: 4 -// Size: 0x330 -class C_OP_LerpToOtherAttribute : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x1b0 - // MPropertyFriendlyName "input attribute from" - // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldInputFrom; // 0x300 - // MPropertyFriendlyName "input attribute to" - // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldInput; // 0x304 - // MPropertyFriendlyName "output attribute" - // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldOutput; // 0x308 -}; - -// Alignment: 7 -// Size: 0x1d0 -class C_OP_RemapSpeed : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1b4 - // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1b8 - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1bc - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c0 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1c4 - // MPropertyFriendlyName "ignore delta time" - bool m_bIgnoreDelta; // 0x1c8 -}; - -// Alignment: 3 -// Size: 0x1c0 -class C_OP_RemapVectortoCP : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1b0 - // MPropertyFriendlyName "input field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b4 - // MPropertyFriendlyName "particle number to read" - int32_t m_nParticleNumber; // 0x1b8 -}; - -// Alignment: 8 -// Size: 0x200 -class C_OP_RampScalarLinear : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "ramp rate min" - float m_RateMin; // 0x1b0 - // MPropertyFriendlyName "ramp rate max" - float m_RateMax; // 0x1b4 - // MPropertyFriendlyName "start time min" - float m_flStartTime_min; // 0x1b8 - // MPropertyFriendlyName "start time max" - float m_flStartTime_max; // 0x1bc - // MPropertyFriendlyName "end time min" - float m_flEndTime_min; // 0x1c0 - // MPropertyFriendlyName "end time max" - float m_flEndTime_max; // 0x1c4 -private: - [[maybe_unused]] uint8_t __pad01c8[0x28]; // 0x1c8 + [[maybe_unused]] uint8_t __pad01d8[0x28]; // 0x1d8 public: // MPropertyFriendlyName "ramp field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1f0 + ParticleAttributeIndex_t m_nField; // 0x200 // MPropertyFriendlyName "start/end proportional" - bool m_bProportionalOp; // 0x1f4 + bool m_bProportionalOp; // 0x204 }; // Alignment: 10 -// Size: 0x200 +// Size: 0x210 class C_OP_RampScalarSpline : public CParticleFunctionOperator { public: // MPropertyFriendlyName "ramp rate min" - float m_RateMin; // 0x1b0 + float m_RateMin; // 0x1c0 // MPropertyFriendlyName "ramp rate max" - float m_RateMax; // 0x1b4 + float m_RateMax; // 0x1c4 // MPropertyFriendlyName "start time min" - float m_flStartTime_min; // 0x1b8 + float m_flStartTime_min; // 0x1c8 // MPropertyFriendlyName "start time max" - float m_flStartTime_max; // 0x1bc + float m_flStartTime_max; // 0x1cc // MPropertyFriendlyName "end time min" - float m_flEndTime_min; // 0x1c0 + float m_flEndTime_min; // 0x1d0 // MPropertyFriendlyName "end time max" - float m_flEndTime_max; // 0x1c4 + float m_flEndTime_max; // 0x1d4 // MPropertyFriendlyName "bias" - float m_flBias; // 0x1c8 + float m_flBias; // 0x1d8 +private: + [[maybe_unused]] uint8_t __pad01dc[0x24]; // 0x1dc +public: + // MPropertyFriendlyName "ramp field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nField; // 0x200 + // MPropertyFriendlyName "start/end proportional" + bool m_bProportionalOp; // 0x204 + // MPropertyFriendlyName "ease out" + bool m_bEaseOut; // 0x205 +}; + +// Alignment: 4 +// Size: 0x200 +class C_OP_RampScalarLinearSimple : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "ramp rate" + float m_Rate; // 0x1c0 + // MPropertyFriendlyName "start time" + float m_flStartTime; // 0x1c4 + // MPropertyFriendlyName "end time" + float m_flEndTime; // 0x1c8 private: [[maybe_unused]] uint8_t __pad01cc[0x24]; // 0x1cc public: // MPropertyFriendlyName "ramp field" // MPropertyAttributeChoiceName "particlefield_scalar" ParticleAttributeIndex_t m_nField; // 0x1f0 - // MPropertyFriendlyName "start/end proportional" - bool m_bProportionalOp; // 0x1f4 - // MPropertyFriendlyName "ease out" - bool m_bEaseOut; // 0x1f5 -}; - -// Alignment: 4 -// Size: 0x1f0 -class C_OP_RampScalarLinearSimple : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "ramp rate" - float m_Rate; // 0x1b0 - // MPropertyFriendlyName "start time" - float m_flStartTime; // 0x1b4 - // MPropertyFriendlyName "end time" - float m_flEndTime; // 0x1b8 -private: - [[maybe_unused]] uint8_t __pad01bc[0x24]; // 0x1bc -public: - // MPropertyFriendlyName "ramp field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1e0 }; // Alignment: 5 -// Size: 0x1f0 +// Size: 0x200 class C_OP_RampScalarSplineSimple : public CParticleFunctionOperator { public: // MPropertyFriendlyName "ramp rate" - float m_Rate; // 0x1b0 + float m_Rate; // 0x1c0 // MPropertyFriendlyName "start time" - float m_flStartTime; // 0x1b4 + float m_flStartTime; // 0x1c4 // MPropertyFriendlyName "end time" - float m_flEndTime; // 0x1b8 + float m_flEndTime; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x24]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x24]; // 0x1cc public: // MPropertyFriendlyName "ramp field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1e0 + ParticleAttributeIndex_t m_nField; // 0x1f0 // MPropertyFriendlyName "ease out" - bool m_bEaseOut; // 0x1e4 + bool m_bEaseOut; // 0x1f4 }; // Alignment: 10 -// Size: 0x1380 +// Size: 0x13f0 class C_OP_ChladniWave : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "wave minimum" - CPerParticleFloatInput m_flInputMin; // 0x1b8 + CPerParticleFloatInput m_flInputMin; // 0x1c8 // MPropertyFriendlyName "wave maximum" - CPerParticleFloatInput m_flInputMax; // 0x308 + CPerParticleFloatInput m_flInputMax; // 0x320 // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x458 + CPerParticleFloatInput m_flOutputMin; // 0x478 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x5a8 + CPerParticleFloatInput m_flOutputMax; // 0x5d0 // MPropertyFriendlyName "wave length" - CPerParticleVecInput m_vecWaveLength; // 0x6f8 + CPerParticleVecInput m_vecWaveLength; // 0x728 // MPropertyFriendlyName "harmonics" - CPerParticleVecInput m_vecHarmonics; // 0xd30 + CPerParticleVecInput m_vecHarmonics; // 0xd80 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1368 + ParticleSetMethod_t m_nSetMethod; // 0x13d8 // MPropertyFriendlyName "local space control point" - int32_t m_nLocalSpaceControlPoint; // 0x136c + int32_t m_nLocalSpaceControlPoint; // 0x13dc // MPropertyFriendlyName "3D" - bool m_b3D; // 0x1370 + bool m_b3D; // 0x13e0 }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_Noise : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1b4 + float m_flOutputMin; // 0x1c4 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1b8 - // MPropertyFriendlyName "noise coordinate scale" - float m_fl4NoiseScale; // 0x1bc - // MPropertyFriendlyName "additive" - bool m_bAdditive; // 0x1c0 -private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 -public: - // MPropertyFriendlyName "Noise animation time scale" - float m_flNoiseAnimationTimeScale; // 0x1c4 -}; - -// Alignment: 7 -// Size: 0x1e0 -class C_OP_VectorNoise : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "output minimum" - // MVectorIsSometimesCoordinate - Vector m_vecOutputMin; // 0x1b4 - // MPropertyFriendlyName "output maximum" - // MVectorIsSometimesCoordinate - Vector m_vecOutputMax; // 0x1c0 + float m_flOutputMax; // 0x1c8 // MPropertyFriendlyName "noise coordinate scale" float m_fl4NoiseScale; // 0x1cc // MPropertyFriendlyName "additive" bool m_bAdditive; // 0x1d0 - // MPropertyFriendlyName "offset instead of accelerate position" - bool m_bOffset; // 0x1d1 private: - [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 + [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 public: // MPropertyFriendlyName "Noise animation time scale" float m_flNoiseAnimationTimeScale; // 0x1d4 }; +// Alignment: 7 +// Size: 0x1f0 +class C_OP_VectorNoise : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "output minimum" + // MVectorIsSometimesCoordinate + Vector m_vecOutputMin; // 0x1c4 + // MPropertyFriendlyName "output maximum" + // MVectorIsSometimesCoordinate + Vector m_vecOutputMax; // 0x1d0 + // MPropertyFriendlyName "noise coordinate scale" + float m_fl4NoiseScale; // 0x1dc + // MPropertyFriendlyName "additive" + bool m_bAdditive; // 0x1e0 + // MPropertyFriendlyName "offset instead of accelerate position" + bool m_bOffset; // 0x1e1 +private: + [[maybe_unused]] uint8_t __pad01e2[0x2]; // 0x1e2 +public: + // MPropertyFriendlyName "Noise animation time scale" + float m_flNoiseAnimationTimeScale; // 0x1e4 +}; + // Alignment: 2 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_Decay : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Reduce rope popping on decay" - bool m_bRopeDecay; // 0x1b0 + bool m_bRopeDecay; // 0x1c0 // MPropertyFriendlyName "force preserving particle order" - bool m_bForcePreserveParticleOrder; // 0x1b1 + bool m_bForcePreserveParticleOrder; // 0x1c1 }; // Alignment: 1 -// Size: 0x300 +// Size: 0x320 class C_OP_DecayOffscreen : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Offscreen Time Before Decay" - CParticleCollectionFloatInput m_flOffscreenTime; // 0x1b0 + CParticleCollectionFloatInput m_flOffscreenTime; // 0x1c0 }; // Alignment: 1 -// Size: 0x300 +// Size: 0x320 class C_OP_EndCapTimedFreeze : public CParticleFunctionOperator { public: // MPropertyFriendlyName "freeze time" - CParticleCollectionFloatInput m_flFreezeTime; // 0x1b0 + CParticleCollectionFloatInput m_flFreezeTime; // 0x1c0 }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_EndCapTimedDecay : public CParticleFunctionOperator { public: // MPropertyFriendlyName "decay time" - float m_flDecayTime; // 0x1b0 + float m_flDecayTime; // 0x1c0 }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class C_OP_EndCapDecay : public CParticleFunctionOperator { public: @@ -6146,96 +6249,96 @@ public: }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_VelocityDecay : public CParticleFunctionOperator { public: // MPropertyFriendlyName "minimum velocity" - float m_flMinVelocity; // 0x1b0 + float m_flMinVelocity; // 0x1c0 }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_AlphaDecay : public CParticleFunctionOperator { public: // MPropertyFriendlyName "minimum alpha" - float m_flMinAlpha; // 0x1b0 + float m_flMinAlpha; // 0x1c0 }; // Alignment: 1 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_RadiusDecay : public CParticleFunctionOperator { public: // MPropertyFriendlyName "minimum radius" - float m_flMinRadius; // 0x1b0 + float m_flMinRadius; // 0x1c0 }; // Alignment: 6 -// Size: 0x320 +// Size: 0x330 class C_OP_DecayMaintainCount : public CParticleFunctionOperator { public: // MPropertyFriendlyName "count to maintain" - int32_t m_nParticlesToMaintain; // 0x1b0 + int32_t m_nParticlesToMaintain; // 0x1c0 // MPropertyFriendlyName "decay delay" - float m_flDecayDelay; // 0x1b4 + float m_flDecayDelay; // 0x1c4 // MPropertyFriendlyName "snapshot control point for count" - int32_t m_nSnapshotControlPoint; // 0x1b8 + int32_t m_nSnapshotControlPoint; // 0x1c8 // MPropertyFriendlyName "decay on lifespan" - bool m_bLifespanDecay; // 0x1bc + bool m_bLifespanDecay; // 0x1cc private: - [[maybe_unused]] uint8_t __pad01bd[0x3]; // 0x1bd + [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd public: // MPropertyFriendlyName "total count scale" - CParticleCollectionFloatInput m_flScale; // 0x1c0 + CParticleCollectionFloatInput m_flScale; // 0x1d0 // MPropertyFriendlyName "kill newest instead of oldest" - bool m_bKillNewest; // 0x310 + bool m_bKillNewest; // 0x328 }; // Alignment: 1 -// Size: 0x300 +// Size: 0x320 class C_OP_DecayClampCount : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Maximum Count" - CParticleCollectionFloatInput m_nCount; // 0x1b0 + CParticleCollectionFloatInput m_nCount; // 0x1c0 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_Cull : public CParticleFunctionOperator { public: // MPropertyFriendlyName "cull percentage" - float m_flCullPerc; // 0x1b0 + float m_flCullPerc; // 0x1c0 // MPropertyFriendlyName "cull start time" - float m_flCullStart; // 0x1b4 + float m_flCullStart; // 0x1c4 // MPropertyFriendlyName "cull end time" - float m_flCullEnd; // 0x1b8 + float m_flCullEnd; // 0x1c8 // MPropertyFriendlyName "cull time exponent" - float m_flCullExp; // 0x1bc + float m_flCullExp; // 0x1cc }; // Alignment: 3 -// Size: 0x1d0 +// Size: 0x1e0 class CGeneralSpin : public CParticleFunctionOperator { public: // MPropertyFriendlyName "spin rate degrees" - int32_t m_nSpinRateDegrees; // 0x1b0 + int32_t m_nSpinRateDegrees; // 0x1c0 // MPropertyFriendlyName "spin rate min" - int32_t m_nSpinRateMinDegrees; // 0x1b4 + int32_t m_nSpinRateMinDegrees; // 0x1c4 private: - [[maybe_unused]] uint8_t __pad01b8[0x4]; // 0x1b8 + [[maybe_unused]] uint8_t __pad01c8[0x4]; // 0x1c8 public: // MPropertyFriendlyName "spin stop time" - float m_fSpinRateStopTime; // 0x1bc + float m_fSpinRateStopTime; // 0x1cc }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class CSpinUpdateBase : public CParticleFunctionOperator { public: @@ -6243,7 +6346,7 @@ public: }; // Alignment: 0 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_Spin : public CGeneralSpin { public: @@ -6251,7 +6354,7 @@ public: }; // Alignment: 0 -// Size: 0x1b0 +// Size: 0x1c0 class C_OP_SpinUpdate : public CSpinUpdateBase { public: @@ -6259,7 +6362,7 @@ public: }; // Alignment: 0 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SpinYaw : public CGeneralSpin { public: @@ -6267,522 +6370,474 @@ public: }; // Alignment: 6 -// Size: 0x200 +// Size: 0x210 class C_OP_InterpolateRadius : public CParticleFunctionOperator { public: // MPropertyFriendlyName "start time" - float m_flStartTime; // 0x1b0 + float m_flStartTime; // 0x1c0 // MPropertyFriendlyName "end time" - float m_flEndTime; // 0x1b4 + float m_flEndTime; // 0x1c4 // MPropertyFriendlyName "radius start scale" - float m_flStartScale; // 0x1b8 + float m_flStartScale; // 0x1c8 // MPropertyFriendlyName "radius end scale" - float m_flEndScale; // 0x1bc + float m_flEndScale; // 0x1cc // MPropertyFriendlyName "ease in and out" - bool m_bEaseInAndOut; // 0x1c0 + bool m_bEaseInAndOut; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 public: // MPropertyFriendlyName "scale bias" - float m_flBias; // 0x1c4 + float m_flBias; // 0x1d4 }; // Alignment: 5 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_ColorInterpolate : public CParticleFunctionOperator { public: // MPropertyFriendlyName "color fade" - Color m_ColorFade; // 0x1b0 + Color m_ColorFade; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0xc]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0xc]; // 0x1c4 public: // MPropertyFriendlyName "fade start time" - float m_flFadeStartTime; // 0x1c0 + float m_flFadeStartTime; // 0x1d0 // MPropertyFriendlyName "fade end time" - float m_flFadeEndTime; // 0x1c4 + float m_flFadeEndTime; // 0x1d4 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1c8 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1d8 // MPropertyFriendlyName "ease in and out" - bool m_bEaseInOut; // 0x1cc + bool m_bEaseInOut; // 0x1dc }; // Alignment: 6 -// Size: 0x1f0 +// Size: 0x200 class C_OP_ColorInterpolateRandom : public CParticleFunctionOperator { public: // MPropertyFriendlyName "color fade min" - Color m_ColorFadeMin; // 0x1b0 + Color m_ColorFadeMin; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x18]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x18]; // 0x1c4 public: // MPropertyFriendlyName "color fade max" - Color m_ColorFadeMax; // 0x1cc + Color m_ColorFadeMax; // 0x1dc private: - [[maybe_unused]] uint8_t __pad01d0[0xc]; // 0x1d0 + [[maybe_unused]] uint8_t __pad01e0[0xc]; // 0x1e0 public: // MPropertyFriendlyName "fade start time" - float m_flFadeStartTime; // 0x1dc + float m_flFadeStartTime; // 0x1ec // MPropertyFriendlyName "fade end time" - float m_flFadeEndTime; // 0x1e0 + float m_flFadeEndTime; // 0x1f0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1e4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1f4 // MPropertyFriendlyName "ease in and out" - bool m_bEaseInOut; // 0x1e8 + bool m_bEaseInOut; // 0x1f8 }; // Alignment: 15 -// Size: 0x9e0 +// Size: 0xa10 class C_OP_PositionLock : public CParticleFunctionOperator { public: // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b0 + CParticleTransformInput m_TransformInput; // 0x1c0 // MPropertyFriendlyName "start fadeout min" - float m_flStartTime_min; // 0x218 + float m_flStartTime_min; // 0x228 // MPropertyFriendlyName "start fadeout max" - float m_flStartTime_max; // 0x21c + float m_flStartTime_max; // 0x22c // MPropertyFriendlyName "start fadeout exponent" - float m_flStartTime_exp; // 0x220 + float m_flStartTime_exp; // 0x230 // MPropertyFriendlyName "end fadeout min" - float m_flEndTime_min; // 0x224 + float m_flEndTime_min; // 0x234 // MPropertyFriendlyName "end fadeout max" - float m_flEndTime_max; // 0x228 + float m_flEndTime_max; // 0x238 // MPropertyFriendlyName "end fadeout exponent" - float m_flEndTime_exp; // 0x22c + float m_flEndTime_exp; // 0x23c // MPropertyFriendlyName "distance fade range" - float m_flRange; // 0x230 + float m_flRange; // 0x240 private: - [[maybe_unused]] uint8_t __pad0234[0x4]; // 0x234 + [[maybe_unused]] uint8_t __pad0244[0x4]; // 0x244 public: // MPropertyFriendlyName "distance fade bias" - CParticleCollectionFloatInput m_flRangeBias; // 0x238 + CParticleCollectionFloatInput m_flRangeBias; // 0x248 // MPropertyFriendlyName "instant jump threshold" - float m_flJumpThreshold; // 0x388 + float m_flJumpThreshold; // 0x3a0 // MPropertyFriendlyName "previous position scale" - float m_flPrevPosScale; // 0x38c + float m_flPrevPosScale; // 0x3a4 // MPropertyFriendlyName "lock rotation" - bool m_bLockRot; // 0x390 + bool m_bLockRot; // 0x3a8 private: - [[maybe_unused]] uint8_t __pad0391[0x7]; // 0x391 + [[maybe_unused]] uint8_t __pad03a9[0x7]; // 0x3a9 public: // MPropertyFriendlyName "component scale" - CParticleCollectionVecInput m_vecScale; // 0x398 + CParticleCollectionVecInput m_vecScale; // 0x3b0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x9d0 + ParticleAttributeIndex_t m_nFieldOutput; // 0xa08 // MPropertyFriendlyName "output field prev" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutputPrev; // 0x9d4 + ParticleAttributeIndex_t m_nFieldOutputPrev; // 0xa0c }; // Alignment: 33 -// Size: 0x700 +// Size: 0x710 class C_OP_ControlpointLight : public CParticleFunctionOperator { public: // MPropertyFriendlyName "initial color bias" - float m_flScale; // 0x1b0 + float m_flScale; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4cc]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4cc]; // 0x1c4 public: // MPropertyFriendlyName "light 1 control point" - int32_t m_nControlPoint1; // 0x680 + int32_t m_nControlPoint1; // 0x690 // MPropertyFriendlyName "light 2 control point" - int32_t m_nControlPoint2; // 0x684 + int32_t m_nControlPoint2; // 0x694 // MPropertyFriendlyName "light 3 control point" - int32_t m_nControlPoint3; // 0x688 + int32_t m_nControlPoint3; // 0x698 // MPropertyFriendlyName "light 4 control point" - int32_t m_nControlPoint4; // 0x68c + int32_t m_nControlPoint4; // 0x69c // MPropertyFriendlyName "light 1 control point offset" - Vector m_vecCPOffset1; // 0x690 + Vector m_vecCPOffset1; // 0x6a0 // MPropertyFriendlyName "light 2 control point offset" - Vector m_vecCPOffset2; // 0x69c + Vector m_vecCPOffset2; // 0x6ac // MPropertyFriendlyName "light 3 control point offset" - Vector m_vecCPOffset3; // 0x6a8 + Vector m_vecCPOffset3; // 0x6b8 // MPropertyFriendlyName "light 4 control point offset" - Vector m_vecCPOffset4; // 0x6b4 + Vector m_vecCPOffset4; // 0x6c4 // MPropertyFriendlyName "light 1 50% distance" - float m_LightFiftyDist1; // 0x6c0 + float m_LightFiftyDist1; // 0x6d0 // MPropertyFriendlyName "light 1 0% distance" - float m_LightZeroDist1; // 0x6c4 + float m_LightZeroDist1; // 0x6d4 // MPropertyFriendlyName "light 2 50% distance" - float m_LightFiftyDist2; // 0x6c8 + float m_LightFiftyDist2; // 0x6d8 // MPropertyFriendlyName "light 2 0% distance" - float m_LightZeroDist2; // 0x6cc + float m_LightZeroDist2; // 0x6dc // MPropertyFriendlyName "light 3 50% distance" - float m_LightFiftyDist3; // 0x6d0 + float m_LightFiftyDist3; // 0x6e0 // MPropertyFriendlyName "light 3 0% distance" - float m_LightZeroDist3; // 0x6d4 + float m_LightZeroDist3; // 0x6e4 // MPropertyFriendlyName "light 4 50% distance" - float m_LightFiftyDist4; // 0x6d8 + float m_LightFiftyDist4; // 0x6e8 // MPropertyFriendlyName "light 4 0% distance" - float m_LightZeroDist4; // 0x6dc + float m_LightZeroDist4; // 0x6ec // MPropertyFriendlyName "light 1 color" - Color m_LightColor1; // 0x6e0 + Color m_LightColor1; // 0x6f0 // MPropertyFriendlyName "light 2 color" - Color m_LightColor2; // 0x6e4 + Color m_LightColor2; // 0x6f4 // MPropertyFriendlyName "light 3 color" - Color m_LightColor3; // 0x6e8 + Color m_LightColor3; // 0x6f8 // MPropertyFriendlyName "light 4 color" - Color m_LightColor4; // 0x6ec + Color m_LightColor4; // 0x6fc // MPropertyFriendlyName "light 1 type 0=point 1=spot" - bool m_bLightType1; // 0x6f0 + bool m_bLightType1; // 0x700 // MPropertyFriendlyName "light 2 type 0=point 1=spot" - bool m_bLightType2; // 0x6f1 + bool m_bLightType2; // 0x701 // MPropertyFriendlyName "light 3 type 0=point 1=spot" - bool m_bLightType3; // 0x6f2 + bool m_bLightType3; // 0x702 // MPropertyFriendlyName "light 4 type 0=point 1=spot" - bool m_bLightType4; // 0x6f3 + bool m_bLightType4; // 0x703 // MPropertyFriendlyName "light 1 dynamic light" - bool m_bLightDynamic1; // 0x6f4 + bool m_bLightDynamic1; // 0x704 // MPropertyFriendlyName "light 2 dynamic light" - bool m_bLightDynamic2; // 0x6f5 + bool m_bLightDynamic2; // 0x705 // MPropertyFriendlyName "light 3 dynamic light" - bool m_bLightDynamic3; // 0x6f6 + bool m_bLightDynamic3; // 0x706 // MPropertyFriendlyName "light 4 dynamic light" - bool m_bLightDynamic4; // 0x6f7 + bool m_bLightDynamic4; // 0x707 // MPropertyFriendlyName "compute normals from control points" - bool m_bUseNormal; // 0x6f8 + bool m_bUseNormal; // 0x708 // MPropertyFriendlyName "half-lambert normals" - bool m_bUseHLambert; // 0x6f9 + bool m_bUseHLambert; // 0x709 private: - [[maybe_unused]] uint8_t __pad06fa[0x4]; // 0x6fa + [[maybe_unused]] uint8_t __pad070a[0x4]; // 0x70a public: // MPropertyFriendlyName "clamp minimum light value to initial color" - bool m_bClampLowerRange; // 0x6fe + bool m_bClampLowerRange; // 0x70e // MPropertyFriendlyName "clamp maximum light value to initial color" - bool m_bClampUpperRange; // 0x6ff + bool m_bClampUpperRange; // 0x70f }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_GlobalLight : public CParticleFunctionOperator { public: // MPropertyFriendlyName "initial color bias" - float m_flScale; // 0x1b0 + float m_flScale; // 0x1c0 // MPropertyFriendlyName "clamp minimum light value to initial color" - bool m_bClampLowerRange; // 0x1b4 + bool m_bClampLowerRange; // 0x1c4 // MPropertyFriendlyName "clamp maximum light value to initial color" - bool m_bClampUpperRange; // 0x1b5 + bool m_bClampUpperRange; // 0x1c5 }; // Alignment: 6 -// Size: 0x320 +// Size: 0x330 class C_OP_SetChildControlPoints : public CParticleFunctionOperator { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1b0 + int32_t m_nChildGroupID; // 0x1c0 // MPropertyFriendlyName "first control point to set" - int32_t m_nFirstControlPoint; // 0x1b4 + int32_t m_nFirstControlPoint; // 0x1c4 // MPropertyFriendlyName "# of control points to set" - int32_t m_nNumControlPoints; // 0x1b8 + int32_t m_nNumControlPoints; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc public: // MPropertyFriendlyName "first particle to copy" - CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x1c0 + CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x1d0 // MPropertyFriendlyName "start as last particle" - bool m_bReverse; // 0x310 + bool m_bReverse; // 0x328 // MPropertyFriendlyName "set orientation" - bool m_bSetOrientation; // 0x311 + bool m_bSetOrientation; // 0x329 }; // Alignment: 7 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SetControlPointsToParticle : public CParticleFunctionOperator { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1b0 + int32_t m_nChildGroupID; // 0x1c0 // MPropertyFriendlyName "first control point to set" - int32_t m_nFirstControlPoint; // 0x1b4 + int32_t m_nFirstControlPoint; // 0x1c4 // MPropertyFriendlyName "# of control points to set" - int32_t m_nNumControlPoints; // 0x1b8 + int32_t m_nNumControlPoints; // 0x1c8 // MPropertyFriendlyName "first particle to copy" - int32_t m_nFirstSourcePoint; // 0x1bc + int32_t m_nFirstSourcePoint; // 0x1cc // MPropertyFriendlyName "set orientation" - bool m_bSetOrientation; // 0x1c0 + bool m_bSetOrientation; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 public: // MPropertyFriendlyName "orientation style" - ParticleOrientationSetMode_t m_nOrientationMode; // 0x1c4 + ParticleOrientationSetMode_t m_nOrientationMode; // 0x1d4 // MPropertyFriendlyName "set parent" - ParticleParentSetMode_t m_nSetParent; // 0x1c8 + ParticleParentSetMode_t m_nSetParent; // 0x1d8 }; // Alignment: 7 -// Size: 0x2c0 +// Size: 0x2d0 class C_OP_SetControlPointsToModelParticles : public CParticleFunctionOperator { public: // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x1b0 + char m_HitboxSetName[128]; // 0x1c0 // MPropertyFriendlyName "attachment to follow" - char m_AttachmentName[128]; // 0x230 + char m_AttachmentName[128]; // 0x240 // MPropertyFriendlyName "First control point to set" - int32_t m_nFirstControlPoint; // 0x2b0 + int32_t m_nFirstControlPoint; // 0x2c0 // MPropertyFriendlyName "# of control points to set" - int32_t m_nNumControlPoints; // 0x2b4 + int32_t m_nNumControlPoints; // 0x2c4 // MPropertyFriendlyName "first particle to copy" - int32_t m_nFirstSourcePoint; // 0x2b8 + int32_t m_nFirstSourcePoint; // 0x2c8 // MPropertyFriendlyName "use skinning instead of hitboxes" - bool m_bSkin; // 0x2bc + bool m_bSkin; // 0x2cc // MPropertyFriendlyName "follow attachment" - bool m_bAttachment; // 0x2bd + bool m_bAttachment; // 0x2cd }; // Alignment: 8 -// Size: 0x470 +// Size: 0x490 class C_OP_SetPerChildControlPoint : public CParticleFunctionOperator { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1b0 + int32_t m_nChildGroupID; // 0x1c0 // MPropertyFriendlyName "control point to set" - int32_t m_nFirstControlPoint; // 0x1b4 + int32_t m_nFirstControlPoint; // 0x1c4 // MPropertyFriendlyName "# of children to set" - int32_t m_nNumControlPoints; // 0x1b8 + int32_t m_nNumControlPoints; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc public: // MPropertyFriendlyName "particle increment amount" - CParticleCollectionFloatInput m_nParticleIncrement; // 0x1c0 + CParticleCollectionFloatInput m_nParticleIncrement; // 0x1d0 // MPropertyFriendlyName "first particle to copy" - CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x310 + CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x328 // MPropertyFriendlyName "set orientation from velocity" - bool m_bSetOrientation; // 0x460 + bool m_bSetOrientation; // 0x480 private: - [[maybe_unused]] uint8_t __pad0461[0x3]; // 0x461 + [[maybe_unused]] uint8_t __pad0481[0x3]; // 0x481 public: // MPropertyFriendlyName "orientation vector" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOrientationField; // 0x464 + ParticleAttributeIndex_t m_nOrientationField; // 0x484 // MPropertyFriendlyName "set number of children based on particle count" - bool m_bNumBasedOnParticleCount; // 0x468 + bool m_bNumBasedOnParticleCount; // 0x488 }; // Alignment: 8 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SetPerChildControlPointFromAttribute : public CParticleFunctionOperator { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1b0 + int32_t m_nChildGroupID; // 0x1c0 // MPropertyFriendlyName "control point to set" - int32_t m_nFirstControlPoint; // 0x1b4 + int32_t m_nFirstControlPoint; // 0x1c4 // MPropertyFriendlyName "# of children to set" - int32_t m_nNumControlPoints; // 0x1b8 + int32_t m_nNumControlPoints; // 0x1c8 // MPropertyFriendlyName "particle increment amount" - int32_t m_nParticleIncrement; // 0x1bc + int32_t m_nParticleIncrement; // 0x1cc // MPropertyFriendlyName "first particle to copy" - int32_t m_nFirstSourcePoint; // 0x1c0 + int32_t m_nFirstSourcePoint; // 0x1d0 // MPropertyFriendlyName "set number of children based on particle count" - bool m_bNumBasedOnParticleCount; // 0x1c4 + bool m_bNumBasedOnParticleCount; // 0x1d4 private: - [[maybe_unused]] uint8_t __pad01c5[0x3]; // 0x1c5 + [[maybe_unused]] uint8_t __pad01d5[0x3]; // 0x1d5 public: // MPropertyFriendlyName "field to read" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nAttributeToRead; // 0x1c8 + ParticleAttributeIndex_t m_nAttributeToRead; // 0x1d8 // MPropertyFriendlyName "control point field for scalars" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPField; // 0x1cc + int32_t m_nCPField; // 0x1dc }; // Alignment: 4 -// Size: 0x230 +// Size: 0x240 class C_OP_RemapTransformOrientationToYaw : public CParticleFunctionOperator { public: // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b0 + CParticleTransformInput m_TransformInput; // 0x1c0 // MPropertyFriendlyName "rotation field" // MPropertyAttributeChoiceName "particlefield_rotation" - ParticleAttributeIndex_t m_nFieldOutput; // 0x218 + ParticleAttributeIndex_t m_nFieldOutput; // 0x228 // MPropertyFriendlyName "rotation offset" - float m_flRotOffset; // 0x21c + float m_flRotOffset; // 0x22c // MPropertyFriendlyName "spin strength" - float m_flSpinStrength; // 0x220 + float m_flSpinStrength; // 0x230 }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_DampenToCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "falloff range" - float m_flRange; // 0x1b4 + float m_flRange; // 0x1c4 // MPropertyFriendlyName "dampen scale" - float m_flScale; // 0x1b8 + float m_flScale; // 0x1c8 }; // Alignment: 3 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SetToCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "offset" - Vector m_vecOffset; // 0x1b4 + Vector m_vecOffset; // 0x1c4 // MPropertyFriendlyName "offset in local space" - bool m_bOffsetLocal; // 0x1c0 + bool m_bOffsetLocal; // 0x1d0 }; // Alignment: 13 -// Size: 0xff0 +// Size: 0x1050 class C_OP_PinParticleToCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "offset" - CParticleCollectionVecInput m_vecOffset; // 0x1b8 + CParticleCollectionVecInput m_vecOffset; // 0x1c8 // MPropertyFriendlyName "offset in local space" - bool m_bOffsetLocal; // 0x7f0 + bool m_bOffsetLocal; // 0x820 private: - [[maybe_unused]] uint8_t __pad07f1[0x3]; // 0x7f1 + [[maybe_unused]] uint8_t __pad0821[0x3]; // 0x821 public: // MPropertyFriendlyName "particle to use" - ParticleSelection_t m_nParticleSelection; // 0x7f4 + ParticleSelection_t m_nParticleSelection; // 0x824 // MPropertyFriendlyName "particle number/offset" - CParticleCollectionFloatInput m_nParticleNumber; // 0x7f8 + CParticleCollectionFloatInput m_nParticleNumber; // 0x828 // MPropertyFriendlyName "pin break type" - ParticlePinDistance_t m_nPinBreakType; // 0x948 + ParticlePinDistance_t m_nPinBreakType; // 0x980 private: - [[maybe_unused]] uint8_t __pad094c[0x4]; // 0x94c + [[maybe_unused]] uint8_t __pad0984[0x4]; // 0x984 public: // MPropertyFriendlyName "break length %" - CParticleCollectionFloatInput m_flBreakDistance; // 0x950 + CParticleCollectionFloatInput m_flBreakDistance; // 0x988 // MPropertyFriendlyName "break speed" - CParticleCollectionFloatInput m_flBreakSpeed; // 0xaa0 + CParticleCollectionFloatInput m_flBreakSpeed; // 0xae0 // MPropertyFriendlyName "break age" - CParticleCollectionFloatInput m_flAge; // 0xbf0 + CParticleCollectionFloatInput m_flAge; // 0xc38 // MPropertyFriendlyName "break comparison control point 1" - int32_t m_nBreakControlPointNumber; // 0xd40 + int32_t m_nBreakControlPointNumber; // 0xd90 // MPropertyFriendlyName "break comparison control point 2" - int32_t m_nBreakControlPointNumber2; // 0xd44 + int32_t m_nBreakControlPointNumber2; // 0xd94 // MPropertyFriendlyName "break value" - CParticleCollectionFloatInput m_flBreakValue; // 0xd48 + CParticleCollectionFloatInput m_flBreakValue; // 0xd98 // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0xe98 + CPerParticleFloatInput m_flInterpolation; // 0xef0 }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_MovementRigidAttachToCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "scale control point number" - int32_t m_nScaleControlPoint; // 0x1b4 + int32_t m_nScaleControlPoint; // 0x1c4 // MPropertyFriendlyName "scale control point field" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nScaleCPField; // 0x1b8 + int32_t m_nScaleCPField; // 0x1c8 // MPropertyFriendlyName "cache attribute to read from" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput; // 0x1bc + ParticleAttributeIndex_t m_nFieldInput; // 0x1cc // MPropertyFriendlyName "attribute to write to" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1d0 // MPropertyFriendlyName "local space" - bool m_bOffsetLocal; // 0x1c4 + bool m_bOffsetLocal; // 0x1d4 }; // Alignment: 5 -// Size: 0xaa0 +// Size: 0xae0 class C_OP_LerpToInitialPosition : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x1b8 + CPerParticleFloatInput m_flInterpolation; // 0x1c8 // MPropertyFriendlyName "position cache attribute" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nCacheField; // 0x308 + ParticleAttributeIndex_t m_nCacheField; // 0x320 private: - [[maybe_unused]] uint8_t __pad030c[0x4]; // 0x30c + [[maybe_unused]] uint8_t __pad0324[0x4]; // 0x324 public: // MPropertyFriendlyName "scale" - CParticleCollectionFloatInput m_flScale; // 0x310 + CParticleCollectionFloatInput m_flScale; // 0x328 // MPropertyFriendlyName "component scale" - CParticleCollectionVecInput m_vecScale; // 0x460 + CParticleCollectionVecInput m_vecScale; // 0x480 }; // Alignment: 13 -// Size: 0x860 +// Size: 0x890 class C_OP_DistanceBetweenTransforms : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 -public: - // MPropertyFriendlyName "strarting transform" - CParticleTransformInput m_TransformStart; // 0x1b8 - // MPropertyFriendlyName "end transform" - CParticleTransformInput m_TransformEnd; // 0x220 - // MPropertyFriendlyName "distance minimum" - CPerParticleFloatInput m_flInputMin; // 0x288 - // MPropertyFriendlyName "distance maximum" - CPerParticleFloatInput m_flInputMax; // 0x3d8 - // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x528 - // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x678 - // MPropertyFriendlyName "maximum trace length" - float m_flMaxTraceLength; // 0x7c8 - // MPropertyFriendlyName "LOS Failure Scalar" - float m_flLOSScale; // 0x7cc - // MPropertyFriendlyName "LOS collision group" - char m_CollisionGroupName[128]; // 0x7d0 - // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x850 - // MPropertyFriendlyName "ensure line of sight" - bool m_bLOS; // 0x854 -private: - [[maybe_unused]] uint8_t __pad0855[0x3]; // 0x855 -public: - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x858 -}; - -// Alignment: 10 -// Size: 0x2a0 -class C_OP_PercentageBetweenTransforms : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "percentage minimum" - float m_flInputMin; // 0x1b4 - // MPropertyFriendlyName "percentage maximum" - float m_flInputMax; // 0x1b8 - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1bc - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: @@ -6790,32 +6845,47 @@ public: CParticleTransformInput m_TransformStart; // 0x1c8 // MPropertyFriendlyName "end transform" CParticleTransformInput m_TransformEnd; // 0x230 + // MPropertyFriendlyName "distance minimum" + CPerParticleFloatInput m_flInputMin; // 0x298 + // MPropertyFriendlyName "distance maximum" + CPerParticleFloatInput m_flInputMax; // 0x3f0 + // MPropertyFriendlyName "output minimum" + CPerParticleFloatInput m_flOutputMin; // 0x548 + // MPropertyFriendlyName "output maximum" + CPerParticleFloatInput m_flOutputMax; // 0x6a0 + // MPropertyFriendlyName "maximum trace length" + float m_flMaxTraceLength; // 0x7f8 + // MPropertyFriendlyName "LOS Failure Scalar" + float m_flLOSScale; // 0x7fc + // MPropertyFriendlyName "LOS collision group" + char m_CollisionGroupName[128]; // 0x800 + // MPropertyFriendlyName "Trace Set" + ParticleTraceSet_t m_nTraceSet; // 0x880 + // MPropertyFriendlyName "ensure line of sight" + bool m_bLOS; // 0x884 +private: + [[maybe_unused]] uint8_t __pad0885[0x3]; // 0x885 +public: // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x298 - // MPropertyFriendlyName "only active within input range" - bool m_bActiveRange; // 0x29c - // MPropertyFriendlyName "treat distance between points as radius" - bool m_bRadialCheck; // 0x29d + ParticleSetMethod_t m_nSetMethod; // 0x888 }; // Alignment: 10 // Size: 0x2b0 -class C_OP_PercentageBetweenTransformsVector : public CParticleFunctionOperator +class C_OP_PercentageBetweenTransforms : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "percentage minimum" - float m_flInputMin; // 0x1b4 + float m_flInputMin; // 0x1c4 // MPropertyFriendlyName "percentage maximum" - float m_flInputMax; // 0x1b8 + float m_flInputMax; // 0x1c8 // MPropertyFriendlyName "output minimum" - // MVectorIsSometimesCoordinate - Vector m_vecOutputMin; // 0x1bc + float m_flOutputMin; // 0x1cc // MPropertyFriendlyName "output maximum" - // MVectorIsSometimesCoordinate - Vector m_vecOutputMax; // 0x1c8 + float m_flOutputMax; // 0x1d0 private: [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: @@ -6831,1730 +6901,895 @@ public: bool m_bRadialCheck; // 0x2ad }; +// Alignment: 10 +// Size: 0x2c0 +class C_OP_PercentageBetweenTransformsVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "percentage minimum" + float m_flInputMin; // 0x1c4 + // MPropertyFriendlyName "percentage maximum" + float m_flInputMax; // 0x1c8 + // MPropertyFriendlyName "output minimum" + // MVectorIsSometimesCoordinate + Vector m_vecOutputMin; // 0x1cc + // MPropertyFriendlyName "output maximum" + // MVectorIsSometimesCoordinate + Vector m_vecOutputMax; // 0x1d8 +private: + [[maybe_unused]] uint8_t __pad01e4[0x4]; // 0x1e4 +public: + // MPropertyFriendlyName "strarting transform" + CParticleTransformInput m_TransformStart; // 0x1e8 + // MPropertyFriendlyName "end transform" + CParticleTransformInput m_TransformEnd; // 0x250 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x2b8 + // MPropertyFriendlyName "only active within input range" + bool m_bActiveRange; // 0x2bc + // MPropertyFriendlyName "treat distance between points as radius" + bool m_bRadialCheck; // 0x2bd +}; + // Alignment: 12 -// Size: 0x2b0 +// Size: 0x2c0 class C_OP_PercentageBetweenTransformLerpCPs : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "percentage minimum" - float m_flInputMin; // 0x1b4 + float m_flInputMin; // 0x1c4 // MPropertyFriendlyName "percentage maximum" - float m_flInputMax; // 0x1b8 + float m_flInputMax; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc public: // MPropertyFriendlyName "strarting transform" - CParticleTransformInput m_TransformStart; // 0x1c0 + CParticleTransformInput m_TransformStart; // 0x1d0 // MPropertyFriendlyName "end transform" - CParticleTransformInput m_TransformEnd; // 0x228 + CParticleTransformInput m_TransformEnd; // 0x238 // MPropertyFriendlyName "output starting control point number" - int32_t m_nOutputStartCP; // 0x290 + int32_t m_nOutputStartCP; // 0x2a0 // MPropertyFriendlyName "output starting control point field 0-2 X/Y/Z" - int32_t m_nOutputStartField; // 0x294 + int32_t m_nOutputStartField; // 0x2a4 // MPropertyFriendlyName "output ending control point number" - int32_t m_nOutputEndCP; // 0x298 + int32_t m_nOutputEndCP; // 0x2a8 // MPropertyFriendlyName "output ending control point field 0-2 X/Y/Z" - int32_t m_nOutputEndField; // 0x29c + int32_t m_nOutputEndField; // 0x2ac // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x2a0 + ParticleSetMethod_t m_nSetMethod; // 0x2b0 // MPropertyFriendlyName "only active within input range" - bool m_bActiveRange; // 0x2a4 + bool m_bActiveRange; // 0x2b4 // MPropertyFriendlyName "treat distance between points as radius" - bool m_bRadialCheck; // 0x2a5 + bool m_bRadialCheck; // 0x2b5 }; // Alignment: 9 -// Size: 0x1370 +// Size: 0x13e0 class C_OP_DistanceBetweenVecs : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "first vector" - CPerParticleVecInput m_vecPoint1; // 0x1b8 + CPerParticleVecInput m_vecPoint1; // 0x1c8 // MPropertyFriendlyName "second vector" - CPerParticleVecInput m_vecPoint2; // 0x7f0 + CPerParticleVecInput m_vecPoint2; // 0x820 // MPropertyFriendlyName "distance minimum" - CPerParticleFloatInput m_flInputMin; // 0xe28 + CPerParticleFloatInput m_flInputMin; // 0xe78 // MPropertyFriendlyName "distance maximum" - CPerParticleFloatInput m_flInputMax; // 0xf78 + CPerParticleFloatInput m_flInputMax; // 0xfd0 // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x10c8 + CPerParticleFloatInput m_flOutputMin; // 0x1128 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x1218 + CPerParticleFloatInput m_flOutputMax; // 0x1280 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1368 + ParticleSetMethod_t m_nSetMethod; // 0x13d8 // MPropertyFriendlyName "divide by deltatime (for comparing motion since last simulation)" - bool m_bDeltaTime; // 0x136c + bool m_bDeltaTime; // 0x13dc }; // Alignment: 3 -// Size: 0xe30 +// Size: 0xe80 class C_OP_DirectionBetweenVecsToVec : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "first vector" - CPerParticleVecInput m_vecPoint1; // 0x1b8 + CPerParticleVecInput m_vecPoint1; // 0x1c8 // MPropertyFriendlyName "second vector" - CPerParticleVecInput m_vecPoint2; // 0x7f0 + CPerParticleVecInput m_vecPoint2; // 0x820 }; // Alignment: 15 -// Size: 0xe30 +// Size: 0xe80 class C_OP_DistanceToTransform : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "distance minimum" - CPerParticleFloatInput m_flInputMin; // 0x1b8 + CPerParticleFloatInput m_flInputMin; // 0x1c8 // MPropertyFriendlyName "distance maximum" - CPerParticleFloatInput m_flInputMax; // 0x308 + CPerParticleFloatInput m_flInputMax; // 0x320 // MPropertyFriendlyName "output minimum" - CPerParticleFloatInput m_flOutputMin; // 0x458 + CPerParticleFloatInput m_flOutputMin; // 0x478 // MPropertyFriendlyName "output maximum" - CPerParticleFloatInput m_flOutputMax; // 0x5a8 + CPerParticleFloatInput m_flOutputMax; // 0x5d0 // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformStart; // 0x6f8 + CParticleTransformInput m_TransformStart; // 0x728 // MPropertyFriendlyName "ensure line of sight" - bool m_bLOS; // 0x760 + bool m_bLOS; // 0x790 // MPropertyFriendlyName "LOS collision group" - char m_CollisionGroupName[128]; // 0x761 + char m_CollisionGroupName[128]; // 0x791 private: - [[maybe_unused]] uint8_t __pad07e1[0x3]; // 0x7e1 + [[maybe_unused]] uint8_t __pad0811[0x3]; // 0x811 public: // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x7e4 + ParticleTraceSet_t m_nTraceSet; // 0x814 // MPropertyFriendlyName "maximum trace length" - float m_flMaxTraceLength; // 0x7e8 + float m_flMaxTraceLength; // 0x818 // MPropertyFriendlyName "LOS Failure Scalar" - float m_flLOSScale; // 0x7ec + float m_flLOSScale; // 0x81c // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x7f0 + ParticleSetMethod_t m_nSetMethod; // 0x820 // MPropertyFriendlyName "only active within specified distance" - bool m_bActiveRange; // 0x7f4 + bool m_bActiveRange; // 0x824 // MPropertyFriendlyName "output is additive" - bool m_bAdditive; // 0x7f5 + bool m_bAdditive; // 0x825 private: - [[maybe_unused]] uint8_t __pad07f6[0x2]; // 0x7f6 + [[maybe_unused]] uint8_t __pad0826[0x2]; // 0x826 public: // MPropertyFriendlyName "component scale" - CPerParticleVecInput m_vecComponentScale; // 0x7f8 + CPerParticleVecInput m_vecComponentScale; // 0x828 }; // Alignment: 11 -// Size: 0x7d0 +// Size: 0x800 class C_OP_CylindricalDistanceToTransform : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "cylinder inner radius" - CPerParticleFloatInput m_flInputMin; // 0x1b8 + CPerParticleFloatInput m_flInputMin; // 0x1c8 // MPropertyFriendlyName "cylinder outer radius" - CPerParticleFloatInput m_flInputMax; // 0x308 + CPerParticleFloatInput m_flInputMax; // 0x320 // MPropertyFriendlyName "cylinder inner output" - CPerParticleFloatInput m_flOutputMin; // 0x458 + CPerParticleFloatInput m_flOutputMin; // 0x478 // MPropertyFriendlyName "cylinder outer output" - CPerParticleFloatInput m_flOutputMax; // 0x5a8 + CPerParticleFloatInput m_flOutputMax; // 0x5d0 // MPropertyFriendlyName "cylindrical top transform" - CParticleTransformInput m_TransformStart; // 0x6f8 + CParticleTransformInput m_TransformStart; // 0x728 // MPropertyFriendlyName "cylindrical bottom transform" - CParticleTransformInput m_TransformEnd; // 0x760 + CParticleTransformInput m_TransformEnd; // 0x790 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x7c8 + ParticleSetMethod_t m_nSetMethod; // 0x7f8 // MPropertyFriendlyName "only active within specified distance" - bool m_bActiveRange; // 0x7cc + bool m_bActiveRange; // 0x7fc // MPropertyFriendlyName "output is additive" - bool m_bAdditive; // 0x7cd + bool m_bAdditive; // 0x7fd // MPropertyFriendlyName "apply radius to ends (capsule)" - bool m_bCapsule; // 0x7ce + bool m_bCapsule; // 0x7fe }; // Alignment: 7 -// Size: 0x260 +// Size: 0x270 class C_OP_RtEnvCull : public CParticleFunctionOperator { public: // MPropertyFriendlyName "test direction" // MVectorIsCoordinate - Vector m_vecTestDir; // 0x1b0 + Vector m_vecTestDir; // 0x1c0 // MPropertyFriendlyName "cull normal" // MVectorIsCoordinate - Vector m_vecTestNormal; // 0x1bc + Vector m_vecTestNormal; // 0x1cc // MPropertyFriendlyName "cull on miss" - bool m_bCullOnMiss; // 0x1c8 + bool m_bCullOnMiss; // 0x1d8 // MPropertyFriendlyName "stick instead of cull" - bool m_bStickInsteadOfCull; // 0x1c9 + bool m_bStickInsteadOfCull; // 0x1d9 // MPropertyFriendlyName "ray trace environment name" - char m_RtEnvName[128]; // 0x1ca + char m_RtEnvName[128]; // 0x1da private: - [[maybe_unused]] uint8_t __pad024a[0x2]; // 0x24a + [[maybe_unused]] uint8_t __pad025a[0x2]; // 0x25a public: // MPropertyFriendlyName "ray trace environment cp" - int32_t m_nRTEnvCP; // 0x24c + int32_t m_nRTEnvCP; // 0x25c // MPropertyFriendlyName "rt env control point component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nComponent; // 0x250 + int32_t m_nComponent; // 0x260 }; // Alignment: 4 -// Size: 0x950 +// Size: 0x980 class C_OP_MovementLoopInsideSphere : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0x1b0 + int32_t m_nCP; // 0x1c0 private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "distance maximum" - CParticleCollectionFloatInput m_flDistance; // 0x1b8 + CParticleCollectionFloatInput m_flDistance; // 0x1c8 // MPropertyFriendlyName "component scale" - CParticleCollectionVecInput m_vecScale; // 0x308 + CParticleCollectionVecInput m_vecScale; // 0x320 // MPropertyFriendlyName "distance squared output attribute" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nDistSqrAttr; // 0x940 + ParticleAttributeIndex_t m_nDistSqrAttr; // 0x978 }; // Alignment: 9 -// Size: 0x460 +// Size: 0x480 class C_OP_MoveToHitbox : public CParticleFunctionOperator { public: // MPropertyFriendlyName "model input" - CParticleModelInput m_modelInput; // 0x1b0 + CParticleModelInput m_modelInput; // 0x1c0 // MPropertyFriendlyName "transform input" - CParticleTransformInput m_transformInput; // 0x210 + CParticleTransformInput m_transformInput; // 0x220 private: - [[maybe_unused]] uint8_t __pad0278[0x4]; // 0x278 + [[maybe_unused]] uint8_t __pad0288[0x4]; // 0x288 public: // MPropertyFriendlyName "lifetime lerp start" - float m_flLifeTimeLerpStart; // 0x27c + float m_flLifeTimeLerpStart; // 0x28c // MPropertyFriendlyName "lifetime lerp end" - float m_flLifeTimeLerpEnd; // 0x280 + float m_flLifeTimeLerpEnd; // 0x290 // MPropertyFriendlyName "previous position scale" - float m_flPrevPosScale; // 0x284 + float m_flPrevPosScale; // 0x294 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x288 + char m_HitboxSetName[128]; // 0x298 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x308 + bool m_bUseBones; // 0x318 private: - [[maybe_unused]] uint8_t __pad0309[0x3]; // 0x309 + [[maybe_unused]] uint8_t __pad0319[0x3]; // 0x319 public: // MPropertyFriendlyName "lerp type" - HitboxLerpType_t m_nLerpType; // 0x30c + HitboxLerpType_t m_nLerpType; // 0x31c // MPropertyFriendlyName "Constant Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x310 + CPerParticleFloatInput m_flInterpolation; // 0x320 }; // Alignment: 15 -// Size: 0xab0 +// Size: 0xae0 class C_OP_LockToBone : public CParticleFunctionOperator { public: // MPropertyFriendlyName "model input" - CParticleModelInput m_modelInput; // 0x1b0 + CParticleModelInput m_modelInput; // 0x1c0 // MPropertyFriendlyName "transform input" - CParticleTransformInput m_transformInput; // 0x210 + CParticleTransformInput m_transformInput; // 0x220 // MPropertyFriendlyName "lifetime fade start" - float m_flLifeTimeFadeStart; // 0x278 + float m_flLifeTimeFadeStart; // 0x288 // MPropertyFriendlyName "lifetime fade end" - float m_flLifeTimeFadeEnd; // 0x27c + float m_flLifeTimeFadeEnd; // 0x28c // MPropertyFriendlyName "instant jump threshold" - float m_flJumpThreshold; // 0x280 + float m_flJumpThreshold; // 0x290 // MPropertyFriendlyName "previous position scale" - float m_flPrevPosScale; // 0x284 + float m_flPrevPosScale; // 0x294 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x288 + char m_HitboxSetName[128]; // 0x298 // MPropertyFriendlyName "rigid lock" - bool m_bRigid; // 0x308 + bool m_bRigid; // 0x318 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x309 + bool m_bUseBones; // 0x319 private: - [[maybe_unused]] uint8_t __pad030a[0x2]; // 0x30a + [[maybe_unused]] uint8_t __pad031a[0x2]; // 0x31a public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x30c + ParticleAttributeIndex_t m_nFieldOutput; // 0x31c // MPropertyFriendlyName "output field prev" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutputPrev; // 0x310 + ParticleAttributeIndex_t m_nFieldOutputPrev; // 0x320 // MPropertyStartGroup "Set Rotations to Bones" // MPropertyFriendlyName "lock rotations to bone orientation" - ParticleRotationLockType_t m_nRotationSetType; // 0x314 + ParticleRotationLockType_t m_nRotationSetType; // 0x324 // MPropertyFriendlyName "rigid set rotation from bones" - bool m_bRigidRotationLock; // 0x318 + bool m_bRigidRotationLock; // 0x328 private: - [[maybe_unused]] uint8_t __pad0319[0x7]; // 0x319 + [[maybe_unused]] uint8_t __pad0329[0x7]; // 0x329 public: // MPropertyFriendlyName "rigid rotation offset pitch/yaw/roll" - CPerParticleVecInput m_vecRotation; // 0x320 + CPerParticleVecInput m_vecRotation; // 0x330 // MPropertyFriendlyName "rigid rotation interpolation" - CPerParticleFloatInput m_flRotLerp; // 0x958 + CPerParticleFloatInput m_flRotLerp; // 0x988 }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_SnapshotRigidSkinToBones : public CParticleFunctionOperator { public: // MPropertyFriendlyName "rotate normals" - bool m_bTransformNormals; // 0x1b0 + bool m_bTransformNormals; // 0x1c0 // MPropertyFriendlyName "scale radii" - bool m_bTransformRadii; // 0x1b1 + bool m_bTransformRadii; // 0x1c1 private: - [[maybe_unused]] uint8_t __pad01b2[0x2]; // 0x1b2 + [[maybe_unused]] uint8_t __pad01c2[0x2]; // 0x1c2 public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b4 + int32_t m_nControlPointNumber; // 0x1c4 }; // Alignment: 7 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SnapshotSkinToBones : public CParticleFunctionOperator { public: // MPropertyFriendlyName "rotate normals" - bool m_bTransformNormals; // 0x1b0 + bool m_bTransformNormals; // 0x1c0 // MPropertyFriendlyName "scale radii" - bool m_bTransformRadii; // 0x1b1 + bool m_bTransformRadii; // 0x1c1 private: - [[maybe_unused]] uint8_t __pad01b2[0x2]; // 0x1b2 + [[maybe_unused]] uint8_t __pad01c2[0x2]; // 0x1c2 public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b4 + int32_t m_nControlPointNumber; // 0x1c4 // MPropertyFriendlyName "lifetime fade start" - float m_flLifeTimeFadeStart; // 0x1b8 + float m_flLifeTimeFadeStart; // 0x1c8 // MPropertyFriendlyName "lifetime fade end" - float m_flLifeTimeFadeEnd; // 0x1bc + float m_flLifeTimeFadeEnd; // 0x1cc // MPropertyFriendlyName "instant jump threshold" - float m_flJumpThreshold; // 0x1c0 + float m_flJumpThreshold; // 0x1d0 // MPropertyFriendlyName "previous position scale" - float m_flPrevPosScale; // 0x1c4 + float m_flPrevPosScale; // 0x1d4 }; // Alignment: 11 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_CPOffsetToPercentageBetweenCPs : public CParticleFunctionOperator { public: // MPropertyFriendlyName "percentage minimum" - float m_flInputMin; // 0x1b0 + float m_flInputMin; // 0x1c0 // MPropertyFriendlyName "percentage maximum" - float m_flInputMax; // 0x1b4 + float m_flInputMax; // 0x1c4 // MPropertyFriendlyName "percentage bias" - float m_flInputBias; // 0x1b8 + float m_flInputBias; // 0x1c8 // MPropertyFriendlyName "starting control point" - int32_t m_nStartCP; // 0x1bc + int32_t m_nStartCP; // 0x1cc // MPropertyFriendlyName "ending control point" - int32_t m_nEndCP; // 0x1c0 + int32_t m_nEndCP; // 0x1d0 // MPropertyFriendlyName "offset control point" - int32_t m_nOffsetCP; // 0x1c4 + int32_t m_nOffsetCP; // 0x1d4 // MPropertyFriendlyName "output control point" - int32_t m_nOuputCP; // 0x1c8 + int32_t m_nOuputCP; // 0x1d8 // MPropertyFriendlyName "input control point" - int32_t m_nInputCP; // 0x1cc + int32_t m_nInputCP; // 0x1dc // MPropertyFriendlyName "treat distance between points as radius" - bool m_bRadialCheck; // 0x1d0 + bool m_bRadialCheck; // 0x1e0 // MPropertyFriendlyName "treat offset as scale of total distance" - bool m_bScaleOffset; // 0x1d1 + bool m_bScaleOffset; // 0x1e1 private: - [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 + [[maybe_unused]] uint8_t __pad01e2[0x2]; // 0x1e2 public: // MPropertyFriendlyName "offset amount" // MVectorIsCoordinate - Vector m_vecOffset; // 0x1d4 + Vector m_vecOffset; // 0x1e4 }; // Alignment: 4 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_PlaneCull : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point for point on plane" - int32_t m_nPlaneControlPoint; // 0x1b0 + int32_t m_nPlaneControlPoint; // 0x1c0 // MPropertyFriendlyName "plane normal" // MVectorIsCoordinate - Vector m_vecPlaneDirection; // 0x1b4 + Vector m_vecPlaneDirection; // 0x1c4 // MPropertyFriendlyName "use local space" - bool m_bLocalSpace; // 0x1c0 + bool m_bLocalSpace; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 + [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 public: // MPropertyFriendlyName "cull plane offset" - float m_flPlaneOffset; // 0x1c4 + float m_flPlaneOffset; // 0x1d4 }; // Alignment: 4 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_DistanceCull : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point" - int32_t m_nControlPoint; // 0x1b0 + int32_t m_nControlPoint; // 0x1c0 // MPropertyFriendlyName "control point offset" // MVectorIsCoordinate - Vector m_vecPointOffset; // 0x1b4 + Vector m_vecPointOffset; // 0x1c4 // MPropertyFriendlyName "cull distance" - float m_flDistance; // 0x1c0 + float m_flDistance; // 0x1d0 // MPropertyFriendlyName "cull inside instead of outside" - bool m_bCullInside; // 0x1c4 + bool m_bCullInside; // 0x1d4 }; // Alignment: 5 -// Size: 0x240 +// Size: 0x250 class C_OP_ModelCull : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "use only bounding box" - bool m_bBoundBox; // 0x1b4 + bool m_bBoundBox; // 0x1c4 // MPropertyFriendlyName "cull outside instead of inside" - bool m_bCullOutside; // 0x1b5 + bool m_bCullOutside; // 0x1c5 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x1b6 + bool m_bUseBones; // 0x1c6 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x1b7 + char m_HitboxSetName[128]; // 0x1c7 }; // Alignment: 7 -// Size: 0x880 +// Size: 0x8b0 class C_OP_ModelDampenMovement : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "use only bounding box" - bool m_bBoundBox; // 0x1b4 + bool m_bBoundBox; // 0x1c4 // MPropertyFriendlyName "dampen outside instead of inside" - bool m_bOutside; // 0x1b5 + bool m_bOutside; // 0x1c5 // MPropertyFriendlyName "use bones instead of hitboxes" - bool m_bUseBones; // 0x1b6 + bool m_bUseBones; // 0x1c6 // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0x1b7 + char m_HitboxSetName[128]; // 0x1c7 private: - [[maybe_unused]] uint8_t __pad0237[0x1]; // 0x237 + [[maybe_unused]] uint8_t __pad0247[0x1]; // 0x247 public: // MPropertyFriendlyName "test position offset" // MVectorIsCoordinate - CPerParticleVecInput m_vecPosOffset; // 0x238 + CPerParticleVecInput m_vecPosOffset; // 0x248 // MPropertyFriendlyName "drag" // MPropertyAttributeRange "-1 1" - float m_fDrag; // 0x870 + float m_fDrag; // 0x8a0 }; // Alignment: 8 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SequenceFromModel : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 + int32_t m_nControlPointNumber; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "current anim time output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x1b8 + ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x1c8 // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1bc + float m_flInputMin; // 0x1cc // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1c0 + float m_flInputMax; // 0x1d0 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c4 + float m_flOutputMin; // 0x1d4 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c8 + float m_flOutputMax; // 0x1d8 // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1cc -}; - -// Alignment: 3 -// Size: 0x1c0 -class C_OP_VelocityMatchingForce : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "direction matching strength" - float m_flDirScale; // 0x1b0 - // MPropertyFriendlyName "speed matching strength" - float m_flSpdScale; // 0x1b4 - // MPropertyFriendlyName "control point to broadcast speed and direction to" - int32_t m_nCPBroadcast; // 0x1b8 + ParticleSetMethod_t m_nSetMethod; // 0x1dc }; // Alignment: 3 // Size: 0x1d0 +class C_OP_VelocityMatchingForce : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "direction matching strength" + float m_flDirScale; // 0x1c0 + // MPropertyFriendlyName "speed matching strength" + float m_flSpdScale; // 0x1c4 + // MPropertyFriendlyName "control point to broadcast speed and direction to" + int32_t m_nCPBroadcast; // 0x1c8 +}; + +// Alignment: 3 +// Size: 0x1e0 class C_OP_MovementMaintainOffset : public CParticleFunctionOperator { public: // MPropertyFriendlyName "desired offset" // MVectorIsCoordinate - Vector m_vecOffset; // 0x1b0 + Vector m_vecOffset; // 0x1c0 // MPropertyFriendlyName "local space CP" - int32_t m_nCP; // 0x1bc + int32_t m_nCP; // 0x1cc // MPropertyFriendlyName "scale by radius" - bool m_bRadiusScale; // 0x1c0 + bool m_bRadiusScale; // 0x1d0 }; // Alignment: 17 -// Size: 0x3c0 +// Size: 0x3e0 class C_OP_MovementPlaceOnGround : public CParticleFunctionOperator { public: // MPropertyFriendlyName "offset" - CPerParticleFloatInput m_flOffset; // 0x1b0 + CPerParticleFloatInput m_flOffset; // 0x1c0 // MPropertyFriendlyName "max trace length" - float m_flMaxTraceLength; // 0x300 + float m_flMaxTraceLength; // 0x318 // MPropertyFriendlyName "CP movement tolerance" - float m_flTolerance; // 0x304 + float m_flTolerance; // 0x31c // MPropertyFriendlyName "trace offset" - float m_flTraceOffset; // 0x308 + float m_flTraceOffset; // 0x320 // MPropertyFriendlyName "interpolation rate" - float m_flLerpRate; // 0x30c + float m_flLerpRate; // 0x324 // MPropertyFriendlyName "collision group" - char m_CollisionGroupName[128]; // 0x310 + char m_CollisionGroupName[128]; // 0x328 // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x390 + ParticleTraceSet_t m_nTraceSet; // 0x3a8 // MPropertyFriendlyName "reference CP 1" - int32_t m_nRefCP1; // 0x394 + int32_t m_nRefCP1; // 0x3ac // MPropertyFriendlyName "reference CP 2" - int32_t m_nRefCP2; // 0x398 + int32_t m_nRefCP2; // 0x3b0 // MPropertyFriendlyName "interploation distance tolerance cp" - int32_t m_nLerpCP; // 0x39c + int32_t m_nLerpCP; // 0x3b4 private: - [[maybe_unused]] uint8_t __pad03a0[0x8]; // 0x3a0 + [[maybe_unused]] uint8_t __pad03b8[0x8]; // 0x3b8 public: // MPropertyFriendlyName "No Collision Behavior" - ParticleTraceMissBehavior_t m_nTraceMissBehavior; // 0x3a8 + ParticleTraceMissBehavior_t m_nTraceMissBehavior; // 0x3c0 // MPropertyFriendlyName "include default contents trace hulls" - bool m_bIncludeShotHull; // 0x3ac + bool m_bIncludeShotHull; // 0x3c4 // MPropertyFriendlyName "include water" - bool m_bIncludeWater; // 0x3ad + bool m_bIncludeWater; // 0x3c5 private: - [[maybe_unused]] uint8_t __pad03ae[0x2]; // 0x3ae + [[maybe_unused]] uint8_t __pad03c6[0x2]; // 0x3c6 public: // MPropertyFriendlyName "set normal" - bool m_bSetNormal; // 0x3b0 + bool m_bSetNormal; // 0x3c8 // MPropertyFriendlyName "treat offset as scalar of particle radius" - bool m_bScaleOffset; // 0x3b1 + bool m_bScaleOffset; // 0x3c9 private: - [[maybe_unused]] uint8_t __pad03b2[0x2]; // 0x3b2 + [[maybe_unused]] uint8_t __pad03ca[0x2]; // 0x3ca public: // MPropertyFriendlyName "preserve initial Z-offset relative to cp" - int32_t m_nPreserveOffsetCP; // 0x3b4 + int32_t m_nPreserveOffsetCP; // 0x3cc // MPropertyFriendlyName "CP Entity to Ignore for Collisions" - int32_t m_nIgnoreCP; // 0x3b8 + int32_t m_nIgnoreCP; // 0x3d0 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_InheritFromParentParticles : public CParticleFunctionOperator { public: // MPropertyFriendlyName "scale" - float m_flScale; // 0x1b0 + float m_flScale; // 0x1c0 // MPropertyFriendlyName "inherited field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "particle increment amount" - int32_t m_nIncrement; // 0x1b8 + int32_t m_nIncrement; // 0x1c8 // MPropertyFriendlyName "random parent particle distribution" - bool m_bRandomDistribution; // 0x1bc + bool m_bRandomDistribution; // 0x1cc }; // Alignment: 5 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_InheritFromParentParticlesV2 : public CParticleFunctionOperator { public: // MPropertyFriendlyName "scale" - float m_flScale; // 0x1b0 + float m_flScale; // 0x1c0 // MPropertyFriendlyName "inherited field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "particle increment amount" - int32_t m_nIncrement; // 0x1b8 + int32_t m_nIncrement; // 0x1c8 // MPropertyFriendlyName "random parent particle distribution" - bool m_bRandomDistribution; // 0x1bc + bool m_bRandomDistribution; // 0x1cc private: - [[maybe_unused]] uint8_t __pad01bd[0x3]; // 0x1bd + [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd public: // MPropertyFriendlyName "behavior if parent particle dies" - MissingParentInheritBehavior_t m_nMissingParentBehavior; // 0x1c0 + MissingParentInheritBehavior_t m_nMissingParentBehavior; // 0x1d0 }; // Alignment: 5 -// Size: 0x460 +// Size: 0x480 class C_OP_ReadFromNeighboringParticle : public CParticleFunctionOperator { public: // MPropertyFriendlyName "read field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 // MPropertyFriendlyName "written field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "particle increment amount" - int32_t m_nIncrement; // 0x1b8 + int32_t m_nIncrement; // 0x1c8 private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc + [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc public: // MPropertyFriendlyName "maximum distance" - CPerParticleFloatInput m_DistanceCheck; // 0x1c0 + CPerParticleFloatInput m_DistanceCheck; // 0x1d0 // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x310 + CPerParticleFloatInput m_flInterpolation; // 0x328 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_InheritFromPeerSystem : public CParticleFunctionOperator { public: // MPropertyFriendlyName "read field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "written field" // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c4 // MPropertyFriendlyName "particle neighbor increment amount" - int32_t m_nIncrement; // 0x1b8 + int32_t m_nIncrement; // 0x1c8 // MPropertyFriendlyName "group id" - int32_t m_nGroupID; // 0x1bc + int32_t m_nGroupID; // 0x1cc }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_RemapVectorComponentToScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "Input Vector" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldInput; // 0x1c0 // MPropertyFriendlyName "Output Scalar" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "Vector Component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nComponent; // 0x1b8 + int32_t m_nComponent; // 0x1c8 }; // Alignment: 3 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_OrientTo2dDirection : public CParticleFunctionOperator { public: // MPropertyFriendlyName "rotation offset" - float m_flRotOffset; // 0x1b0 + float m_flRotOffset; // 0x1c0 // MPropertyFriendlyName "spin strength" - float m_flSpinStrength; // 0x1b4 + float m_flSpinStrength; // 0x1c4 // MPropertyFriendlyName "rotation field" // MPropertyAttributeChoiceName "particlefield_rotation" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b8 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c8 }; // Alignment: 6 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_RestartAfterDuration : public CParticleFunctionOperator { public: // MPropertyFriendlyName "minimum restart time" - float m_flDurationMin; // 0x1b0 + float m_flDurationMin; // 0x1c0 // MPropertyFriendlyName "maximum restart time" - float m_flDurationMax; // 0x1b4 + float m_flDurationMax; // 0x1c4 // MPropertyFriendlyName "control point to scale duration" - int32_t m_nCP; // 0x1b8 + int32_t m_nCP; // 0x1c8 // MPropertyFriendlyName "control point field X/Y/Z" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPField; // 0x1bc + int32_t m_nCPField; // 0x1cc // MPropertyFriendlyName "child group ID" - int32_t m_nChildGroupID; // 0x1c0 + int32_t m_nChildGroupID; // 0x1d0 // MPropertyFriendlyName "only restart children" - bool m_bOnlyChildren; // 0x1c4 + bool m_bOnlyChildren; // 0x1d4 }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_Orient2DRelToCP : public CParticleFunctionOperator { public: // MPropertyFriendlyName "rotation offset" - float m_flRotOffset; // 0x1b0 + float m_flRotOffset; // 0x1c0 // MPropertyFriendlyName "spin strength" - float m_flSpinStrength; // 0x1b4 + float m_flSpinStrength; // 0x1c4 // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0x1b8 + int32_t m_nCP; // 0x1c8 // MPropertyFriendlyName "rotation field" // MPropertyAttributeChoiceName "particlefield_rotation" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1bc + ParticleAttributeIndex_t m_nFieldOutput; // 0x1cc }; // Alignment: 4 -// Size: 0x9b0 +// Size: 0x9e0 class C_OP_MovementRotateParticleAroundAxis : public CParticleFunctionOperator { public: // MPropertyFriendlyName "rotation axis" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecRotAxis; // 0x1b0 + CParticleCollectionVecInput m_vecRotAxis; // 0x1c0 // MPropertyFriendlyName "rotation rate" - CParticleCollectionFloatInput m_flRotRate; // 0x7e8 + CParticleCollectionFloatInput m_flRotRate; // 0x818 // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x938 + CParticleTransformInput m_TransformInput; // 0x970 // MPropertyFriendlyName "use local space" - bool m_bLocalSpace; // 0x9a0 + bool m_bLocalSpace; // 0x9d8 }; // Alignment: 7 -// Size: 0x330 +// Size: 0x340 class C_OP_RotateVector : public CParticleFunctionOperator { public: // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 // MPropertyFriendlyName "rotation axis min" // MVectorIsCoordinate - Vector m_vecRotAxisMin; // 0x1b4 + Vector m_vecRotAxisMin; // 0x1c4 // MPropertyFriendlyName "rotation axis max" // MVectorIsCoordinate - Vector m_vecRotAxisMax; // 0x1c0 + Vector m_vecRotAxisMax; // 0x1d0 // MPropertyFriendlyName "rotation rate min" - float m_flRotRateMin; // 0x1cc + float m_flRotRateMin; // 0x1dc // MPropertyFriendlyName "rotation rate max" - float m_flRotRateMax; // 0x1d0 + float m_flRotRateMax; // 0x1e0 // MPropertyFriendlyName "normalize output" - bool m_bNormalize; // 0x1d4 + bool m_bNormalize; // 0x1e4 private: - [[maybe_unused]] uint8_t __pad01d5[0x3]; // 0x1d5 + [[maybe_unused]] uint8_t __pad01e5[0x3]; // 0x1e5 public: // MPropertyFriendlyName "per particle scale" - CPerParticleFloatInput m_flScale; // 0x1d8 + CPerParticleFloatInput m_flScale; // 0x1e8 }; -// Alignment: 3 -// Size: 0x1c0 +// Alignment: 4 +// Size: 0x1d0 class C_OP_MaxVelocity : public CParticleFunctionOperator { public: // MPropertyFriendlyName "maximum velocity" - float m_flMaxVelocity; // 0x1b0 + float m_flMaxVelocity; // 0x1c0 + // MPropertyFriendlyName "minimum velocity" + float m_flMinVelocity; // 0x1c4 // MPropertyFriendlyName "override max velocity from this CP" - int32_t m_nOverrideCP; // 0x1b4 + int32_t m_nOverrideCP; // 0x1c8 // MPropertyFriendlyName "override CP field" - int32_t m_nOverrideCPField; // 0x1b8 + int32_t m_nOverrideCPField; // 0x1cc }; // Alignment: 4 -// Size: 0x1c0 +// Size: 0x1d0 class C_OP_LagCompensation : public CParticleFunctionOperator { public: // MPropertyFriendlyName "desired velocity CP" - int32_t m_nDesiredVelocityCP; // 0x1b0 + int32_t m_nDesiredVelocityCP; // 0x1c0 // MPropertyFriendlyName "latency CP" - int32_t m_nLatencyCP; // 0x1b4 + int32_t m_nLatencyCP; // 0x1c4 // MPropertyFriendlyName "latency CP field" - int32_t m_nLatencyCPField; // 0x1b8 + int32_t m_nLatencyCPField; // 0x1c8 // MPropertyFriendlyName "desired velocity CP field override(for speed only)" - int32_t m_nDesiredVelocityCPField; // 0x1bc + int32_t m_nDesiredVelocityCPField; // 0x1cc }; // Alignment: 7 -// Size: 0x210 +// Size: 0x220 class C_OP_MaintainSequentialPath : public CParticleFunctionOperator { public: // MPropertyFriendlyName "maximum distance" - float m_fMaxDistance; // 0x1b0 + float m_fMaxDistance; // 0x1c0 // MPropertyFriendlyName "particles to map from start to end" - float m_flNumToAssign; // 0x1b4 + float m_flNumToAssign; // 0x1c4 // MPropertyFriendlyName "cohesion strength" - float m_flCohesionStrength; // 0x1b8 + float m_flCohesionStrength; // 0x1c8 // MPropertyFriendlyName "control point movement tolerance" - float m_flTolerance; // 0x1bc + float m_flTolerance; // 0x1cc // MPropertyFriendlyName "restart behavior (0 = bounce, 1 = loop )" - bool m_bLoop; // 0x1c0 + bool m_bLoop; // 0x1d0 // MPropertyFriendlyName "use existing particle count" - bool m_bUseParticleCount; // 0x1c1 + bool m_bUseParticleCount; // 0x1d1 private: - [[maybe_unused]] uint8_t __pad01c2[0xe]; // 0x1c2 + [[maybe_unused]] uint8_t __pad01d2[0xe]; // 0x1d2 +public: + CPathParameters m_PathParams; // 0x1e0 +}; + +// Alignment: 4 +// Size: 0x210 +class C_OP_LockToSavedSequentialPathV2 : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "start fade time" + float m_flFadeStart; // 0x1c0 + // MPropertyFriendlyName "end fade time" + float m_flFadeEnd; // 0x1c4 + // MPropertyFriendlyName "Use sequential CP pairs between start and end point" + bool m_bCPPairs; // 0x1c8 +private: + [[maybe_unused]] uint8_t __pad01c9[0x7]; // 0x1c9 public: CPathParameters m_PathParams; // 0x1d0 }; // Alignment: 4 -// Size: 0x200 -class C_OP_LockToSavedSequentialPathV2 : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "start fade time" - float m_flFadeStart; // 0x1b0 - // MPropertyFriendlyName "end fade time" - float m_flFadeEnd; // 0x1b4 - // MPropertyFriendlyName "Use sequential CP pairs between start and end point" - bool m_bCPPairs; // 0x1b8 -private: - [[maybe_unused]] uint8_t __pad01b9[0x7]; // 0x1b9 -public: - CPathParameters m_PathParams; // 0x1c0 -}; - -// Alignment: 4 -// Size: 0x200 +// Size: 0x210 class C_OP_LockToSavedSequentialPath : public CParticleFunctionOperator { +private: + [[maybe_unused]] uint8_t __pad01c0[0x4]; // 0x1c0 public: // MPropertyFriendlyName "start fade time" - float m_flFadeStart; // 0x1b4 + float m_flFadeStart; // 0x1c4 // MPropertyFriendlyName "end fade time" - float m_flFadeEnd; // 0x1b8 + float m_flFadeEnd; // 0x1c8 // MPropertyFriendlyName "Use sequential CP pairs between start and end point" - bool m_bCPPairs; // 0x1bc + bool m_bCPPairs; // 0x1cc private: - [[maybe_unused]] uint8_t __pad01bd[0x3]; // 0x1bd + [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd public: - CPathParameters m_PathParams; // 0x1c0 + CPathParameters m_PathParams; // 0x1d0 }; // Alignment: 11 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_RemapDotProductToScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "first input control point" - int32_t m_nInputCP1; // 0x1b0 + int32_t m_nInputCP1; // 0x1c0 // MPropertyFriendlyName "second input control point" - int32_t m_nInputCP2; // 0x1b4 + int32_t m_nInputCP2; // 0x1c4 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b8 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c8 // MPropertyFriendlyName "input minimum (-1 to 1)" - float m_flInputMin; // 0x1bc + float m_flInputMin; // 0x1cc // MPropertyFriendlyName "input maximum (-1 to 1)" - float m_flInputMax; // 0x1c0 + float m_flInputMax; // 0x1d0 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c4 + float m_flOutputMin; // 0x1d4 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c8 + float m_flOutputMax; // 0x1d8 // MPropertyFriendlyName "use particle velocity for first input" - bool m_bUseParticleVelocity; // 0x1cc + bool m_bUseParticleVelocity; // 0x1dc private: - [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd + [[maybe_unused]] uint8_t __pad01dd[0x3]; // 0x1dd public: // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1d0 + ParticleSetMethod_t m_nSetMethod; // 0x1e0 // MPropertyFriendlyName "only active within specified input range" - bool m_bActiveRange; // 0x1d4 + bool m_bActiveRange; // 0x1e4 // MPropertyFriendlyName "use particle normal for first input" - bool m_bUseParticleNormal; // 0x1d5 + bool m_bUseParticleNormal; // 0x1e5 }; // Alignment: 11 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_RemapCPtoScalar : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input control point number" - int32_t m_nCPInput; // 0x1b0 + int32_t m_nCPInput; // 0x1c0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 // MPropertyFriendlyName "input field 0-2 X/Y/Z" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nField; // 0x1b8 - // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1bc - // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1c0 - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1c4 - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1c8 - // MPropertyFriendlyName "emitter lifetime start time (seconds)" - float m_flStartTime; // 0x1cc - // MPropertyFriendlyName "emitter lifetime end time (seconds)" - float m_flEndTime; // 0x1d0 - // MPropertyFriendlyName "interpolation scale" - float m_flInterpRate; // 0x1d4 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1d8 -}; - -// Alignment: 1 -// Size: 0x1c0 -class C_OP_NormalLock : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 -}; - -// Alignment: 13 -// Size: 0x200 -class C_OP_RemapCPtoVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "input control point number" - int32_t m_nCPInput; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 - // MPropertyFriendlyName "local space CP" - int32_t m_nLocalSpaceCP; // 0x1b8 - // MPropertyFriendlyName "input minimum" - // MVectorIsSometimesCoordinate - Vector m_vInputMin; // 0x1bc - // MPropertyFriendlyName "input maximum" - // MVectorIsSometimesCoordinate - Vector m_vInputMax; // 0x1c8 - // MPropertyFriendlyName "output minimum" - // MVectorIsSometimesCoordinate - Vector m_vOutputMin; // 0x1d4 - // MPropertyFriendlyName "output maximum" - // MVectorIsSometimesCoordinate - Vector m_vOutputMax; // 0x1e0 - // MPropertyFriendlyName "emitter lifetime start time (seconds)" - float m_flStartTime; // 0x1ec - // MPropertyFriendlyName "emitter lifetime end time (seconds)" - float m_flEndTime; // 0x1f0 - // MPropertyFriendlyName "interpolation scale" - float m_flInterpRate; // 0x1f4 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1f8 - // MPropertyFriendlyName "offset position" - bool m_bOffset; // 0x1fc - // MPropertyFriendlyName "accelerate position" - bool m_bAccelerate; // 0x1fd -}; - -// Alignment: 2 -// Size: 0x1c0 -class C_OP_SetCPtoVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "input control point number" - int32_t m_nCPInput; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 -}; - -// Alignment: 1 -// Size: 0x220 -class C_OP_RemapTransformToVelocity : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b0 -}; - -// Alignment: 3 -// Size: 0x1c0 -class C_OP_RemapVelocityToVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "scale factor" - float m_flScale; // 0x1b4 - // MPropertyFriendlyName "normalize" - bool m_bNormalize; // 0x1b8 -}; - -// Alignment: 4 -// Size: 0x1c0 -class C_OP_RemapCPVelocityToVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "control point" - int32_t m_nControlPoint; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 - // MPropertyFriendlyName "scale factor" - float m_flScale; // 0x1b8 - // MPropertyFriendlyName "normalize" - bool m_bNormalize; // 0x1bc -}; - -// Alignment: 2 -// Size: 0x1c0 -class C_OP_SetCPOrientationToDirection : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "input control point" - int32_t m_nInputControlPoint; // 0x1b0 - // MPropertyFriendlyName "output control point" - int32_t m_nOutputControlPoint; // 0x1b4 -}; - -// Alignment: 7 -// Size: 0x1e0 -class C_OP_RemapDirectionToCPToVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 - // MPropertyFriendlyName "scale factor" - float m_flScale; // 0x1b8 - // MPropertyFriendlyName "offset rotation" - float m_flOffsetRot; // 0x1bc - // MPropertyFriendlyName "offset axis" - // MVectorIsCoordinate - Vector m_vecOffsetAxis; // 0x1c0 - // MPropertyFriendlyName "normalize" - bool m_bNormalize; // 0x1cc -private: - [[maybe_unused]] uint8_t __pad01cd[0x3]; // 0x1cd -public: - // MPropertyFriendlyName "strength field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldStrength; // 0x1d0 -}; - -// Alignment: 4 -// Size: 0xe30 -class C_OP_RemapCrossProductOfTwoVectorsToVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "input vector 1" - CPerParticleVecInput m_InputVec1; // 0x1b0 - // MPropertyFriendlyName "input vector 2" - CPerParticleVecInput m_InputVec2; // 0x7e8 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0xe20 - // MPropertyFriendlyName "normalize output" - bool m_bNormalize; // 0xe24 -}; - -// Alignment: 2 -// Size: 0x1c0 -class C_OP_NormalizeVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "scale factor" - float m_flScale; // 0x1b4 -}; - -// Alignment: 3 -// Size: 0x1c0 -class C_OP_RemapControlPointDirectionToVector : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 - // MPropertyFriendlyName "scale factor" - float m_flScale; // 0x1b4 - // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b8 -}; - -// Alignment: 9 -// Size: 0x260 -class C_OP_SetCPOrientationToGroundNormal : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "interpolation rate" - float m_flInterpRate; // 0x1b0 - // MPropertyFriendlyName "max trace length" - float m_flMaxTraceLength; // 0x1b4 - // MPropertyFriendlyName "CP movement tolerance" - float m_flTolerance; // 0x1b8 - // MPropertyFriendlyName "trace offset" - float m_flTraceOffset; // 0x1bc - // MPropertyFriendlyName "collision group" - char m_CollisionGroupName[128]; // 0x1c0 - // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x240 - // MPropertyFriendlyName "CP to trace from" - int32_t m_nInputCP; // 0x244 - // MPropertyFriendlyName "CP to set" - int32_t m_nOutputCP; // 0x248 -private: - [[maybe_unused]] uint8_t __pad024c[0xc]; // 0x24c -public: - // MPropertyFriendlyName "include water" - bool m_bIncludeWater; // 0x258 -}; - -// Alignment: 4 -// Size: 0x230 -class C_OP_RemapTransformOrientationToRotations : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "transform input" - CParticleTransformInput m_TransformInput; // 0x1b0 - // MPropertyFriendlyName "offset pitch/yaw/roll" - Vector m_vecRotation; // 0x218 - // MPropertyFriendlyName "Use Quaternians Internally" - bool m_bUseQuat; // 0x224 - // MPropertyFriendlyName "Write normal instead of rotation" - bool m_bWriteNormal; // 0x225 -}; - -// Alignment: 4 -// Size: 0x1c0 -class C_OP_RemapControlPointOrientationToRotation : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0x1b0 - // MPropertyFriendlyName "rotation field" - // MPropertyAttributeChoiceName "particlefield_rotation" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 - // MPropertyFriendlyName "offset rotation" - float m_flOffsetRot; // 0x1b8 - // MPropertyFriendlyName "control point axis" - // MPropertyAttributeChoiceName "vector_component" - // MVectorIsSometimesCoordinate - int32_t m_nComponent; // 0x1bc -}; - -// Alignment: 5 -// Size: 0x1e0 -class C_OP_LockToPointList : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 -public: - // MPropertyFriendlyName "point list" - CUtlVector< PointDefinition_t > m_pointList; // 0x1b8 - // MPropertyFriendlyName "space points along path" - bool m_bPlaceAlongPath; // 0x1d0 - // MPropertyFriendlyName "Treat path as a loop" - bool m_bClosedLoop; // 0x1d1 -private: - [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 -public: - // MPropertyFriendlyName "Numer of points along path" - int32_t m_nNumPointsAlongPath; // 0x1d4 -}; - -// Alignment: 9 -// Size: 0x210 -class C_OP_RemapNamedModelElementOnceTimed : public CParticleFunctionOperator -{ -public: - CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x1b0 - // MPropertyFriendlyName "input names" - CUtlVector< CUtlString > m_inNames; // 0x1b8 - // MPropertyFriendlyName "output names" - CUtlVector< CUtlString > m_outNames; // 0x1d0 - // MPropertyFriendlyName "fallback names when the input doesn't match" - CUtlVector< CUtlString > m_fallbackNames; // 0x1e8 - // MPropertyFriendlyName "model from renderer" - bool m_bModelFromRenderer; // 0x200 - // MPropertyFriendlyName "remap time proportional" - bool m_bProportional; // 0x201 -private: - [[maybe_unused]] uint8_t __pad0202[0x2]; // 0x202 -public: - // MPropertyFriendlyName "input field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x204 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x208 - // MPropertyFriendlyName "remap time" - float m_flRemapTime; // 0x20c -}; - -// Alignment: 0 -// Size: 0x210 -class C_OP_RemapNamedModelSequenceOnceTimed : public C_OP_RemapNamedModelElementOnceTimed -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x210 -class C_OP_RemapNamedModelBodyPartOnceTimed : public C_OP_RemapNamedModelElementOnceTimed -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x210 -class C_OP_RemapNamedModelMeshGroupOnceTimed : public C_OP_RemapNamedModelElementOnceTimed -{ -public: - // No members available -}; - -// Alignment: 7 -// Size: 0x210 -class C_OP_RemapNamedModelElementEndCap : public CParticleFunctionOperator -{ -public: - CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x1b0 - // MPropertyFriendlyName "input names" - CUtlVector< CUtlString > m_inNames; // 0x1b8 - // MPropertyFriendlyName "output names" - CUtlVector< CUtlString > m_outNames; // 0x1d0 - // MPropertyFriendlyName "fallback names when the input doesn't match" - CUtlVector< CUtlString > m_fallbackNames; // 0x1e8 - // MPropertyFriendlyName "model from renderer" - bool m_bModelFromRenderer; // 0x200 -private: - [[maybe_unused]] uint8_t __pad0201[0x3]; // 0x201 -public: - // MPropertyFriendlyName "input field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldInput; // 0x204 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x208 -}; - -// Alignment: 0 -// Size: 0x210 -class C_OP_RemapNamedModelSequenceEndCap : public C_OP_RemapNamedModelElementEndCap -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x210 -class C_OP_RemapNamedModelBodyPartEndCap : public C_OP_RemapNamedModelElementEndCap -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x210 -class C_OP_RemapNamedModelMeshGroupEndCap : public C_OP_RemapNamedModelElementEndCap -{ -public: - // No members available -}; - -// Alignment: 11 -// Size: 0x5c0 -class C_OP_SetFromCPSnapshot : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "snapshot control point number" - int32_t m_nControlPointNumber; // 0x1b0 - // MPropertyFriendlyName "field to read" - // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nAttributeToRead; // 0x1b4 - // MPropertyFriendlyName "field to write" - // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nAttributeToWrite; // 0x1b8 - // MPropertyFriendlyName "local space control point number" - int32_t m_nLocalSpaceCP; // 0x1bc - // MPropertyFriendlyName "random order" - bool m_bRandom; // 0x1c0 - // MPropertyFriendlyName "reverse order" - bool m_bReverse; // 0x1c1 -private: - [[maybe_unused]] uint8_t __pad01c2[0x2]; // 0x1c2 -public: - // MPropertyFriendlyName "random seed" - int32_t m_nRandomSeed; // 0x1c4 - // MPropertyFriendlyName "Snapshot start point" - CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x1c8 - // MPropertyFriendlyName "Snapshot increment amount" - CParticleCollectionFloatInput m_nSnapShotIncrement; // 0x318 - // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x468 - // MPropertyFriendlyName "Sub-Sample Between Input Points" - bool m_bSubSample; // 0x5b8 -}; - -// Alignment: 9 -// Size: 0x960 -class C_OP_VectorFieldSnapshot : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "snapshot control point number" - int32_t m_nControlPointNumber; // 0x1b0 - // MPropertyFriendlyName "extra velocity field to write" - // MPropertyAttributeChoiceName "particlefield" - ParticleAttributeIndex_t m_nAttributeToWrite; // 0x1b4 - // MPropertyFriendlyName "local space control point number" - int32_t m_nLocalSpaceCP; // 0x1b8 -private: - [[maybe_unused]] uint8_t __pad01bc[0x4]; // 0x1bc -public: - // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x1c0 - // MPropertyFriendlyName "Component Scale" - CPerParticleVecInput m_vecScale; // 0x310 - // MPropertyFriendlyName "Boundary Dampening" - float m_flBoundaryDampening; // 0x948 - // MPropertyFriendlyName "Set Velocity" - bool m_bSetVelocity; // 0x94c - // MPropertyFriendlyName "Lock to Surface" - bool m_bLockToSurface; // 0x94d -private: - [[maybe_unused]] uint8_t __pad094e[0x2]; // 0x94e -public: - // MPropertyFriendlyName "Vector Field Grid Spacing Override" - float m_flGridSpacing; // 0x950 -}; - -// Alignment: 5 -// Size: 0x480 -class C_OP_SetAttributeToScalarExpression : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "expression" - ScalarExpressionType_t m_nExpression; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 -public: - // MPropertyFriendlyName "input 1" - CPerParticleFloatInput m_flInput1; // 0x1b8 - // MPropertyFriendlyName "input 2" - CPerParticleFloatInput m_flInput2; // 0x308 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x458 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x45c -}; - -// Alignment: 6 -// Size: 0xea0 -class C_OP_SetVectorAttributeToVectorExpression : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "expression" - VectorExpressionType_t m_nExpression; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 -public: - // MPropertyFriendlyName "input 1" - CPerParticleVecInput m_vInput1; // 0x1b8 - // MPropertyFriendlyName "input 2" - CPerParticleVecInput m_vInput2; // 0x7f0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOutputField; // 0xe28 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0xe2c - // MPropertyFriendlyName "normalize result" - bool m_bNormalizedOutput; // 0xe30 -}; - -// Alignment: 6 -// Size: 0xf80 -class C_OP_SetFloatAttributeToVectorExpression : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "expression" - VectorFloatExpressionType_t m_nExpression; // 0x1b0 -private: - [[maybe_unused]] uint8_t __pad01b4[0x4]; // 0x1b4 -public: - // MPropertyFriendlyName "input 1" - CPerParticleVecInput m_vInput1; // 0x1b8 - // MPropertyFriendlyName "input 2" - CPerParticleVecInput m_vInput2; // 0x7f0 - // MPropertyFriendlyName "output" - CParticleRemapFloatInput m_flOutputRemap; // 0xe28 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0xf78 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0xf7c -}; - -// Alignment: 10 -// Size: 0x710 -class C_OP_MovementSkinnedPositionFromCPSnapshot : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "snapshot control point number" - int32_t m_nSnapshotControlPointNumber; // 0x1b0 - // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b4 - // MPropertyFriendlyName "random order" - bool m_bRandom; // 0x1b8 -private: - [[maybe_unused]] uint8_t __pad01b9[0x3]; // 0x1b9 -public: - // MPropertyFriendlyName "random seed" - int32_t m_nRandomSeed; // 0x1bc - // MPropertyFriendlyName "set normal" - bool m_bSetNormal; // 0x1c0 - // MPropertyFriendlyName "set radius" - bool m_bSetRadius; // 0x1c1 -private: - [[maybe_unused]] uint8_t __pad01c2[0x6]; // 0x1c2 -public: - // MPropertyFriendlyName "particle increment amount" - CParticleCollectionFloatInput m_flIncrement; // 0x1c8 - // MPropertyFriendlyName "Full Loop Increment Amount" - CParticleCollectionFloatInput m_nFullLoopIncrement; // 0x318 - // MPropertyFriendlyName "Snapshot start point" - CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x468 - // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x5b8 -}; - -// Alignment: 6 -// Size: 0x460 -class C_OP_MovementMoveAlongSkinnedCPSnapshot : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x1b0 - // MPropertyFriendlyName "snapshot control point number" - int32_t m_nSnapshotControlPointNumber; // 0x1b4 - // MPropertyFriendlyName "set normal" - bool m_bSetNormal; // 0x1b8 - // MPropertyFriendlyName "set radius" - bool m_bSetRadius; // 0x1b9 -private: - [[maybe_unused]] uint8_t __pad01ba[0x6]; // 0x1ba -public: - // MPropertyFriendlyName "Interpolation" - CPerParticleFloatInput m_flInterpolation; // 0x1c0 - // MPropertyFriendlyName "Snapshot Index T Value" - CPerParticleFloatInput m_flTValue; // 0x310 -}; - -// Alignment: 2 -// Size: 0x330 -class C_OP_QuantizeFloat : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "value" - CPerParticleFloatInput m_InputValue; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x300 -}; - -// Alignment: 4 -// Size: 0x480 -class C_OP_SetFloatCollection : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "value" - CParticleCollectionFloatInput m_InputValue; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x300 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x304 - // MPropertyFriendlyName "interpolation" - CParticleCollectionFloatInput m_Lerp; // 0x308 -}; - -// Alignment: 4 -// Size: 0x480 -class C_OP_SetFloat : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "value" - CPerParticleFloatInput m_InputValue; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nOutputField; // 0x300 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x304 - // MPropertyFriendlyName "interpolation" - CPerParticleFloatInput m_Lerp; // 0x308 -}; - -// Alignment: 5 -// Size: 0x950 -class C_OP_SetVec : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "value" - CPerParticleVecInput m_InputValue; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nOutputField; // 0x7e8 - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x7ec - // MPropertyFriendlyName "interpolation" - CPerParticleFloatInput m_Lerp; // 0x7f0 - // MPropertyFriendlyName "normalize result" - bool m_bNormalizedOutput; // 0x940 -}; - -// Alignment: 3 -// Size: 0x940 -class C_OP_DragRelativeToPlane : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "dampening" - CParticleCollectionFloatInput m_flDragAtPlane; // 0x1b0 - // MPropertyFriendlyName "plane normal" - // MVectorIsCoordinate - CParticleCollectionVecInput m_vecPlaneNormal; // 0x300 - // MPropertyFriendlyName "control point number" - int32_t m_nControlPointNumber; // 0x938 -}; - -// Alignment: 2 -// Size: 0x1c0 -class C_OP_RemapDensityGradientToVectorAttribute : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "Radius scale for particle influence" - float m_flRadiusScale; // 0x1b0 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4 -}; - -// Alignment: 6 -// Size: 0x1d0 -class C_OP_LockPoints : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "min column/particle index to affect" - int32_t m_nMinCol; // 0x1b0 - // MPropertyFriendlyName "max column/particle index to affect" - int32_t m_nMaxCol; // 0x1b4 - // MPropertyFriendlyName "min row/particle index to affect" - int32_t m_nMinRow; // 0x1b8 - // MPropertyFriendlyName "max row/particle index to affect" - int32_t m_nMaxRow; // 0x1bc - // MPropertyFriendlyName "control point to lock to" - int32_t m_nControlPoint; // 0x1c0 - // MPropertyFriendlyName "amount of current position to preserve" - float m_flBlendValue; // 0x1c4 -}; - -// Alignment: 5 -// Size: 0x1d0 -class C_OP_RemapDistanceToLineSegmentBase : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "control point 0" - int32_t m_nCP0; // 0x1b0 - // MPropertyFriendlyName "control point 1" - int32_t m_nCP1; // 0x1b4 - // MPropertyFriendlyName "min distance value" - float m_flMinInputValue; // 0x1b8 - // MPropertyFriendlyName "max distance value" - float m_flMaxInputValue; // 0x1bc - // MPropertyFriendlyName "use distance to an infinite line instead of a finite line segment" - bool m_bInfiniteLine; // 0x1c0 -}; - -// Alignment: 3 -// Size: 0x1e0 -class C_OP_RemapDistanceToLineSegmentToScalar : public C_OP_RemapDistanceToLineSegmentBase -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1d0 - // MPropertyFriendlyName "output value at min distance" - float m_flMinOutputValue; // 0x1d4 - // MPropertyFriendlyName "output value at max distance" - float m_flMaxOutputValue; // 0x1d8 -}; - -// Alignment: 3 -// Size: 0x1f0 -class C_OP_RemapDistanceToLineSegmentToVector : public C_OP_RemapDistanceToLineSegmentBase -{ -public: - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1d0 - // MPropertyFriendlyName "output value at min distance" - Vector m_vMinOutputValue; // 0x1d4 - // MPropertyFriendlyName "output value at max distance" - Vector m_vMaxOutputValue; // 0x1e0 -}; - -// Alignment: 11 -// Size: 0x1f0 -class C_OP_TeleportBeam : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "Position Control Point" - int32_t m_nCPPosition; // 0x1b0 - // MPropertyFriendlyName "Velocity Control Point" - int32_t m_nCPVelocity; // 0x1b4 - // MPropertyFriendlyName "Misc Control Point" - int32_t m_nCPMisc; // 0x1b8 - // MPropertyFriendlyName "Color Control Point" - int32_t m_nCPColor; // 0x1bc - // MPropertyFriendlyName "Invalid Color Control Point" - int32_t m_nCPInvalidColor; // 0x1c0 - // MPropertyFriendlyName "Extra Arc Data Point" - int32_t m_nCPExtraArcData; // 0x1c4 - // MPropertyFriendlyName "Gravity" - Vector m_vGravity; // 0x1c8 - // MPropertyFriendlyName "Arc Duration Maximum" - float m_flArcMaxDuration; // 0x1d4 - // MPropertyFriendlyName "Segment Break" - float m_flSegmentBreak; // 0x1d8 - // MPropertyFriendlyName "Arc Speed" - float m_flArcSpeed; // 0x1dc - // MPropertyFriendlyName "Alpha" - float m_flAlpha; // 0x1e0 -}; - -// Alignment: 10 -// Size: 0x1e0 -class C_OP_CycleScalar : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "destination scalar field" - // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nDestField; // 0x1b0 - // MPropertyFriendlyName "Value at start of cycle" - float m_flStartValue; // 0x1b4 - // MPropertyFriendlyName "Value at end of cycle" - float m_flEndValue; // 0x1b8 - // MPropertyFriendlyName "Cycle time" - float m_flCycleTime; // 0x1bc - // MPropertyFriendlyName "Do not repeat cycle" - bool m_bDoNotRepeatCycle; // 0x1c0 - // MPropertyFriendlyName "Synchronize particles" - bool m_bSynchronizeParticles; // 0x1c1 -private: - [[maybe_unused]] uint8_t __pad01c2[0x2]; // 0x1c2 -public: - // MPropertyFriendlyName "Scale Start/End Control Point" - int32_t m_nCPScale; // 0x1c4 - // MPropertyFriendlyName "start scale control point field" - // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPFieldMin; // 0x1c8 - // MPropertyFriendlyName "end scale control point field" - // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPFieldMax; // 0x1cc - // MPropertyFriendlyName "set value method" - ParticleSetMethod_t m_nSetMethod; // 0x1d0 -}; - -// Alignment: 11 -// Size: 0x210 -class C_OP_CalculateVectorAttribute : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "start value" - Vector m_vStartValue; // 0x1b0 - // MPropertyFriendlyName "input field 1" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput1; // 0x1bc - // MPropertyFriendlyName "input scale 1" - float m_flInputScale1; // 0x1c0 - // MPropertyFriendlyName "input field 2" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldInput2; // 0x1c4 - // MPropertyFriendlyName "input scale 2" - float m_flInputScale2; // 0x1c8 - // MPropertyFriendlyName "control point input 1" - ControlPointReference_t m_nControlPointInput1; // 0x1cc - // MPropertyFriendlyName "control point scale 1" - float m_flControlPointScale1; // 0x1e0 - // MPropertyFriendlyName "control point input 2" - ControlPointReference_t m_nControlPointInput2; // 0x1e4 - // MPropertyFriendlyName "control point scale 2" - float m_flControlPointScale2; // 0x1f8 - // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "particlefield_vector" - ParticleAttributeIndex_t m_nFieldOutput; // 0x1fc - // MPropertyFriendlyName "final per component scale" - Vector m_vFinalOutputScale; // 0x200 -}; - -// Alignment: 3 -// Size: 0x5a0 -class C_OP_ColorAdjustHSL : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "hue adjust" - CPerParticleFloatInput m_flHueAdjust; // 0x1b0 - // MPropertyFriendlyName "saturation adjust" - CPerParticleFloatInput m_flSaturationAdjust; // 0x300 - // MPropertyFriendlyName "lightness adjust" - CPerParticleFloatInput m_flLightnessAdjust; // 0x450 -}; - -// Alignment: 2 -// Size: 0x1c0 -class C_OP_ConnectParentParticleToNearest : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "control point to set" - int32_t m_nFirstControlPoint; // 0x1b0 - // MPropertyFriendlyName "Second Control point to set" - int32_t m_nSecondControlPoint; // 0x1b4 -}; - -// Alignment: 6 -// Size: 0x1d0 -class C_OP_UpdateLightSource : public CParticleFunctionOperator -{ -public: - // MPropertyFriendlyName "color tint" - Color m_vColorTint; // 0x1b0 - // MPropertyFriendlyName "amount to multiply light brightness by" - float m_flBrightnessScale; // 0x1b4 - // MPropertyFriendlyName "amount to multiply particle system radius by to get light radius" - float m_flRadiusScale; // 0x1b8 - // MPropertyFriendlyName "minimum radius for created lights" - float m_flMinimumLightingRadius; // 0x1bc - // MPropertyFriendlyName "maximum radius for created lights" - float m_flMaximumLightingRadius; // 0x1c0 - // MPropertyFriendlyName "amount of damping of changes" - float m_flPositionDampingConstant; // 0x1c4 -}; - -// Alignment: 8 -// Size: 0x1e0 -class C_OP_RemapSpeedtoCP : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "input control point" - int32_t m_nInControlPointNumber; // 0x1c0 - // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c4 - // MPropertyFriendlyName "Output field 0-2 X/Y/Z" - // MPropertyAttributeChoiceName "vector_component" int32_t m_nField; // 0x1c8 // MPropertyFriendlyName "input minimum" float m_flInputMin; // 0x1cc @@ -8564,71 +7799,450 @@ public: float m_flOutputMin; // 0x1d4 // MPropertyFriendlyName "output maximum" float m_flOutputMax; // 0x1d8 - // MPropertyFriendlyName "use delta of velocity instead of constant speed" - bool m_bUseDeltaV; // 0x1dc + // MPropertyFriendlyName "emitter lifetime start time (seconds)" + float m_flStartTime; // 0x1dc + // MPropertyFriendlyName "emitter lifetime end time (seconds)" + float m_flEndTime; // 0x1e0 + // MPropertyFriendlyName "interpolation scale" + float m_flInterpRate; // 0x1e4 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x1e8 }; -// Alignment: 10 -// Size: 0xdd0 -class C_OP_RemapAverageHitboxSpeedtoCP : public CParticleFunctionPreEmission +// Alignment: 1 +// Size: 0x1d0 +class C_OP_NormalLock : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "control point number" + int32_t m_nControlPointNumber; // 0x1c0 +}; + +// Alignment: 13 +// Size: 0x210 +class C_OP_RemapCPtoVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "input control point number" + int32_t m_nCPInput; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "local space CP" + int32_t m_nLocalSpaceCP; // 0x1c8 + // MPropertyFriendlyName "input minimum" + // MVectorIsSometimesCoordinate + Vector m_vInputMin; // 0x1cc + // MPropertyFriendlyName "input maximum" + // MVectorIsSometimesCoordinate + Vector m_vInputMax; // 0x1d8 + // MPropertyFriendlyName "output minimum" + // MVectorIsSometimesCoordinate + Vector m_vOutputMin; // 0x1e4 + // MPropertyFriendlyName "output maximum" + // MVectorIsSometimesCoordinate + Vector m_vOutputMax; // 0x1f0 + // MPropertyFriendlyName "emitter lifetime start time (seconds)" + float m_flStartTime; // 0x1fc + // MPropertyFriendlyName "emitter lifetime end time (seconds)" + float m_flEndTime; // 0x200 + // MPropertyFriendlyName "interpolation scale" + float m_flInterpRate; // 0x204 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x208 + // MPropertyFriendlyName "offset position" + bool m_bOffset; // 0x20c + // MPropertyFriendlyName "accelerate position" + bool m_bAccelerate; // 0x20d +}; + +// Alignment: 2 +// Size: 0x1d0 +class C_OP_SetCPtoVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "input control point number" + int32_t m_nCPInput; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 +}; + +// Alignment: 1 +// Size: 0x230 +class C_OP_RemapTransformToVelocity : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "transform input" + CParticleTransformInput m_TransformInput; // 0x1c0 +}; + +// Alignment: 3 +// Size: 0x1d0 +class C_OP_RemapVelocityToVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "scale factor" + float m_flScale; // 0x1c4 + // MPropertyFriendlyName "normalize" + bool m_bNormalize; // 0x1c8 +}; + +// Alignment: 4 +// Size: 0x1d0 +class C_OP_RemapCPVelocityToVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "control point" + int32_t m_nControlPoint; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "scale factor" + float m_flScale; // 0x1c8 + // MPropertyFriendlyName "normalize" + bool m_bNormalize; // 0x1cc +}; + +// Alignment: 2 +// Size: 0x1d0 +class C_OP_SetCPOrientationToDirection : public CParticleFunctionOperator { public: // MPropertyFriendlyName "input control point" - int32_t m_nInControlPointNumber; // 0x1c0 + int32_t m_nInputControlPoint; // 0x1c0 // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c4 - // MPropertyFriendlyName "Output component" + int32_t m_nOutputControlPoint; // 0x1c4 +}; + +// Alignment: 7 +// Size: 0x1f0 +class C_OP_RemapDirectionToCPToVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "control point" + int32_t m_nCP; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "scale factor" + float m_flScale; // 0x1c8 + // MPropertyFriendlyName "offset rotation" + float m_flOffsetRot; // 0x1cc + // MPropertyFriendlyName "offset axis" + // MVectorIsCoordinate + Vector m_vecOffsetAxis; // 0x1d0 + // MPropertyFriendlyName "normalize" + bool m_bNormalize; // 0x1dc +private: + [[maybe_unused]] uint8_t __pad01dd[0x3]; // 0x1dd +public: + // MPropertyFriendlyName "strength field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldStrength; // 0x1e0 +}; + +// Alignment: 4 +// Size: 0xe80 +class C_OP_RemapCrossProductOfTwoVectorsToVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "input vector 1" + CPerParticleVecInput m_InputVec1; // 0x1c0 + // MPropertyFriendlyName "input vector 2" + CPerParticleVecInput m_InputVec2; // 0x818 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0xe70 + // MPropertyFriendlyName "normalize output" + bool m_bNormalize; // 0xe74 +}; + +// Alignment: 2 +// Size: 0x1d0 +class C_OP_NormalizeVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "scale factor" + float m_flScale; // 0x1c4 +}; + +// Alignment: 3 +// Size: 0x1d0 +class C_OP_RemapControlPointDirectionToVector : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "scale factor" + float m_flScale; // 0x1c4 + // MPropertyFriendlyName "control point number" + int32_t m_nControlPointNumber; // 0x1c8 +}; + +// Alignment: 9 +// Size: 0x270 +class C_OP_SetCPOrientationToGroundNormal : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "interpolation rate" + float m_flInterpRate; // 0x1c0 + // MPropertyFriendlyName "max trace length" + float m_flMaxTraceLength; // 0x1c4 + // MPropertyFriendlyName "CP movement tolerance" + float m_flTolerance; // 0x1c8 + // MPropertyFriendlyName "trace offset" + float m_flTraceOffset; // 0x1cc + // MPropertyFriendlyName "collision group" + char m_CollisionGroupName[128]; // 0x1d0 + // MPropertyFriendlyName "Trace Set" + ParticleTraceSet_t m_nTraceSet; // 0x250 + // MPropertyFriendlyName "CP to trace from" + int32_t m_nInputCP; // 0x254 + // MPropertyFriendlyName "CP to set" + int32_t m_nOutputCP; // 0x258 +private: + [[maybe_unused]] uint8_t __pad025c[0xc]; // 0x25c +public: + // MPropertyFriendlyName "include water" + bool m_bIncludeWater; // 0x268 +}; + +// Alignment: 4 +// Size: 0x240 +class C_OP_RemapTransformOrientationToRotations : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "transform input" + CParticleTransformInput m_TransformInput; // 0x1c0 + // MPropertyFriendlyName "offset pitch/yaw/roll" + Vector m_vecRotation; // 0x228 + // MPropertyFriendlyName "Use Quaternians Internally" + bool m_bUseQuat; // 0x234 + // MPropertyFriendlyName "Write normal instead of rotation" + bool m_bWriteNormal; // 0x235 +}; + +// Alignment: 4 +// Size: 0x1d0 +class C_OP_RemapControlPointOrientationToRotation : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "control point" + int32_t m_nCP; // 0x1c0 + // MPropertyFriendlyName "rotation field" + // MPropertyAttributeChoiceName "particlefield_rotation" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 + // MPropertyFriendlyName "offset rotation" + float m_flOffsetRot; // 0x1c8 + // MPropertyFriendlyName "control point axis" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nField; // 0x1c8 + // MVectorIsSometimesCoordinate + int32_t m_nComponent; // 0x1cc +}; + +// Alignment: 5 +// Size: 0x1f0 +class C_OP_LockToPointList : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 +private: + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 +public: + // MPropertyFriendlyName "point list" + CUtlVector< PointDefinition_t > m_pointList; // 0x1c8 + // MPropertyFriendlyName "space points along path" + bool m_bPlaceAlongPath; // 0x1e0 + // MPropertyFriendlyName "Treat path as a loop" + bool m_bClosedLoop; // 0x1e1 +private: + [[maybe_unused]] uint8_t __pad01e2[0x2]; // 0x1e2 +public: + // MPropertyFriendlyName "Numer of points along path" + int32_t m_nNumPointsAlongPath; // 0x1e4 +}; + +// Alignment: 9 +// Size: 0x220 +class C_OP_RemapNamedModelElementOnceTimed : public CParticleFunctionOperator +{ +public: + CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x1c0 + // MPropertyFriendlyName "input names" + CUtlVector< CUtlString > m_inNames; // 0x1c8 + // MPropertyFriendlyName "output names" + CUtlVector< CUtlString > m_outNames; // 0x1e0 + // MPropertyFriendlyName "fallback names when the input doesn't match" + CUtlVector< CUtlString > m_fallbackNames; // 0x1f8 + // MPropertyFriendlyName "model from renderer" + bool m_bModelFromRenderer; // 0x210 + // MPropertyFriendlyName "remap time proportional" + bool m_bProportional; // 0x211 +private: + [[maybe_unused]] uint8_t __pad0212[0x2]; // 0x212 +public: + // MPropertyFriendlyName "input field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldInput; // 0x214 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x218 + // MPropertyFriendlyName "remap time" + float m_flRemapTime; // 0x21c +}; + +// Alignment: 0 +// Size: 0x220 +class C_OP_RemapNamedModelSequenceOnceTimed : public C_OP_RemapNamedModelElementOnceTimed +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x220 +class C_OP_RemapNamedModelBodyPartOnceTimed : public C_OP_RemapNamedModelElementOnceTimed +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x220 +class C_OP_RemapNamedModelMeshGroupOnceTimed : public C_OP_RemapNamedModelElementOnceTimed +{ +public: + // No members available +}; + +// Alignment: 7 +// Size: 0x220 +class C_OP_RemapNamedModelElementEndCap : public CParticleFunctionOperator +{ +public: + CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x1c0 + // MPropertyFriendlyName "input names" + CUtlVector< CUtlString > m_inNames; // 0x1c8 + // MPropertyFriendlyName "output names" + CUtlVector< CUtlString > m_outNames; // 0x1e0 + // MPropertyFriendlyName "fallback names when the input doesn't match" + CUtlVector< CUtlString > m_fallbackNames; // 0x1f8 + // MPropertyFriendlyName "model from renderer" + bool m_bModelFromRenderer; // 0x210 +private: + [[maybe_unused]] uint8_t __pad0211[0x3]; // 0x211 +public: + // MPropertyFriendlyName "input field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldInput; // 0x214 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x218 +}; + +// Alignment: 0 +// Size: 0x220 +class C_OP_RemapNamedModelSequenceEndCap : public C_OP_RemapNamedModelElementEndCap +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x220 +class C_OP_RemapNamedModelBodyPartEndCap : public C_OP_RemapNamedModelElementEndCap +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x220 +class C_OP_RemapNamedModelMeshGroupEndCap : public C_OP_RemapNamedModelElementEndCap +{ +public: + // No members available +}; + +// Alignment: 11 +// Size: 0x5f0 +class C_OP_SetFromCPSnapshot : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "snapshot control point number" + int32_t m_nControlPointNumber; // 0x1c0 + // MPropertyFriendlyName "field to read" + // MPropertyAttributeChoiceName "particlefield" + ParticleAttributeIndex_t m_nAttributeToRead; // 0x1c4 + // MPropertyFriendlyName "field to write" + // MPropertyAttributeChoiceName "particlefield" + ParticleAttributeIndex_t m_nAttributeToWrite; // 0x1c8 + // MPropertyFriendlyName "local space control point number" + int32_t m_nLocalSpaceCP; // 0x1cc + // MPropertyFriendlyName "random order" + bool m_bRandom; // 0x1d0 + // MPropertyFriendlyName "reverse order" + bool m_bReverse; // 0x1d1 +private: + [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 +public: + // MPropertyFriendlyName "random seed" + int32_t m_nRandomSeed; // 0x1d4 + // MPropertyFriendlyName "Snapshot start point" + CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x1d8 + // MPropertyFriendlyName "Snapshot increment amount" + CParticleCollectionFloatInput m_nSnapShotIncrement; // 0x330 + // MPropertyFriendlyName "Interpolation" + CPerParticleFloatInput m_flInterpolation; // 0x488 + // MPropertyFriendlyName "Sub-Sample Between Input Points" + bool m_bSubSample; // 0x5e0 +}; + +// Alignment: 9 +// Size: 0x990 +class C_OP_VectorFieldSnapshot : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "snapshot control point number" + int32_t m_nControlPointNumber; // 0x1c0 + // MPropertyFriendlyName "extra velocity field to write" + // MPropertyAttributeChoiceName "particlefield" + ParticleAttributeIndex_t m_nAttributeToWrite; // 0x1c4 + // MPropertyFriendlyName "local space control point number" + int32_t m_nLocalSpaceCP; // 0x1c8 private: [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc public: - // MPropertyFriendlyName "input minimum" - CParticleCollectionFloatInput m_flInputMin; // 0x1d0 - // MPropertyFriendlyName "input maximum" - CParticleCollectionFloatInput m_flInputMax; // 0x320 - // MPropertyFriendlyName "output minimum" - CParticleCollectionFloatInput m_flOutputMin; // 0x470 - // MPropertyFriendlyName "output maximum" - CParticleCollectionFloatInput m_flOutputMax; // 0x5c0 - // MPropertyFriendlyName "intersection height CP" - int32_t m_nHeightControlPointNumber; // 0x710 + // MPropertyFriendlyName "Interpolation" + CPerParticleFloatInput m_flInterpolation; // 0x1d0 + // MPropertyFriendlyName "Component Scale" + CPerParticleVecInput m_vecScale; // 0x328 + // MPropertyFriendlyName "Boundary Dampening" + float m_flBoundaryDampening; // 0x980 + // MPropertyFriendlyName "Set Velocity" + bool m_bSetVelocity; // 0x984 + // MPropertyFriendlyName "Lock to Surface" + bool m_bLockToSurface; // 0x985 private: - [[maybe_unused]] uint8_t __pad0714[0x4]; // 0x714 + [[maybe_unused]] uint8_t __pad0986[0x2]; // 0x986 public: - // MPropertyFriendlyName "comparison velocity" - CParticleCollectionVecInput m_vecComparisonVelocity; // 0x718 - // MPropertyFriendlyName "hitbox set" - char m_HitboxSetName[128]; // 0xd50 + // MPropertyFriendlyName "Vector Field Grid Spacing Override" + float m_flGridSpacing; // 0x988 }; -// Alignment: 8 -// Size: 0x710 -class C_OP_RemapDotProductToCP : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "first input control point" - int32_t m_nInputCP1; // 0x1c0 - // MPropertyFriendlyName "second input control point" - int32_t m_nInputCP2; // 0x1c4 - // MPropertyFriendlyName "output control point" - int32_t m_nOutputCP; // 0x1c8 - // MPropertyFriendlyName "output component" - // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutVectorField; // 0x1cc - // MPropertyFriendlyName "input minimum (-1 to 1)" - CParticleCollectionFloatInput m_flInputMin; // 0x1d0 - // MPropertyFriendlyName "input maximum (-1 to 1)" - CParticleCollectionFloatInput m_flInputMax; // 0x320 - // MPropertyFriendlyName "output minimum" - CParticleCollectionFloatInput m_flOutputMin; // 0x470 - // MPropertyFriendlyName "output maximum" - CParticleCollectionFloatInput m_flOutputMax; // 0x5c0 -}; - -// Alignment: 6 -// Size: 0x5c0 -class C_OP_SetControlPointFieldToScalarExpression : public CParticleFunctionPreEmission +// Alignment: 5 +// Size: 0x4a0 +class C_OP_SetAttributeToScalarExpression : public CParticleFunctionOperator { public: // MPropertyFriendlyName "expression" @@ -8637,21 +8251,42 @@ private: [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "input 1" - CParticleCollectionFloatInput m_flInput1; // 0x1c8 + CPerParticleFloatInput m_flInput1; // 0x1c8 // MPropertyFriendlyName "input 2" - CParticleCollectionFloatInput m_flInput2; // 0x318 - // MPropertyFriendlyName "output" - CParticleRemapFloatInput m_flOutputRemap; // 0x468 - // MPropertyFriendlyName "output control point" - int32_t m_nOutputCP; // 0x5b8 - // MPropertyFriendlyName "output component" - // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutVectorField; // 0x5bc + CPerParticleFloatInput m_flInput2; // 0x320 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nOutputField; // 0x478 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x47c }; // Alignment: 6 -// Size: 0xf90 -class C_OP_SetControlPointFieldFromVectorExpression : public CParticleFunctionPreEmission +// Size: 0xef0 +class C_OP_SetVectorAttributeToVectorExpression : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "expression" + VectorExpressionType_t m_nExpression; // 0x1c0 +private: + [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 +public: + // MPropertyFriendlyName "input 1" + CPerParticleVecInput m_vInput1; // 0x1c8 + // MPropertyFriendlyName "input 2" + CPerParticleVecInput m_vInput2; // 0x820 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nOutputField; // 0xe78 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0xe7c + // MPropertyFriendlyName "normalize result" + bool m_bNormalizedOutput; // 0xe80 +}; + +// Alignment: 6 +// Size: 0xfe0 +class C_OP_SetFloatAttributeToVectorExpression : public CParticleFunctionOperator { public: // MPropertyFriendlyName "expression" @@ -8660,839 +8295,1348 @@ private: [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 public: // MPropertyFriendlyName "input 1" - CParticleCollectionVecInput m_vecInput1; // 0x1c8 + CPerParticleVecInput m_vInput1; // 0x1c8 // MPropertyFriendlyName "input 2" - CParticleCollectionVecInput m_vecInput2; // 0x800 + CPerParticleVecInput m_vInput2; // 0x820 // MPropertyFriendlyName "output" - CParticleRemapFloatInput m_flOutputRemap; // 0xe38 - // MPropertyFriendlyName "output control point" - int32_t m_nOutputCP; // 0xf88 - // MPropertyFriendlyName "output component" - // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutVectorField; // 0xf8c -}; - -// Alignment: 5 -// Size: 0xe40 -class C_OP_SetControlPointToVectorExpression : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "expression" - VectorExpressionType_t m_nExpression; // 0x1c0 - // MPropertyFriendlyName "output control point" - int32_t m_nOutputCP; // 0x1c4 - // MPropertyFriendlyName "input 1" - CParticleCollectionVecInput m_vInput1; // 0x1c8 - // MPropertyFriendlyName "input 2" - CParticleCollectionVecInput m_vInput2; // 0x800 - // MPropertyFriendlyName "normalize result" - bool m_bNormalizedOutput; // 0xe38 -}; - -// Alignment: 9 -// Size: 0x1f0 -class C_OP_RemapModelVolumetoCP : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "output BBox Type" - BBoxVolumeType_t m_nBBoxType; // 0x1c0 - // MPropertyFriendlyName "input control point" - int32_t m_nInControlPointNumber; // 0x1c4 - // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c8 - // MPropertyFriendlyName "output max control point" - // MPropertySuppressExpr "m_nBBoxType != BBOX_MINS_MAXS" - int32_t m_nOutControlPointMaxNumber; // 0x1cc - // MPropertyFriendlyName "output CP component" - // MPropertyAttributeChoiceName "vector_component" - // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" - int32_t m_nField; // 0x1d0 - // MPropertyFriendlyName "input volume minimum in cubic units" - // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" - float m_flInputMin; // 0x1d4 - // MPropertyFriendlyName "input volume maximum in cubic units" - // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" - float m_flInputMax; // 0x1d8 - // MPropertyFriendlyName "output minimum" - // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" - float m_flOutputMin; // 0x1dc - // MPropertyFriendlyName "output maximum" - // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" - float m_flOutputMax; // 0x1e0 -}; - -// Alignment: 5 -// Size: 0x1e0 -class C_OP_RemapBoundingVolumetoCP : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c0 - // MPropertyFriendlyName "input volume minimum in cubic units" - float m_flInputMin; // 0x1c4 - // MPropertyFriendlyName "input volume maximum in cubic units" - float m_flInputMax; // 0x1c8 - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1cc - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1d0 -}; - -// Alignment: 7 -// Size: 0x1e0 -class C_OP_RemapAverageScalarValuetoCP : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c0 + CParticleRemapFloatInput m_flOutputRemap; // 0xe78 // MPropertyFriendlyName "output field" - // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutVectorField; // 0x1c4 - // MPropertyFriendlyName "scalar field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nField; // 0x1c8 - // MPropertyFriendlyName "input volume minimum" - float m_flInputMin; // 0x1cc - // MPropertyFriendlyName "input volume maximum" - float m_flInputMax; // 0x1d0 - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1d4 - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1d8 + ParticleAttributeIndex_t m_nOutputField; // 0xfd0 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0xfd4 }; -// Alignment: 3 -// Size: 0x1e0 -class C_OP_RampCPLinearRandom : public CParticleFunctionPreEmission +// Alignment: 10 +// Size: 0x740 +class C_OP_MovementSkinnedPositionFromCPSnapshot : public CParticleFunctionOperator { public: - // MPropertyFriendlyName "output control point" - int32_t m_nOutControlPointNumber; // 0x1c0 - // MPropertyFriendlyName "ramp rate min" - Vector m_vecRateMin; // 0x1c4 - // MPropertyFriendlyName "ramp rate max" - Vector m_vecRateMax; // 0x1d0 -}; - -// Alignment: 5 -// Size: 0x1e0 -class C_OP_SetParentControlPointsToChildCP : public CParticleFunctionPreEmission -{ + // MPropertyFriendlyName "snapshot control point number" + int32_t m_nSnapshotControlPointNumber; // 0x1c0 + // MPropertyFriendlyName "control point number" + int32_t m_nControlPointNumber; // 0x1c4 + // MPropertyFriendlyName "random order" + bool m_bRandom; // 0x1c8 +private: + [[maybe_unused]] uint8_t __pad01c9[0x3]; // 0x1c9 public: - // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1c0 - // MPropertyFriendlyName "control point to set" - int32_t m_nChildControlPoint; // 0x1c4 - // MPropertyFriendlyName "# of children to set" - int32_t m_nNumControlPoints; // 0x1c8 - // MPropertyFriendlyName "first parent control point to set from" - int32_t m_nFirstSourcePoint; // 0x1cc - // MPropertyFriendlyName "set orientation" - bool m_bSetOrientation; // 0x1d0 + // MPropertyFriendlyName "random seed" + int32_t m_nRandomSeed; // 0x1cc + // MPropertyFriendlyName "set normal" + bool m_bSetNormal; // 0x1d0 + // MPropertyFriendlyName "set radius" + bool m_bSetRadius; // 0x1d1 +private: + [[maybe_unused]] uint8_t __pad01d2[0x6]; // 0x1d2 +public: + // MPropertyFriendlyName "particle increment amount" + CParticleCollectionFloatInput m_flIncrement; // 0x1d8 + // MPropertyFriendlyName "Full Loop Increment Amount" + CParticleCollectionFloatInput m_nFullLoopIncrement; // 0x330 + // MPropertyFriendlyName "Snapshot start point" + CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x488 + // MPropertyFriendlyName "Interpolation" + CPerParticleFloatInput m_flInterpolation; // 0x5e0 }; // Alignment: 6 -// Size: 0xa10 -class C_OP_SetVariable : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "Variable" - CParticleVariableRef m_variableReference; // 0x1c0 - // MPropertyFriendlyName "Value" - // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_TRANSFORM" - CParticleTransformInput m_transformInput; // 0x200 - // MPropertyFriendlyName "Position Offset" - // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_TRANSFORM" - Vector m_positionOffset; // 0x268 - // MPropertyFriendlyName "Rotation Offset" - // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_TRANSFORM" - QAngle m_rotationOffset; // 0x274 - // MPropertyFriendlyName "Value" - // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_VEC3" - CParticleCollectionVecInput m_vecInput; // 0x280 - // MPropertyFriendlyName "Value" - // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_FLOAT" - CParticleCollectionFloatInput m_floatInput; // 0x8b8 -}; - -// Alignment: 12 -// Size: 0x210 -class C_OP_SetControlPointPositions : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "set positions in world space" - bool m_bUseWorldLocation; // 0x1c0 - // MPropertyFriendlyName "inherit CP orientation" - bool m_bOrient; // 0x1c1 - // MPropertyFriendlyName "only set position once" - bool m_bSetOnce; // 0x1c2 -private: - [[maybe_unused]] uint8_t __pad01c3[0x1]; // 0x1c3 -public: - // MPropertyFriendlyName "first control point number" - int32_t m_nCP1; // 0x1c4 - // MPropertyFriendlyName "second control point number" - int32_t m_nCP2; // 0x1c8 - // MPropertyFriendlyName "third control point number" - int32_t m_nCP3; // 0x1cc - // MPropertyFriendlyName "fourth control point number" - int32_t m_nCP4; // 0x1d0 - // MPropertyFriendlyName "first control point location" - // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1d4 - // MPropertyFriendlyName "second control point location" - // MVectorIsCoordinate - Vector m_vecCP2Pos; // 0x1e0 - // MPropertyFriendlyName "third control point location" - // MVectorIsCoordinate - Vector m_vecCP3Pos; // 0x1ec - // MPropertyFriendlyName "fourth control point location" - // MVectorIsCoordinate - Vector m_vecCP4Pos; // 0x1f8 - // MPropertyFriendlyName "control point to offset positions from" - int32_t m_nHeadLocation; // 0x204 -}; - -// Alignment: 4 -// Size: 0x870 -class C_OP_SetSingleControlPointPosition : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "only set position once" - bool m_bSetOnce; // 0x1c0 -private: - [[maybe_unused]] uint8_t __pad01c1[0x3]; // 0x1c1 -public: - // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c4 - // MPropertyFriendlyName "control point location" - CParticleCollectionVecInput m_vecCP1Pos; // 0x1c8 - // MPropertyFriendlyName "transform to offset positions from" - // MParticleInputOptional - CParticleTransformInput m_transformInput; // 0x800 -}; - -// Alignment: 4 -// Size: 0x320 -class C_OP_SetControlPointPositionToRandomActiveCP : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c0 - // MPropertyFriendlyName "min active CP" - int32_t m_nHeadLocationMin; // 0x1c4 - // MPropertyFriendlyName "max active CP" - int32_t m_nHeadLocationMax; // 0x1c8 -private: - [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc -public: - // MPropertyFriendlyName "reset rate" - CParticleCollectionFloatInput m_flResetRate; // 0x1d0 -}; - -// Alignment: 8 -// Size: 0x490 -class C_OP_SetRandomControlPointPosition : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "set positions in world space" - bool m_bUseWorldLocation; // 0x1c0 - // MPropertyFriendlyName "inherit CP orientation" - bool m_bOrient; // 0x1c1 -private: - [[maybe_unused]] uint8_t __pad01c2[0x2]; // 0x1c2 -public: - // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c4 - // MPropertyFriendlyName "control point to offset positions from" - int32_t m_nHeadLocation; // 0x1c8 -private: - [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc -public: - // MPropertyFriendlyName "re-randomize rate (-1 for once only)" - CParticleCollectionFloatInput m_flReRandomRate; // 0x1d0 - // MPropertyFriendlyName "control point min" - Vector m_vecCPMinPos; // 0x320 - // MPropertyFriendlyName "control point max" - Vector m_vecCPMaxPos; // 0x32c - // MPropertyFriendlyName "Interpolation" - CParticleCollectionFloatInput m_flInterpolation; // 0x338 -}; - -// Alignment: 8 -// Size: 0x340 -class C_OP_SetControlPointOrientation : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "set orientation in world space" - bool m_bUseWorldLocation; // 0x1c0 -private: - [[maybe_unused]] uint8_t __pad01c1[0x1]; // 0x1c1 -public: - // MPropertyFriendlyName "randomize" - bool m_bRandomize; // 0x1c2 - // MPropertyFriendlyName "only set orientation once" - bool m_bSetOnce; // 0x1c3 - // MPropertyFriendlyName "control point number" - int32_t m_nCP; // 0x1c4 - // MPropertyFriendlyName "control point to offset orientation from" - int32_t m_nHeadLocation; // 0x1c8 - // MPropertyFriendlyName "pitch yaw roll" - QAngle m_vecRotation; // 0x1cc - // MPropertyFriendlyName "pitch yaw roll max" - QAngle m_vecRotationB; // 0x1d8 -private: - [[maybe_unused]] uint8_t __pad01e4[0x4]; // 0x1e4 -public: - // MPropertyFriendlyName "interpolation" - CParticleCollectionFloatInput m_flInterpolation; // 0x1e8 -}; - -// Alignment: 2 -// Size: 0x1d0 -class C_OP_SetControlPointFromObjectScale : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "input control point number" - int32_t m_nCPInput; // 0x1c0 - // MPropertyFriendlyName "output control point number" - int32_t m_nCPOutput; // 0x1c4 -}; - -// Alignment: 15 -// Size: 0x280 -class C_OP_DistanceBetweenCPsToCP : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "starting control point" - int32_t m_nStartCP; // 0x1c0 - // MPropertyFriendlyName "ending control point" - int32_t m_nEndCP; // 0x1c4 - // MPropertyFriendlyName "output control point" - int32_t m_nOutputCP; // 0x1c8 - // MPropertyFriendlyName "output control point field" - int32_t m_nOutputCPField; // 0x1cc - // MPropertyFriendlyName "only set distance once" - bool m_bSetOnce; // 0x1d0 -private: - [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 -public: - // MPropertyFriendlyName "distance minimum" - float m_flInputMin; // 0x1d4 - // MPropertyFriendlyName "distance maximum" - float m_flInputMax; // 0x1d8 - // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1dc - // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1e0 - // MPropertyFriendlyName "maximum trace length" - float m_flMaxTraceLength; // 0x1e4 - // MPropertyFriendlyName "LOS Failure Scale" - float m_flLOSScale; // 0x1e8 - // MPropertyFriendlyName "ensure line of sight" - bool m_bLOS; // 0x1ec - // MPropertyFriendlyName "LOS collision group" - char m_CollisionGroupName[128]; // 0x1ed -private: - [[maybe_unused]] uint8_t __pad026d[0x3]; // 0x26d -public: - // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x270 - // MPropertyFriendlyName "set parent" - ParticleParentSetMode_t m_nSetParent; // 0x274 -}; - -// Alignment: 3 -// Size: 0x1e0 -class C_OP_SetControlPointToPlayer : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c0 - // MPropertyFriendlyName "control point offset" - // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1c4 - // MPropertyFriendlyName "use eye orientation" - bool m_bOrientToEyes; // 0x1d0 -}; - -// Alignment: 4 -// Size: 0x1e0 -class C_OP_SetControlPointToHand : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c0 - // MPropertyFriendlyName "hand" - int32_t m_nHand; // 0x1c4 - // MPropertyFriendlyName "control point offset" - // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1c8 - // MPropertyFriendlyName "use hand orientation" - bool m_bOrientToHand; // 0x1d4 -}; - -// Alignment: 3 -// Size: 0x1e0 -class C_OP_SetControlPointToHMD : public CParticleFunctionPreEmission -{ -public: - // MPropertyFriendlyName "control point number" - int32_t m_nCP1; // 0x1c0 - // MPropertyFriendlyName "control point offset" - // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1c4 - // MPropertyFriendlyName "use hmd orientation" - bool m_bOrientToHMD; // 0x1d0 -}; - -// Alignment: 3 -// Size: 0x260 -class C_OP_SetControlPointPositionToTimeOfDayValue : public CParticleFunctionPreEmission +// Size: 0x480 +class C_OP_MovementMoveAlongSkinnedCPSnapshot : public CParticleFunctionOperator { public: // MPropertyFriendlyName "control point number" int32_t m_nControlPointNumber; // 0x1c0 - // MPropertyFriendlyName "time-of-day parameter" - char m_pszTimeOfDayParameter[128]; // 0x1c4 - // MPropertyFriendlyName "default value" - Vector m_vecDefaultValue; // 0x244 + // MPropertyFriendlyName "snapshot control point number" + int32_t m_nSnapshotControlPointNumber; // 0x1c4 + // MPropertyFriendlyName "set normal" + bool m_bSetNormal; // 0x1c8 + // MPropertyFriendlyName "set radius" + bool m_bSetRadius; // 0x1c9 +private: + [[maybe_unused]] uint8_t __pad01ca[0x6]; // 0x1ca +public: + // MPropertyFriendlyName "Interpolation" + CPerParticleFloatInput m_flInterpolation; // 0x1d0 + // MPropertyFriendlyName "Snapshot Index T Value" + CPerParticleFloatInput m_flTValue; // 0x328 +}; + +// Alignment: 2 +// Size: 0x340 +class C_OP_QuantizeFloat : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "value" + CPerParticleFloatInput m_InputValue; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nOutputField; // 0x318 +}; + +// Alignment: 4 +// Size: 0x4a0 +class C_OP_SetFloatCollection : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "value" + CParticleCollectionFloatInput m_InputValue; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nOutputField; // 0x318 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x31c + // MPropertyFriendlyName "interpolation" + CParticleCollectionFloatInput m_Lerp; // 0x320 +}; + +// Alignment: 4 +// Size: 0x4a0 +class C_OP_SetFloat : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "value" + CPerParticleFloatInput m_InputValue; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nOutputField; // 0x318 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x31c + // MPropertyFriendlyName "interpolation" + CPerParticleFloatInput m_Lerp; // 0x320 +}; + +// Alignment: 5 +// Size: 0x980 +class C_OP_SetVec : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "value" + CPerParticleVecInput m_InputValue; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nOutputField; // 0x818 + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x81c + // MPropertyFriendlyName "interpolation" + CPerParticleFloatInput m_Lerp; // 0x820 + // MPropertyFriendlyName "normalize result" + bool m_bNormalizedOutput; // 0x978 +}; + +// Alignment: 5 +// Size: 0xae0 +class C_OP_DragRelativeToPlane : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "dampening" + CParticleCollectionFloatInput m_flDragAtPlane; // 0x1c0 + // MPropertyFriendlyName "falloff" + CParticleCollectionFloatInput m_flFalloff; // 0x318 + // MPropertyFriendlyName "dampen on only one side of plane" + bool m_bDirectional; // 0x470 +private: + [[maybe_unused]] uint8_t __pad0471[0x7]; // 0x471 +public: + // MPropertyFriendlyName "plane normal" + // MVectorIsCoordinate + CParticleCollectionVecInput m_vecPlaneNormal; // 0x478 + // MPropertyFriendlyName "control point number" + int32_t m_nControlPointNumber; // 0xad0 }; // Alignment: 2 // Size: 0x1d0 +class C_OP_RemapDensityGradientToVectorAttribute : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Radius scale for particle influence" + float m_flRadiusScale; // 0x1c0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c4 +}; + +// Alignment: 6 +// Size: 0x1e0 +class C_OP_LockPoints : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "min column/particle index to affect" + int32_t m_nMinCol; // 0x1c0 + // MPropertyFriendlyName "max column/particle index to affect" + int32_t m_nMaxCol; // 0x1c4 + // MPropertyFriendlyName "min row/particle index to affect" + int32_t m_nMinRow; // 0x1c8 + // MPropertyFriendlyName "max row/particle index to affect" + int32_t m_nMaxRow; // 0x1cc + // MPropertyFriendlyName "control point to lock to" + int32_t m_nControlPoint; // 0x1d0 + // MPropertyFriendlyName "amount of current position to preserve" + float m_flBlendValue; // 0x1d4 +}; + +// Alignment: 5 +// Size: 0x1e0 +class C_OP_RemapDistanceToLineSegmentBase : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "control point 0" + int32_t m_nCP0; // 0x1c0 + // MPropertyFriendlyName "control point 1" + int32_t m_nCP1; // 0x1c4 + // MPropertyFriendlyName "min distance value" + float m_flMinInputValue; // 0x1c8 + // MPropertyFriendlyName "max distance value" + float m_flMaxInputValue; // 0x1cc + // MPropertyFriendlyName "use distance to an infinite line instead of a finite line segment" + bool m_bInfiniteLine; // 0x1d0 +}; + +// Alignment: 3 +// Size: 0x1f0 +class C_OP_RemapDistanceToLineSegmentToScalar : public C_OP_RemapDistanceToLineSegmentBase +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1e0 + // MPropertyFriendlyName "output value at min distance" + float m_flMinOutputValue; // 0x1e4 + // MPropertyFriendlyName "output value at max distance" + float m_flMaxOutputValue; // 0x1e8 +}; + +// Alignment: 3 +// Size: 0x200 +class C_OP_RemapDistanceToLineSegmentToVector : public C_OP_RemapDistanceToLineSegmentBase +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1e0 + // MPropertyFriendlyName "output value at min distance" + Vector m_vMinOutputValue; // 0x1e4 + // MPropertyFriendlyName "output value at max distance" + Vector m_vMaxOutputValue; // 0x1f0 +}; + +// Alignment: 11 +// Size: 0x200 +class C_OP_TeleportBeam : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Position Control Point" + int32_t m_nCPPosition; // 0x1c0 + // MPropertyFriendlyName "Velocity Control Point" + int32_t m_nCPVelocity; // 0x1c4 + // MPropertyFriendlyName "Misc Control Point" + int32_t m_nCPMisc; // 0x1c8 + // MPropertyFriendlyName "Color Control Point" + int32_t m_nCPColor; // 0x1cc + // MPropertyFriendlyName "Invalid Color Control Point" + int32_t m_nCPInvalidColor; // 0x1d0 + // MPropertyFriendlyName "Extra Arc Data Point" + int32_t m_nCPExtraArcData; // 0x1d4 + // MPropertyFriendlyName "Gravity" + Vector m_vGravity; // 0x1d8 + // MPropertyFriendlyName "Arc Duration Maximum" + float m_flArcMaxDuration; // 0x1e4 + // MPropertyFriendlyName "Segment Break" + float m_flSegmentBreak; // 0x1e8 + // MPropertyFriendlyName "Arc Speed" + float m_flArcSpeed; // 0x1ec + // MPropertyFriendlyName "Alpha" + float m_flAlpha; // 0x1f0 +}; + +// Alignment: 10 +// Size: 0x1f0 +class C_OP_CycleScalar : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "destination scalar field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nDestField; // 0x1c0 + // MPropertyFriendlyName "Value at start of cycle" + float m_flStartValue; // 0x1c4 + // MPropertyFriendlyName "Value at end of cycle" + float m_flEndValue; // 0x1c8 + // MPropertyFriendlyName "Cycle time" + float m_flCycleTime; // 0x1cc + // MPropertyFriendlyName "Do not repeat cycle" + bool m_bDoNotRepeatCycle; // 0x1d0 + // MPropertyFriendlyName "Synchronize particles" + bool m_bSynchronizeParticles; // 0x1d1 +private: + [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 +public: + // MPropertyFriendlyName "Scale Start/End Control Point" + int32_t m_nCPScale; // 0x1d4 + // MPropertyFriendlyName "start scale control point field" + // MPropertyAttributeChoiceName "vector_component" + int32_t m_nCPFieldMin; // 0x1d8 + // MPropertyFriendlyName "end scale control point field" + // MPropertyAttributeChoiceName "vector_component" + int32_t m_nCPFieldMax; // 0x1dc + // MPropertyFriendlyName "set value method" + ParticleSetMethod_t m_nSetMethod; // 0x1e0 +}; + +// Alignment: 11 +// Size: 0x220 +class C_OP_CalculateVectorAttribute : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "start value" + Vector m_vStartValue; // 0x1c0 + // MPropertyFriendlyName "input field 1" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldInput1; // 0x1cc + // MPropertyFriendlyName "input scale 1" + float m_flInputScale1; // 0x1d0 + // MPropertyFriendlyName "input field 2" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldInput2; // 0x1d4 + // MPropertyFriendlyName "input scale 2" + float m_flInputScale2; // 0x1d8 + // MPropertyFriendlyName "control point input 1" + ControlPointReference_t m_nControlPointInput1; // 0x1dc + // MPropertyFriendlyName "control point scale 1" + float m_flControlPointScale1; // 0x1f0 + // MPropertyFriendlyName "control point input 2" + ControlPointReference_t m_nControlPointInput2; // 0x1f4 + // MPropertyFriendlyName "control point scale 2" + float m_flControlPointScale2; // 0x208 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x20c + // MPropertyFriendlyName "final per component scale" + Vector m_vFinalOutputScale; // 0x210 +}; + +// Alignment: 3 +// Size: 0x5d0 +class C_OP_ColorAdjustHSL : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "hue adjust" + CPerParticleFloatInput m_flHueAdjust; // 0x1c0 + // MPropertyFriendlyName "saturation adjust" + CPerParticleFloatInput m_flSaturationAdjust; // 0x318 + // MPropertyFriendlyName "lightness adjust" + CPerParticleFloatInput m_flLightnessAdjust; // 0x470 +}; + +// Alignment: 2 +// Size: 0x1d0 +class C_OP_ConnectParentParticleToNearest : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "control point to set" + int32_t m_nFirstControlPoint; // 0x1c0 + // MPropertyFriendlyName "Second Control point to set" + int32_t m_nSecondControlPoint; // 0x1c4 +}; + +// Alignment: 6 +// Size: 0x1e0 +class C_OP_UpdateLightSource : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "color tint" + Color m_vColorTint; // 0x1c0 + // MPropertyFriendlyName "amount to multiply light brightness by" + float m_flBrightnessScale; // 0x1c4 + // MPropertyFriendlyName "amount to multiply particle system radius by to get light radius" + float m_flRadiusScale; // 0x1c8 + // MPropertyFriendlyName "minimum radius for created lights" + float m_flMinimumLightingRadius; // 0x1cc + // MPropertyFriendlyName "maximum radius for created lights" + float m_flMaximumLightingRadius; // 0x1d0 + // MPropertyFriendlyName "amount of damping of changes" + float m_flPositionDampingConstant; // 0x1d4 +}; + +// Alignment: 8 +// Size: 0x1f0 +class C_OP_RemapSpeedtoCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "input control point" + int32_t m_nInControlPointNumber; // 0x1d0 + // MPropertyFriendlyName "output control point" + int32_t m_nOutControlPointNumber; // 0x1d4 + // MPropertyFriendlyName "Output field 0-2 X/Y/Z" + // MPropertyAttributeChoiceName "vector_component" + int32_t m_nField; // 0x1d8 + // MPropertyFriendlyName "input minimum" + float m_flInputMin; // 0x1dc + // MPropertyFriendlyName "input maximum" + float m_flInputMax; // 0x1e0 + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1e4 + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1e8 + // MPropertyFriendlyName "use delta of velocity instead of constant speed" + bool m_bUseDeltaV; // 0x1ec +}; + +// Alignment: 10 +// Size: 0xe20 +class C_OP_RemapAverageHitboxSpeedtoCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "input control point" + int32_t m_nInControlPointNumber; // 0x1d0 + // MPropertyFriendlyName "output control point" + int32_t m_nOutControlPointNumber; // 0x1d4 + // MPropertyFriendlyName "Output component" + // MPropertyAttributeChoiceName "vector_component" + int32_t m_nField; // 0x1d8 +private: + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc +public: + // MPropertyFriendlyName "input minimum" + CParticleCollectionFloatInput m_flInputMin; // 0x1e0 + // MPropertyFriendlyName "input maximum" + CParticleCollectionFloatInput m_flInputMax; // 0x338 + // MPropertyFriendlyName "output minimum" + CParticleCollectionFloatInput m_flOutputMin; // 0x490 + // MPropertyFriendlyName "output maximum" + CParticleCollectionFloatInput m_flOutputMax; // 0x5e8 + // MPropertyFriendlyName "intersection height CP" + int32_t m_nHeightControlPointNumber; // 0x740 +private: + [[maybe_unused]] uint8_t __pad0744[0x4]; // 0x744 +public: + // MPropertyFriendlyName "comparison velocity" + CParticleCollectionVecInput m_vecComparisonVelocity; // 0x748 + // MPropertyFriendlyName "hitbox set" + char m_HitboxSetName[128]; // 0xda0 +}; + +// Alignment: 8 +// Size: 0x740 +class C_OP_RemapDotProductToCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "first input control point" + int32_t m_nInputCP1; // 0x1d0 + // MPropertyFriendlyName "second input control point" + int32_t m_nInputCP2; // 0x1d4 + // MPropertyFriendlyName "output control point" + int32_t m_nOutputCP; // 0x1d8 + // MPropertyFriendlyName "output component" + // MPropertyAttributeChoiceName "vector_component" + int32_t m_nOutVectorField; // 0x1dc + // MPropertyFriendlyName "input minimum (-1 to 1)" + CParticleCollectionFloatInput m_flInputMin; // 0x1e0 + // MPropertyFriendlyName "input maximum (-1 to 1)" + CParticleCollectionFloatInput m_flInputMax; // 0x338 + // MPropertyFriendlyName "output minimum" + CParticleCollectionFloatInput m_flOutputMin; // 0x490 + // MPropertyFriendlyName "output maximum" + CParticleCollectionFloatInput m_flOutputMax; // 0x5e8 +}; + +// Alignment: 6 +// Size: 0x5f0 +class C_OP_SetControlPointFieldToScalarExpression : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "expression" + ScalarExpressionType_t m_nExpression; // 0x1d0 +private: + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 +public: + // MPropertyFriendlyName "input 1" + CParticleCollectionFloatInput m_flInput1; // 0x1d8 + // MPropertyFriendlyName "input 2" + CParticleCollectionFloatInput m_flInput2; // 0x330 + // MPropertyFriendlyName "output" + CParticleRemapFloatInput m_flOutputRemap; // 0x488 + // MPropertyFriendlyName "output control point" + int32_t m_nOutputCP; // 0x5e0 + // MPropertyFriendlyName "output component" + // MPropertyAttributeChoiceName "vector_component" + int32_t m_nOutVectorField; // 0x5e4 +}; + +// Alignment: 6 +// Size: 0xff0 +class C_OP_SetControlPointFieldFromVectorExpression : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "expression" + VectorFloatExpressionType_t m_nExpression; // 0x1d0 +private: + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 +public: + // MPropertyFriendlyName "input 1" + CParticleCollectionVecInput m_vecInput1; // 0x1d8 + // MPropertyFriendlyName "input 2" + CParticleCollectionVecInput m_vecInput2; // 0x830 + // MPropertyFriendlyName "output" + CParticleRemapFloatInput m_flOutputRemap; // 0xe88 + // MPropertyFriendlyName "output control point" + int32_t m_nOutputCP; // 0xfe0 + // MPropertyFriendlyName "output component" + // MPropertyAttributeChoiceName "vector_component" + int32_t m_nOutVectorField; // 0xfe4 +}; + +// Alignment: 5 +// Size: 0xe90 +class C_OP_SetControlPointToVectorExpression : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "expression" + VectorExpressionType_t m_nExpression; // 0x1d0 + // MPropertyFriendlyName "output control point" + int32_t m_nOutputCP; // 0x1d4 + // MPropertyFriendlyName "input 1" + CParticleCollectionVecInput m_vInput1; // 0x1d8 + // MPropertyFriendlyName "input 2" + CParticleCollectionVecInput m_vInput2; // 0x830 + // MPropertyFriendlyName "normalize result" + bool m_bNormalizedOutput; // 0xe88 +}; + +// Alignment: 9 +// Size: 0x200 +class C_OP_RemapModelVolumetoCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "output BBox Type" + BBoxVolumeType_t m_nBBoxType; // 0x1d0 + // MPropertyFriendlyName "input control point" + int32_t m_nInControlPointNumber; // 0x1d4 + // MPropertyFriendlyName "output control point" + int32_t m_nOutControlPointNumber; // 0x1d8 + // MPropertyFriendlyName "output max control point" + // MPropertySuppressExpr "m_nBBoxType != BBOX_MINS_MAXS" + int32_t m_nOutControlPointMaxNumber; // 0x1dc + // MPropertyFriendlyName "output CP component" + // MPropertyAttributeChoiceName "vector_component" + // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" + int32_t m_nField; // 0x1e0 + // MPropertyFriendlyName "input volume minimum in cubic units" + // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" + float m_flInputMin; // 0x1e4 + // MPropertyFriendlyName "input volume maximum in cubic units" + // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" + float m_flInputMax; // 0x1e8 + // MPropertyFriendlyName "output minimum" + // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" + float m_flOutputMin; // 0x1ec + // MPropertyFriendlyName "output maximum" + // MPropertySuppressExpr "m_nBBoxType != BBOX_VOLUME" + float m_flOutputMax; // 0x1f0 +}; + +// Alignment: 5 +// Size: 0x1f0 +class C_OP_RemapBoundingVolumetoCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "output control point" + int32_t m_nOutControlPointNumber; // 0x1d0 + // MPropertyFriendlyName "input volume minimum in cubic units" + float m_flInputMin; // 0x1d4 + // MPropertyFriendlyName "input volume maximum in cubic units" + float m_flInputMax; // 0x1d8 + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1dc + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1e0 +}; + +// Alignment: 7 +// Size: 0x1f0 +class C_OP_RemapAverageScalarValuetoCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "output control point" + int32_t m_nOutControlPointNumber; // 0x1d0 + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "vector_component" + int32_t m_nOutVectorField; // 0x1d4 + // MPropertyFriendlyName "scalar field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nField; // 0x1d8 + // MPropertyFriendlyName "input volume minimum" + float m_flInputMin; // 0x1dc + // MPropertyFriendlyName "input volume maximum" + float m_flInputMax; // 0x1e0 + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1e4 + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1e8 +}; + +// Alignment: 3 +// Size: 0x1f0 +class C_OP_RampCPLinearRandom : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "output control point" + int32_t m_nOutControlPointNumber; // 0x1d0 + // MPropertyFriendlyName "ramp rate min" + Vector m_vecRateMin; // 0x1d4 + // MPropertyFriendlyName "ramp rate max" + Vector m_vecRateMax; // 0x1e0 +}; + +// Alignment: 5 +// Size: 0x1f0 +class C_OP_SetParentControlPointsToChildCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "group ID to affect" + int32_t m_nChildGroupID; // 0x1d0 + // MPropertyFriendlyName "control point to set" + int32_t m_nChildControlPoint; // 0x1d4 + // MPropertyFriendlyName "# of children to set" + int32_t m_nNumControlPoints; // 0x1d8 + // MPropertyFriendlyName "first parent control point to set from" + int32_t m_nFirstSourcePoint; // 0x1dc + // MPropertyFriendlyName "set orientation" + bool m_bSetOrientation; // 0x1e0 +}; + +// Alignment: 6 +// Size: 0xa40 +class C_OP_SetVariable : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "Variable" + CParticleVariableRef m_variableReference; // 0x1d0 + // MPropertyFriendlyName "Value" + // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_TRANSFORM" + CParticleTransformInput m_transformInput; // 0x210 + // MPropertyFriendlyName "Position Offset" + // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_TRANSFORM" + Vector m_positionOffset; // 0x278 + // MPropertyFriendlyName "Rotation Offset" + // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_TRANSFORM" + QAngle m_rotationOffset; // 0x284 + // MPropertyFriendlyName "Value" + // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_VEC3" + CParticleCollectionVecInput m_vecInput; // 0x290 + // MPropertyFriendlyName "Value" + // MPropertySuppressExpr "m_variableReference.m_variableType != PVAL_FLOAT" + CParticleCollectionFloatInput m_floatInput; // 0x8e8 +}; + +// Alignment: 12 +// Size: 0x220 +class C_OP_SetControlPointPositions : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "set positions in world space" + bool m_bUseWorldLocation; // 0x1d0 + // MPropertyFriendlyName "inherit CP orientation" + bool m_bOrient; // 0x1d1 + // MPropertyFriendlyName "only set position once" + bool m_bSetOnce; // 0x1d2 +private: + [[maybe_unused]] uint8_t __pad01d3[0x1]; // 0x1d3 +public: + // MPropertyFriendlyName "first control point number" + int32_t m_nCP1; // 0x1d4 + // MPropertyFriendlyName "second control point number" + int32_t m_nCP2; // 0x1d8 + // MPropertyFriendlyName "third control point number" + int32_t m_nCP3; // 0x1dc + // MPropertyFriendlyName "fourth control point number" + int32_t m_nCP4; // 0x1e0 + // MPropertyFriendlyName "first control point location" + // MVectorIsCoordinate + Vector m_vecCP1Pos; // 0x1e4 + // MPropertyFriendlyName "second control point location" + // MVectorIsCoordinate + Vector m_vecCP2Pos; // 0x1f0 + // MPropertyFriendlyName "third control point location" + // MVectorIsCoordinate + Vector m_vecCP3Pos; // 0x1fc + // MPropertyFriendlyName "fourth control point location" + // MVectorIsCoordinate + Vector m_vecCP4Pos; // 0x208 + // MPropertyFriendlyName "control point to offset positions from" + int32_t m_nHeadLocation; // 0x214 +}; + +// Alignment: 4 +// Size: 0x8a0 +class C_OP_SetSingleControlPointPosition : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "only set position once" + bool m_bSetOnce; // 0x1d0 +private: + [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 +public: + // MPropertyFriendlyName "control point number" + int32_t m_nCP1; // 0x1d4 + // MPropertyFriendlyName "control point location" + CParticleCollectionVecInput m_vecCP1Pos; // 0x1d8 + // MPropertyFriendlyName "transform to offset positions from" + // MParticleInputOptional + CParticleTransformInput m_transformInput; // 0x830 +}; + +// Alignment: 4 +// Size: 0x340 +class C_OP_SetControlPointPositionToRandomActiveCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "control point number" + int32_t m_nCP1; // 0x1d0 + // MPropertyFriendlyName "min active CP" + int32_t m_nHeadLocationMin; // 0x1d4 + // MPropertyFriendlyName "max active CP" + int32_t m_nHeadLocationMax; // 0x1d8 +private: + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc +public: + // MPropertyFriendlyName "reset rate" + CParticleCollectionFloatInput m_flResetRate; // 0x1e0 +}; + +// Alignment: 8 +// Size: 0x4b0 +class C_OP_SetRandomControlPointPosition : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "set positions in world space" + bool m_bUseWorldLocation; // 0x1d0 + // MPropertyFriendlyName "inherit CP orientation" + bool m_bOrient; // 0x1d1 +private: + [[maybe_unused]] uint8_t __pad01d2[0x2]; // 0x1d2 +public: + // MPropertyFriendlyName "control point number" + int32_t m_nCP1; // 0x1d4 + // MPropertyFriendlyName "control point to offset positions from" + int32_t m_nHeadLocation; // 0x1d8 +private: + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc +public: + // MPropertyFriendlyName "re-randomize rate (-1 for once only)" + CParticleCollectionFloatInput m_flReRandomRate; // 0x1e0 + // MPropertyFriendlyName "control point min" + Vector m_vecCPMinPos; // 0x338 + // MPropertyFriendlyName "control point max" + Vector m_vecCPMaxPos; // 0x344 + // MPropertyFriendlyName "Interpolation" + CParticleCollectionFloatInput m_flInterpolation; // 0x350 +}; + +// Alignment: 8 +// Size: 0x350 +class C_OP_SetControlPointOrientation : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "set orientation in world space" + bool m_bUseWorldLocation; // 0x1d0 +private: + [[maybe_unused]] uint8_t __pad01d1[0x1]; // 0x1d1 +public: + // MPropertyFriendlyName "randomize" + bool m_bRandomize; // 0x1d2 + // MPropertyFriendlyName "only set orientation once" + bool m_bSetOnce; // 0x1d3 + // MPropertyFriendlyName "control point number" + int32_t m_nCP; // 0x1d4 + // MPropertyFriendlyName "control point to offset orientation from" + int32_t m_nHeadLocation; // 0x1d8 + // MPropertyFriendlyName "pitch yaw roll" + QAngle m_vecRotation; // 0x1dc + // MPropertyFriendlyName "pitch yaw roll max" + QAngle m_vecRotationB; // 0x1e8 +private: + [[maybe_unused]] uint8_t __pad01f4[0x4]; // 0x1f4 +public: + // MPropertyFriendlyName "interpolation" + CParticleCollectionFloatInput m_flInterpolation; // 0x1f8 +}; + +// Alignment: 2 +// Size: 0x1e0 +class C_OP_SetControlPointFromObjectScale : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "input control point number" + int32_t m_nCPInput; // 0x1d0 + // MPropertyFriendlyName "output control point number" + int32_t m_nCPOutput; // 0x1d4 +}; + +// Alignment: 15 +// Size: 0x290 +class C_OP_DistanceBetweenCPsToCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "starting control point" + int32_t m_nStartCP; // 0x1d0 + // MPropertyFriendlyName "ending control point" + int32_t m_nEndCP; // 0x1d4 + // MPropertyFriendlyName "output control point" + int32_t m_nOutputCP; // 0x1d8 + // MPropertyFriendlyName "output control point field" + int32_t m_nOutputCPField; // 0x1dc + // MPropertyFriendlyName "only set distance once" + bool m_bSetOnce; // 0x1e0 +private: + [[maybe_unused]] uint8_t __pad01e1[0x3]; // 0x1e1 +public: + // MPropertyFriendlyName "distance minimum" + float m_flInputMin; // 0x1e4 + // MPropertyFriendlyName "distance maximum" + float m_flInputMax; // 0x1e8 + // MPropertyFriendlyName "output minimum" + float m_flOutputMin; // 0x1ec + // MPropertyFriendlyName "output maximum" + float m_flOutputMax; // 0x1f0 + // MPropertyFriendlyName "maximum trace length" + float m_flMaxTraceLength; // 0x1f4 + // MPropertyFriendlyName "LOS Failure Scale" + float m_flLOSScale; // 0x1f8 + // MPropertyFriendlyName "ensure line of sight" + bool m_bLOS; // 0x1fc + // MPropertyFriendlyName "LOS collision group" + char m_CollisionGroupName[128]; // 0x1fd +private: + [[maybe_unused]] uint8_t __pad027d[0x3]; // 0x27d +public: + // MPropertyFriendlyName "Trace Set" + ParticleTraceSet_t m_nTraceSet; // 0x280 + // MPropertyFriendlyName "set parent" + ParticleParentSetMode_t m_nSetParent; // 0x284 +}; + +// Alignment: 3 +// Size: 0x1f0 +class C_OP_SetControlPointToPlayer : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "control point number" + int32_t m_nCP1; // 0x1d0 + // MPropertyFriendlyName "control point offset" + // MVectorIsCoordinate + Vector m_vecCP1Pos; // 0x1d4 + // MPropertyFriendlyName "use eye orientation" + bool m_bOrientToEyes; // 0x1e0 +}; + +// Alignment: 4 +// Size: 0x1f0 +class C_OP_SetControlPointToHand : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "control point number" + int32_t m_nCP1; // 0x1d0 + // MPropertyFriendlyName "hand" + int32_t m_nHand; // 0x1d4 + // MPropertyFriendlyName "control point offset" + // MVectorIsCoordinate + Vector m_vecCP1Pos; // 0x1d8 + // MPropertyFriendlyName "use hand orientation" + bool m_bOrientToHand; // 0x1e4 +}; + +// Alignment: 3 +// Size: 0x1f0 +class C_OP_SetControlPointToHMD : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "control point number" + int32_t m_nCP1; // 0x1d0 + // MPropertyFriendlyName "control point offset" + // MVectorIsCoordinate + Vector m_vecCP1Pos; // 0x1d4 + // MPropertyFriendlyName "use hmd orientation" + bool m_bOrientToHMD; // 0x1e0 +}; + +// Alignment: 3 +// Size: 0x270 +class C_OP_SetControlPointPositionToTimeOfDayValue : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "control point number" + int32_t m_nControlPointNumber; // 0x1d0 + // MPropertyFriendlyName "time-of-day parameter" + char m_pszTimeOfDayParameter[128]; // 0x1d4 + // MPropertyFriendlyName "default value" + Vector m_vecDefaultValue; // 0x254 +}; + +// Alignment: 3 +// Size: 0x1f0 class C_OP_SetControlPointToCenter : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point number to set" - int32_t m_nCP1; // 0x1c0 + int32_t m_nCP1; // 0x1d0 // MPropertyFriendlyName "center offset" // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1c4 + Vector m_vecCP1Pos; // 0x1d4 + // MPropertyFriendlyName "set parent" + ParticleParentSetMode_t m_nSetParent; // 0x1e0 }; // Alignment: 6 -// Size: 0x810 +// Size: 0x840 class C_OP_SetControlPointToCPVelocity : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point input" - int32_t m_nCPInput; // 0x1c0 + int32_t m_nCPInput; // 0x1d0 // MPropertyFriendlyName "control point number to set velocity" - int32_t m_nCPOutputVel; // 0x1c4 + int32_t m_nCPOutputVel; // 0x1d4 // MPropertyFriendlyName "normalize output" - bool m_bNormalize; // 0x1c8 + bool m_bNormalize; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01c9[0x3]; // 0x1c9 + [[maybe_unused]] uint8_t __pad01d9[0x3]; // 0x1d9 public: // MPropertyFriendlyName "control point number to set magnitude" - int32_t m_nCPOutputMag; // 0x1cc + int32_t m_nCPOutputMag; // 0x1dc // MPropertyFriendlyName "control point field for magnitude" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPField; // 0x1d0 + int32_t m_nCPField; // 0x1e0 private: - [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 + [[maybe_unused]] uint8_t __pad01e4[0x4]; // 0x1e4 public: // MPropertyFriendlyName "comparison velocity" - CParticleCollectionVecInput m_vecComparisonVelocity; // 0x1d8 + CParticleCollectionVecInput m_vecComparisonVelocity; // 0x1e8 }; // Alignment: 2 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SetControlPointOrientationToCPVelocity : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point input for velocity" - int32_t m_nCPInput; // 0x1c0 + int32_t m_nCPInput; // 0x1d0 // MPropertyFriendlyName "control point output for orientation" - int32_t m_nCPOutput; // 0x1c4 + int32_t m_nCPOutput; // 0x1d4 }; // Alignment: 3 -// Size: 0x320 +// Size: 0x330 class C_OP_StopAfterCPDuration : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "duration at which to stop" - CParticleCollectionFloatInput m_flDuration; // 0x1c0 + CParticleCollectionFloatInput m_flDuration; // 0x1d0 // MPropertyFriendlyName "destroy all particles immediately" - bool m_bDestroyImmediately; // 0x310 + bool m_bDestroyImmediately; // 0x328 // MPropertyFriendlyName "play end cap effect" - bool m_bPlayEndCap; // 0x311 + bool m_bPlayEndCap; // 0x329 }; // Alignment: 4 -// Size: 0x950 +// Size: 0x990 class C_OP_SetControlPointRotation : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "rotation axis" // MVectorIsCoordinate - CParticleCollectionVecInput m_vecRotAxis; // 0x1c0 + CParticleCollectionVecInput m_vecRotAxis; // 0x1d0 // MPropertyFriendlyName "rotation rate" - CParticleCollectionFloatInput m_flRotRate; // 0x7f8 + CParticleCollectionFloatInput m_flRotRate; // 0x828 // MPropertyFriendlyName "control point" - int32_t m_nCP; // 0x948 + int32_t m_nCP; // 0x980 // MPropertyFriendlyName "local space control point" - int32_t m_nLocalCP; // 0x94c + int32_t m_nLocalCP; // 0x984 }; // Alignment: 10 -// Size: 0x1f0 +// Size: 0x200 class C_OP_RemapCPtoCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "input control point number" - int32_t m_nInputControlPoint; // 0x1c0 + int32_t m_nInputControlPoint; // 0x1d0 // MPropertyFriendlyName "output control point number" - int32_t m_nOutputControlPoint; // 0x1c4 + int32_t m_nOutputControlPoint; // 0x1d4 // MPropertyFriendlyName "input field" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nInputField; // 0x1c8 + int32_t m_nInputField; // 0x1d8 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutputField; // 0x1cc + int32_t m_nOutputField; // 0x1dc // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1d0 + float m_flInputMin; // 0x1e0 // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1d4 + float m_flInputMax; // 0x1e4 // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1d8 + float m_flOutputMin; // 0x1e8 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1dc + float m_flOutputMax; // 0x1ec // MPropertyFriendlyName "use the derivative" - bool m_bDerivative; // 0x1e0 + bool m_bDerivative; // 0x1f0 private: - [[maybe_unused]] uint8_t __pad01e1[0x3]; // 0x1e1 + [[maybe_unused]] uint8_t __pad01f1[0x3]; // 0x1f1 public: // MPropertyFriendlyName "interpolation" - float m_flInterpRate; // 0x1e4 + float m_flInterpRate; // 0x1f4 }; // Alignment: 4 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_HSVShiftToCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "Target color control point number" - int32_t m_nColorCP; // 0x1c0 + int32_t m_nColorCP; // 0x1d0 // MPropertyFriendlyName "Color Gem Enable control point number" - int32_t m_nColorGemEnableCP; // 0x1c4 + int32_t m_nColorGemEnableCP; // 0x1d4 // MPropertyFriendlyName "output control point number" - int32_t m_nOutputCP; // 0x1c8 + int32_t m_nOutputCP; // 0x1d8 // MPropertyFriendlyName "Default HSV Color" - Color m_DefaultHSVColor; // 0x1cc + Color m_DefaultHSVColor; // 0x1dc }; -// Alignment: 11 -// Size: 0x3c0 +// Alignment: 12 +// Size: 0x3e0 class C_OP_SetControlPointToImpactPoint : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point to set" - int32_t m_nCPOut; // 0x1c0 + int32_t m_nCPOut; // 0x1d0 // MPropertyFriendlyName "control point to trace from" - int32_t m_nCPIn; // 0x1c4 + int32_t m_nCPIn; // 0x1d4 // MPropertyFriendlyName "trace update rate" - float m_flUpdateRate; // 0x1c8 + float m_flUpdateRate; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc public: // MPropertyFriendlyName "max trace length" - CParticleCollectionFloatInput m_flTraceLength; // 0x1d0 + CParticleCollectionFloatInput m_flTraceLength; // 0x1e0 // MPropertyFriendlyName "offset start point amount" - float m_flStartOffset; // 0x320 + float m_flStartOffset; // 0x338 // MPropertyFriendlyName "offset end point amount" - float m_flOffset; // 0x324 + float m_flOffset; // 0x33c // MPropertyFriendlyName "trace direction override" // MVectorIsCoordinate - Vector m_vecTraceDir; // 0x328 + Vector m_vecTraceDir; // 0x340 // MPropertyFriendlyName "trace collision group" - char m_CollisionGroupName[128]; // 0x334 + char m_CollisionGroupName[128]; // 0x34c // MPropertyFriendlyName "Trace Set" - ParticleTraceSet_t m_nTraceSet; // 0x3b4 + ParticleTraceSet_t m_nTraceSet; // 0x3cc // MPropertyFriendlyName "set to trace endpoint if no collision" - bool m_bSetToEndpoint; // 0x3b8 + bool m_bSetToEndpoint; // 0x3d0 // MPropertyFriendlyName "trace to closest surface along all cardinal directions" - bool m_bTraceToClosestSurface; // 0x3b9 + bool m_bTraceToClosestSurface; // 0x3d1 + // MPropertyFriendlyName "include water" + bool m_bIncludeWater; // 0x3d2 }; // Alignment: 6 -// Size: 0x320 +// Size: 0x340 class C_OP_SetCPOrientationToPointAtCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "CP to point towards" - int32_t m_nInputCP; // 0x1c0 + int32_t m_nInputCP; // 0x1d0 // MPropertyFriendlyName "CP to set" - int32_t m_nOutputCP; // 0x1c4 + int32_t m_nOutputCP; // 0x1d4 // MPropertyFriendlyName "Interpolation" - CParticleCollectionFloatInput m_flInterpolation; // 0x1c8 + CParticleCollectionFloatInput m_flInterpolation; // 0x1d8 // MPropertyFriendlyName "2D Orient" - bool m_b2DOrientation; // 0x318 + bool m_b2DOrientation; // 0x330 // MPropertyFriendlyName "Avoid Vertical Axis Singularity" - bool m_bAvoidSingularity; // 0x319 + bool m_bAvoidSingularity; // 0x331 // MPropertyFriendlyName "Point Away" - bool m_bPointAway; // 0x31a + bool m_bPointAway; // 0x332 }; -// Alignment: 3 -// Size: 0x320 +// Alignment: 6 +// Size: 0x340 class C_OP_EnableChildrenFromParentParticleCount : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1c0 + int32_t m_nChildGroupID; // 0x1d0 // MPropertyFriendlyName "first child to enable" - int32_t m_nFirstChild; // 0x1c4 + int32_t m_nFirstChild; // 0x1d4 // MPropertyFriendlyName "max # of children to enable (-1 for max particle count)" - CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x1c8 + CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x1d8 + // MPropertyFriendlyName "remove children when particle count lowers" + bool m_bDisableChildren; // 0x330 + // MPropertyFriendlyName "play endcap when children are removed" + // MPropertySuppressExpr "!m_bDisableChildren" + bool m_bPlayEndcapOnStop; // 0x331 + // MPropertyFriendlyName "destroy particles immediately when child is removed" + // MPropertySuppressExpr "!m_bDisableChildren" + bool m_bDestroyImmediately; // 0x332 }; // Alignment: 5 -// Size: 0x5c0 +// Size: 0x5e0 class C_OP_SelectivelyEnableChildren : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "group ID to affect" - CParticleCollectionFloatInput m_nChildGroupID; // 0x1c0 + CParticleCollectionFloatInput m_nChildGroupID; // 0x1d0 // MPropertyFriendlyName "first child to enable" - CParticleCollectionFloatInput m_nFirstChild; // 0x310 + CParticleCollectionFloatInput m_nFirstChild; // 0x328 // MPropertyFriendlyName "# of children to enable" - CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x460 + CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x480 // MPropertyFriendlyName "play endcap when children are removed" - bool m_bPlayEndcapOnStop; // 0x5b0 + bool m_bPlayEndcapOnStop; // 0x5d8 // MPropertyFriendlyName "destroy particles immediately when child is removed" - bool m_bDestroyImmediately; // 0x5b1 + bool m_bDestroyImmediately; // 0x5d9 }; // Alignment: 2 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_PlayEndCapWhenFinished : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "play when emission ends" - bool m_bFireOnEmissionEnd; // 0x1c0 + bool m_bFireOnEmissionEnd; // 0x1d0 // MPropertyFriendlyName "wait for children to finish" - bool m_bIncludeChildren; // 0x1c1 + bool m_bIncludeChildren; // 0x1d1 }; // Alignment: 1 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_ForceControlPointStub : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point" - int32_t m_ControlPoint; // 0x1c0 + int32_t m_ControlPoint; // 0x1d0 }; // Alignment: 9 -// Size: 0x200 +// Size: 0x210 class C_OP_DriveCPFromGlobalSoundFloat : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "output control point" - int32_t m_nOutputControlPoint; // 0x1c0 + int32_t m_nOutputControlPoint; // 0x1d0 // MPropertyFriendlyName "output field" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutputField; // 0x1c4 + int32_t m_nOutputField; // 0x1d4 // MPropertyFriendlyName "input minimum" - float m_flInputMin; // 0x1c8 + float m_flInputMin; // 0x1d8 // MPropertyFriendlyName "input maximum" - float m_flInputMax; // 0x1cc + float m_flInputMax; // 0x1dc // MPropertyFriendlyName "output minimum" - float m_flOutputMin; // 0x1d0 + float m_flOutputMin; // 0x1e0 // MPropertyFriendlyName "output maximum" - float m_flOutputMax; // 0x1d4 + float m_flOutputMax; // 0x1e4 // MPropertyFriendlyName "sound stack name" - CUtlString m_StackName; // 0x1d8 + CUtlString m_StackName; // 0x1e8 // MPropertyFriendlyName "sound operator name" - CUtlString m_OperatorName; // 0x1e0 + CUtlString m_OperatorName; // 0x1f0 // MPropertyFriendlyName "sound field name" - CUtlString m_FieldName; // 0x1e8 + CUtlString m_FieldName; // 0x1f8 }; // Alignment: 3 -// Size: 0x1d0 +// Size: 0x1e0 class C_OP_SetControlPointFieldToWater : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "source CP" - int32_t m_nSourceCP; // 0x1c0 + int32_t m_nSourceCP; // 0x1d0 // MPropertyFriendlyName "dest CP" - int32_t m_nDestCP; // 0x1c4 + int32_t m_nDestCP; // 0x1d4 // MPropertyFriendlyName "dest control point component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPField; // 0x1c8 + int32_t m_nCPField; // 0x1d8 }; // Alignment: 7 -// Size: 0x330 +// Size: 0x350 class C_OP_SetControlPointToWaterSurface : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "source CP" - int32_t m_nSourceCP; // 0x1c0 + int32_t m_nSourceCP; // 0x1d0 // MPropertyFriendlyName "CP to set to surface" - int32_t m_nDestCP; // 0x1c4 + int32_t m_nDestCP; // 0x1d4 // MPropertyFriendlyName "CP to set to surface current flow velocity" // MPropertySuppressExpr "mod != hlx" - int32_t m_nFlowCP; // 0x1c8 + int32_t m_nFlowCP; // 0x1d8 // MPropertyFriendlyName "CP to set component of if water" - int32_t m_nActiveCP; // 0x1cc + int32_t m_nActiveCP; // 0x1dc // MPropertyFriendlyName "CP component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nActiveCPField; // 0x1d0 + int32_t m_nActiveCPField; // 0x1e0 private: - [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 + [[maybe_unused]] uint8_t __pad01e4[0x4]; // 0x1e4 public: // MPropertyFriendlyName "retest rate" - CParticleCollectionFloatInput m_flRetestRate; // 0x1d8 + CParticleCollectionFloatInput m_flRetestRate; // 0x1e8 // MPropertyFriendlyName "adaptive retest on moving surface" - bool m_bAdaptiveThreshold; // 0x328 + bool m_bAdaptiveThreshold; // 0x340 }; // Alignment: 5 -// Size: 0x5c0 +// Size: 0x5f0 class C_OP_RepeatedTriggerChildGroup : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1c0 + int32_t m_nChildGroupID; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "Within-Cluster Refire Time" - CParticleCollectionFloatInput m_flClusterRefireTime; // 0x1c8 + CParticleCollectionFloatInput m_flClusterRefireTime; // 0x1d8 // MPropertyFriendlyName "Within-Cluster Fire Count Before Cooldown" - CParticleCollectionFloatInput m_flClusterSize; // 0x318 + CParticleCollectionFloatInput m_flClusterSize; // 0x330 // MPropertyFriendlyName "Cluster Cooldown Time" - CParticleCollectionFloatInput m_flClusterCooldown; // 0x468 + CParticleCollectionFloatInput m_flClusterCooldown; // 0x488 // MPropertyFriendlyName "limit active children to parent particle count" - bool m_bLimitChildCount; // 0x5b8 + bool m_bLimitChildCount; // 0x5e0 }; // Alignment: 2 -// Size: 0x320 +// Size: 0x330 class C_OP_ChooseRandomChildrenInGroup : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "group ID to affect" - int32_t m_nChildGroupID; // 0x1c0 + int32_t m_nChildGroupID; // 0x1d0 private: - [[maybe_unused]] uint8_t __pad01c4[0x4]; // 0x1c4 + [[maybe_unused]] uint8_t __pad01d4[0x4]; // 0x1d4 public: // MPropertyFriendlyName "Number of Children to Use" - CParticleCollectionFloatInput m_flNumberOfChildren; // 0x1c8 + CParticleCollectionFloatInput m_flNumberOfChildren; // 0x1d8 }; // Alignment: 1 -// Size: 0x310 +// Size: 0x330 class C_OP_SetSimulationRate : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "simulation timescale" - CParticleCollectionFloatInput m_flSimulationScale; // 0x1c0 + CParticleCollectionFloatInput m_flSimulationScale; // 0x1d0 }; // Alignment: 5 -// Size: 0x1e0 +// Size: 0x1f0 class C_OP_ControlPointToRadialScreenSpace : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "source Control Point in World" - int32_t m_nCPIn; // 0x1c0 + int32_t m_nCPIn; // 0x1d0 // MPropertyFriendlyName "Source Control Point offset" // MVectorIsCoordinate - Vector m_vecCP1Pos; // 0x1c4 + Vector m_vecCP1Pos; // 0x1d4 // MPropertyFriendlyName "Set control point number" - int32_t m_nCPOut; // 0x1d0 + int32_t m_nCPOut; // 0x1e0 // MPropertyFriendlyName "Output field 0-2 X/Y/Z" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nCPOutField; // 0x1d4 + int32_t m_nCPOutField; // 0x1e4 // MPropertyFriendlyName "Ss Pos and Dot OUT CP" - int32_t m_nCPSSPosOut; // 0x1d8 + int32_t m_nCPSSPosOut; // 0x1e8 }; // Alignment: 15 -// Size: 0x1050 +// Size: 0x10b0 class C_OP_LightningSnapshotGenerator : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "snapshot control point number" - int32_t m_nCPSnapshot; // 0x1c0 + int32_t m_nCPSnapshot; // 0x1d0 // MPropertyFriendlyName "start control point number" - int32_t m_nCPStartPnt; // 0x1c4 + int32_t m_nCPStartPnt; // 0x1d4 // MPropertyFriendlyName "end control point number" - int32_t m_nCPEndPnt; // 0x1c8 + int32_t m_nCPEndPnt; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01cc[0x4]; // 0x1cc + [[maybe_unused]] uint8_t __pad01dc[0x4]; // 0x1dc public: // MPropertyFriendlyName "Recursion Depth" - CParticleCollectionFloatInput m_flSegments; // 0x1d0 + CParticleCollectionFloatInput m_flSegments; // 0x1e0 // MPropertyFriendlyName "Offset" - CParticleCollectionFloatInput m_flOffset; // 0x320 + CParticleCollectionFloatInput m_flOffset; // 0x338 // MPropertyFriendlyName "Offset Decay" - CParticleCollectionFloatInput m_flOffsetDecay; // 0x470 + CParticleCollectionFloatInput m_flOffsetDecay; // 0x490 // MPropertyFriendlyName "Recalculation Rate" - CParticleCollectionFloatInput m_flRecalcRate; // 0x5c0 + CParticleCollectionFloatInput m_flRecalcRate; // 0x5e8 // MPropertyFriendlyName "UV Scale" - CParticleCollectionFloatInput m_flUVScale; // 0x710 + CParticleCollectionFloatInput m_flUVScale; // 0x740 // MPropertyFriendlyName "UV Offset" - CParticleCollectionFloatInput m_flUVOffset; // 0x860 + CParticleCollectionFloatInput m_flUVOffset; // 0x898 // MPropertyFriendlyName "Branch Split Rate" - CParticleCollectionFloatInput m_flSplitRate; // 0x9b0 + CParticleCollectionFloatInput m_flSplitRate; // 0x9f0 // MPropertyFriendlyName "Branch Twist" - CParticleCollectionFloatInput m_flBranchTwist; // 0xb00 + CParticleCollectionFloatInput m_flBranchTwist; // 0xb48 // MPropertyFriendlyName "Branch Behavior" - ParticleLightnintBranchBehavior_t m_nBranchBehavior; // 0xc50 + ParticleLightnintBranchBehavior_t m_nBranchBehavior; // 0xca0 private: - [[maybe_unused]] uint8_t __pad0c54[0x4]; // 0xc54 + [[maybe_unused]] uint8_t __pad0ca4[0x4]; // 0xca4 public: // MPropertyFriendlyName "Start Radius" - CParticleCollectionFloatInput m_flRadiusStart; // 0xc58 + CParticleCollectionFloatInput m_flRadiusStart; // 0xca8 // MPropertyFriendlyName "End Radius" - CParticleCollectionFloatInput m_flRadiusEnd; // 0xda8 + CParticleCollectionFloatInput m_flRadiusEnd; // 0xe00 // MPropertyFriendlyName "Dedicated Particle Pool Count" - CParticleCollectionFloatInput m_flDedicatedPool; // 0xef8 + CParticleCollectionFloatInput m_flDedicatedPool; // 0xf58 }; // Alignment: 5 -// Size: 0x810 +// Size: 0x840 class C_OP_RemapExternalWindToCP : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "control point to sample wind" - int32_t m_nCP; // 0x1c0 + int32_t m_nCP; // 0x1d0 // MPropertyFriendlyName "output control point" - int32_t m_nCPOutput; // 0x1c4 + int32_t m_nCPOutput; // 0x1d4 // MPropertyFriendlyName "wind scale" - CParticleCollectionVecInput m_vecScale; // 0x1c8 + CParticleCollectionVecInput m_vecScale; // 0x1d8 // MPropertyFriendlyName "set magnitude instead of vector" - bool m_bSetMagnitude; // 0x800 + bool m_bSetMagnitude; // 0x830 private: - [[maybe_unused]] uint8_t __pad0801[0x3]; // 0x801 + [[maybe_unused]] uint8_t __pad0831[0x3]; // 0x831 public: // MPropertyFriendlyName "magnitude output component" // MPropertyAttributeChoiceName "vector_component" // MPropertySuppressExpr "!m_bSetMagnitude" - int32_t m_nOutVectorField; // 0x804 + int32_t m_nOutVectorField; // 0x834 +}; + +// Alignment: 5 +// Size: 0x340 +class C_OP_SetGravityToCP : public CParticleFunctionPreEmission +{ +public: + // MPropertyFriendlyName "control point to sample gravity" + int32_t m_nCPInput; // 0x1d0 + // MPropertyFriendlyName "output control point" + int32_t m_nCPOutput; // 0x1d4 + // MPropertyFriendlyName "gravity scale" + CParticleCollectionFloatInput m_flScale; // 0x1d8 + // MPropertyFriendlyName "set orientation" + bool m_bSetOrientation; // 0x330 + // MPropertyFriendlyName "set gravity orientation to Z Down (instead of X)" + // MPropertySuppressExpr "!m_bSetOrientation" + bool m_bSetZDown; // 0x331 }; // Alignment: 4 -// Size: 0x470 +// Size: 0x490 class C_OP_QuantizeCPComponent : public CParticleFunctionPreEmission { public: // MPropertyFriendlyName "input" - CParticleCollectionFloatInput m_flInputValue; // 0x1c0 + CParticleCollectionFloatInput m_flInputValue; // 0x1d0 // MPropertyFriendlyName "output control point" - int32_t m_nCPOutput; // 0x310 + int32_t m_nCPOutput; // 0x328 // MPropertyFriendlyName "output component" // MPropertyAttributeChoiceName "vector_component" - int32_t m_nOutVectorField; // 0x314 + int32_t m_nOutVectorField; // 0x32c // MPropertyFriendlyName "interval to snap to" - CParticleCollectionFloatInput m_flQuantizeValue; // 0x318 + CParticleCollectionFloatInput m_flQuantizeValue; // 0x330 }; // Alignment: 1 @@ -9504,216 +9648,216 @@ public: }; // Alignment: 7 -// Size: 0x2650 +// Size: 0x2740 class CBaseTrailRenderer : public CBaseRendererSource2 { public: // MPropertyStartGroup "Orientation" // MPropertyFriendlyName "orientation type" // MPropertySortPriority "750" - ParticleOrientationChoiceList_t m_nOrientationType; // 0x2390 + ParticleOrientationChoiceList_t m_nOrientationType; // 0x2470 // MPropertyFriendlyName "orientation control point" // MPropertySortPriority "750" // MPropertySuppressExpr "m_nOrientationType != PARTICLE_ORIENTATION_ALIGN_TO_PARTICLE_NORMAL && m_nOrientationType != PARTICLE_ORIENTATION_SCREENALIGN_TO_PARTICLE_NORMAL" - int32_t m_nOrientationControlPoint; // 0x2394 + int32_t m_nOrientationControlPoint; // 0x2474 // MPropertyStartGroup "Screenspace Fading and culling" // MPropertyFriendlyName "minimum visual screen-size" // MPropertySortPriority "900" - float m_flMinSize; // 0x2398 + float m_flMinSize; // 0x2478 // MPropertyFriendlyName "maximum visual screen-size" // MPropertySortPriority "900" - float m_flMaxSize; // 0x239c + float m_flMaxSize; // 0x247c // MPropertyFriendlyName "start fade screen-size" // MPropertySortPriority "900" - CParticleCollectionRendererFloatInput m_flStartFadeSize; // 0x23a0 + CParticleCollectionRendererFloatInput m_flStartFadeSize; // 0x2480 // MPropertyFriendlyName "end fade and cull screen-size" // MPropertySortPriority "900" - CParticleCollectionRendererFloatInput m_flEndFadeSize; // 0x24f0 + CParticleCollectionRendererFloatInput m_flEndFadeSize; // 0x25d8 // MPropertyStartGroup "Trail UV Controls" // MPropertyFriendlyName "Clamp Non-Sheet texture V coords" // MPropertySortPriority "800" - bool m_bClampV; // 0x2640 + bool m_bClampV; // 0x2730 }; // Alignment: 20 -// Size: 0x3840 +// Size: 0x3990 class C_OP_RenderTrails : public CBaseTrailRenderer { public: // MPropertyStartGroup "Screenspace Fading and culling" // MPropertyFriendlyName "enable fading and clamping" // MPropertySortPriority "1000" - bool m_bEnableFadingAndClamping; // 0x2650 + bool m_bEnableFadingAndClamping; // 0x2740 private: - [[maybe_unused]] uint8_t __pad2651[0x3]; // 0x2651 + [[maybe_unused]] uint8_t __pad2741[0x3]; // 0x2741 public: // MPropertyFriendlyName "start fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flStartFadeDot; // 0x2654 + float m_flStartFadeDot; // 0x2744 // MPropertyFriendlyName "end fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flEndFadeDot; // 0x2658 + float m_flEndFadeDot; // 0x2748 // MPropertyStartGroup "+Trail Length" // MPropertyFriendlyName "Anchor point source" // MPropertyAttributeChoiceName "particlefield_vector" // MPropertySortPriority "800" - ParticleAttributeIndex_t m_nPrevPntSource; // 0x265c + ParticleAttributeIndex_t m_nPrevPntSource; // 0x274c // MPropertyFriendlyName "max length" // MPropertySortPriority "800" - float m_flMaxLength; // 0x2660 + float m_flMaxLength; // 0x2750 // MPropertyFriendlyName "min length" // MPropertySortPriority "800" - float m_flMinLength; // 0x2664 + float m_flMinLength; // 0x2754 // MPropertyFriendlyName "ignore delta time" // MPropertySortPriority "800" - bool m_bIgnoreDT; // 0x2668 + bool m_bIgnoreDT; // 0x2758 private: - [[maybe_unused]] uint8_t __pad2669[0x3]; // 0x2669 + [[maybe_unused]] uint8_t __pad2759[0x3]; // 0x2759 public: // MPropertyFriendlyName "constrain radius to no more than this times the length" // MPropertySortPriority "800" - float m_flConstrainRadiusToLengthRatio; // 0x266c + float m_flConstrainRadiusToLengthRatio; // 0x275c // MPropertyFriendlyName "amount to scale trail length by" - float m_flLengthScale; // 0x2670 + float m_flLengthScale; // 0x2760 // MPropertyFriendlyName "how long before a trail grows to its full length" - float m_flLengthFadeInTime; // 0x2674 + float m_flLengthFadeInTime; // 0x2764 // MPropertyStartGroup "Trail Head & Tail" // MPropertyFriendlyName "head taper scale" // MPropertySortPriority "800" - CPerParticleFloatInput m_flRadiusHeadTaper; // 0x2678 + CPerParticleFloatInput m_flRadiusHeadTaper; // 0x2768 // MPropertyFriendlyName "head color scale" - CParticleCollectionVecInput m_vecHeadColorScale; // 0x27c8 + CParticleCollectionVecInput m_vecHeadColorScale; // 0x28c0 // MPropertyFriendlyName "head alpha scale" - CPerParticleFloatInput m_flHeadAlphaScale; // 0x2e00 + CPerParticleFloatInput m_flHeadAlphaScale; // 0x2f18 // MPropertyFriendlyName "tail taper scale" - CPerParticleFloatInput m_flRadiusTaper; // 0x2f50 + CPerParticleFloatInput m_flRadiusTaper; // 0x3070 // MPropertyFriendlyName "tail color scale" - CParticleCollectionVecInput m_vecTailColorScale; // 0x30a0 + CParticleCollectionVecInput m_vecTailColorScale; // 0x31c8 // MPropertyFriendlyName "tail alpha scale" - CPerParticleFloatInput m_flTailAlphaScale; // 0x36d8 + CPerParticleFloatInput m_flTailAlphaScale; // 0x3820 // MPropertyStartGroup "Trail UV Controls" // MPropertyFriendlyName "texture UV horizontal Scale field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "800" - ParticleAttributeIndex_t m_nHorizCropField; // 0x3828 + ParticleAttributeIndex_t m_nHorizCropField; // 0x3978 // MPropertyFriendlyName "texture UV vertical Scale field" // MPropertyAttributeChoiceName "particlefield_scalar" - ParticleAttributeIndex_t m_nVertCropField; // 0x382c + ParticleAttributeIndex_t m_nVertCropField; // 0x397c // MPropertyFriendlyName "Trail forward shift (fraction)" - float m_flForwardShift; // 0x3830 + float m_flForwardShift; // 0x3980 // MPropertyFriendlyName "Flip U or V texcoords if pitch or yaw go over PI" - bool m_bFlipUVBasedOnPitchYaw; // 0x3834 + bool m_bFlipUVBasedOnPitchYaw; // 0x3984 }; // Alignment: 30 -// Size: 0x27f0 +// Size: 0x28e0 class C_OP_RenderRopes : public CBaseRendererSource2 { public: // MPropertyStartGroup "Screenspace Fading and culling" // MPropertyFriendlyName "enable fading and clamping" // MPropertySortPriority "1000" - bool m_bEnableFadingAndClamping; // 0x2390 + bool m_bEnableFadingAndClamping; // 0x2470 private: - [[maybe_unused]] uint8_t __pad2391[0x3]; // 0x2391 + [[maybe_unused]] uint8_t __pad2471[0x3]; // 0x2471 public: // MPropertyFriendlyName "minimum visual screen-size" // MPropertySuppressExpr "!m_bEnableFadingAndClamping" - float m_flMinSize; // 0x2394 + float m_flMinSize; // 0x2474 // MPropertyFriendlyName "maximum visual screen-size" // MPropertySuppressExpr "!m_bEnableFadingAndClamping" - float m_flMaxSize; // 0x2398 + float m_flMaxSize; // 0x2478 // MPropertyFriendlyName "start fade screen-size" // MPropertySuppressExpr "!m_bEnableFadingAndClamping" - float m_flStartFadeSize; // 0x239c + float m_flStartFadeSize; // 0x247c // MPropertyFriendlyName "end fade and cull screen-size" // MPropertySuppressExpr "!m_bEnableFadingAndClamping" - float m_flEndFadeSize; // 0x23a0 + float m_flEndFadeSize; // 0x2480 // MPropertyFriendlyName "start fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flStartFadeDot; // 0x23a4 + float m_flStartFadeDot; // 0x2484 // MPropertyFriendlyName "end fade dot product of normal vs view" // MPropertySortPriority "1000" - float m_flEndFadeDot; // 0x23a8 + float m_flEndFadeDot; // 0x2488 // MPropertyStartGroup "Rope Tesselation" // MPropertyFriendlyName "amount to taper the width of the trail end by" - float m_flRadiusTaper; // 0x23ac + float m_flRadiusTaper; // 0x248c // MPropertyFriendlyName "minium number of quads per render segment" // MPropertySortPriority "850" - int32_t m_nMinTesselation; // 0x23b0 + int32_t m_nMinTesselation; // 0x2490 // MPropertyFriendlyName "maximum number of quads per render segment" - int32_t m_nMaxTesselation; // 0x23b4 + int32_t m_nMaxTesselation; // 0x2494 // MPropertyFriendlyName "tesselation resolution scale factor" - float m_flTessScale; // 0x23b8 + float m_flTessScale; // 0x2498 private: - [[maybe_unused]] uint8_t __pad23bc[0x4]; // 0x23bc + [[maybe_unused]] uint8_t __pad249c[0x4]; // 0x249c public: // MPropertyStartGroup "+Rope Global UV Controls" // MPropertyFriendlyName "global texture V World Size" // MPropertySortPriority "800" - CParticleCollectionRendererFloatInput m_flTextureVWorldSize; // 0x23c0 + CParticleCollectionRendererFloatInput m_flTextureVWorldSize; // 0x24a0 // MPropertyFriendlyName "global texture V Scroll Rate" - CParticleCollectionRendererFloatInput m_flTextureVScrollRate; // 0x2510 + CParticleCollectionRendererFloatInput m_flTextureVScrollRate; // 0x25f8 // MPropertyFriendlyName "global texture V Offset" - CParticleCollectionRendererFloatInput m_flTextureVOffset; // 0x2660 + CParticleCollectionRendererFloatInput m_flTextureVOffset; // 0x2750 // MPropertyFriendlyName "global texture V Params CP" - int32_t m_nTextureVParamsCP; // 0x27b0 + int32_t m_nTextureVParamsCP; // 0x28a8 // MPropertyFriendlyName "Clamp Non-Sheet texture V coords" - bool m_bClampV; // 0x27b4 + bool m_bClampV; // 0x28ac private: - [[maybe_unused]] uint8_t __pad27b5[0x3]; // 0x27b5 + [[maybe_unused]] uint8_t __pad28ad[0x3]; // 0x28ad public: // MPropertyStartGroup "Rope Global UV Controls/CP Scaling" // MPropertyFriendlyName "scale CP start" - int32_t m_nScaleCP1; // 0x27b8 + int32_t m_nScaleCP1; // 0x28b0 // MPropertyFriendlyName "scale CP end" - int32_t m_nScaleCP2; // 0x27bc + int32_t m_nScaleCP2; // 0x28b4 // MPropertyFriendlyName "scale V world size by CP distance" - float m_flScaleVSizeByControlPointDistance; // 0x27c0 + float m_flScaleVSizeByControlPointDistance; // 0x28b8 // MPropertyFriendlyName "scale V scroll rate by CP distance" - float m_flScaleVScrollByControlPointDistance; // 0x27c4 + float m_flScaleVScrollByControlPointDistance; // 0x28bc // MPropertyFriendlyName "scale V offset by CP distance" - float m_flScaleVOffsetByControlPointDistance; // 0x27c8 + float m_flScaleVOffsetByControlPointDistance; // 0x28c0 private: - [[maybe_unused]] uint8_t __pad27cc[0x1]; // 0x27cc + [[maybe_unused]] uint8_t __pad28c4[0x1]; // 0x28c4 public: // MPropertyStartGroup "Rope Global UV Controls" // MPropertyFriendlyName "Use scalar attribute for texture coordinate" - bool m_bUseScalarForTextureCoordinate; // 0x27cd + bool m_bUseScalarForTextureCoordinate; // 0x28c5 private: - [[maybe_unused]] uint8_t __pad27ce[0x2]; // 0x27ce + [[maybe_unused]] uint8_t __pad28c6[0x2]; // 0x28c6 public: // MPropertyFriendlyName "scalar to use for texture coordinate" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySuppressExpr "!m_bUseScalarForTextureCoordinate" - ParticleAttributeIndex_t m_nScalarFieldForTextureCoordinate; // 0x27d0 + ParticleAttributeIndex_t m_nScalarFieldForTextureCoordinate; // 0x28c8 // MPropertyFriendlyName "scale value to map attribute to texture coordinate" // MPropertySuppressExpr "!m_bUseScalarForTextureCoordinate" - float m_flScalarAttributeTextureCoordScale; // 0x27d4 + float m_flScalarAttributeTextureCoordScale; // 0x28cc // MPropertyStartGroup "Rope Order Controls" // MPropertyFriendlyName "reverse point order" // MPropertySortPriority "800" - bool m_bReverseOrder; // 0x27d8 + bool m_bReverseOrder; // 0x28d0 // MPropertyFriendlyName "Closed loop" - bool m_bClosedLoop; // 0x27d9 + bool m_bClosedLoop; // 0x28d1 private: - [[maybe_unused]] uint8_t __pad27da[0x2]; // 0x27da + [[maybe_unused]] uint8_t __pad28d2[0x2]; // 0x28d2 public: // MPropertyStartGroup "Orientation" // MPropertyFriendlyName "orientation_type" // MPropertySortPriority "750" - ParticleOrientationChoiceList_t m_nOrientationType; // 0x27dc + ParticleOrientationChoiceList_t m_nOrientationType; // 0x28d4 // MPropertyFriendlyName "attribute to use for normal" // MPropertyAttributeChoiceName "particlefield_vector" // MPropertySortPriority "750" // MPropertySuppressExpr "m_nOrientationType != PARTICLE_ORIENTATION_ALIGN_TO_PARTICLE_NORMAL && m_nOrientationType != PARTICLE_ORIENTATION_SCREENALIGN_TO_PARTICLE_NORMAL" - ParticleAttributeIndex_t m_nVectorFieldForOrientation; // 0x27e0 + ParticleAttributeIndex_t m_nVectorFieldForOrientation; // 0x28d8 // MPropertyStartGroup "Material" // MPropertyFriendlyName "draw as opaque" - bool m_bDrawAsOpaque; // 0x27e4 + bool m_bDrawAsOpaque; // 0x28dc // MPropertyStartGroup "Orientation" // MPropertyFriendlyName "generate normals for cylinder" - bool m_bGenerateNormals; // 0x27e5 + bool m_bGenerateNormals; // 0x28dd }; // Alignment: 8 @@ -9774,27 +9918,34 @@ public: float m_flEndFadeSize; // 0x228 }; -// Alignment: 5 -// Size: 0x600 +// Alignment: 6 +// Size: 0x650 class C_OP_RenderBlobs : public CParticleFunctionRenderer { public: // MPropertyFriendlyName "cube width" CParticleCollectionRendererFloatInput m_cubeWidth; // 0x200 // MPropertyFriendlyName "cutoff radius" - CParticleCollectionRendererFloatInput m_cutoffRadius; // 0x350 + CParticleCollectionRendererFloatInput m_cutoffRadius; // 0x358 // MPropertyFriendlyName "render radius" - CParticleCollectionRendererFloatInput m_renderRadius; // 0x4a0 + CParticleCollectionRendererFloatInput m_renderRadius; // 0x4b0 // MPropertyFriendlyName "scale CP (cube width/cutoff/render = x/y/z)" - int32_t m_nScaleCP; // 0x5f0 + int32_t m_nScaleCP; // 0x608 private: - [[maybe_unused]] uint8_t __pad05f4[0x4]; // 0x5f4 + [[maybe_unused]] uint8_t __pad060c[0x4]; // 0x60c public: - CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x5f8 + // MPropertyFriendlyName "material variables" + // MPropertyAutoExpandSelf + // MPropertySortPriority "600" + CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x610 +private: + [[maybe_unused]] uint8_t __pad0628[0x18]; // 0x628 +public: + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x640 }; // Alignment: 6 -// Size: 0x610 +// Size: 0x620 class C_OP_RenderGpuImplicit : public CParticleFunctionRenderer { public: @@ -9805,15 +9956,15 @@ private: [[maybe_unused]] uint8_t __pad0201[0x7]; // 0x201 public: CParticleCollectionRendererFloatInput m_fGridSize; // 0x208 - CParticleCollectionRendererFloatInput m_fRadiusScale; // 0x358 + CParticleCollectionRendererFloatInput m_fRadiusScale; // 0x360 // MPropertyAttributeRange ".1 .95" - CParticleCollectionRendererFloatInput m_fIsosurfaceThreshold; // 0x4a8 + CParticleCollectionRendererFloatInput m_fIsosurfaceThreshold; // 0x4b8 // MPropertyFriendlyName "scale CP (grid size/particle radius/threshold = x/y/z)" - int32_t m_nScaleCP; // 0x5f8 + int32_t m_nScaleCP; // 0x610 private: - [[maybe_unused]] uint8_t __pad05fc[0x4]; // 0x5fc + [[maybe_unused]] uint8_t __pad0614[0x4]; // 0x614 public: - CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x600 + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x618 }; // Alignment: 2 @@ -9827,8 +9978,8 @@ public: float m_flForwardDegrees; // 0x204 }; -// Alignment: 48 -// Size: 0x2400 +// Alignment: 49 +// Size: 0x25f0 class C_OP_RenderModels : public CParticleFunctionRenderer { public: @@ -9882,150 +10033,148 @@ public: CPerParticleVecInput m_vecLocalOffset; // 0x230 // MPropertyFriendlyName "model local rotation (pitch/yaw/roll)" // MPropertySortPriority "750" - CPerParticleVecInput m_vecLocalRotation; // 0x868 + CPerParticleVecInput m_vecLocalRotation; // 0x888 // MPropertyStartGroup "Model Scale" // MPropertyFriendlyName "ignore radius" // MPropertySortPriority "700" - bool m_bIgnoreRadius; // 0xea0 + bool m_bIgnoreRadius; // 0xee0 private: - [[maybe_unused]] uint8_t __pad0ea1[0x3]; // 0xea1 + [[maybe_unused]] uint8_t __pad0ee1[0x3]; // 0xee1 public: // MPropertyFriendlyName "model scale CP" // MPropertySortPriority "700" - int32_t m_nModelScaleCP; // 0xea4 + int32_t m_nModelScaleCP; // 0xee4 // MPropertyFriendlyName "model component scale" // MPropertySortPriority "700" - CPerParticleVecInput m_vecComponentScale; // 0xea8 + CPerParticleVecInput m_vecComponentScale; // 0xee8 // MPropertyFriendlyName "apply scales in local model space" // MPropertySortPriority "700" - bool m_bLocalScale; // 0x14e0 + bool m_bLocalScale; // 0x1540 // MPropertyStartGroup "Animation" // MPropertyFriendlyName "animated" // MPropertySortPriority "500" - bool m_bAnimated; // 0x14e1 + bool m_bAnimated; // 0x1541 private: - [[maybe_unused]] uint8_t __pad14e2[0x2]; // 0x14e2 + [[maybe_unused]] uint8_t __pad1542[0x2]; // 0x1542 public: // MPropertyFriendlyName "animation rate" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - float m_flAnimationRate; // 0x14e4 + float m_flAnimationRate; // 0x1544 // MPropertyFriendlyName "scale animation rate" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - bool m_bScaleAnimationRate; // 0x14e8 + bool m_bScaleAnimationRate; // 0x1548 // MPropertyFriendlyName "force looping animations" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - bool m_bForceLoopingAnimation; // 0x14e9 + bool m_bForceLoopingAnimation; // 0x1549 // MPropertyFriendlyName "reset animation frame on stop" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - bool m_bResetAnimOnStop; // 0x14ea + bool m_bResetAnimOnStop; // 0x154a // MPropertyFriendlyName "set animation frame manually" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - bool m_bManualAnimFrame; // 0x14eb + bool m_bManualAnimFrame; // 0x154b // MPropertyFriendlyName "animation rate scale field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "500" // MPropertySuppressExpr "!m_bAnimated" - ParticleAttributeIndex_t m_nAnimationScaleField; // 0x14ec + ParticleAttributeIndex_t m_nAnimationScaleField; // 0x154c // MPropertyStartGroup "Animation" // MPropertyFriendlyName "animation sequence field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "500" - ParticleAttributeIndex_t m_nAnimationField; // 0x14f0 + ParticleAttributeIndex_t m_nAnimationField; // 0x1550 // MPropertyFriendlyName "manual animation frame field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "500" // MPropertySuppressExpr "!(m_bAnimated && m_bManualAnimFrame)" - ParticleAttributeIndex_t m_nManualFrameField; // 0x14f4 + ParticleAttributeIndex_t m_nManualFrameField; // 0x1554 // MPropertyFriendlyName "activity override" // MPropertySuppressExpr "mod != dota" // MPropertySortPriority "500" - char m_ActivityName[256]; // 0x14f8 + char m_ActivityName[256]; // 0x1558 // MPropertyFriendlyName "sequence override" // MPropertySuppressExpr "mod == dota" // MPropertySortPriority "500" - char m_SequenceName[256]; // 0x15f8 + char m_SequenceName[256]; // 0x1658 // MPropertyFriendlyName "Enable Cloth Simulation" - bool m_bEnableClothSimulation; // 0x16f8 + bool m_bEnableClothSimulation; // 0x1758 private: - [[maybe_unused]] uint8_t __pad16f9[0x7]; // 0x16f9 + [[maybe_unused]] uint8_t __pad1759[0x7]; // 0x1759 public: // MPropertyStartGroup "Material" // MPropertyFriendlyName "material override" // MPropertySortPriority "600" - CStrongHandle< InfoForResourceTypeIMaterial2 > m_hOverrideMaterial; // 0x1700 + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hOverrideMaterial; // 0x1760 // MPropertyFriendlyName "override translucent materials" // MPropertySortPriority "600" - bool m_bOverrideTranslucentMaterials; // 0x1708 + bool m_bOverrideTranslucentMaterials; // 0x1768 private: - [[maybe_unused]] uint8_t __pad1709[0x3]; // 0x1709 + [[maybe_unused]] uint8_t __pad1769[0x7]; // 0x1769 public: // MPropertyFriendlyName "skin number" // MPropertySortPriority "600" - int32_t m_nSkin; // 0x170c - // MPropertyFriendlyName "skin override CP" - // MPropertySortPriority "600" - int32_t m_nSkinCP; // 0x1710 -private: - [[maybe_unused]] uint8_t __pad1714[0x4]; // 0x1714 -public: + CPerParticleFloatInput m_nSkin; // 0x1770 // MPropertyFriendlyName "material variables" // MPropertyAutoExpandSelf // MPropertySortPriority "600" - CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x1718 + CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x18c8 // MPropertyStartGroup "Model Overrides" // MPropertyFriendlyName "input model" - CParticleModelInput m_modelInput; // 0x1730 + CParticleModelInput m_modelInput; // 0x18e0 // MPropertyFriendlyName "model LOD" - int32_t m_nLOD; // 0x1790 + int32_t m_nLOD; // 0x1940 // MPropertyFriendlyName "model override economy loadout slot type" - char m_EconSlotName[256]; // 0x1794 + char m_EconSlotName[256]; // 0x1944 // MPropertyFriendlyName "model override original model only (ignore shapeshift/hex/etc)" - bool m_bOriginalModel; // 0x1894 + bool m_bOriginalModel; // 0x1a44 // MPropertyFriendlyName "suppress tinting of the model" - bool m_bSuppressTint; // 0x1895 + bool m_bSuppressTint; // 0x1a45 // MPropertyFriendlyName "use raw mesh group (ignore bodygroup field and use submodel field as raw meshgroup)" - bool m_bUseRawMeshGroup; // 0x1896 + bool m_bUseRawMeshGroup; // 0x1a46 // MPropertyFriendlyName "disable shadows" - bool m_bDisableShadows; // 0x1897 + bool m_bDisableShadows; // 0x1a47 + // MPropertyFriendlyName "accept decals" + bool m_bAcceptsDecals; // 0x1a48 // MPropertyFriendlyName "forcedrawinterlevedwithsiblings" - bool m_bForceDrawInterlevedWithSiblings; // 0x1898 + bool m_bForceDrawInterlevedWithSiblings; // 0x1a49 + // MPropertyFriendlyName "do not draw in particle pass" + bool m_bDoNotDrawInParticlePass; // 0x1a4a // MPropertyFriendlyName "render attribute" - char m_szRenderAttribute[260]; // 0x1899 + char m_szRenderAttribute[260]; // 0x1a4b private: - [[maybe_unused]] uint8_t __pad199d[0x3]; // 0x199d + [[maybe_unused]] uint8_t __pad1b4f[0x1]; // 0x1b4f public: // MPropertyStartGroup "+Renderer Modifiers" // MPropertyFriendlyName "Radius Scale" // MPropertySortPriority "700" - CParticleCollectionFloatInput m_flRadiusScale; // 0x19a0 + CParticleCollectionFloatInput m_flRadiusScale; // 0x1b50 // MPropertyFriendlyName "alpha scale" // MPropertySortPriority "700" - CParticleCollectionFloatInput m_flAlphaScale; // 0x1af0 + CParticleCollectionFloatInput m_flAlphaScale; // 0x1ca8 // MPropertyFriendlyName "rotation roll scale" // MPropertySortPriority "700" - CParticleCollectionFloatInput m_flRollScale; // 0x1c40 + CParticleCollectionFloatInput m_flRollScale; // 0x1e00 // MPropertyFriendlyName "per-particle alpha scale attribute" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySortPriority "700" - ParticleAttributeIndex_t m_nAlpha2Field; // 0x1d90 + ParticleAttributeIndex_t m_nAlpha2Field; // 0x1f58 private: - [[maybe_unused]] uint8_t __pad1d94[0x4]; // 0x1d94 + [[maybe_unused]] uint8_t __pad1f5c[0x4]; // 0x1f5c public: // MPropertyFriendlyName "color blend" // MPropertySortPriority "700" - CParticleCollectionVecInput m_vecColorScale; // 0x1d98 + CParticleCollectionVecInput m_vecColorScale; // 0x1f60 // MPropertyFriendlyName "color blend type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0x23d0 + ParticleColorBlendType_t m_nColorBlendType; // 0x25b8 }; // Alignment: 8 -// Size: 0xb20 +// Size: 0xb50 class C_OP_RenderMaterialProxy : public CParticleFunctionRenderer { public: @@ -10041,11 +10190,11 @@ public: // MPropertyFriendlyName "material override enable" CParticleCollectionFloatInput m_flMaterialOverrideEnabled; // 0x228 // MPropertyFriendlyName "model tint" - CParticleCollectionVecInput m_vecColorScale; // 0x378 + CParticleCollectionVecInput m_vecColorScale; // 0x380 // MPropertyFriendlyName "model alpha" - CPerParticleFloatInput m_flAlpha; // 0x9b0 + CPerParticleFloatInput m_flAlpha; // 0x9d8 // MPropertyFriendlyName "model tint blend type" - ParticleColorBlendType_t m_nColorBlendType; // 0xb00 + ParticleColorBlendType_t m_nColorBlendType; // 0xb30 }; // Alignment: 11 @@ -10087,7 +10236,7 @@ public: }; // Alignment: 16 -// Size: 0x880 +// Size: 0x8a0 class C_OP_RenderDeferredLight : public CParticleFunctionRenderer { public: @@ -10115,37 +10264,37 @@ public: CParticleCollectionVecInput m_vecColorScale; // 0x210 // MPropertyFriendlyName "color blend type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0x848 + ParticleColorBlendType_t m_nColorBlendType; // 0x868 // MPropertyStartGroup // MPropertyFriendlyName "spotlight distance" - float m_flLightDistance; // 0x84c + float m_flLightDistance; // 0x86c // MPropertyFriendlyName "light start falloff" - float m_flStartFalloff; // 0x850 + float m_flStartFalloff; // 0x870 // MPropertyFriendlyName "spotlight distance falloff" - float m_flDistanceFalloff; // 0x854 + float m_flDistanceFalloff; // 0x874 // MPropertyFriendlyName "spotlight FoV" - float m_flSpotFoV; // 0x858 + float m_flSpotFoV; // 0x878 // MPropertyFriendlyName "projected texture alpha test point scale field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySuppressExpr "!m_bUseTexture" - ParticleAttributeIndex_t m_nAlphaTestPointField; // 0x85c + ParticleAttributeIndex_t m_nAlphaTestPointField; // 0x87c // MPropertyFriendlyName "projected texture alpha test range scale field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySuppressExpr "!m_bUseTexture" - ParticleAttributeIndex_t m_nAlphaTestRangeField; // 0x860 + ParticleAttributeIndex_t m_nAlphaTestRangeField; // 0x880 // MPropertyFriendlyName "projected texture alpha test sharpness scale field" // MPropertyAttributeChoiceName "particlefield_scalar" // MPropertySuppressExpr "!m_bUseTexture" - ParticleAttributeIndex_t m_nAlphaTestSharpnessField; // 0x864 + ParticleAttributeIndex_t m_nAlphaTestSharpnessField; // 0x884 // MPropertyFriendlyName "texture" // MPropertySuppressExpr "!m_bUseTexture" - CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0x868 + CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0x888 // MPropertyFriendlyName "HSV Shift Control Point" - int32_t m_nHSVShiftControlPoint; // 0x870 + int32_t m_nHSVShiftControlPoint; // 0x890 }; // Alignment: 29 -// Size: 0x1320 +// Size: 0x1380 class C_OP_RenderStandardLight : public CParticleFunctionRenderer { public: @@ -10157,103 +10306,103 @@ public: // MPropertyFriendlyName "color blend" CParticleCollectionVecInput m_vecColorScale; // 0x208 // MPropertyFriendlyName "color blend type" - ParticleColorBlendType_t m_nColorBlendType; // 0x840 + ParticleColorBlendType_t m_nColorBlendType; // 0x860 private: - [[maybe_unused]] uint8_t __pad0844[0x4]; // 0x844 + [[maybe_unused]] uint8_t __pad0864[0x4]; // 0x864 public: // MPropertyFriendlyName "intensity" - CParticleCollectionFloatInput m_flIntensity; // 0x848 + CParticleCollectionFloatInput m_flIntensity; // 0x868 // MPropertyFriendlyName "cast shadows" // MPropertySuppressExpr "m_nLightType == PARTICLE_LIGHT_TYPE_FX" - bool m_bCastShadows; // 0x998 + bool m_bCastShadows; // 0x9c0 private: - [[maybe_unused]] uint8_t __pad0999[0x7]; // 0x999 + [[maybe_unused]] uint8_t __pad09c1[0x7]; // 0x9c1 public: // MPropertyFriendlyName "inner cone angle" // MPropertySuppressExpr "m_nLightType != PARTICLE_LIGHT_TYPE_SPOT" - CParticleCollectionFloatInput m_flTheta; // 0x9a0 + CParticleCollectionFloatInput m_flTheta; // 0x9c8 // MPropertyFriendlyName "outer cone angle" // MPropertySuppressExpr "m_nLightType != PARTICLE_LIGHT_TYPE_SPOT" - CParticleCollectionFloatInput m_flPhi; // 0xaf0 + CParticleCollectionFloatInput m_flPhi; // 0xb20 // MPropertyFriendlyName "light radius multiplier" - CParticleCollectionFloatInput m_flRadiusMultiplier; // 0xc40 + CParticleCollectionFloatInput m_flRadiusMultiplier; // 0xc78 // MPropertyFriendlyName "attenuation type" - StandardLightingAttenuationStyle_t m_nAttenuationStyle; // 0xd90 + StandardLightingAttenuationStyle_t m_nAttenuationStyle; // 0xdd0 private: - [[maybe_unused]] uint8_t __pad0d94[0x4]; // 0xd94 + [[maybe_unused]] uint8_t __pad0dd4[0x4]; // 0xdd4 public: // MPropertyFriendlyName "falloff linearity" // MPropertySuppressExpr "m_nAttenuationStyle == LIGHT_STYLE_NEW || ( m_nAttenuationStyle == LIGHT_STYLE_OLD && m_nLightType == PARTICLE_LIGHT_TYPE_FX )" - CParticleCollectionFloatInput m_flFalloffLinearity; // 0xd98 + CParticleCollectionFloatInput m_flFalloffLinearity; // 0xdd8 // MPropertyFriendlyName "falloff fifty percent" // MPropertySuppressExpr "m_nAttenuationStyle == LIGHT_STYLE_OLD" - CParticleCollectionFloatInput m_flFiftyPercentFalloff; // 0xee8 + CParticleCollectionFloatInput m_flFiftyPercentFalloff; // 0xf30 // MPropertyFriendlyName "falloff zero percent" // MPropertySuppressExpr "m_nAttenuationStyle == LIGHT_STYLE_OLD" - CParticleCollectionFloatInput m_flZeroPercentFalloff; // 0x1038 + CParticleCollectionFloatInput m_flZeroPercentFalloff; // 0x1088 // MPropertyFriendlyName "render diffuse" // MPropertySuppressExpr "m_nLightType == PARTICLE_LIGHT_TYPE_FX" - bool m_bRenderDiffuse; // 0x1188 + bool m_bRenderDiffuse; // 0x11e0 // MPropertyFriendlyName "render specular" // MPropertySuppressExpr "m_nLightType == PARTICLE_LIGHT_TYPE_FX" - bool m_bRenderSpecular; // 0x1189 + bool m_bRenderSpecular; // 0x11e1 private: - [[maybe_unused]] uint8_t __pad118a[0x6]; // 0x118a + [[maybe_unused]] uint8_t __pad11e2[0x6]; // 0x11e2 public: // MPropertyFriendlyName "light cookie string" - CUtlString m_lightCookie; // 0x1190 + CUtlString m_lightCookie; // 0x11e8 // MPropertyFriendlyName "light priority" - int32_t m_nPriority; // 0x1198 + int32_t m_nPriority; // 0x11f0 // MPropertyFriendlyName "fog lighting mode" // MPropertySuppressExpr "m_nLightType == PARTICLE_LIGHT_TYPE_FX" - ParticleLightFogLightingMode_t m_nFogLightingMode; // 0x119c + ParticleLightFogLightingMode_t m_nFogLightingMode; // 0x11f4 // MPropertyFriendlyName "fog contribution" // MPropertySuppressExpr "m_nLightType == PARTICLE_LIGHT_TYPE_FX" - CParticleCollectionRendererFloatInput m_flFogContribution; // 0x11a0 + CParticleCollectionRendererFloatInput m_flFogContribution; // 0x11f8 // MPropertyFriendlyName "capsule behavior" - ParticleLightBehaviorChoiceList_t m_nCapsuleLightBehavior; // 0x12f0 + ParticleLightBehaviorChoiceList_t m_nCapsuleLightBehavior; // 0x1350 // MPropertyStartGroup "Capsule Light Controls" // MPropertyFriendlyName "capsule length" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_TRAILS" - float m_flCapsuleLength; // 0x12f4 + float m_flCapsuleLength; // 0x1354 // MPropertyFriendlyName "reverse point order" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_TRAILS" - bool m_bReverseOrder; // 0x12f8 + bool m_bReverseOrder; // 0x1358 // MPropertyFriendlyName "Closed loop" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_TRAILS" - bool m_bClosedLoop; // 0x12f9 + bool m_bClosedLoop; // 0x1359 private: - [[maybe_unused]] uint8_t __pad12fa[0x2]; // 0x12fa + [[maybe_unused]] uint8_t __pad135a[0x2]; // 0x135a public: // MPropertyFriendlyName "Anchor point source" // MPropertyAttributeChoiceName "particlefield_vector" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - ParticleAttributeIndex_t m_nPrevPntSource; // 0x12fc + ParticleAttributeIndex_t m_nPrevPntSource; // 0x135c // MPropertyFriendlyName "max length" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - float m_flMaxLength; // 0x1300 + float m_flMaxLength; // 0x1360 // MPropertyFriendlyName "min length" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - float m_flMinLength; // 0x1304 + float m_flMinLength; // 0x1364 // MPropertyFriendlyName "ignore delta time" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - bool m_bIgnoreDT; // 0x1308 + bool m_bIgnoreDT; // 0x1368 private: - [[maybe_unused]] uint8_t __pad1309[0x3]; // 0x1309 + [[maybe_unused]] uint8_t __pad1369[0x3]; // 0x1369 public: // MPropertyFriendlyName "constrain radius to no more than this times the length" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - float m_flConstrainRadiusToLengthRatio; // 0x130c + float m_flConstrainRadiusToLengthRatio; // 0x136c // MPropertyFriendlyName "amount to scale trail length by" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - float m_flLengthScale; // 0x1310 + float m_flLengthScale; // 0x1370 // MPropertyFriendlyName "how long before a trail grows to its full length" // MPropertySuppressExpr "m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_FOLLOW_DIRECTION || m_nCapsuleLightBehavior == PARTICLE_LIGHT_BEHAVIOR_ROPE" - float m_flLengthFadeInTime; // 0x1314 + float m_flLengthFadeInTime; // 0x1374 }; // Alignment: 14 -// Size: 0x11a0 +// Size: 0x11f0 class C_OP_RenderOmni2Light : public CParticleFunctionRenderer { public: @@ -10266,38 +10415,38 @@ public: CParticleCollectionVecInput m_vColorBlend; // 0x208 // MPropertyFriendlyName "Color Blend Type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0x840 - ParticleLightUnitChoiceList_t m_nBrightnessUnit; // 0x844 + ParticleColorBlendType_t m_nColorBlendType; // 0x860 + ParticleLightUnitChoiceList_t m_nBrightnessUnit; // 0x864 // MPropertyFriendlyName "Lumens" // MPropertySuppressExpr "m_nBrightnessUnit != PARTICLE_LIGHT_UNIT_LUMENS" - CPerParticleFloatInput m_flBrightnessLumens; // 0x848 + CPerParticleFloatInput m_flBrightnessLumens; // 0x868 // MPropertyFriendlyName "Candelas" // MPropertySuppressExpr "m_nBrightnessUnit != PARTICLE_LIGHT_UNIT_CANDELAS" - CPerParticleFloatInput m_flBrightnessCandelas; // 0x998 + CPerParticleFloatInput m_flBrightnessCandelas; // 0x9c0 // MPropertyFriendlyName "Shadows" // MPropertySuppressExpr "mod == csgo" - bool m_bCastShadows; // 0xae8 + bool m_bCastShadows; // 0xb18 private: - [[maybe_unused]] uint8_t __pad0ae9[0x7]; // 0xae9 + [[maybe_unused]] uint8_t __pad0b19[0x7]; // 0xb19 public: // MPropertyFriendlyName "Light Radius" - CPerParticleFloatInput m_flLuminaireRadius; // 0xaf0 + CPerParticleFloatInput m_flLuminaireRadius; // 0xb20 // MPropertyFriendlyName "Skirt" - CPerParticleFloatInput m_flSkirt; // 0xc40 + CPerParticleFloatInput m_flSkirt; // 0xc78 // MPropertyFriendlyName "Range" - CPerParticleFloatInput m_flRange; // 0xd90 + CPerParticleFloatInput m_flRange; // 0xdd0 // MPropertyFriendlyName "Inner Cone Angle" - CPerParticleFloatInput m_flInnerConeAngle; // 0xee0 + CPerParticleFloatInput m_flInnerConeAngle; // 0xf28 // MPropertyFriendlyName "Outer Cone Angle" - CPerParticleFloatInput m_flOuterConeAngle; // 0x1030 + CPerParticleFloatInput m_flOuterConeAngle; // 0x1080 // MPropertyFriendlyName "Cookie" - CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightCookie; // 0x1180 + CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightCookie; // 0x11d8 // MPropertyFriendlyName "Cookie is Spherically Mapped" - bool m_bSphericalCookie; // 0x1188 + bool m_bSphericalCookie; // 0x11e0 }; // Alignment: 7 -// Size: 0xd90 +// Size: 0xdd0 class C_OP_RenderLightBeam : public CParticleFunctionRenderer { public: @@ -10305,24 +10454,24 @@ public: CParticleCollectionVecInput m_vColorBlend; // 0x200 // MPropertyFriendlyName "Color Blend Type" // MPropertySortPriority "700" - ParticleColorBlendType_t m_nColorBlendType; // 0x838 + ParticleColorBlendType_t m_nColorBlendType; // 0x858 private: - [[maybe_unused]] uint8_t __pad083c[0x4]; // 0x83c + [[maybe_unused]] uint8_t __pad085c[0x4]; // 0x85c public: // MPropertyFriendlyName "Lumens Per Meter" - CParticleCollectionFloatInput m_flBrightnessLumensPerMeter; // 0x840 + CParticleCollectionFloatInput m_flBrightnessLumensPerMeter; // 0x860 // MPropertyFriendlyName "Shadows" // MPropertySuppressExpr "mod == csgo" - bool m_bCastShadows; // 0x990 + bool m_bCastShadows; // 0x9b8 private: - [[maybe_unused]] uint8_t __pad0991[0x7]; // 0x991 + [[maybe_unused]] uint8_t __pad09b9[0x7]; // 0x9b9 public: // MPropertyFriendlyName "Skirt" - CParticleCollectionFloatInput m_flSkirt; // 0x998 + CParticleCollectionFloatInput m_flSkirt; // 0x9c0 // MPropertyFriendlyName "Range" - CParticleCollectionFloatInput m_flRange; // 0xae8 + CParticleCollectionFloatInput m_flRange; // 0xb18 // MPropertyFriendlyName "Thickness" - CParticleCollectionFloatInput m_flThickness; // 0xc38 + CParticleCollectionFloatInput m_flThickness; // 0xc70 }; // Alignment: 0 @@ -10388,7 +10537,7 @@ public: }; // Alignment: 3 -// Size: 0x360 +// Size: 0x370 class C_OP_RenderPostProcessing : public CParticleFunctionRenderer { public: @@ -10396,9 +10545,9 @@ public: CPerParticleFloatInput m_flPostProcessStrength; // 0x200 // MPropertyFriendlyName "Post Processing File" // MPropertyAttributeEditor "AssetBrowse( vpost, *showassetpreview )" - CStrongHandle< InfoForResourceTypeCPostProcessingResource > m_hPostTexture; // 0x350 + CStrongHandle< InfoForResourceTypeCPostProcessingResource > m_hPostTexture; // 0x358 // MPropertyFriendlyName "Post Processing Priority Group" - ParticlePostProcessPriorityGroup_t m_nPriority; // 0x358 + ParticlePostProcessPriorityGroup_t m_nPriority; // 0x360 }; // Alignment: 12 @@ -10549,7 +10698,7 @@ public: }; // Alignment: 4 -// Size: 0x360 +// Size: 0x370 class C_OP_RenderVRHapticEvent : public CParticleFunctionRenderer { public: @@ -10567,3 +10716,113 @@ public: CPerParticleFloatInput m_flAmplitude; // 0x210 }; +// Alignment: 8 +// Size: 0x9e0 +class C_OP_RemapSDFDistanceToScalarAttribute : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Output field" + // MPropertyAttributeChoiceName "particlefield_scalar" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 + // MPropertyFriendlyName "Input field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nVectorFieldInput; // 0x1c4 + // MPropertyFriendlyName "Minimum distance" + CParticleCollectionFloatInput m_flMinDistance; // 0x1c8 + // MPropertyFriendlyName "Maximum distance" + CParticleCollectionFloatInput m_flMaxDistance; // 0x320 + // MPropertyFriendlyName "Value for distmax" + CParticleCollectionFloatInput m_flValueAboveMax; // 0x880 +}; + +// Alignment: 8 +// Size: 0x4b0 +class C_OP_RemapSDFDistanceToVectorAttribute : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nVectorFieldOutput; // 0x1c0 + // MPropertyFriendlyName "Input field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nVectorFieldInput; // 0x1c4 + // MPropertyFriendlyName "Minimum distance" + CParticleCollectionFloatInput m_flMinDistance; // 0x1c8 + // MPropertyFriendlyName "Maximum distance" + CParticleCollectionFloatInput m_flMaxDistance; // 0x320 + // MPropertyFriendlyName "Value for distmax" + Vector m_vValueAboveMax; // 0x49c +}; + +// Alignment: 1 +// Size: 0x1e0 +class C_OP_SDFForce : public CParticleFunctionForce +{ +public: + // MPropertyFriendlyName "force scale" + float m_flForceScale; // 0x1d0 +}; + +// Alignment: 1 +// Size: 0x1d0 +class C_OP_RemapSDFGradientToVectorAttribute : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "output field" + // MPropertyAttributeChoiceName "particlefield_vector" + ParticleAttributeIndex_t m_nFieldOutput; // 0x1c0 +}; + +// Alignment: 3 +// Size: 0x1f0 +class C_OP_SDFLighting : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "Lighting dir" + Vector m_vLightingDir; // 0x1c0 + // MPropertyFriendlyName "shadow color" + Vector m_vTint_0; // 0x1cc + // MPropertyFriendlyName "lit color" + Vector m_vTint_1; // 0x1d8 +}; + +// Alignment: 3 +// Size: 0x480 +class C_OP_SDFConstraint : public CParticleFunctionConstraint +{ +public: + // MPropertyFriendlyName "min dist to sdf" + CParticleCollectionFloatInput m_flMinDist; // 0x1c0 + // MPropertyFriendlyName "max dist to sdf" + CParticleCollectionFloatInput m_flMaxDist; // 0x318 + // MPropertyFriendlyName "Max # of iterations" + int32_t m_nMaxIterations; // 0x470 +}; + +// Alignment: 3 +// Size: 0x980 +class C_OP_ParticlePhysics : public CParticleFunctionOperator +{ +public: + // MPropertyFriendlyName "gravity" + // MVectorIsCoordinate + CParticleCollectionVecInput m_Gravity; // 0x1c0 + // MPropertyFriendlyName "drag" + // MPropertyAttributeRange "-1 1" + CParticleCollectionFloatInput m_fDrag; // 0x818 + // MPropertyFriendlyName "max constraint passes" + int32_t m_nMaxConstraintPasses; // 0x970 +}; + diff --git a/sdk/pulse_system.hpp b/sdk/pulse_system.hpp index f2eb436d..c5950749 100644 --- a/sdk/pulse_system.hpp +++ b/sdk/pulse_system.hpp @@ -4,13 +4,13 @@ // ///////////////////////////////////////////////////////////// // Binary: pulse_system.dll -// Classes count: 66 +// Classes count: 71 // Enums count: 3 // Created using source2gen - github.com/neverlosecc/source2gen // ///////////////////////////////////////////////////////////// // Alignment: 2 -// Size: 0x24 +// Size: 0x41 enum class PulseInstructionCode_t : uint16_t { INVALID = 0x0, @@ -26,29 +26,58 @@ enum class PulseInstructionCode_t : uint16_t PULSE_CALL_ASYNC_FIRE = 0xa, CELL_INVOKE = 0xb, LIBRARY_INVOKE = 0xc, - SET_VAR_REG_BOOL = 0xd, - SET_VAR_REG_INT = 0xe, - SET_VAR_REG_FLOAT = 0xf, - SET_VAR_REG_STR = 0x10, - SET_VAR_REG_EHANDLE = 0x11, - SET_VAR_REG_SNDEVT_GUID = 0x12, - SET_VAR_REG_VEC3 = 0x13, - GET_VAR_REG_BOOL = 0x14, - GET_VAR_REG_INT = 0x15, - GET_VAR_REG_FLOAT = 0x16, - GET_VAR_REG_STR = 0x17, - GET_VAR_REG_EHANDLE = 0x18, - GET_VAR_REG_SNDEVT_GUID = 0x19, - GET_VAR_REG_VEC3 = 0x1a, - SET_REGISTER_LIT_BOOL = 0x1b, - SET_REGISTER_LIT_INT = 0x1c, - SET_REGISTER_LIT_FLOAT = 0x1d, - SET_REGISTER_LIT_STR = 0x1e, - SET_REGISTER_LIT_INVAL_EHANDLE = 0x1f, - SET_REGISTER_LIT_INVAL_SNDEVT_GUID = 0x20, - SET_REGISTER_LIT_VEC3 = 0x21, - SET_REGISTER_DOMAIN_VALUE = 0x22, - COUNT = 0x23, + TARGET_INVOKE = 0xd, + SET_VAR = 0xe, + GET_VAR = 0xf, + SET_REGISTER_LIT_BOOL = 0x10, + SET_REGISTER_LIT_INT = 0x11, + SET_REGISTER_LIT_FLOAT = 0x12, + SET_REGISTER_LIT_STR = 0x13, + SET_REGISTER_LIT_INVAL_EHANDLE = 0x14, + SET_REGISTER_LIT_INVAL_SNDEVT_GUID = 0x15, + SET_REGISTER_LIT_VEC3 = 0x16, + SET_REGISTER_DOMAIN_VALUE = 0x17, + COPY = 0x18, + NOT = 0x19, + NEGATE = 0x1a, + ADD = 0x1b, + SUB = 0x1c, + MUL = 0x1d, + DIV = 0x1e, + MOD = 0x1f, + LT = 0x20, + LTE = 0x21, + EQ = 0x22, + NE = 0x23, + AND = 0x24, + OR = 0x25, + CONVERT_VALUE = 0x26, + LAST_SERIALIZED_CODE = 0x27, + NEGATE_INT = 0x28, + NEGATE_FLOAT = 0x29, + ADD_INT = 0x2a, + ADD_FLOAT = 0x2b, + ADD_STRING = 0x2c, + SUB_INT = 0x2d, + SUB_FLOAT = 0x2e, + MUL_INT = 0x2f, + MUL_FLOAT = 0x30, + DIV_INT = 0x31, + DIV_FLOAT = 0x32, + MOD_INT = 0x33, + MOD_FLOAT = 0x34, + LT_INT = 0x35, + LT_FLOAT = 0x36, + LTE_INT = 0x37, + LTE_FLOAT = 0x38, + EQ_BOOL = 0x39, + EQ_INT = 0x3a, + EQ_FLOAT = 0x3b, + EQ_STRING = 0x3c, + NE_BOOL = 0x3d, + NE_INT = 0x3e, + NE_FLOAT = 0x3f, + NE_STRING = 0x40, }; // Alignment: 4 @@ -60,7 +89,7 @@ enum class PulseMethodCallMode_t : uint32_t }; // Alignment: 4 -// Size: 0xd +// Size: 0xe enum class PulseValueType_t : uint32_t { PVAL_INVALID = 0xffffffffffffffff, @@ -73,9 +102,10 @@ enum class PulseValueType_t : uint32_t PVAL_EHANDLE = 0x6, PVAL_RESOURCE = 0x7, PVAL_SNDEVT_GUID = 0x8, - PVAL_CURSOR_FLOW = 0x9, - PVAL_ANY = 0xa, - PVAL_COUNT = 0xb, + PVAL_SCHEMA_PTR = 0x9, + PVAL_CURSOR_FLOW = 0xa, + PVAL_ANY = 0xb, + PVAL_COUNT = 0xc, }; struct PulseRuntimeRegisterIndex_t; @@ -89,13 +119,27 @@ struct PulseRuntimeCallInfoIndex_t; struct PulseRuntimeOutputIndex_t; struct CPulse_ResumePoint; struct CPulse_OutflowConnection; +struct PulseTestEHandle_t; +struct CPulseGraphInstance_TestDomain; // Alignment: 0 // Size: 0x1 class CPulseTestFuncs_LibraryA { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available +}; + +// Alignment: 0 +// Size: 0x188 +class CPulseExecCursor +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x188]; // 0x0 +public: + // No members available }; // Alignment: 1 @@ -104,6 +148,9 @@ struct PulseRuntimeRegisterIndex_t { public: int16_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseRuntimeRegisterIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 3 @@ -131,13 +178,14 @@ public: bool m_bIsPublic; // 0x32 }; -// Alignment: 2 -// Size: 0x10 +// Alignment: 3 +// Size: 0x20 class CPulse_PublicOutput { public: CUtlSymbolLarge m_Name; // 0x0 CUtlString m_Description; // 0x8 + CPulseValueFullType m_ParamType; // 0x10 }; // Alignment: 4 @@ -157,6 +205,9 @@ struct PulseRuntimeChunkIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseRuntimeChunkIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 1 @@ -165,12 +216,17 @@ struct PulseDocNodeID_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseDocNodeID_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 9 // Size: 0xf8 class CPulseGraphDef { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlSymbolLarge m_DomainIdentifier; // 0x8 CUtlSymbolLarge m_ParentMapName; // 0x10 @@ -187,8 +243,30 @@ public: // Size: 0xd0 class CBasePulseGraphInstance { +private: + [[maybe_unused]] uint8_t __pad0000[0xd0]; // 0x0 public: - uint8_t __pad0000[0xd0]; // Autoaligned + // No members available +}; + +// Alignment: 0 +// Size: 0x1 +class CPulseMathlib +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x1 +class CPulseTestScriptLib +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 +public: + // No members available }; // Alignment: 1 @@ -197,6 +275,9 @@ struct PulseRuntimeCellIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseRuntimeCellIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 1 @@ -205,6 +286,9 @@ struct PulseRuntimeCallInfoIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseRuntimeCallInfoIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 1 @@ -213,6 +297,9 @@ struct PulseRuntimeVarIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseRuntimeVarIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 1 @@ -221,6 +308,9 @@ struct PulseRuntimeOutputIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseRuntimeOutputIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 1 @@ -229,6 +319,9 @@ struct PulseRuntimeStateOffset_t { public: uint16_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseRuntimeStateOffset_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 5 @@ -258,6 +351,9 @@ struct PulseRuntimeInvokeIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseRuntimeInvokeIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 6 @@ -282,18 +378,25 @@ struct PulseRuntimeEntrypointIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseRuntimeEntrypointIndex_t")->m_static_fields[0]->m_instance);}; }; -// Alignment: 5 -// Size: 0x38 +// Alignment: 6 +// Size: 0x48 class CPulse_InvokeBinding { public: PulseRegisterMap_t m_RegisterMap; // 0x0 CUtlSymbolLarge m_FuncName; // 0x20 PulseRuntimeCellIndex_t m_nCellIndex; // 0x28 - PulseRuntimeChunkIndex_t m_nSrcChunk; // 0x2c - int32_t m_nSrcInstruction; // 0x30 +private: + [[maybe_unused]] uint8_t __pad002c[0x4]; // 0x2c +public: + CPulseValueFullType m_InstanceType; // 0x30 + PulseRuntimeChunkIndex_t m_nSrcChunk; // 0x40 + int32_t m_nSrcInstruction; // 0x44 }; // Alignment: 16 @@ -350,6 +453,8 @@ public: // Size: 0x48 class CPulseCell_Base { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MFgdFromSchemaCompletelySkipField PulseDocNodeID_t m_nEditorNodeID; // 0x8 @@ -443,14 +548,6 @@ public: // No members available }; -// Alignment: 0 -// Size: 0x68 -class CPulseCell_Value_Expression : public CPulseCell_BaseValue -{ -public: - // No members available -}; - // Alignment: 1 // Size: 0x50 class CPulseCell_Step_PublicOutput : public CPulseCell_BaseFlow @@ -555,6 +652,17 @@ public: CPulse_OutflowConnection m_No; // 0x58 }; +// Alignment: 2 +// Size: 0x68 +class CPulseCell_Outflow_TestExplicitYesNo : public CPulseCell_BaseFlow +{ +public: + // MPropertyFriendlyName "Yes" + CPulse_OutflowConnection m_Yes; // 0x48 + // MPropertyFriendlyName "No" + CPulse_OutflowConnection m_No; // 0x58 +}; + // Alignment: 0 // Size: 0x48 class CPulseCell_Value_TestValue50 : public CPulseCell_BaseValue @@ -594,10 +702,33 @@ struct PulseTestEHandle_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("PulseTestEHandle_t")->m_static_fields[0]->m_instance);}; }; -// Alignment: 5 -// Size: 0x108 +// Alignment: 7 +// Size: 0x30 +struct FakeEntity_t +{ +public: + PulseTestEHandle_t m_nHandle; // 0x0 + CUtlString m_Name; // 0x8 + CUtlString m_Class; // 0x10 + bool m_bDestroyed; // 0x18 +private: + [[maybe_unused]] uint8_t __pad0019[0x7]; // 0x19 +public: + CPulseGraphInstance_TestDomain* m_pAssociatedGraphInstance; // 0x20 + bool m_bFuncWasCalled; // 0x28 +private: + [[maybe_unused]] uint8_t __pad0029[0x3]; // 0x29 +public: + float m_fValue; // 0x2c +}; + +// Alignment: 6 +// Size: 0xf8 class CPulseGraphInstance_TestDomain : public CBasePulseGraphInstance { public: @@ -609,6 +740,9 @@ private: public: int32_t m_nNextValidateIndex; // 0xd4 CUtlVector< CUtlString > m_Tracepoints; // 0xd8 + bool m_bTestYesOrNoPath; // 0xf0 + + // Static fields: static double &Get_s_flExplicitCurTime(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("pulse_system.dll")->FindDeclaredClass("CPulseGraphInstance_TestDomain")->m_static_fields[0]->m_instance);}; }; @@ -660,20 +794,31 @@ public: // No members available }; -// Alignment: 0 -// Size: 0x108 +// Alignment: 2 +// Size: 0x190 +class CTestDomainDerived_Cursor : public CPulseExecCursor +{ +public: + int32_t m_nCursorValueA; // 0x188 + int32_t m_nCursorValueB; // 0x18c +}; + +// Alignment: 1 +// Size: 0x100 class CPulseGraphInstance_TestDomain_Derived : public CPulseGraphInstance_TestDomain { public: - // No members available + int32_t m_nInstanceValueX; // 0xf8 }; // Alignment: 0 // Size: 0x1 class CPulseTestFuncs_DerivedDomain { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 @@ -700,6 +845,17 @@ public: // No members available }; +// Alignment: 4 +// Size: 0x1a0 +class CPulseTurtleGraphicsCursor : public CPulseExecCursor +{ +public: + Color m_Color; // 0x188 + Vector2D m_vPos; // 0x18c + float m_flHeadingDeg; // 0x194 + bool m_bPenUp; // 0x198 +}; + // Alignment: 0 // Size: 0xf0 class CPulseGraphInstance_TurtleGraphics : public CBasePulseGraphInstance @@ -708,11 +864,3 @@ public: // No members available }; -// Alignment: 0 -// Size: 0x1 -class CPulseTurtleGraphicsLib -{ -public: - uint8_t __pad0000[0x1]; // Autoaligned -}; - diff --git a/sdk/resourcesystem.hpp b/sdk/resourcesystem.hpp index b1254fc0..1e775b1b 100644 --- a/sdk/resourcesystem.hpp +++ b/sdk/resourcesystem.hpp @@ -48,24 +48,30 @@ public: // Size: 0x1 struct InfoForResourceTypeTestResource_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 struct InfoForResourceTypeProceduralTestResource_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 struct InfoForResourceTypeManifestTestResource_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 2 @@ -83,312 +89,390 @@ public: // Size: 0x1 class InfoForResourceTypeCVDataResource { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIPulseGraphDef { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available +}; + +// Alignment: 0 +// Size: 0x1 +class InfoForResourceTypeCTypeScriptResource +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x1 +class InfoForResourceTypeCJavaScriptResource +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 +public: + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIParticleSystemDefinition { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIParticleSnapshot { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCAnimData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCAnimationGroup { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCSequenceGroupData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIMaterial2 { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCMorphSetData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCRenderMesh { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCModel { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCTextureBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIVectorGraphic { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCVSoundEventScriptList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCVSoundStackScriptList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 struct InfoForResourceTypeVSound_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCVMixListResource { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCPhysAggregateData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCVPhysXSurfacePropertiesList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCEntityLump { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCWorldNode { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 struct InfoForResourceTypeWorld_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCVoxelVisibility { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCPostProcessingResource { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCPanoramaStyle { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCPanoramaLayout { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCPanoramaDynamicImages { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCDotaItemDefinitionResource { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned -}; - -// Alignment: 0 -// Size: 0x1 -class InfoForResourceTypeCPanoramaScript -{ -public: - uint8_t __pad0000[0x1]; // Autoaligned -}; - -// Alignment: 0 -// Size: 0x1 -class InfoForResourceTypeCPanoramaTypeScript -{ -public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCDOTAPatchNotesList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCDOTANovelsList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeIAnimGraphModelBinding { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCChoreoSceneFileData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCDACGameDefsData { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCCompositeMaterialKit { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCSmartProp { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCCSGOEconItem { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 class InfoForResourceTypeCResponseRulesList { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -397,6 +481,9 @@ struct FuseVariableIndex_t { public: uint16_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("resourcesystem.dll")->FindDeclaredClass("FuseVariableIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 1 @@ -405,6 +492,9 @@ struct FuseFunctionIndex_t { public: uint16_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("resourcesystem.dll")->FindDeclaredClass("FuseFunctionIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 3 @@ -434,6 +524,8 @@ public: // Size: 0x20 struct FunctionInfo_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlString m_name; // 0x8 CUtlStringToken m_nameToken; // 0x10 diff --git a/sdk/schemasystem.hpp b/sdk/schemasystem.hpp index 0bbe224d..a6f268f3 100644 --- a/sdk/schemasystem.hpp +++ b/sdk/schemasystem.hpp @@ -146,8 +146,10 @@ public: // Size: 0x1 class InfoForResourceTypeCResourceManifestInternal { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -156,6 +158,9 @@ struct ResourceId_t { public: uint64_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("schemasystem.dll")->FindDeclaredClass("ResourceId_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 2 @@ -171,6 +176,8 @@ public: // Size: 0x10 class CExampleSchemaVData_PolymorphicBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: int32_t m_nBase; // 0x8 }; diff --git a/sdk/server.hpp b/sdk/server.hpp index 971e5116..5abe637d 100644 --- a/sdk/server.hpp +++ b/sdk/server.hpp @@ -4,8 +4,8 @@ // ///////////////////////////////////////////////////////////// // Binary: server.dll -// Classes count: 789 -// Enums count: 127 +// Classes count: 797 +// Enums count: 126 // Created using source2gen - github.com/neverlosecc/source2gen // ///////////////////////////////////////////////////////////// @@ -219,13 +219,13 @@ enum class RumbleEffect_t : uint32_t }; // Alignment: 4 -// Size: 0x16 +// Size: 0x18 enum class WeaponSound_t : uint32_t { WEAPON_SOUND_EMPTY = 0x0, WEAPON_SOUND_SECONDARY_EMPTY = 0x1, WEAPON_SOUND_SINGLE = 0x2, - WEAPON_SOUND_DOUBLE = 0x3, + WEAPON_SOUND_SECONDARY_ATTACK = 0x3, WEAPON_SOUND_RELOAD = 0x4, WEAPON_SOUND_MELEE_MISS = 0x5, WEAPON_SOUND_MELEE_HIT = 0x6, @@ -235,15 +235,17 @@ enum class WeaponSound_t : uint32_t WEAPON_SOUND_SPECIAL2 = 0xa, WEAPON_SOUND_SPECIAL3 = 0xb, WEAPON_SOUND_NEARLYEMPTY = 0xc, - WEAPON_SOUND_IMPACT1 = 0xd, + WEAPON_SOUND_IMPACT = 0xd, WEAPON_SOUND_REFLECT = 0xe, - WEAPON_SOUND_SINGLE_ACCURATE = 0xf, - WEAPON_SOUND_ZOOM_IN = 0x10, - WEAPON_SOUND_ZOOM_OUT = 0x11, - WEAPON_SOUND_MOUSE_PRESSED = 0x12, - WEAPON_SOUND_DROP = 0x13, - WEAPON_SOUND_RADIO_USE = 0x14, - WEAPON_SOUND_NUM_TYPES = 0x15, + WEAPON_SOUND_SECONDARY_IMPACT = 0xf, + WEAPON_SOUND_SECONDARY_REFLECT = 0x10, + WEAPON_SOUND_SINGLE_ACCURATE = 0x11, + WEAPON_SOUND_ZOOM_IN = 0x12, + WEAPON_SOUND_ZOOM_OUT = 0x13, + WEAPON_SOUND_MOUSE_PRESSED = 0x14, + WEAPON_SOUND_DROP = 0x15, + WEAPON_SOUND_RADIO_USE = 0x16, + WEAPON_SOUND_NUM_TYPES = 0x17, }; // Alignment: 4 @@ -1208,15 +1210,16 @@ enum class HitGroup_t : uint32_t }; // Alignment: 1 -// Size: 0x6 +// Size: 0x7 enum class WaterLevel_t : uint8_t { WL_NotInWater = 0x0, WL_Feet = 0x1, - WL_Waist = 0x2, - WL_Chest = 0x3, - WL_FullyUnderwater = 0x4, - WL_Count = 0x5, + WL_Knees = 0x2, + WL_Waist = 0x3, + WL_Chest = 0x4, + WL_FullyUnderwater = 0x5, + WL_Count = 0x6, }; // Alignment: 4 @@ -1239,7 +1242,7 @@ enum class ShadowType_t : uint32_t }; // Alignment: 4 -// Size: 0x9 +// Size: 0xc enum class Class_T : uint32_t { CLASS_NONE = 0x0, @@ -1249,8 +1252,11 @@ enum class Class_T : uint32_t CLASS_DZ_SPAWN_CHOPPER = 0x4, CLASS_BOMB = 0x5, CLASS_FOOT_CONTACT_SHADOW = 0x6, - CLASS_WEAPON_VIEWMODEL = 0x7, - NUM_CLASSIFY_CLASSES = 0x8, + CLASS_WEAPON = 0x7, + CLASS_WATER_SPLASHER = 0x8, + CLASS_WEAPON_VIEWMODEL = 0x9, + CLASS_DOOR = 0xa, + NUM_CLASSIFY_CLASSES = 0xb, }; // Alignment: 4 @@ -1293,13 +1299,14 @@ enum class LifeState_t : uint32_t }; // Alignment: 4 -// Size: 0x4 +// Size: 0x5 enum class StanceType_t : uint32_t { STANCE_CURRENT = 0xffffffffffffffff, STANCE_DEFAULT = 0x0, STANCE_CROUCHING = 0x1, - NUM_STANCES = 0x2, + STANCE_PRONE = 0x2, + NUM_STANCES = 0x3, }; // Alignment: 4 @@ -1346,16 +1353,6 @@ enum class WorldTextPanelOrientation_t : uint32_t WORLDTEXT_ORIENTATION_FACEUSER_UPRIGHT = 0x2, }; -// Alignment: 4 -// Size: 0x4 -enum class WorldTextAttachmentType_t : uint32_t -{ - ATTACHED_NONE = 0x0, - ATTACHED_ENTITY = 0x1, - ATTACHED_ENTITY_LARGE = 0x2, - ATTACHED_HAND_SPECIFIED_IN_EVENT = 0x3, -}; - // Alignment: 4 // Size: 0x2 enum class attributeprovidertypes_t : uint32_t @@ -1471,85 +1468,85 @@ enum class QuestProgress__Reason : uint32_t // Alignment: 4 // Size: 0x49 -enum class loadout_positions_t : uint32_t +enum class loadout_slot_t : uint32_t { - LOADOUT_POSITION_INVALID = 0xffffffffffffffff, - LOADOUT_POSITION_MELEE = 0x0, - LOADOUT_POSITION_C4 = 0x1, - LOADOUT_POSITION_FIRST_AUTO_BUY_WEAPON = 0x0, - LOADOUT_POSITION_LAST_AUTO_BUY_WEAPON = 0x1, - LOADOUT_POSITION_SECONDARY0 = 0x2, - LOADOUT_POSITION_SECONDARY1 = 0x3, - LOADOUT_POSITION_SECONDARY2 = 0x4, - LOADOUT_POSITION_SECONDARY3 = 0x5, - LOADOUT_POSITION_SECONDARY4 = 0x6, - LOADOUT_POSITION_SECONDARY5 = 0x7, - LOADOUT_POSITION_SMG0 = 0x8, - LOADOUT_POSITION_SMG1 = 0x9, - LOADOUT_POSITION_SMG2 = 0xa, - LOADOUT_POSITION_SMG3 = 0xb, - LOADOUT_POSITION_SMG4 = 0xc, - LOADOUT_POSITION_SMG5 = 0xd, - LOADOUT_POSITION_RIFLE0 = 0xe, - LOADOUT_POSITION_RIFLE1 = 0xf, - LOADOUT_POSITION_RIFLE2 = 0x10, - LOADOUT_POSITION_RIFLE3 = 0x11, - LOADOUT_POSITION_RIFLE4 = 0x12, - LOADOUT_POSITION_RIFLE5 = 0x13, - LOADOUT_POSITION_HEAVY0 = 0x14, - LOADOUT_POSITION_HEAVY1 = 0x15, - LOADOUT_POSITION_HEAVY2 = 0x16, - LOADOUT_POSITION_HEAVY3 = 0x17, - LOADOUT_POSITION_HEAVY4 = 0x18, - LOADOUT_POSITION_HEAVY5 = 0x19, - LOADOUT_POSITION_FIRST_WHEEL_WEAPON = 0x2, - LOADOUT_POSITION_LAST_WHEEL_WEAPON = 0x19, - LOADOUT_POSITION_FIRST_PRIMARY_WEAPON = 0x8, - LOADOUT_POSITION_LAST_PRIMARY_WEAPON = 0x19, - LOADOUT_POSITION_FIRST_WHEEL_GRENADE = 0x1a, - LOADOUT_POSITION_GRENADE0 = 0x1a, - LOADOUT_POSITION_GRENADE1 = 0x1b, - LOADOUT_POSITION_GRENADE2 = 0x1c, - LOADOUT_POSITION_GRENADE3 = 0x1d, - LOADOUT_POSITION_GRENADE4 = 0x1e, - LOADOUT_POSITION_GRENADE5 = 0x1f, - LOADOUT_POSITION_LAST_WHEEL_GRENADE = 0x1f, - LOADOUT_POSITION_EQUIPMENT0 = 0x20, - LOADOUT_POSITION_EQUIPMENT1 = 0x21, - LOADOUT_POSITION_EQUIPMENT2 = 0x22, - LOADOUT_POSITION_EQUIPMENT3 = 0x23, - LOADOUT_POSITION_EQUIPMENT4 = 0x24, - LOADOUT_POSITION_EQUIPMENT5 = 0x25, - LOADOUT_POSITION_FIRST_WHEEL_EQUIPMENT = 0x20, - LOADOUT_POSITION_LAST_WHEEL_EQUIPMENT = 0x25, - LOADOUT_POSITION_CLOTHING_CUSTOMPLAYER = 0x26, - LOADOUT_POSITION_PET = 0x27, - LOADOUT_POSITION_CLOTHING_FACEMASK = 0x28, - LOADOUT_POSITION_CLOTHING_HANDS = 0x29, - LOADOUT_POSITION_FIRST_COSMETIC = 0x29, - LOADOUT_POSITION_LAST_COSMETIC = 0x29, - LOADOUT_POSITION_CLOTHING_EYEWEAR = 0x2a, - LOADOUT_POSITION_CLOTHING_HAT = 0x2b, - LOADOUT_POSITION_CLOTHING_LOWERBODY = 0x2c, - LOADOUT_POSITION_CLOTHING_TORSO = 0x2d, - LOADOUT_POSITION_CLOTHING_APPEARANCE = 0x2e, - LOADOUT_POSITION_MISC0 = 0x2f, - LOADOUT_POSITION_MISC1 = 0x30, - LOADOUT_POSITION_MISC2 = 0x31, - LOADOUT_POSITION_MISC3 = 0x32, - LOADOUT_POSITION_MISC4 = 0x33, - LOADOUT_POSITION_MISC5 = 0x34, - LOADOUT_POSITION_MISC6 = 0x35, - LOADOUT_POSITION_MUSICKIT = 0x36, - LOADOUT_POSITION_FLAIR0 = 0x37, - LOADOUT_POSITION_SPRAY0 = 0x38, - LOADOUT_POSITION_FIRST_ALL_CHARACTER = 0x36, - LOADOUT_POSITION_LAST_ALL_CHARACTER = 0x38, - LOADOUT_POSITION_COUNT = 0x39, + LOADOUT_SLOT_INVALID = 0xffffffffffffffff, + LOADOUT_SLOT_MELEE = 0x0, + LOADOUT_SLOT_C4 = 0x1, + LOADOUT_SLOT_FIRST_AUTO_BUY_WEAPON = 0x0, + LOADOUT_SLOT_LAST_AUTO_BUY_WEAPON = 0x1, + LOADOUT_SLOT_SECONDARY0 = 0x2, + LOADOUT_SLOT_SECONDARY1 = 0x3, + LOADOUT_SLOT_SECONDARY2 = 0x4, + LOADOUT_SLOT_SECONDARY3 = 0x5, + LOADOUT_SLOT_SECONDARY4 = 0x6, + LOADOUT_SLOT_SECONDARY5 = 0x7, + LOADOUT_SLOT_SMG0 = 0x8, + LOADOUT_SLOT_SMG1 = 0x9, + LOADOUT_SLOT_SMG2 = 0xa, + LOADOUT_SLOT_SMG3 = 0xb, + LOADOUT_SLOT_SMG4 = 0xc, + LOADOUT_SLOT_SMG5 = 0xd, + LOADOUT_SLOT_RIFLE0 = 0xe, + LOADOUT_SLOT_RIFLE1 = 0xf, + LOADOUT_SLOT_RIFLE2 = 0x10, + LOADOUT_SLOT_RIFLE3 = 0x11, + LOADOUT_SLOT_RIFLE4 = 0x12, + LOADOUT_SLOT_RIFLE5 = 0x13, + LOADOUT_SLOT_HEAVY0 = 0x14, + LOADOUT_SLOT_HEAVY1 = 0x15, + LOADOUT_SLOT_HEAVY2 = 0x16, + LOADOUT_SLOT_HEAVY3 = 0x17, + LOADOUT_SLOT_HEAVY4 = 0x18, + LOADOUT_SLOT_HEAVY5 = 0x19, + LOADOUT_SLOT_FIRST_WHEEL_WEAPON = 0x2, + LOADOUT_SLOT_LAST_WHEEL_WEAPON = 0x19, + LOADOUT_SLOT_FIRST_PRIMARY_WEAPON = 0x8, + LOADOUT_SLOT_LAST_PRIMARY_WEAPON = 0x19, + LOADOUT_SLOT_FIRST_WHEEL_GRENADE = 0x1a, + LOADOUT_SLOT_GRENADE0 = 0x1a, + LOADOUT_SLOT_GRENADE1 = 0x1b, + LOADOUT_SLOT_GRENADE2 = 0x1c, + LOADOUT_SLOT_GRENADE3 = 0x1d, + LOADOUT_SLOT_GRENADE4 = 0x1e, + LOADOUT_SLOT_GRENADE5 = 0x1f, + LOADOUT_SLOT_LAST_WHEEL_GRENADE = 0x1f, + LOADOUT_SLOT_EQUIPMENT0 = 0x20, + LOADOUT_SLOT_EQUIPMENT1 = 0x21, + LOADOUT_SLOT_EQUIPMENT2 = 0x22, + LOADOUT_SLOT_EQUIPMENT3 = 0x23, + LOADOUT_SLOT_EQUIPMENT4 = 0x24, + LOADOUT_SLOT_EQUIPMENT5 = 0x25, + LOADOUT_SLOT_FIRST_WHEEL_EQUIPMENT = 0x20, + LOADOUT_SLOT_LAST_WHEEL_EQUIPMENT = 0x25, + LOADOUT_SLOT_CLOTHING_CUSTOMPLAYER = 0x26, + LOADOUT_SLOT_PET = 0x27, + LOADOUT_SLOT_CLOTHING_FACEMASK = 0x28, + LOADOUT_SLOT_CLOTHING_HANDS = 0x29, + LOADOUT_SLOT_FIRST_COSMETIC = 0x29, + LOADOUT_SLOT_LAST_COSMETIC = 0x29, + LOADOUT_SLOT_CLOTHING_EYEWEAR = 0x2a, + LOADOUT_SLOT_CLOTHING_HAT = 0x2b, + LOADOUT_SLOT_CLOTHING_LOWERBODY = 0x2c, + LOADOUT_SLOT_CLOTHING_TORSO = 0x2d, + LOADOUT_SLOT_CLOTHING_APPEARANCE = 0x2e, + LOADOUT_SLOT_MISC0 = 0x2f, + LOADOUT_SLOT_MISC1 = 0x30, + LOADOUT_SLOT_MISC2 = 0x31, + LOADOUT_SLOT_MISC3 = 0x32, + LOADOUT_SLOT_MISC4 = 0x33, + LOADOUT_SLOT_MISC5 = 0x34, + LOADOUT_SLOT_MISC6 = 0x35, + LOADOUT_SLOT_MUSICKIT = 0x36, + LOADOUT_SLOT_FLAIR0 = 0x37, + LOADOUT_SLOT_SPRAY0 = 0x38, + LOADOUT_SLOT_FIRST_ALL_CHARACTER = 0x36, + LOADOUT_SLOT_LAST_ALL_CHARACTER = 0x38, + LOADOUT_SLOT_COUNT = 0x39, }; // Alignment: 1 -// Size: 0x7 +// Size: 0x8 enum class EKillTypes_t : uint8_t { KILL_NONE = 0x0, @@ -1558,7 +1555,8 @@ enum class EKillTypes_t : uint8_t KILL_BLAST = 0x3, KILL_BURN = 0x4, KILL_SLASH = 0x5, - KILLTYPE_COUNT = 0x6, + KILL_SHOCK = 0x6, + KILLTYPE_COUNT = 0x7, }; // Alignment: 4 @@ -1795,10 +1793,9 @@ struct VelocitySampler; struct SimpleConstraintSoundProfile; struct sky3dparams_t; struct CSkyCamera; -struct CBaseEntity; -struct AttachmentHandle_t; struct ParticleIndex_t; struct VPhysicsCollisionAttribute_t; +struct AttachmentHandle_t; struct fogparams_t; struct AmmoIndex_t; struct CTakeDamageInfo; @@ -1806,9 +1803,9 @@ struct CTakeDamageResult; struct CAttributeManager; struct CEconItemView; struct CCSGameRules; +struct CCSGameModeRules; struct CSurvivalGameRules; struct CRetakeGameRules; -struct CBasePlayerWeapon; struct WeaponPurchaseTracker_t; struct CSMatchStats_t; struct CBasePlayerController; @@ -1831,7 +1828,6 @@ struct constraint_hingeparams_t; struct dynpitchvol_t; struct locksound_t; struct CPathTrack; -struct ragdoll_t; struct CAttributeList; struct CBuoyancyHelper; struct CCSPlayerController_InGameMoneyServices; @@ -1850,6 +1846,7 @@ struct PhysicsRagdollPose_t; struct hudtextparms_t; struct CFuncTrackTrain; struct CSprite; +struct ragdoll_t; struct shard_model_desc_t; struct CAttributeContainer; struct CSoundPatch; @@ -1906,14 +1903,18 @@ public: // Size: 0x70 class CNavVolume { +private: + [[maybe_unused]] uint8_t __pad0000[0x70]; // 0x0 public: - uint8_t __pad0000[0x70]; // Autoaligned + // No members available }; // Alignment: 1 // Size: 0x98 class CNavVolumeVector : public CNavVolume { +private: + [[maybe_unused]] uint8_t __pad0070[0x8]; // 0x70 public: bool m_bHasBeenPreFiltered; // 0x78 }; @@ -2001,6 +2002,8 @@ public: // Size: 0x78 class CEntityIdentity { +private: + [[maybe_unused]] uint8_t __pad0000[0x14]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "entityIdentityNameChanged" @@ -2051,8 +2054,12 @@ public: // Size: 0x38 class CScriptComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x28]; // 0x8 public: CUtlSymbolLarge m_scriptClassName; // 0x30 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CScriptComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CScriptComponent")->m_static_fields[1]->m_instance);}; }; @@ -2070,6 +2077,8 @@ public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex CNetworkVarChainer __m_pChainEntity; // 0x20 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponent")->m_static_fields[1]->m_instance);}; }; @@ -2078,6 +2087,8 @@ public: // Size: 0x30 class CNetworkOriginCellCoordQuantizedVector { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "OnCellChanged" @@ -2097,24 +2108,24 @@ public: // MNetworkEnable uint16_t m_nOutsideWorld; // 0x16 // MNetworkBitCount "15" - // MNetworkMinValue "0" - // MNetworkMaxValue "1024" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1024.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "OnCellChanged" // MNetworkPriority "31" // MNetworkSerializer "posx" CNetworkedQuantizedFloat m_vecX; // 0x18 // MNetworkBitCount "15" - // MNetworkMinValue "0" - // MNetworkMaxValue "1024" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1024.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "OnCellChanged" // MNetworkPriority "31" // MNetworkSerializer "posy" CNetworkedQuantizedFloat m_vecY; // 0x20 // MNetworkBitCount "15" - // MNetworkMinValue "0" - // MNetworkMaxValue "1024" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1024.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "OnCellChanged" // MNetworkPriority "31" @@ -2126,6 +2137,8 @@ public: // Size: 0x10 class CGameSceneNodeHandle { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable CEntityHandle m_hOwner; // 0x8 @@ -2137,9 +2150,13 @@ public: // Size: 0x28 class CHitboxComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x1c]; // 0x8 public: // MNetworkEnable uint32_t m_bvDisabledHitGroups[1]; // 0x24 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CHitboxComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_referenced_but_impl_is_contained(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CHitboxComponent")->m_static_fields[1]->m_instance);}; }; @@ -2150,15 +2167,22 @@ struct GameTime_t { public: float m_Value; // 0x0 - static GameTime_t &Get_Zero(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("GameTime_t")->m_static_fields[0]->m_instance);}; + + // Static fields: + static bool &Get_IS_TYPESAFE_FLOAT(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("GameTime_t")->m_static_fields[0]->m_instance);}; + static GameTime_t &Get_Zero(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("GameTime_t")->m_static_fields[1]->m_instance);}; }; // Alignment: 1 // Size: 0x1b0 class CNetworkTransmitComponent { +private: + [[maybe_unused]] uint8_t __pad0000[0x16c]; // 0x0 public: uint8_t m_nTransmitStateOwnedCounter; // 0x16c + + // Static fields: static int32_t &Get_s_nDebugStateChange(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_s_nWatchTransmitEntity(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fields[1]->m_instance);}; static bool &Get_s_bUseNetworkVars(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fields[2]->m_instance);}; @@ -2171,6 +2195,8 @@ public: // Size: 0xb8 class CRenderComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x8]; // 0x8 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -2191,6 +2217,8 @@ private: [[maybe_unused]] uint8_t __pad0061[0x4f]; // 0x61 public: bool m_bInterpolationReadyToDraw; // 0xb0 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CRenderComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CRenderComponent")->m_static_fields[1]->m_instance);}; }; @@ -2201,14 +2229,19 @@ struct AnimationUpdateListHandle_t { public: uint32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("AnimationUpdateListHandle_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 0 // Size: 0x18 class CAnimEventListenerBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: - uint8_t __pad0000[0x18]; // Autoaligned + // No members available }; // Alignment: 0 @@ -2223,23 +2256,27 @@ public: // Size: 0x38 class CAnimEventQueueListener : public CAnimEventListenerBase { +private: + [[maybe_unused]] uint8_t __pad0018[0x8]; // 0x18 public: // No members available }; // Alignment: 2 -// Size: 0x30 -class CAnimGraphTag +// Size: 0x18 +class CAnimGraphTagRef { public: int32_t m_nTagIndex; // 0x0 - CAnimGraphSymbolWithStorage m_pTagName; // 0x10 + CGlobalSymbol m_tagName; // 0x10 }; // Alignment: 2 // Size: 0x28 class CBuoyancyHelper { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: float m_flFluidDensity; // 0x18 float m_flDisplacementFromObjects; // 0x1c @@ -2284,15 +2321,49 @@ public: // Size: 0xa0 class CScriptUniformRandomStream { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: HSCRIPT m_hScriptScope; // 0x8 private: [[maybe_unused]] uint8_t __pad0010[0x8c]; // 0x10 public: int32_t m_nInitialSeed; // 0x9c + + // Static fields: static CUtlVector< CScriptUniformRandomStream* > &Get_sm_UniformStreams(){return *reinterpret_cast*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CScriptUniformRandomStream")->m_static_fields[0]->m_instance);}; }; +// Alignment: 3 +// Size: 0x48 +struct ViewAngleServerChange_t +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 +public: + // MNetworkEnable + FixAngleSet_t nType; // 0x30 +private: + [[maybe_unused]] uint8_t __pad0031[0x3]; // 0x31 +public: + // MNetworkEnable + // MNetworkEncoder + QAngle qAngle; // 0x34 + // MNetworkEnable + uint32_t nIndex; // 0x40 +}; + +// Alignment: 2 +// Size: 0x18 +class CBreakableStageHelper +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 +public: + int32_t m_nCurrentStage; // 0x8 + int32_t m_nStageCount; // 0xc +}; + // Alignment: 12 // Size: 0x50 struct CommandToolCommand_t @@ -2322,6 +2393,8 @@ public: // Size: 0x40 class CPlayerPawnComponent { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -2332,6 +2405,8 @@ public: // Size: 0x40 class CPlayerControllerComponent { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -2350,6 +2425,8 @@ public: // Size: 0x78 struct audioparams_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkEncoder @@ -2373,7 +2450,10 @@ struct GameTick_t { public: int32_t m_Value; // 0x0 - static GameTick_t &Get_Zero(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("GameTick_t")->m_static_fields[0]->m_instance);}; + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("GameTick_t")->m_static_fields[0]->m_instance);}; + static GameTick_t &Get_Zero(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("GameTick_t")->m_static_fields[1]->m_instance);}; }; // Alignment: 0 @@ -2396,12 +2476,14 @@ public: // Size: 0x20 class CInButtonState { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: uint64_t m_pButtonStates[3]; // 0x8 }; // Alignment: 15 -// Size: 0x1c8 +// Size: 0x1d0 class CPlayer_MovementServices : public CPlayerPawnComponent { public: @@ -2423,17 +2505,17 @@ public: uint64_t m_nToggleButtonDownMask; // 0x188 // MNetworkEnable // MNetworkBitCount "12" - // MNetworkMinValue "0" - // MNetworkMaxValue "2048" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "2048.000000" // MNetworkEncodeFlags float m_flMaxspeed; // 0x190 // MNetworkEnable - float m_flForceSubtickMoveWhen; // 0x194 - float m_flForwardMove; // 0x198 - float m_flLeftMove; // 0x19c - float m_flUpMove; // 0x1a0 - Vector m_vecLastMovementImpulses; // 0x1a4 - QAngle m_vecOldViewAngles; // 0x1b0 + float m_arrForceSubtickMoveWhen[4]; // 0x194 + float m_flForwardMove; // 0x1a4 + float m_flLeftMove; // 0x1a8 + float m_flUpMove; // 0x1ac + Vector m_vecLastMovementImpulses; // 0x1b0 + QAngle m_vecOldViewAngles; // 0x1bc }; // Alignment: 4 @@ -2495,6 +2577,8 @@ public: // Size: 0x38 struct AmmoTypeInfo_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: int32_t m_nMaxCarry; // 0x10 private: @@ -2510,14 +2594,18 @@ public: // Size: 0x18 class CAnimGraphControllerBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x18]; // 0x0 public: - uint8_t __pad0000[0x18]; // Autoaligned + // No members available }; // Alignment: 33 // Size: 0x150 class CGameSceneNode { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkDisable CTransform m_nodeToWorld; // 0x10 @@ -2621,6 +2709,8 @@ public: // Size: 0x48 struct EntityRenderAttribute_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: // MNetworkEnable CUtlStringToken m_ID; // 0x30 @@ -2634,12 +2724,17 @@ struct ModelConfigHandle_t { public: uint32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("ModelConfigHandle_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 4 // Size: 0x68 struct ActiveModelConfig_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: // MNetworkEnable ModelConfigHandle_t m_Handle; // 0x28 @@ -2658,6 +2753,8 @@ public: // Size: 0x230 class CModelState { +private: + [[maybe_unused]] uint8_t __pad0000[0xa0]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "skeletonModelChanged" @@ -2691,6 +2788,8 @@ public: // Size: 0x3f0 class CSkeletonInstance : public CGameSceneNode { +private: + [[maybe_unused]] uint8_t __pad0150[0x10]; // 0x150 public: // MNetworkEnable CModelState m_modelState; // 0x160 @@ -2719,22 +2818,24 @@ public: // Size: 0x28 class CNetworkOriginQuantizedVector { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkBitCount "19" - // MNetworkMinValue "-16384" - // MNetworkMaxValue "16384" + // MNetworkMinValue "-16384.000000" + // MNetworkMaxValue "16384.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkOriginQuantizedVector" CNetworkedQuantizedFloat m_vecX; // 0x10 // MNetworkBitCount "19" - // MNetworkMinValue "-16384" - // MNetworkMaxValue "16384" + // MNetworkMinValue "-16384.000000" + // MNetworkMaxValue "16384.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkOriginQuantizedVector" CNetworkedQuantizedFloat m_vecY; // 0x18 // MNetworkBitCount "19" - // MNetworkMinValue "-16384" - // MNetworkMaxValue "16384" + // MNetworkMinValue "-16384.000000" + // MNetworkMaxValue "16384.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkOriginQuantizedVector" CNetworkedQuantizedFloat m_vecZ; // 0x20 @@ -2744,22 +2845,24 @@ public: // Size: 0x28 class CNetworkVelocityVector { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkBitCount "18" - // MNetworkMinValue "-4096" - // MNetworkMaxValue "4096" + // MNetworkMinValue "-4096.000000" + // MNetworkMaxValue "4096.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkVelocityVector" CNetworkedQuantizedFloat m_vecX; // 0x10 // MNetworkBitCount "18" - // MNetworkMinValue "-4096" - // MNetworkMaxValue "4096" + // MNetworkMinValue "-4096.000000" + // MNetworkMaxValue "4096.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkVelocityVector" CNetworkedQuantizedFloat m_vecY; // 0x18 // MNetworkBitCount "18" - // MNetworkMinValue "-4096" - // MNetworkMaxValue "4096" + // MNetworkMinValue "-4096.000000" + // MNetworkMaxValue "4096.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkVelocityVector" CNetworkedQuantizedFloat m_vecZ; // 0x20 @@ -2769,22 +2872,24 @@ public: // Size: 0x28 class CNetworkViewOffsetVector { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkBitCount "10" - // MNetworkMinValue "-64" - // MNetworkMaxValue "64" + // MNetworkMinValue "-64.000000" + // MNetworkMaxValue "64.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkViewOffsetVector" CNetworkedQuantizedFloat m_vecX; // 0x10 // MNetworkBitCount "10" - // MNetworkMinValue "-64" - // MNetworkMaxValue "64" + // MNetworkMinValue "-64.000000" + // MNetworkMaxValue "64.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkViewOffsetVector" CNetworkedQuantizedFloat m_vecY; // 0x18 // MNetworkBitCount "20" - // MNetworkMinValue "0" - // MNetworkMaxValue "128" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "128.000000" // MNetworkEncodeFlags // MNetworkChangeCallback "CNetworkViewOffsetVector" CNetworkedQuantizedFloat m_vecZ; // 0x20 @@ -2794,6 +2899,8 @@ public: // Size: 0x1d0 class CLightComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x40]; // 0x8 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -3008,6 +3115,8 @@ private: [[maybe_unused]] uint8_t __pad01bc[0xc]; // 0x1bc public: bool m_bPvsModifyEntity; // 0x1c8 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CLightComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CLightComponent")->m_static_fields[1]->m_instance);}; }; @@ -3016,6 +3125,8 @@ public: // Size: 0x40 struct fogplayerparams_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkUserGroup "PlayerFogController" @@ -3045,6 +3156,8 @@ public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex CNetworkVarChainer __m_pChainEntity; // 0x440 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentSkeletonInstance")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentSkeletonInstance")->m_static_fields[1]->m_instance);}; }; @@ -3059,6 +3172,8 @@ public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex CNetworkVarChainer __m_pChainEntity; // 0x1a0 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentPoint")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentPoint")->m_static_fields[1]->m_instance);}; }; @@ -3067,65 +3182,69 @@ public: // Size: 0x8 class IChoreoServices { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: + // Static fields: static uint32_t &Get_ms_uSequenceId(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("IChoreoServices")->m_static_fields[0]->m_instance);}; - uint8_t __pad0000[0x8]; // Autoaligned }; // Alignment: 14 -// Size: 0x218 +// Size: 0x220 class CPlayer_MovementServices_Humanoid : public CPlayer_MovementServices { public: - float m_flStepSoundTime; // 0x1c8 + float m_flStepSoundTime; // 0x1d0 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" // MNetworkBitCount "17" - // MNetworkMinValue "-4096" - // MNetworkMaxValue "4096" + // MNetworkMinValue "-4096.000000" + // MNetworkMaxValue "4096.000000" // MNetworkEncodeFlags - float m_flFallVelocity; // 0x1cc + float m_flFallVelocity; // 0x1d4 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - bool m_bInCrouch; // 0x1d0 + bool m_bInCrouch; // 0x1d8 private: - [[maybe_unused]] uint8_t __pad01d1[0x3]; // 0x1d1 + [[maybe_unused]] uint8_t __pad01d9[0x3]; // 0x1d9 public: // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - uint32_t m_nCrouchState; // 0x1d4 + uint32_t m_nCrouchState; // 0x1dc // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - GameTime_t m_flCrouchTransitionStartTime; // 0x1d8 + GameTime_t m_flCrouchTransitionStartTime; // 0x1e0 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - bool m_bDucked; // 0x1dc + bool m_bDucked; // 0x1e4 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - bool m_bDucking; // 0x1dd + bool m_bDucking; // 0x1e5 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - bool m_bInDuckJump; // 0x1de + bool m_bInDuckJump; // 0x1e6 private: - [[maybe_unused]] uint8_t __pad01df[0x1]; // 0x1df + [[maybe_unused]] uint8_t __pad01e7[0x1]; // 0x1e7 public: - Vector m_groundNormal; // 0x1e0 - float m_flSurfaceFriction; // 0x1ec - CUtlStringToken m_surfaceProps; // 0x1f0 + Vector m_groundNormal; // 0x1e8 + float m_flSurfaceFriction; // 0x1f4 + CUtlStringToken m_surfaceProps; // 0x1f8 private: - [[maybe_unused]] uint8_t __pad01f4[0xc]; // 0x1f4 + [[maybe_unused]] uint8_t __pad01fc[0xc]; // 0x1fc public: - int32_t m_nStepside; // 0x200 - int32_t m_iTargetVolume; // 0x204 - Vector m_vecSmoothedVelocity; // 0x208 + int32_t m_nStepside; // 0x208 + int32_t m_iTargetVolume; // 0x20c + Vector m_vecSmoothedVelocity; // 0x210 }; // Alignment: 0 // Size: 0x8 class ISkeletonAnimationController { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 1 @@ -3141,6 +3260,8 @@ public: // Size: 0x28 class CNetworkedSequenceOperation { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkSerializer "minusone" @@ -3149,8 +3270,8 @@ public: HSequence m_hSequence; // 0x8 // MNetworkEnable // MNetworkBitCount "15" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags // MNetworkPriority "32" // MNetworkSendProxyRecipientsFilter @@ -3158,8 +3279,8 @@ public: float m_flPrevCycle; // 0xc // MNetworkEnable // MNetworkBitCount "15" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags // MNetworkPriority "32" // MNetworkSendProxyRecipientsFilter @@ -3168,8 +3289,8 @@ public: float m_flCycle; // 0x10 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags CNetworkedQuantizedFloat m_flWeight; // 0x14 // MNetworkDisable @@ -3193,6 +3314,8 @@ public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex CNetworkVarChainer __m_pChainEntity; // 0x470 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentBaseModelEntity")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentBaseModelEntity")->m_static_fields[1]->m_instance);}; }; @@ -3201,6 +3324,8 @@ public: // Size: 0x1d8 class CAnimGraphNetworkedVariables { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkUserGroup "animationgraph" @@ -3328,6 +3453,8 @@ public: // Size: 0x10 class IntervalTimer { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable GameTime_t m_timestamp; // 0x8 @@ -3339,6 +3466,8 @@ public: // Size: 0x18 class CountdownTimer { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable float m_duration; // 0x8 @@ -3354,6 +3483,8 @@ public: // Size: 0x18 class EngineCountdownTimer { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable float m_duration; // 0x8 @@ -3403,8 +3534,8 @@ public: float m_flLastEventCycle; // 0x214 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "-4" - // MNetworkMaxValue "12" + // MNetworkMinValue "-4.000000" + // MNetworkMaxValue "12.000000" // MNetworkEncodeFlags // MNetworkPriority "32" // MNetworkChangeCallback "playbackRateChangedCompat" @@ -3434,8 +3565,10 @@ public: // Size: 0x8 class CFootstepTableHandle { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 8 @@ -3457,6 +3590,8 @@ public: // Size: 0x20 class ResponseParams { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: int16_t odds; // 0x10 int16_t flags; // 0x12 @@ -3470,6 +3605,8 @@ public: // Size: 0x30 class CResponseCriteriaSet { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: int32_t m_nNumPrefixedContexts; // 0x28 bool m_bOverrideOnAppend; // 0x2c @@ -3514,6 +3651,8 @@ public: // Size: 0x60 class CAI_Expresser { +private: + [[maybe_unused]] uint8_t __pad0000[0x38]; // 0x0 public: GameTime_t m_flStopTalkTime; // 0x38 GameTime_t m_flStopTalkTimeWithoutDelay; // 0x3c @@ -3536,6 +3675,8 @@ public: // Size: 0x68 class CResponseQueue { +private: + [[maybe_unused]] uint8_t __pad0000[0x50]; // 0x0 public: CUtlVector< CAI_Expresser* > m_ExpresserTargets; // 0x50 }; @@ -3544,6 +3685,8 @@ public: // Size: 0x240 class CResponseQueue::CDeferredResponse { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CResponseCriteriaSet m_contexts; // 0x10 float m_fDispatchTime; // 0x40 @@ -3575,6 +3718,8 @@ public: // Size: 0x60 class CCommentarySystem { +private: + [[maybe_unused]] uint8_t __pad0000[0x11]; // 0x0 public: bool m_bCommentaryConvarsChanging; // 0x11 bool m_bCommentaryEnabledMidGame; // 0x12 @@ -3601,6 +3746,8 @@ public: // Size: 0x18 class CPhysicsShake { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: Vector m_force; // 0x8 }; @@ -3664,6 +3811,8 @@ public: // Size: 0x40 class CConstantForceController { +private: + [[maybe_unused]] uint8_t __pad0000[0xc]; // 0x0 public: Vector m_linear; // 0xc RotationVector m_angular; // 0x18 @@ -3675,6 +3824,8 @@ public: // Size: 0x20 class CMotorController { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: float m_speed; // 0x8 float m_maxTorque; // 0xc @@ -3697,6 +3848,8 @@ public: // Size: 0x28 class CCopyRecipientFilter { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: int32_t m_Flags; // 0x8 private: @@ -3709,6 +3862,8 @@ public: // Size: 0x90 class CSoundPatch { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CSoundEnvelope m_pitch; // 0x8 CSoundEnvelope m_volume; // 0x18 @@ -3729,6 +3884,8 @@ private: [[maybe_unused]] uint8_t __pad0085[0x3]; // 0x85 public: CUtlSymbolLarge m_iszClassName; // 0x88 + + // Static fields: static int32_t &Get_g_SoundPatchCount(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CSoundPatch")->m_static_fields[0]->m_instance);}; }; @@ -3786,8 +3943,10 @@ public: // Size: 0x1 class CPulseServerFuncs { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 1 @@ -3802,18 +3961,22 @@ public: // Size: 0x1 class CPulseServerFuncs_Sounds { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x50 class CTouchExpansionComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x40]; // 0x8 public: + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CTouchExpansionComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_referenced_but_impl_is_contained(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CTouchExpansionComponent")->m_static_fields[1]->m_instance);}; - // No members available }; // Alignment: 25 @@ -4021,8 +4184,8 @@ public: CHandle< CBaseEntity > m_hGroundEntity; // 0x3c4 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "4" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "4.000000" // MNetworkEncodeFlags // MNetworkUserGroup "LocalPlayerExclusive" float m_flFriction; // 0x3c8 @@ -4038,8 +4201,8 @@ public: // MNetworkEnable // MNetworkUserGroup "Water" // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags float m_flWaterLevel; // 0x3d8 // MNetworkEnable @@ -4069,6 +4232,8 @@ public: CHandle< CBaseEntity > m_pBlocker; // 0x4a4 float m_flLocalTime; // 0x4a8 float m_flVPhysicsUpdateLocalTime; // 0x4ac + + // Static fields: static Relationship_t** &Get_sm_DefaultRelationship(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseEntity")->m_static_fields[0]->m_instance);}; static bool &Get_sm_bAccurateTriggerBboxChecks(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseEntity")->m_static_fields[1]->m_instance);}; static bool &Get_sm_bDisableTouchFuncs(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseEntity")->m_static_fields[2]->m_instance);}; @@ -4250,6 +4415,8 @@ public: // Size: 0x508 class CFishPool : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x10]; // 0x4b0 public: int32_t m_fishCount; // 0x4c0 float m_maxRange; // 0x4c4 @@ -4275,6 +4442,8 @@ public: // Size: 0x20 struct locksound_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlSymbolLarge sLockedSound; // 0x8 CUtlSymbolLarge sUnlockedSound; // 0x10 @@ -4323,6 +4492,8 @@ public: // Size: 0x20 class SimpleConstraintSoundProfile { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: SimpleConstraintSoundProfile::SimpleConstraintsSoundProfileKeypoints_t eKeypoints; // 0x8 float m_keyPoints[2]; // 0xc @@ -4333,6 +4504,8 @@ public: // Size: 0x88 class ConstraintSoundInfo { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: VelocitySampler m_vSampler; // 0x8 private: @@ -4357,6 +4530,8 @@ public: // Size: 0x20 class CSmoothFunc { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: float m_flSmoothAmplitude; // 0x8 float m_flSmoothBias; // 0xc @@ -4369,6 +4544,8 @@ public: // Size: 0x10 struct magnetted_objects_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CHandle< CBaseEntity > hEntity; // 0x8 }; @@ -4396,6 +4573,8 @@ public: // Size: 0x68 struct fogparams_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkEncoder @@ -4524,53 +4703,15 @@ public: // No members available }; -// Alignment: 27 -// Size: 0x560 -class CTriggerCamera : public CBaseEntity -{ -public: - CHandle< CBaseEntity > m_hPlayer; // 0x4b0 - CHandle< CBaseEntity > m_hTarget; // 0x4b4 - CBaseEntity* m_pPath; // 0x4b8 - CUtlSymbolLarge m_sPath; // 0x4c0 - float m_flWait; // 0x4c8 - GameTime_t m_flReturnTime; // 0x4cc - GameTime_t m_flStopTime; // 0x4d0 - float m_moveDistance; // 0x4d4 - float m_targetSpeed; // 0x4d8 - float m_initialSpeed; // 0x4dc - float m_acceleration; // 0x4e0 - float m_deceleration; // 0x4e4 - int32_t m_state; // 0x4e8 - Vector m_vecMoveDir; // 0x4ec - float m_fov; // 0x4f8 - float m_fovSpeed; // 0x4fc - CUtlSymbolLarge m_iszTargetAttachment; // 0x500 - AttachmentHandle_t m_iAttachmentIndex; // 0x508 - bool m_bSnapToGoal; // 0x509 - bool m_bInterpolatePosition; // 0x50a -private: - [[maybe_unused]] uint8_t __pad050b[0x1]; // 0x50b -public: - Vector m_vStartPos; // 0x50c - Vector m_vEndPos; // 0x518 - GameTime_t m_flInterpStartTime; // 0x524 - uint64_t m_nPlayerButtons; // 0x528 - bool m_bOldTakesDamage; // 0x530 -private: - [[maybe_unused]] uint8_t __pad0531[0x3]; // 0x531 -public: - TakeDamageFlags_t m_nOldTakeDamageFlags; // 0x534 - CEntityIOOutput m_OnEndFollow; // 0x538 - static float &Get_kflPosInterpTime(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CTriggerCamera")->m_static_fields[0]->m_instance);}; -}; - // Alignment: 1 // Size: 0x4 struct ParticleIndex_t { public: int32_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("ParticleIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 2 @@ -4623,6 +4764,8 @@ public: // Size: 0xb8 class CNavVolumeBreadthFirstSearch : public CNavVolumeCalculatedVector { +private: + [[maybe_unused]] uint8_t __pad0098[0x8]; // 0x98 public: Vector m_vStartPos; // 0xa0 float m_flSearchDist; // 0xac @@ -4632,6 +4775,8 @@ public: // Size: 0x30 struct VPhysicsCollisionAttribute_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable uint64_t m_nInteractsAs; // 0x8 @@ -4655,6 +4800,8 @@ public: // Size: 0xb0 class CCollisionProperty { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "CollisionAttributeChanged" @@ -4706,6 +4853,8 @@ public: // Size: 0x70 class CEffectData { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkEncoder @@ -4727,14 +4876,14 @@ public: float m_flScale; // 0x40 // MNetworkEnable // MNetworkBitCount "12" - // MNetworkMinValue "0" - // MNetworkMaxValue "1023" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1023.000000" // MNetworkEncodeFlags float m_flMagnitude; // 0x44 // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0" - // MNetworkMaxValue "1023" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1023.000000" // MNetworkEncodeFlags float m_flRadius; // 0x48 // MNetworkEnable @@ -4784,6 +4933,8 @@ public: // Size: 0x258 class CEnvWindShared { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable GameTime_t m_flStartTime; // 0x8 @@ -4872,6 +5023,8 @@ public: // Size: 0x60 struct shard_model_desc_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable int32_t m_nModelID; // 0x8 @@ -4917,6 +5070,8 @@ public: // Size: 0xc0 class CShatterGlassShard { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: uint32_t m_hShardHandle; // 0x8 private: @@ -4983,6 +5138,8 @@ public: // Size: 0x90 class CGameRules { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: char m_szQuestName[128]; // 0x8 int32_t m_nQuestPhase; // 0x88 @@ -4992,6 +5149,8 @@ public: // Size: 0x58 class CGlowProperty { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: Vector m_fGlowColor; // 0x8 private: @@ -5027,8 +5186,10 @@ public: // Size: 0x8 class IVehicle { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 0 @@ -5043,6 +5204,8 @@ public: // Size: 0x90 struct sky3dparams_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable int16_t scale; // 0x8 @@ -5065,53 +5228,45 @@ public: WorldGroupId_t m_nWorldGroupID; // 0x88 }; -// Alignment: 17 -// Size: 0x180 +// Alignment: 12 +// Size: 0x170 class CPlayer_CameraServices : public CPlayerPawnComponent { public: - // MNetworkEnable - uint32_t m_iFOV; // 0x40 - // MNetworkEnable - uint32_t m_iFOVStart; // 0x44 - // MNetworkEnable - GameTime_t m_flFOVTime; // 0x48 - // MNetworkEnable - // MNetworkUserGroup "LocalPlayerExclusive" - float m_flFOVRate; // 0x4c // MNetworkEnable // MNetworkEncoder - QAngle m_vecCsViewPunchAngle; // 0x50 + QAngle m_vecCsViewPunchAngle; // 0x40 // MNetworkEnable - GameTick_t m_nCsViewPunchAngleTick; // 0x5c + GameTick_t m_nCsViewPunchAngleTick; // 0x4c // MNetworkEnable - float m_flCsViewPunchAngleTickRatio; // 0x60 + float m_flCsViewPunchAngleTickRatio; // 0x50 +private: + [[maybe_unused]] uint8_t __pad0054[0x4]; // 0x54 +public: // MNetworkEnable - CHandle< CBaseEntity > m_hZoomOwner; // 0x64 + fogplayerparams_t m_PlayerFog; // 0x58 // MNetworkEnable - fogplayerparams_t m_PlayerFog; // 0x68 + CHandle< CColorCorrection > m_hColorCorrectionCtrl; // 0x98 // MNetworkEnable - CHandle< CColorCorrection > m_hColorCorrectionCtrl; // 0xa8 - // MNetworkEnable - CHandle< CBaseEntity > m_hViewEntity; // 0xac + CHandle< CBaseEntity > m_hViewEntity; // 0x9c // MNetworkEnable // MNetworkUserGroup "LocalPlayerAndObserversExclusive" - CHandle< CTonemapController2 > m_hTonemapController; // 0xb0 + CHandle< CTonemapController2 > m_hTonemapController; // 0xa0 private: - [[maybe_unused]] uint8_t __pad00b4[0x4]; // 0xb4 + [[maybe_unused]] uint8_t __pad00a4[0x4]; // 0xa4 public: // MNetworkEnable // MNetworkUserGroup "LocalPlayerAndObserversExclusive" - audioparams_t m_audio; // 0xb8 + audioparams_t m_audio; // 0xa8 // MNetworkEnable // MNetworkUserGroup "LocalPlayerAndObserversExclusive" - CNetworkUtlVectorBase< CHandle< CPostProcessingVolume > > m_PostProcessingVolumes; // 0x130 - float m_flOldPlayerZ; // 0x148 - float m_flOldPlayerViewOffsetZ; // 0x14c + CNetworkUtlVectorBase< CHandle< CPostProcessingVolume > > m_PostProcessingVolumes; // 0x120 + float m_flOldPlayerZ; // 0x138 + float m_flOldPlayerViewOffsetZ; // 0x13c private: - [[maybe_unused]] uint8_t __pad0150[0x18]; // 0x150 + [[maybe_unused]] uint8_t __pad0140[0x18]; // 0x140 public: - CUtlVector< CHandle< CEnvSoundscapeTriggerable > > m_hTriggerSoundscapeList; // 0x168 + CUtlVector< CHandle< CEnvSoundscapeTriggerable > > m_hTriggerSoundscapeList; // 0x158 }; // Alignment: 4 @@ -5134,8 +5289,10 @@ public: // Size: 0x8 class IRagdoll { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 3 @@ -5159,10 +5316,12 @@ public: bool unused; // 0x31 }; -// Alignment: 2 -// Size: 0x48 +// Alignment: 3 +// Size: 0x50 struct PhysicsRagdollPose_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -5170,6 +5329,8 @@ public: // MNetworkEnable // MNetworkChangeCallback "OnTransformChanged" CNetworkUtlVectorBase< CTransform > m_Transforms; // 0x30 + // MNetworkEnable + CHandle< CBaseEntity > m_hOwner; // 0x48 }; // Alignment: 17 @@ -5227,20 +5388,27 @@ struct AmmoIndex_t { public: int8_t m_Value; // 0x0 + + // Static fields: + static bool &Get_IS_TYPESAFE_INTEGER(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("AmmoIndex_t")->m_static_fields[0]->m_instance);}; }; // Alignment: 0 // Size: 0x28 class CEntitySubclassVDataBase { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: - uint8_t __pad0000[0x28]; // Autoaligned + // No members available }; // Alignment: 4 // Size: 0x20 struct thinkfunc_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: HSCRIPT m_hFn; // 0x8 CUtlStringToken m_nContext; // 0x10 @@ -5373,7 +5541,7 @@ public: bool m_bUseAutoCompare; // 0x544 }; -// Alignment: 21 +// Alignment: 22 // Size: 0x648 class CSoundOpvarSetPointEntity : public CSoundOpvarSetPointBase { @@ -5408,6 +5576,7 @@ public: float m_flPathingDistanceNormFactor; // 0x628 Vector m_vPathingSourcePos; // 0x62c Vector m_vPathingListenerPos; // 0x638 + int32_t m_nPathingSourceIndex; // 0x644 }; // Alignment: 9 @@ -5438,6 +5607,8 @@ public: // Size: 0x670 class CSoundOpvarSetPathCornerEntity : public CSoundOpvarSetPointEntity { +private: + [[maybe_unused]] uint8_t __pad0648[0x18]; // 0x648 public: float m_flDistMinSqr; // 0x660 float m_flDistMaxSqr; // 0x664 @@ -5459,10 +5630,12 @@ public: float m_flWindMapMax; // 0x584 }; -// Alignment: 16 +// Alignment: 18 // Size: 0xa0 class CTakeDamageInfo { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: Vector m_vecDamageForce; // 0x8 Vector m_vecDamagePosition; // 0x14 @@ -5479,8 +5652,10 @@ private: [[maybe_unused]] uint8_t __pad0051[0xf]; // 0x51 public: float m_flOriginalDamage; // 0x60 + bool m_bShouldBleed; // 0x64 + bool m_bShouldSpark; // 0x65 private: - [[maybe_unused]] uint8_t __pad0064[0xc]; // 0x64 + [[maybe_unused]] uint8_t __pad0066[0xa]; // 0x66 public: TakeDamageFlags_t m_nDamageFlags; // 0x70 int32_t m_nNumObjectsPenetrated; // 0x74 @@ -5489,6 +5664,8 @@ private: [[maybe_unused]] uint8_t __pad0080[0x18]; // 0x80 public: bool m_bInTakeDamageFlow; // 0x98 + + // Static fields: static CTakeDamageInfo &Get_EmptyInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CTakeDamageInfo")->m_static_fields[0]->m_instance);}; }; @@ -5516,8 +5693,12 @@ public: // Size: 0x20 class CTakeDamageSummaryScopeGuard { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlVector< SummaryTakeDamageInfo_t* > m_vecSummaries; // 0x8 + + // Static fields: static SummaryTakeDamageInfo_t &Get_EmptySummary(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CTakeDamageSummaryScopeGuard")->m_static_fields[0]->m_instance);}; }; @@ -5533,6 +5714,8 @@ public: // Size: 0x60 class CAttributeList { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkTypeAlias "CUtlVector< CEconItemAttribute >" @@ -5544,6 +5727,8 @@ public: // Size: 0x48 class CEconItemAttribute { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: // MNetworkEnable uint16_t m_iAttributeDefinitionIndex; // 0x30 @@ -5565,14 +5750,18 @@ public: // Size: 0x8 class IEconItemInterface { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 6 // Size: 0x50 class CAttributeManager { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlVector< CHandle< CBaseEntity > > m_Providers; // 0x8 // MNetworkEnable @@ -5602,6 +5791,8 @@ public: // Size: 0x278 class CEconItemView : public IEconItemInterface { +private: + [[maybe_unused]] uint8_t __pad0008[0x30]; // 0x8 public: // MNetworkEnable uint16_t m_iItemDefinitionIndex; // 0x38 @@ -5645,8 +5836,10 @@ public: // Size: 0x8 class IHasAttributes { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 2 @@ -5662,6 +5855,8 @@ public: // Size: 0x18 struct EntitySpottedState_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "OnIsSpottedChanged" @@ -5724,6 +5919,8 @@ public: // Size: 0x198 class CRetakeGameRules { +private: + [[maybe_unused]] uint8_t __pad0000[0xf8]; // 0x0 public: // MNetworkEnable int32_t m_nMatchSeed; // 0xf8 @@ -5740,10 +5937,66 @@ public: int32_t m_iBombSite; // 0x104 }; +// Alignment: 1 +// Size: 0x30 +class CCSGameModeRules +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 +public: + // MNetworkDisable + // MNetworkChangeAccessorFieldPathIndex + CNetworkVarChainer __m_pChainEntity; // 0x8 +}; + +// Alignment: 0 +// Size: 0x30 +class CCSGameModeRules_Noop : public CCSGameModeRules +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0xd0 +class CCSGameModeScript : public CBasePulseGraphInstance +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x30 +class CCSGameModeRules_Scripted : public CCSGameModeRules +{ +public: + // No members available +}; + +// Alignment: 5 +// Size: 0x40 +class CCSGameModeRules_Deathmatch : public CCSGameModeRules +{ +public: + bool m_bFirstThink; // 0x30 + bool m_bFirstThinkAfterConnected; // 0x31 +private: + [[maybe_unused]] uint8_t __pad0032[0x2]; // 0x32 +public: + // MNetworkEnable + GameTime_t m_flDMBonusStartTime; // 0x34 + // MNetworkEnable + float m_flDMBonusTimeLength; // 0x38 + // MNetworkEnable + int16_t m_nDMBonusWeaponLoadoutSlot; // 0x3c +}; + // Alignment: 38 // Size: 0x1c98 class CSurvivalGameRules { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: bool m_bBoundsInitialized; // 0x8 private: @@ -5824,14 +6077,18 @@ public: // Size: 0x1 class QuestProgress { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 13 // Size: 0x68 struct CSPerRoundStats_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: // MNetworkEnable int32_t m_iKills; // 0x30 @@ -5898,26 +6155,30 @@ public: int32_t m_iEntryWins; // 0xb0 }; -// Alignment: 4 -// Size: 0x740 +// Alignment: 6 +// Size: 0x748 class CCSGO_TeamPreviewCharacterPosition : public CBaseEntity { public: // MNetworkEnable - int32_t m_nOrdinal; // 0x4b0 + int32_t m_nVariant; // 0x4b0 + // MNetworkEnable + int32_t m_nRandom; // 0x4b4 + // MNetworkEnable + int32_t m_nOrdinal; // 0x4b8 private: - [[maybe_unused]] uint8_t __pad04b4[0x4]; // 0x4b4 + [[maybe_unused]] uint8_t __pad04bc[0x4]; // 0x4bc public: // MNetworkEnable - CUtlString m_sWeaponName; // 0x4b8 + CUtlString m_sWeaponName; // 0x4c0 // MNetworkEnable - uint64_t m_xuid; // 0x4c0 + uint64_t m_xuid; // 0x4c8 // MNetworkEnable - CEconItemView m_weaponItem; // 0x4c8 + CEconItemView m_weaponItem; // 0x4d0 }; // Alignment: 0 -// Size: 0x740 +// Size: 0x748 class CCSGO_TeamSelectCharacterPosition : public CCSGO_TeamPreviewCharacterPosition { public: @@ -5925,7 +6186,7 @@ public: }; // Alignment: 0 -// Size: 0x740 +// Size: 0x748 class CCSGO_TeamSelectTerroristPosition : public CCSGO_TeamSelectCharacterPosition { public: @@ -5933,7 +6194,7 @@ public: }; // Alignment: 0 -// Size: 0x740 +// Size: 0x748 class CCSGO_TeamSelectCounterTerroristPosition : public CCSGO_TeamSelectCharacterPosition { public: @@ -5941,7 +6202,7 @@ public: }; // Alignment: 0 -// Size: 0x740 +// Size: 0x748 class CCSGO_TeamIntroCharacterPosition : public CCSGO_TeamPreviewCharacterPosition { public: @@ -5949,7 +6210,7 @@ public: }; // Alignment: 0 -// Size: 0x740 +// Size: 0x748 class CCSGO_TeamIntroTerroristPosition : public CCSGO_TeamIntroCharacterPosition { public: @@ -5957,13 +6218,37 @@ public: }; // Alignment: 0 -// Size: 0x740 +// Size: 0x748 class CCSGO_TeamIntroCounterTerroristPosition : public CCSGO_TeamIntroCharacterPosition { public: // No members available }; +// Alignment: 0 +// Size: 0x748 +class CCSGO_WingmanIntroCharacterPosition : public CCSGO_TeamIntroCharacterPosition +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x748 +class CCSGO_WingmanIntroTerroristPosition : public CCSGO_WingmanIntroCharacterPosition +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x748 +class CCSGO_WingmanIntroCounterTerroristPosition : public CCSGO_WingmanIntroCharacterPosition +{ +public: + // No members available +}; + // Alignment: 0 // Size: 0x4b0 class CCSMinimapBoundary : public CBaseEntity @@ -5973,17 +6258,21 @@ public: }; // Alignment: 0 -// Size: 0x120 +// Size: 0x510 class CCSGOPlayerAnimGraphState { +private: + [[maybe_unused]] uint8_t __pad0000[0x510]; // 0x0 public: - uint8_t __pad0000[0x120]; // Autoaligned + // No members available }; // Alignment: 2 // Size: 0x38 struct WeaponPurchaseCount_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 public: // MNetworkEnable uint16_t m_nItemDefIndex; // 0x30 @@ -5995,35 +6284,41 @@ public: // Size: 0x58 struct WeaponPurchaseTracker_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MNetworkEnable CUtlVectorEmbeddedNetworkVar< WeaponPurchaseCount_t > m_weaponPurchases; // 0x8 }; // Alignment: 4 -// Size: 0x328 +// Size: 0x320 class CCSPlayer_ActionTrackingServices : public CPlayerPawnComponent { -public: - CBasePlayerWeapon* m_lastWeaponBeforeC4AutoSwitch; // 0x230 private: - [[maybe_unused]] uint8_t __pad0238[0x30]; // 0x238 + [[maybe_unused]] uint8_t __pad0040[0x1f0]; // 0x40 public: - // MNetworkEnable - bool m_bIsRescuing; // 0x268 + CHandle< CBasePlayerWeapon > m_hLastWeaponBeforeC4AutoSwitch; // 0x230 private: - [[maybe_unused]] uint8_t __pad0269[0x7]; // 0x269 + [[maybe_unused]] uint8_t __pad0234[0x30]; // 0x234 public: // MNetworkEnable - WeaponPurchaseTracker_t m_weaponPurchasesThisMatch; // 0x270 + bool m_bIsRescuing; // 0x264 +private: + [[maybe_unused]] uint8_t __pad0265[0x3]; // 0x265 +public: // MNetworkEnable - WeaponPurchaseTracker_t m_weaponPurchasesThisRound; // 0x2c8 + WeaponPurchaseTracker_t m_weaponPurchasesThisMatch; // 0x268 + // MNetworkEnable + WeaponPurchaseTracker_t m_weaponPurchasesThisRound; // 0x2c0 }; // Alignment: 5 // Size: 0x4d8 class CPlayerPing : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: // MNetworkEnable CHandle< CBaseEntity > m_hPlayer; // 0x4b8 @@ -6082,17 +6377,67 @@ public: int32_t m_totalHitsOnServer; // 0x40 }; -// Alignment: 2 -// Size: 0x1a0 +// Alignment: 5 +// Size: 0x48 +struct SellbackPurchaseEntry_t +{ +private: + [[maybe_unused]] uint8_t __pad0000[0x30]; // 0x0 +public: + // MNetworkEnable + uint16_t m_unDefIdx; // 0x30 +private: + [[maybe_unused]] uint8_t __pad0032[0x2]; // 0x32 +public: + // MNetworkEnable + int32_t m_nCost; // 0x34 + // MNetworkEnable + int32_t m_nPrevArmor; // 0x38 + // MNetworkEnable + bool m_bPrevHelmet; // 0x3c +private: + [[maybe_unused]] uint8_t __pad003d[0x3]; // 0x3d +public: + // MNetworkEnable + CEntityHandle m_hItem; // 0x40 +}; + +// Alignment: 1 +// Size: 0x118 +class CCSPlayer_BuyServices : public CPlayerPawnComponent +{ +private: + [[maybe_unused]] uint8_t __pad0040[0x88]; // 0x40 +public: + // MNetworkEnable + CUtlVectorEmbeddedNetworkVar< SellbackPurchaseEntry_t > m_vecSellbackPurchaseEntries; // 0xc8 +}; + +// Alignment: 7 +// Size: 0x1a8 class CCSPlayer_CameraServices : public CPlayer_CameraServices { public: - CUtlVector< CHandle< CBaseEntity > > m_hTriggerFogList; // 0x180 - CHandle< CBaseEntity > m_hLastFogTrigger; // 0x198 + // MNetworkEnable + uint32_t m_iFOV; // 0x170 + // MNetworkEnable + uint32_t m_iFOVStart; // 0x174 + // MNetworkEnable + GameTime_t m_flFOVTime; // 0x178 + // MNetworkEnable + // MNetworkUserGroup "LocalPlayerExclusive" + float m_flFOVRate; // 0x17c + // MNetworkEnable + CHandle< CBaseEntity > m_hZoomOwner; // 0x180 +private: + [[maybe_unused]] uint8_t __pad0184[0x4]; // 0x184 +public: + CUtlVector< CHandle< CBaseEntity > > m_hTriggerFogList; // 0x188 + CHandle< CBaseEntity > m_hLastFogTrigger; // 0x1a0 }; // Alignment: 2 -// Size: 0x50 +// Size: 0x48 class CCSPlayer_HostageServices : public CPlayerPawnComponent { public: @@ -6102,8 +6447,8 @@ public: CHandle< CBaseEntity > m_hCarriedHostageProp; // 0x44 }; -// Alignment: 8 -// Size: 0x50 +// Alignment: 3 +// Size: 0x48 class CCSPlayer_ItemServices : public CPlayer_ItemServices { public: @@ -6113,113 +6458,95 @@ public: bool m_bHasHelmet; // 0x41 // MNetworkEnable bool m_bHasHeavyArmor; // 0x42 - // MNetworkEnable - bool m_bKevlarIsRefundable; // 0x43 - // MNetworkEnable - bool m_bAssaultSuitIsRefundable; // 0x44 - // MNetworkEnable - bool m_bDefuserIsRefundable; // 0x45 -private: - [[maybe_unused]] uint8_t __pad0046[0x2]; // 0x46 -public: - // MNetworkEnable - int32_t m_nPrevArmorValue; // 0x48 - // MNetworkEnable - bool m_bPrevHadHelmet; // 0x4c }; -// Alignment: 38 -// Size: 0x13e0 +// Alignment: 37 +// Size: 0x4f0 class CCSPlayer_MovementServices : public CPlayer_MovementServices_Humanoid { public: // MNetworkEnable - float m_flMaxFallVelocity; // 0x218 + float m_flMaxFallVelocity; // 0x220 // MNetworkEnable // MNetworkEncoder - Vector m_vecLadderNormal; // 0x21c + Vector m_vecLadderNormal; // 0x224 // MNetworkEnable - int32_t m_nLadderSurfacePropIndex; // 0x228 + int32_t m_nLadderSurfacePropIndex; // 0x230 // MNetworkEnable - // MNetworkUserGroup "LocalPlayerExclusive" - bool m_bAllowAutoMovement; // 0x22c + float m_flDuckAmount; // 0x234 + // MNetworkEnable + float m_flDuckSpeed; // 0x238 + // MNetworkEnable + bool m_bDuckOverride; // 0x23c + // MNetworkEnable + bool m_bDesiresDuck; // 0x23d private: - [[maybe_unused]] uint8_t __pad022d[0x3]; // 0x22d + [[maybe_unused]] uint8_t __pad023e[0x2]; // 0x23e public: - // MNetworkEnable - float m_flDuckAmount; // 0x230 - // MNetworkEnable - float m_flDuckSpeed; // 0x234 - // MNetworkEnable - bool m_bDuckOverride; // 0x238 -private: - [[maybe_unused]] uint8_t __pad0239[0x3]; // 0x239 -public: - float m_flDuckOffset; // 0x23c + float m_flDuckOffset; // 0x240 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" // MNetworkPriority "32" - uint32_t m_nDuckTimeMsecs; // 0x240 + uint32_t m_nDuckTimeMsecs; // 0x244 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - uint32_t m_nDuckJumpTimeMsecs; // 0x244 + uint32_t m_nDuckJumpTimeMsecs; // 0x248 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - uint32_t m_nJumpTimeMsecs; // 0x248 + uint32_t m_nJumpTimeMsecs; // 0x24c // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - float m_flLastDuckTime; // 0x24c + float m_flLastDuckTime; // 0x250 private: - [[maybe_unused]] uint8_t __pad0250[0x8]; // 0x250 + [[maybe_unused]] uint8_t __pad0254[0xc]; // 0x254 public: - Vector2D m_vecLastPositionAtFullCrouchSpeed; // 0x258 - bool m_duckUntilOnGround; // 0x260 - bool m_bHasWalkMovedSinceLastJump; // 0x261 - bool m_bInStuckTest; // 0x262 + Vector2D m_vecLastPositionAtFullCrouchSpeed; // 0x260 + bool m_duckUntilOnGround; // 0x268 + bool m_bHasWalkMovedSinceLastJump; // 0x269 + bool m_bInStuckTest; // 0x26a private: - [[maybe_unused]] uint8_t __pad0263[0x5]; // 0x263 + [[maybe_unused]] uint8_t __pad026b[0xd]; // 0x26b public: - uint64_t m_CachedGetPointContents[3][64]; // 0x268 - Vector m_CachedGetPointContentsPoint[3][64]; // 0x868 + float m_flStuckCheckTime[2][64]; // 0x278 + int32_t m_nTraceCount; // 0x478 + int32_t m_StuckLast; // 0x47c + bool m_bSpeedCropped; // 0x480 private: - [[maybe_unused]] uint8_t __pad1168[0x8]; // 0x1168 + [[maybe_unused]] uint8_t __pad0481[0x3]; // 0x481 public: - float m_flStuckCheckTime[2][64]; // 0x1170 - int32_t m_nTraceCount; // 0x1370 - int32_t m_StuckLast; // 0x1374 - bool m_bSpeedCropped; // 0x1378 + int32_t m_nOldWaterLevel; // 0x484 + float m_flWaterEntryTime; // 0x488 + Vector m_vecForward; // 0x48c + Vector m_vecLeft; // 0x498 + Vector m_vecUp; // 0x4a4 + Vector m_vecPreviouslyPredictedOrigin; // 0x4b0 + bool m_bMadeFootstepNoise; // 0x4bc private: - [[maybe_unused]] uint8_t __pad1379[0x3]; // 0x1379 + [[maybe_unused]] uint8_t __pad04bd[0x3]; // 0x4bd public: - int32_t m_nOldWaterLevel; // 0x137c - float m_flWaterEntryTime; // 0x1380 - Vector m_vecForward; // 0x1384 - Vector m_vecLeft; // 0x1390 - Vector m_vecUp; // 0x139c - Vector m_vecPreviouslyPredictedOrigin; // 0x13a8 - bool m_bMadeFootstepNoise; // 0x13b4 -private: - [[maybe_unused]] uint8_t __pad13b5[0x3]; // 0x13b5 -public: - int32_t m_iFootsteps; // 0x13b8 - int32_t m_nRoundFootstepsMade; // 0x13bc + int32_t m_iFootsteps; // 0x4c0 + int32_t m_nRoundFootstepsMade; // 0x4c4 // MNetworkEnable - bool m_bOldJumpPressed; // 0x13c0 + bool m_bOldJumpPressed; // 0x4c8 private: - [[maybe_unused]] uint8_t __pad13c1[0x3]; // 0x13c1 + [[maybe_unused]] uint8_t __pad04c9[0x3]; // 0x4c9 +public: + float m_flJumpPressedTime; // 0x4cc + // MNetworkEnable + float m_flJumpUntil; // 0x4d0 + // MNetworkEnable + float m_flJumpVel; // 0x4d4 + // MNetworkEnable + GameTime_t m_fStashGrenadeParameterWhen; // 0x4d8 +private: + [[maybe_unused]] uint8_t __pad04dc[0x4]; // 0x4dc public: // MNetworkEnable - float m_flJumpUntil; // 0x13c4 + uint64_t m_nButtonDownMaskPrev; // 0x4e0 // MNetworkEnable - float m_flJumpVel; // 0x13c8 + float m_flOffsetTickCompleteTime; // 0x4e8 // MNetworkEnable - GameTime_t m_fStashGrenadeParameterWhen; // 0x13cc - // MNetworkEnable - uint64_t m_nButtonDownMaskPrev; // 0x13d0 - // MNetworkEnable - float m_flOffsetTickCompleteTime; // 0x13d8 - // MNetworkEnable - float m_flOffsetTickStashedSpeed; // 0x13dc + float m_flOffsetTickStashedSpeed; // 0x4ec }; // Alignment: 0 @@ -6335,6 +6662,8 @@ public: // Size: 0x70 class CDamageRecord { +private: + [[maybe_unused]] uint8_t __pad0000[0x28]; // 0x0 public: // MNetworkEnable CHandle< CCSPlayerPawnBase > m_PlayerDamager; // 0x28 @@ -6404,7 +6733,7 @@ public: }; // Alignment: 9 -// Size: 0x8f8 +// Size: 0xff0 class CCSPlayerController_InventoryServices : public CPlayerControllerComponent { public: @@ -6424,22 +6753,24 @@ public: // MNetworkEnable int32_t m_nPersonaDataPublicCommendsFriendly; // 0x68 private: - [[maybe_unused]] uint8_t __pad006c[0x7e4]; // 0x6c + [[maybe_unused]] uint8_t __pad006c[0xedc]; // 0x6c public: - uint32_t m_unEquippedPlayerSprayIDs[1]; // 0x850 + uint32_t m_unEquippedPlayerSprayIDs[1]; // 0xf48 private: - [[maybe_unused]] uint8_t __pad0854[0x4]; // 0x854 + [[maybe_unused]] uint8_t __pad0f4c[0x4]; // 0xf4c public: // MNetworkEnable - CUtlVectorEmbeddedNetworkVar< CEconItemView > m_vecTerroristLoadoutCache; // 0x858 + CUtlVectorEmbeddedNetworkVar< CEconItemView > m_vecTerroristLoadoutCache; // 0xf50 // MNetworkEnable - CUtlVectorEmbeddedNetworkVar< CEconItemView > m_vecCounterTerroristLoadoutCache; // 0x8a8 + CUtlVectorEmbeddedNetworkVar< CEconItemView > m_vecCounterTerroristLoadoutCache; // 0xfa0 }; -// Alignment: 203 +// Alignment: 202 // Size: 0x3858 class CCSGameRules : public CTeamplayRules { +private: + [[maybe_unused]] uint8_t __pad0090[0x8]; // 0x90 public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex @@ -6557,325 +6888,326 @@ private: [[maybe_unused]] uint8_t __pad0501[0x3]; // 0x501 public: // MNetworkEnable - float m_flDMBonusStartTime; // 0x504 + int32_t m_nNextMapInMapgroup; // 0x504 // MNetworkEnable - float m_flDMBonusTimeLength; // 0x508 + char m_szTournamentEventName[512]; // 0x508 // MNetworkEnable - uint16_t m_unDMBonusWeaponItemDefIndex; // 0x50c + char m_szTournamentEventStage[512]; // 0x708 // MNetworkEnable - bool m_bDMBonusActive; // 0x50e + char m_szMatchStatTxt[512]; // 0x908 + // MNetworkEnable + char m_szTournamentPredictionsTxt[512]; // 0xb08 + // MNetworkEnable + int32_t m_nTournamentPredictionsPct; // 0xd08 + // MNetworkEnable + GameTime_t m_flCMMItemDropRevealStartTime; // 0xd0c + // MNetworkEnable + GameTime_t m_flCMMItemDropRevealEndTime; // 0xd10 + // MNetworkEnable + bool m_bIsDroppingItems; // 0xd14 + // MNetworkEnable + bool m_bIsQuestEligible; // 0xd15 private: - [[maybe_unused]] uint8_t __pad050f[0x1]; // 0x50f + [[maybe_unused]] uint8_t __pad0d16[0x2]; // 0xd16 public: // MNetworkEnable - int32_t m_nNextMapInMapgroup; // 0x510 + int32_t m_nGuardianModeWaveNumber; // 0xd18 // MNetworkEnable - char m_szTournamentEventName[512]; // 0x514 + int32_t m_nGuardianModeSpecialKillsRemaining; // 0xd1c // MNetworkEnable - char m_szTournamentEventStage[512]; // 0x714 + int32_t m_nGuardianModeSpecialWeaponNeeded; // 0xd20 + int32_t m_nGuardianGrenadesToGiveBots; // 0xd24 + int32_t m_nNumHeaviesToSpawn; // 0xd28 // MNetworkEnable - char m_szMatchStatTxt[512]; // 0x914 + uint32_t m_numGlobalGiftsGiven; // 0xd2c // MNetworkEnable - char m_szTournamentPredictionsTxt[512]; // 0xb14 + uint32_t m_numGlobalGifters; // 0xd30 // MNetworkEnable - int32_t m_nTournamentPredictionsPct; // 0xd14 + uint32_t m_numGlobalGiftsPeriodSeconds; // 0xd34 // MNetworkEnable - GameTime_t m_flCMMItemDropRevealStartTime; // 0xd18 + uint32_t m_arrFeaturedGiftersAccounts[4]; // 0xd38 // MNetworkEnable - GameTime_t m_flCMMItemDropRevealEndTime; // 0xd1c + uint32_t m_arrFeaturedGiftersGifts[4]; // 0xd48 // MNetworkEnable - bool m_bIsDroppingItems; // 0xd20 + uint16_t m_arrProhibitedItemIndices[100]; // 0xd58 // MNetworkEnable - bool m_bIsQuestEligible; // 0xd21 + uint32_t m_arrTournamentActiveCasterAccounts[4]; // 0xe20 + // MNetworkEnable + int32_t m_numBestOfMaps; // 0xe30 + // MNetworkEnable + int32_t m_nHalloweenMaskListSeed; // 0xe34 + // MNetworkEnable + bool m_bBombDropped; // 0xe38 + // MNetworkEnable + bool m_bBombPlanted; // 0xe39 private: - [[maybe_unused]] uint8_t __pad0d22[0x2]; // 0xd22 + [[maybe_unused]] uint8_t __pad0e3a[0x2]; // 0xe3a public: // MNetworkEnable - int32_t m_nGuardianModeWaveNumber; // 0xd24 + int32_t m_iRoundWinStatus; // 0xe3c // MNetworkEnable - int32_t m_nGuardianModeSpecialKillsRemaining; // 0xd28 + int32_t m_eRoundWinReason; // 0xe40 // MNetworkEnable - int32_t m_nGuardianModeSpecialWeaponNeeded; // 0xd2c - int32_t m_nGuardianGrenadesToGiveBots; // 0xd30 - int32_t m_nNumHeaviesToSpawn; // 0xd34 + bool m_bTCantBuy; // 0xe44 // MNetworkEnable - uint32_t m_numGlobalGiftsGiven; // 0xd38 - // MNetworkEnable - uint32_t m_numGlobalGifters; // 0xd3c - // MNetworkEnable - uint32_t m_numGlobalGiftsPeriodSeconds; // 0xd40 - // MNetworkEnable - uint32_t m_arrFeaturedGiftersAccounts[4]; // 0xd44 - // MNetworkEnable - uint32_t m_arrFeaturedGiftersGifts[4]; // 0xd54 - // MNetworkEnable - uint16_t m_arrProhibitedItemIndices[100]; // 0xd64 - // MNetworkEnable - uint32_t m_arrTournamentActiveCasterAccounts[4]; // 0xe2c - // MNetworkEnable - int32_t m_numBestOfMaps; // 0xe3c - // MNetworkEnable - int32_t m_nHalloweenMaskListSeed; // 0xe40 - // MNetworkEnable - bool m_bBombDropped; // 0xe44 - // MNetworkEnable - bool m_bBombPlanted; // 0xe45 + bool m_bCTCantBuy; // 0xe45 private: [[maybe_unused]] uint8_t __pad0e46[0x2]; // 0xe46 public: // MNetworkEnable - int32_t m_iRoundWinStatus; // 0xe48 + GameTime_t m_flGuardianBuyUntilTime; // 0xe48 // MNetworkEnable - int32_t m_eRoundWinReason; // 0xe4c + int32_t m_iMatchStats_RoundResults[30]; // 0xe4c // MNetworkEnable - bool m_bTCantBuy; // 0xe50 + int32_t m_iMatchStats_PlayersAlive_CT[30]; // 0xec4 // MNetworkEnable - bool m_bCTCantBuy; // 0xe51 + int32_t m_iMatchStats_PlayersAlive_T[30]; // 0xf3c + // MNetworkEnable + float m_TeamRespawnWaveTimes[32]; // 0xfb4 + // MNetworkEnable + GameTime_t m_flNextRespawnWave[32]; // 0x1034 + // MNetworkEnable + int32_t m_nServerQuestID; // 0x10b4 + // MNetworkEnable + Vector m_vMinimapMins; // 0x10b8 + // MNetworkEnable + Vector m_vMinimapMaxs; // 0x10c4 + // MNetworkEnable + float m_MinimapVerticalSectionHeights[8]; // 0x10d0 + bool m_bDontIncrementCoopWave; // 0x10f0 + bool m_bSpawnedTerrorHuntHeavy; // 0x10f1 private: - [[maybe_unused]] uint8_t __pad0e52[0x2]; // 0xe52 + [[maybe_unused]] uint8_t __pad10f2[0x2]; // 0x10f2 public: // MNetworkEnable - GameTime_t m_flGuardianBuyUntilTime; // 0xe54 + int32_t m_nEndMatchMapGroupVoteTypes[10]; // 0x10f4 // MNetworkEnable - int32_t m_iMatchStats_RoundResults[30]; // 0xe58 + int32_t m_nEndMatchMapGroupVoteOptions[10]; // 0x111c // MNetworkEnable - int32_t m_iMatchStats_PlayersAlive_CT[30]; // 0xed0 + int32_t m_nEndMatchMapVoteWinner; // 0x1144 // MNetworkEnable - int32_t m_iMatchStats_PlayersAlive_T[30]; // 0xf48 + int32_t m_iNumConsecutiveCTLoses; // 0x1148 // MNetworkEnable - float m_TeamRespawnWaveTimes[32]; // 0xfc0 - // MNetworkEnable - GameTime_t m_flNextRespawnWave[32]; // 0x1040 - // MNetworkEnable - int32_t m_nServerQuestID; // 0x10c0 - // MNetworkEnable - Vector m_vMinimapMins; // 0x10c4 - // MNetworkEnable - Vector m_vMinimapMaxs; // 0x10d0 - // MNetworkEnable - float m_MinimapVerticalSectionHeights[8]; // 0x10dc - bool m_bDontIncrementCoopWave; // 0x10fc - bool m_bSpawnedTerrorHuntHeavy; // 0x10fd + int32_t m_iNumConsecutiveTerroristLoses; // 0x114c private: - [[maybe_unused]] uint8_t __pad10fe[0x2]; // 0x10fe + [[maybe_unused]] uint8_t __pad1150[0x18]; // 0x1150 +public: + bool m_bHasHostageBeenTouched; // 0x1168 +private: + [[maybe_unused]] uint8_t __pad1169[0x3]; // 0x1169 +public: + GameTime_t m_flIntermissionStartTime; // 0x116c + GameTime_t m_flIntermissionEndTime; // 0x1170 + bool m_bLevelInitialized; // 0x1174 +private: + [[maybe_unused]] uint8_t __pad1175[0x3]; // 0x1175 +public: + int32_t m_iTotalRoundsPlayed; // 0x1178 + int32_t m_iUnBalancedRounds; // 0x117c + bool m_endMatchOnRoundReset; // 0x1180 + bool m_endMatchOnThink; // 0x1181 +private: + [[maybe_unused]] uint8_t __pad1182[0x2]; // 0x1182 +public: + int32_t m_iFreezeTime; // 0x1184 + int32_t m_iNumTerrorist; // 0x1188 + int32_t m_iNumCT; // 0x118c + int32_t m_iNumSpawnableTerrorist; // 0x1190 + int32_t m_iNumSpawnableCT; // 0x1194 + CUtlVector< int32 > m_arrSelectedHostageSpawnIndices; // 0x1198 + bool m_bFirstConnected; // 0x11b0 + bool m_bCompleteReset; // 0x11b1 + bool m_bPickNewTeamsOnReset; // 0x11b2 + bool m_bScrambleTeamsOnRestart; // 0x11b3 + bool m_bSwapTeamsOnRestart; // 0x11b4 +private: + [[maybe_unused]] uint8_t __pad11b5[0xb]; // 0x11b5 +public: + CUtlVector< int32 > m_nEndMatchTiedVotes; // 0x11c0 +private: + [[maybe_unused]] uint8_t __pad11d8[0x4]; // 0x11d8 +public: + bool m_bNeedToAskPlayersForContinueVote; // 0x11dc +private: + [[maybe_unused]] uint8_t __pad11dd[0x3]; // 0x11dd +public: + uint32_t m_numQueuedMatchmakingAccounts; // 0x11e0 +private: + [[maybe_unused]] uint8_t __pad11e4[0x4]; // 0x11e4 +public: + char* m_pQueuedMatchmakingReservationString; // 0x11e8 + uint32_t m_numTotalTournamentDrops; // 0x11f0 + uint32_t m_numSpectatorsCountMax; // 0x11f4 + uint32_t m_numSpectatorsCountMaxTV; // 0x11f8 + uint32_t m_numSpectatorsCountMaxLnk; // 0x11fc +private: + [[maybe_unused]] uint8_t __pad1200[0x8]; // 0x1200 +public: + bool m_bForceTeamChangeSilent; // 0x1208 + bool m_bLoadingRoundBackupData; // 0x1209 +private: + [[maybe_unused]] uint8_t __pad120a[0x36]; // 0x120a +public: + int32_t m_nMatchInfoShowType; // 0x1240 + float m_flMatchInfoDecidedTime; // 0x1244 +private: + [[maybe_unused]] uint8_t __pad1248[0x18]; // 0x1248 +public: + float m_flCoopRespawnAndHealTime; // 0x1260 + int32_t m_coopBonusCoinsFound; // 0x1264 + bool m_coopBonusPistolsOnly; // 0x1268 + bool m_coopPlayersInDeploymentZone; // 0x1269 + bool m_coopMissionDeadPlayerRespawnEnabled; // 0x126a +private: + [[maybe_unused]] uint8_t __pad126b[0x1]; // 0x126b +public: + int32_t mTeamDMLastWinningTeamNumber; // 0x126c + float mTeamDMLastThinkTime; // 0x1270 + float m_flTeamDMLastAnnouncementTime; // 0x1274 + int32_t m_iAccountTerrorist; // 0x1278 + int32_t m_iAccountCT; // 0x127c + int32_t m_iSpawnPointCount_Terrorist; // 0x1280 + int32_t m_iSpawnPointCount_CT; // 0x1284 + int32_t m_iMaxNumTerrorists; // 0x1288 + int32_t m_iMaxNumCTs; // 0x128c + int32_t m_iLoserBonus; // 0x1290 + int32_t m_iLoserBonusMostRecentTeam; // 0x1294 + float m_tmNextPeriodicThink; // 0x1298 + bool m_bVoiceWonMatchBragFired; // 0x129c +private: + [[maybe_unused]] uint8_t __pad129d[0x3]; // 0x129d +public: + float m_fWarmupNextChatNoticeTime; // 0x12a0 +private: + [[maybe_unused]] uint8_t __pad12a4[0x4]; // 0x12a4 +public: + int32_t m_iHostagesRescued; // 0x12a8 + int32_t m_iHostagesTouched; // 0x12ac + float m_flNextHostageAnnouncement; // 0x12b0 + bool m_bNoTerroristsKilled; // 0x12b4 + bool m_bNoCTsKilled; // 0x12b5 + bool m_bNoEnemiesKilled; // 0x12b6 + bool m_bCanDonateWeapons; // 0x12b7 +private: + [[maybe_unused]] uint8_t __pad12b8[0x4]; // 0x12b8 +public: + float m_firstKillTime; // 0x12bc +private: + [[maybe_unused]] uint8_t __pad12c0[0x4]; // 0x12c0 +public: + float m_firstBloodTime; // 0x12c4 +private: + [[maybe_unused]] uint8_t __pad12c8[0x18]; // 0x12c8 +public: + bool m_hostageWasInjured; // 0x12e0 + bool m_hostageWasKilled; // 0x12e1 +private: + [[maybe_unused]] uint8_t __pad12e2[0xe]; // 0x12e2 +public: + bool m_bVoteCalled; // 0x12f0 + bool m_bServerVoteOnReset; // 0x12f1 +private: + [[maybe_unused]] uint8_t __pad12f2[0x2]; // 0x12f2 +public: + float m_flVoteCheckThrottle; // 0x12f4 + bool m_bBuyTimeEnded; // 0x12f8 +private: + [[maybe_unused]] uint8_t __pad12f9[0x3]; // 0x12f9 +public: + int32_t m_nLastFreezeEndBeep; // 0x12fc + bool m_bTargetBombed; // 0x1300 + bool m_bBombDefused; // 0x1301 + bool m_bMapHasBombZone; // 0x1302 + bool m_bGunGameRespawnWithBomb; // 0x1303 + float m_fGunGameBombRespawnTimer; // 0x1304 +private: + [[maybe_unused]] uint8_t __pad1308[0x1c]; // 0x1308 +public: + Vector m_vecMainCTSpawnPos; // 0x1324 + CUtlVector< SpawnPoint* > m_CTSpawnPointsMasterList; // 0x1330 + CUtlVector< SpawnPoint* > m_TerroristSpawnPointsMasterList; // 0x1348 + int32_t m_iNextCTSpawnPoint; // 0x1360 + int32_t m_iNextTerroristSpawnPoint; // 0x1364 + CUtlVector< SpawnPoint* > m_CTSpawnPoints; // 0x1368 + CUtlVector< SpawnPoint* > m_TerroristSpawnPoints; // 0x1380 + bool m_bIsUnreservedGameServer; // 0x1398 +private: + [[maybe_unused]] uint8_t __pad1399[0x3]; // 0x1399 +public: + float m_fAutobalanceDisplayTime; // 0x139c +private: + [[maybe_unused]] uint8_t __pad13a0[0x268]; // 0x13a0 +public: + bool m_bAllowWeaponSwitch; // 0x1608 + bool m_bRoundTimeWarningTriggered; // 0x1609 +private: + [[maybe_unused]] uint8_t __pad160a[0x2]; // 0x160a +public: + GameTime_t m_phaseChangeAnnouncementTime; // 0x160c + float m_fNextUpdateTeamClanNamesTime; // 0x1610 + GameTime_t m_flLastThinkTime; // 0x1614 + float m_fAccumulatedRoundOffDamage; // 0x1618 + int32_t m_nShorthandedBonusLastEvalRound; // 0x161c +private: + [[maybe_unused]] uint8_t __pad1620[0x278]; // 0x1620 public: // MNetworkEnable - int32_t m_nEndMatchMapGroupVoteTypes[10]; // 0x1100 - // MNetworkEnable - int32_t m_nEndMatchMapGroupVoteOptions[10]; // 0x1128 - // MNetworkEnable - int32_t m_nEndMatchMapVoteWinner; // 0x1150 - // MNetworkEnable - int32_t m_iNumConsecutiveCTLoses; // 0x1154 - // MNetworkEnable - int32_t m_iNumConsecutiveTerroristLoses; // 0x1158 + bool m_bMatchAbortedDueToPlayerBan; // 0x1898 + bool m_bHasTriggeredRoundStartMusic; // 0x1899 + bool m_bHasTriggeredCoopSpawnReset; // 0x189a + bool m_bSwitchingTeamsAtRoundReset; // 0x189b + int32_t m_iMaxGunGameProgressiveWeaponIndex; // 0x189c private: - [[maybe_unused]] uint8_t __pad115c[0x1c]; // 0x115c -public: - bool m_bHasHostageBeenTouched; // 0x1178 -private: - [[maybe_unused]] uint8_t __pad1179[0x3]; // 0x1179 -public: - GameTime_t m_flIntermissionStartTime; // 0x117c - GameTime_t m_flIntermissionEndTime; // 0x1180 - bool m_bLevelInitialized; // 0x1184 -private: - [[maybe_unused]] uint8_t __pad1185[0x3]; // 0x1185 -public: - int32_t m_iTotalRoundsPlayed; // 0x1188 - int32_t m_iUnBalancedRounds; // 0x118c - bool m_endMatchOnRoundReset; // 0x1190 - bool m_endMatchOnThink; // 0x1191 -private: - [[maybe_unused]] uint8_t __pad1192[0x2]; // 0x1192 -public: - int32_t m_iFreezeTime; // 0x1194 - int32_t m_iNumTerrorist; // 0x1198 - int32_t m_iNumCT; // 0x119c - int32_t m_iNumSpawnableTerrorist; // 0x11a0 - int32_t m_iNumSpawnableCT; // 0x11a4 - CUtlVector< int32 > m_arrSelectedHostageSpawnIndices; // 0x11a8 - bool m_bFirstConnected; // 0x11c0 - bool m_bCompleteReset; // 0x11c1 - bool m_bPickNewTeamsOnReset; // 0x11c2 - bool m_bScrambleTeamsOnRestart; // 0x11c3 - bool m_bSwapTeamsOnRestart; // 0x11c4 -private: - [[maybe_unused]] uint8_t __pad11c5[0xb]; // 0x11c5 -public: - CUtlVector< int32 > m_nEndMatchTiedVotes; // 0x11d0 -private: - [[maybe_unused]] uint8_t __pad11e8[0x4]; // 0x11e8 -public: - bool m_bNeedToAskPlayersForContinueVote; // 0x11ec -private: - [[maybe_unused]] uint8_t __pad11ed[0x3]; // 0x11ed -public: - uint32_t m_numQueuedMatchmakingAccounts; // 0x11f0 -private: - [[maybe_unused]] uint8_t __pad11f4[0x4]; // 0x11f4 -public: - char* m_pQueuedMatchmakingReservationString; // 0x11f8 - uint32_t m_numTotalTournamentDrops; // 0x1200 - uint32_t m_numSpectatorsCountMax; // 0x1204 - uint32_t m_numSpectatorsCountMaxTV; // 0x1208 - uint32_t m_numSpectatorsCountMaxLnk; // 0x120c -private: - [[maybe_unused]] uint8_t __pad1210[0x8]; // 0x1210 -public: - bool m_bForceTeamChangeSilent; // 0x1218 - bool m_bLoadingRoundBackupData; // 0x1219 -private: - [[maybe_unused]] uint8_t __pad121a[0x36]; // 0x121a -public: - int32_t m_nMatchInfoShowType; // 0x1250 - float m_flMatchInfoDecidedTime; // 0x1254 -private: - [[maybe_unused]] uint8_t __pad1258[0x18]; // 0x1258 -public: - float m_flCoopRespawnAndHealTime; // 0x1270 - int32_t m_coopBonusCoinsFound; // 0x1274 - bool m_coopBonusPistolsOnly; // 0x1278 - bool m_coopPlayersInDeploymentZone; // 0x1279 - bool m_coopMissionDeadPlayerRespawnEnabled; // 0x127a -private: - [[maybe_unused]] uint8_t __pad127b[0x1]; // 0x127b -public: - int32_t mTeamDMLastWinningTeamNumber; // 0x127c - float mTeamDMLastThinkTime; // 0x1280 - float m_flTeamDMLastAnnouncementTime; // 0x1284 - int32_t m_iAccountTerrorist; // 0x1288 - int32_t m_iAccountCT; // 0x128c - int32_t m_iSpawnPointCount_Terrorist; // 0x1290 - int32_t m_iSpawnPointCount_CT; // 0x1294 - int32_t m_iMaxNumTerrorists; // 0x1298 - int32_t m_iMaxNumCTs; // 0x129c - int32_t m_iLoserBonus; // 0x12a0 - int32_t m_iLoserBonusMostRecentTeam; // 0x12a4 - float m_tmNextPeriodicThink; // 0x12a8 - bool m_bVoiceWonMatchBragFired; // 0x12ac -private: - [[maybe_unused]] uint8_t __pad12ad[0x3]; // 0x12ad -public: - float m_fWarmupNextChatNoticeTime; // 0x12b0 -private: - [[maybe_unused]] uint8_t __pad12b4[0x4]; // 0x12b4 -public: - int32_t m_iHostagesRescued; // 0x12b8 - int32_t m_iHostagesTouched; // 0x12bc - float m_flNextHostageAnnouncement; // 0x12c0 - bool m_bNoTerroristsKilled; // 0x12c4 - bool m_bNoCTsKilled; // 0x12c5 - bool m_bNoEnemiesKilled; // 0x12c6 - bool m_bCanDonateWeapons; // 0x12c7 -private: - [[maybe_unused]] uint8_t __pad12c8[0x4]; // 0x12c8 -public: - float m_firstKillTime; // 0x12cc -private: - [[maybe_unused]] uint8_t __pad12d0[0x4]; // 0x12d0 -public: - float m_firstBloodTime; // 0x12d4 -private: - [[maybe_unused]] uint8_t __pad12d8[0x18]; // 0x12d8 -public: - bool m_hostageWasInjured; // 0x12f0 - bool m_hostageWasKilled; // 0x12f1 -private: - [[maybe_unused]] uint8_t __pad12f2[0xe]; // 0x12f2 -public: - bool m_bVoteCalled; // 0x1300 - bool m_bServerVoteOnReset; // 0x1301 -private: - [[maybe_unused]] uint8_t __pad1302[0x2]; // 0x1302 -public: - float m_flVoteCheckThrottle; // 0x1304 - bool m_bBuyTimeEnded; // 0x1308 -private: - [[maybe_unused]] uint8_t __pad1309[0x3]; // 0x1309 -public: - int32_t m_nLastFreezeEndBeep; // 0x130c - bool m_bTargetBombed; // 0x1310 - bool m_bBombDefused; // 0x1311 - bool m_bMapHasBombZone; // 0x1312 - bool m_bGunGameRespawnWithBomb; // 0x1313 - float m_fGunGameBombRespawnTimer; // 0x1314 -private: - [[maybe_unused]] uint8_t __pad1318[0x1c]; // 0x1318 -public: - Vector m_vecMainCTSpawnPos; // 0x1334 - CUtlVector< SpawnPoint* > m_CTSpawnPointsMasterList; // 0x1340 - CUtlVector< SpawnPoint* > m_TerroristSpawnPointsMasterList; // 0x1358 - int32_t m_iNextCTSpawnPoint; // 0x1370 - int32_t m_iNextTerroristSpawnPoint; // 0x1374 - CUtlVector< SpawnPoint* > m_CTSpawnPoints; // 0x1378 - CUtlVector< SpawnPoint* > m_TerroristSpawnPoints; // 0x1390 - bool m_bIsUnreservedGameServer; // 0x13a8 -private: - [[maybe_unused]] uint8_t __pad13a9[0x3]; // 0x13a9 -public: - float m_fAutobalanceDisplayTime; // 0x13ac -private: - [[maybe_unused]] uint8_t __pad13b0[0x268]; // 0x13b0 -public: - bool m_bAllowWeaponSwitch; // 0x1618 - bool m_bRoundTimeWarningTriggered; // 0x1619 -private: - [[maybe_unused]] uint8_t __pad161a[0x2]; // 0x161a -public: - GameTime_t m_phaseChangeAnnouncementTime; // 0x161c - float m_fNextUpdateTeamClanNamesTime; // 0x1620 - GameTime_t m_flLastThinkTime; // 0x1624 - float m_fAccumulatedRoundOffDamage; // 0x1628 - int32_t m_nShorthandedBonusLastEvalRound; // 0x162c -private: - [[maybe_unused]] uint8_t __pad1630[0x278]; // 0x1630 + [[maybe_unused]] uint8_t __pad18a0[0x18]; // 0x18a0 public: // MNetworkEnable - bool m_bMatchAbortedDueToPlayerBan; // 0x18a8 - bool m_bHasTriggeredRoundStartMusic; // 0x18a9 - bool m_bHasTriggeredCoopSpawnReset; // 0x18aa - bool m_bSwitchingTeamsAtRoundReset; // 0x18ab - int32_t m_iMaxGunGameProgressiveWeaponIndex; // 0x18ac + // MNetworkPolymorphic + CCSGameModeRules* m_pGameModeRules; // 0x18b8 + // MNetworkEnable + CSurvivalGameRules m_SurvivalRules; // 0x18c0 + KeyValues3 m_BtGlobalBlackboard; // 0x3558 private: - [[maybe_unused]] uint8_t __pad18b0[0x18]; // 0x18b0 + [[maybe_unused]] uint8_t __pad3568[0x58]; // 0x3568 +public: + CHandle< CBaseEntity > m_hPlayerResource; // 0x35c0 +private: + [[maybe_unused]] uint8_t __pad35c4[0x4]; // 0x35c4 public: // MNetworkEnable - CSurvivalGameRules m_SurvivalRules; // 0x18c8 - KeyValues3 m_BtGlobalBlackboard; // 0x3560 + CRetakeGameRules m_RetakeRules; // 0x35c8 private: - [[maybe_unused]] uint8_t __pad3570[0x58]; // 0x3570 + [[maybe_unused]] uint8_t __pad3760[0x4c]; // 0x3760 public: - CHandle< CBaseEntity > m_hPlayerResource; // 0x35c8 + int32_t m_GuardianBotSkillLevelMax; // 0x37ac + int32_t m_GuardianBotSkillLevelMin; // 0x37b0 private: - [[maybe_unused]] uint8_t __pad35cc[0x4]; // 0x35cc + [[maybe_unused]] uint8_t __pad37b4[0x4]; // 0x37b4 public: - // MNetworkEnable - CRetakeGameRules m_RetakeRules; // 0x35d0 + CUtlVector< int32 > m_arrTeamUniqueKillWeaponsMatch[4]; // 0x37b8 + bool m_bTeamLastKillUsedUniqueWeaponMatch[4]; // 0x3818 private: - [[maybe_unused]] uint8_t __pad3768[0x4c]; // 0x3768 -public: - int32_t m_GuardianBotSkillLevelMax; // 0x37b4 - int32_t m_GuardianBotSkillLevelMin; // 0x37b8 -private: - [[maybe_unused]] uint8_t __pad37bc[0x4]; // 0x37bc -public: - CUtlVector< int32 > m_arrTeamUniqueKillWeaponsMatch[4]; // 0x37c0 - bool m_bTeamLastKillUsedUniqueWeaponMatch[4]; // 0x3820 -private: - [[maybe_unused]] uint8_t __pad3824[0x24]; // 0x3824 + [[maybe_unused]] uint8_t __pad381c[0x24]; // 0x381c public: // MNetworkEnable // MNetworkChangeCallback "OnMatchEndCountChanged" - uint8_t m_nMatchEndCount; // 0x3848 + uint8_t m_nMatchEndCount; // 0x3840 +private: + [[maybe_unused]] uint8_t __pad3841[0x3]; // 0x3841 +public: + // MNetworkEnable + int32_t m_nTTeamIntroVariant; // 0x3844 + // MNetworkEnable + int32_t m_nCTTeamIntroVariant; // 0x3848 // MNetworkEnable // MNetworkChangeCallback "OnTeamIntroPeriodChanged" - bool m_bTeamIntroPeriod; // 0x3849 + bool m_bTeamIntroPeriod; // 0x384c private: - [[maybe_unused]] uint8_t __pad384a[0x2]; // 0x384a + [[maybe_unused]] uint8_t __pad384d[0x3]; // 0x384d public: - GameTime_t m_fTeamIntroPeriodEnd; // 0x384c - bool m_bPlayedTeamIntroVO; // 0x3850 + GameTime_t m_fTeamIntroPeriodEnd; // 0x3850 + bool m_bPlayedTeamIntroVO; // 0x3854 + + // Static fields: static int64_t &Get_m_nMapCycleTimeStamp(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CCSGameRules")->m_static_fields[0]->m_instance);}; static int32_t &Get_m_nMapCycleindex(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CCSGameRules")->m_static_fields[1]->m_instance);}; }; @@ -6939,6 +7271,8 @@ public: // Size: 0x18 class CIronSightController { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: bool m_bIronSightAvailable; // 0x8 private: @@ -6953,6 +7287,8 @@ public: // Size: 0x4c0 class CPointDZParadropDenialRegion : public CServerOnlyPointEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: float m_flRadius; // 0x4b8 }; @@ -6961,6 +7297,8 @@ public: // Size: 0x30 class CHintMessage { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: char* m_hintString; // 0x8 CUtlVector< char* > m_args; // 0x10 @@ -6971,6 +7309,8 @@ public: // Size: 0x30 class CHintMessageQueue { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: float m_tmMessageEnd; // 0x8 private: @@ -6980,14 +7320,6 @@ public: CBasePlayerController* m_pPlayerController; // 0x28 }; -// Alignment: 1 -// Size: 0xe0 -class CCSPlayer_BuyServices : public CPlayerPawnComponent -{ -public: - float m_flNextAutoBuyAmmoTime; // 0x40 -}; - // Alignment: 0 // Size: 0x40 class CCSPlayer_DamageReactServices : public CPlayerPawnComponent @@ -7020,6 +7352,8 @@ public: // Size: 0x178 class CBaseIssue { +private: + [[maybe_unused]] uint8_t __pad0000[0x20]; // 0x0 public: char m_szTypeString[64]; // 0x20 char m_szDetailsString[260]; // 0x60 @@ -7029,8 +7363,8 @@ public: CVoteController* m_pVoteController; // 0x170 }; -// Alignment: 14 -// Size: 0x670 +// Alignment: 15 +// Size: 0x678 class CVoteController : public CBaseEntity { public: @@ -7053,13 +7387,17 @@ public: CUtlVector< uint64 > m_arrVotedUsers; // 0x520 int32_t m_nVotesCast[64]; // 0x538 CPlayerSlot m_playerHoldingVote; // 0x638 - int32_t m_nHighestCountIndex; // 0x63c - CUtlVector< CBaseIssue* > m_potentialIssues; // 0x640 - CUtlVector< char* > m_VoteOptions; // 0x658 + CPlayerSlot m_playerOverrideForVote; // 0x63c + int32_t m_nHighestCountIndex; // 0x640 +private: + [[maybe_unused]] uint8_t __pad0644[0x4]; // 0x644 +public: + CUtlVector< CBaseIssue* > m_potentialIssues; // 0x648 + CUtlVector< char* > m_VoteOptions; // 0x660 }; -// Alignment: 22 -// Size: 0xec8 +// Alignment: 24 +// Size: 0xed8 class CMapVetoPickController : public CBaseEntity { public: @@ -7067,50 +7405,60 @@ public: bool m_bNeedToPlayFiveSecondsRemaining; // 0x4b1 private: [[maybe_unused]] uint8_t __pad04b2[0x1e]; // 0x4b2 +public: + double m_dblPreMatchDraftSequenceTime; // 0x4d0 + bool m_bPreMatchDraftStateChanged; // 0x4d8 +private: + [[maybe_unused]] uint8_t __pad04d9[0x3]; // 0x4d9 public: // MNetworkEnable - int32_t m_nDraftType; // 0x4d0 + int32_t m_nDraftType; // 0x4dc // MNetworkEnable - int32_t m_nTeamWinningCoinToss; // 0x4d4 + int32_t m_nTeamWinningCoinToss; // 0x4e0 // MNetworkEnable - int32_t m_nTeamWithFirstChoice[64]; // 0x4d8 + int32_t m_nTeamWithFirstChoice[64]; // 0x4e4 // MNetworkEnable - int32_t m_nVoteMapIdsList[7]; // 0x5d8 + int32_t m_nVoteMapIdsList[7]; // 0x5e4 // MNetworkEnable - int32_t m_nAccountIDs[64]; // 0x5f4 + int32_t m_nAccountIDs[64]; // 0x600 // MNetworkEnable - int32_t m_nMapId0[64]; // 0x6f4 + int32_t m_nMapId0[64]; // 0x700 // MNetworkEnable - int32_t m_nMapId1[64]; // 0x7f4 + int32_t m_nMapId1[64]; // 0x800 // MNetworkEnable - int32_t m_nMapId2[64]; // 0x8f4 + int32_t m_nMapId2[64]; // 0x900 // MNetworkEnable - int32_t m_nMapId3[64]; // 0x9f4 + int32_t m_nMapId3[64]; // 0xa00 // MNetworkEnable - int32_t m_nMapId4[64]; // 0xaf4 + int32_t m_nMapId4[64]; // 0xb00 // MNetworkEnable - int32_t m_nMapId5[64]; // 0xbf4 + int32_t m_nMapId5[64]; // 0xc00 // MNetworkEnable - int32_t m_nStartingSide0[64]; // 0xcf4 + int32_t m_nStartingSide0[64]; // 0xd00 // MNetworkEnable - int32_t m_nCurrentPhase; // 0xdf4 + int32_t m_nCurrentPhase; // 0xe00 // MNetworkEnable - int32_t m_nPhaseStartTick; // 0xdf8 + int32_t m_nPhaseStartTick; // 0xe04 // MNetworkEnable - int32_t m_nPhaseDurationTicks; // 0xdfc - CEntityOutputTemplate< CUtlSymbolLarge > m_OnMapVetoed; // 0xe00 - CEntityOutputTemplate< CUtlSymbolLarge > m_OnMapPicked; // 0xe28 - CEntityOutputTemplate< int32 > m_OnSidesPicked; // 0xe50 - CEntityOutputTemplate< int32 > m_OnNewPhaseStarted; // 0xe78 - CEntityOutputTemplate< int32 > m_OnLevelTransition; // 0xea0 + int32_t m_nPhaseDurationTicks; // 0xe08 +private: + [[maybe_unused]] uint8_t __pad0e0c[0x4]; // 0xe0c +public: + CEntityOutputTemplate< CUtlSymbolLarge > m_OnMapVetoed; // 0xe10 + CEntityOutputTemplate< CUtlSymbolLarge > m_OnMapPicked; // 0xe38 + CEntityOutputTemplate< int32 > m_OnSidesPicked; // 0xe60 + CEntityOutputTemplate< int32 > m_OnNewPhaseStarted; // 0xe88 + CEntityOutputTemplate< int32 > m_OnLevelTransition; // 0xeb0 }; // Alignment: 0 // Size: 0x1 class CCSPulseServerFuncs_Globals { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 @@ -7125,6 +7473,8 @@ public: // Size: 0x4e0 class CPointDZWeaponSpawn : public CPointDZItemSpawn { +private: + [[maybe_unused]] uint8_t __pad04b8[0x8]; // 0x4b8 public: int32_t m_nGroupID; // 0x4c0 float m_flDefaultWeight; // 0x4c4 @@ -7155,6 +7505,8 @@ public: // Size: 0x4c0 class CPointDZDroneGunSpawn : public CServerOnlyPointEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: bool m_bSpawnAutomatically; // 0x4b8 }; @@ -7171,6 +7523,8 @@ public: // Size: 0x500 class CLogicEventListener : public CLogicalEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x10]; // 0x4b0 public: CUtlSymbolLarge m_iszEventName; // 0x4c0 bool m_bIsEnabled; // 0x4c8 @@ -7189,6 +7543,8 @@ public: // Size: 0xd0 class CBot { +private: + [[maybe_unused]] uint8_t __pad0000[0x10]; // 0x0 public: CCSPlayerPawnBase* m_pPlayer; // 0x10 bool m_bHasSpawned; // 0x18 @@ -7220,8 +7576,10 @@ public: // Size: 0x58 class CBtNode { +private: + [[maybe_unused]] uint8_t __pad0000[0x58]; // 0x0 public: - uint8_t __pad0000[0x58]; // Autoaligned + // No members available }; // Alignment: 0 @@ -7244,6 +7602,8 @@ public: // Size: 0xf8 class CBtActionAim : public CBtNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x10]; // 0x58 public: CUtlString m_szSensorInputKey; // 0x68 private: @@ -7269,6 +7629,8 @@ public: // Size: 0xb0 class CBtActionCombatPositioning : public CBtNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x10]; // 0x58 public: CUtlString m_szSensorInputKey; // 0x68 private: @@ -7283,6 +7645,8 @@ public: // Size: 0xe8 class CBtActionMoveTo : public CBtNode { +private: + [[maybe_unused]] uint8_t __pad0058[0x8]; // 0x58 public: CUtlString m_szDestinationInputKey; // 0x60 CUtlString m_szHidingSpotInputKey; // 0x68 @@ -7326,6 +7690,8 @@ public: // Size: 0x98 class CBtNodeConditionInactive : public CBtNodeCondition { +private: + [[maybe_unused]] uint8_t __pad0060[0x18]; // 0x60 public: float m_flRoundStartThresholdSeconds; // 0x78 float m_flSensorInactivityThresholdSeconds; // 0x7c @@ -7344,6 +7710,8 @@ public: // Size: 0x1630 class CEnvCombinedLightProbeVolume : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x10d0]; // 0x4b0 public: // MNetworkEnable // MNetworkChangeCallback "StateChanged" @@ -7415,6 +7783,8 @@ public: // Size: 0x610 class CEnvCubemap : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0xf0]; // 0x4b0 public: // MNetworkEnable CStrongHandle< InfoForResourceTypeCTextureBase > m_hCubemapTexture; // 0x5a0 @@ -7578,6 +7948,8 @@ public: // Size: 0x1508 class CEnvLightProbeVolume : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0xfe0]; // 0x4b0 public: // MNetworkEnable CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeTexture; // 0x1490 @@ -7626,6 +7998,29 @@ public: bool m_bEnabled; // 0x1501 }; +// Alignment: 6 +// Size: 0x4c8 +class CPlayerVisibility : public CBaseEntity +{ +public: + // MNetworkEnable + // MNetworkChangeCallback "PlayerVisibilityStateChanged" + float m_flVisibilityStrength; // 0x4b0 + // MNetworkEnable + // MNetworkChangeCallback "PlayerVisibilityStateChanged" + float m_flFogDistanceMultiplier; // 0x4b4 + // MNetworkEnable + // MNetworkChangeCallback "PlayerVisibilityStateChanged" + float m_flFogMaxDensityMultiplier; // 0x4b8 + // MNetworkEnable + // MNetworkChangeCallback "PlayerVisibilityStateChanged" + float m_flFadeTime; // 0x4bc + // MNetworkEnable + bool m_bStartDisabled; // 0x4c0 + // MNetworkEnable + bool m_bIsEnabled; // 0x4c1 +}; + // Alignment: 8 // Size: 0x4d8 class CTonemapController2 : public CBaseEntity @@ -7786,6 +8181,8 @@ public: // Size: 0x4c8 class CInfoVisibilityBox : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x4]; // 0x4b0 public: // MNetworkEnable int32_t m_nMode; // 0x4b4 @@ -7937,6 +8334,8 @@ public: // Size: 0x4e0 class CGameGibManager : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x20]; // 0x4b0 public: bool m_bAllowNewGibs; // 0x4d0 private: @@ -8004,6 +8403,8 @@ public: // Size: 0x690 class CBasePlayerController : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: uint64_t m_nInButtonsWhichAreToggles; // 0x4b8 // MNetworkEnable @@ -8064,6 +8465,9 @@ public: uint64_t m_steamID; // 0x668 // MNetworkEnable uint32_t m_iDesiredFOV; // 0x670 + + // Static fields: + static bool &Get_sm_bRunningPredictedClientStringCommands(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBasePlayerController")->m_static_fields[0]->m_instance);}; }; // Alignment: 14 @@ -8099,8 +8503,8 @@ public: float m_flCrouchTime; // 0x174 }; -// Alignment: 22 -// Size: 0x320 +// Alignment: 21 +// Size: 0x240 class CBasePlayerWeaponVData : public CEntitySubclassVDataBase { public: @@ -8125,63 +8529,60 @@ public: // MPropertyDescription "Effect when firing this weapon" // MPropertyGroupName "Visuals" CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashParticle; // 0x118 - // MPropertyDescription "Effect to actually fire into the world from this weapon" - // MPropertyGroupName "Visuals" - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szTracerParticle; // 0x1f8 - ItemFlagTypes_t m_iFlags; // 0x2d8 + ItemFlagTypes_t m_iFlags; // 0x1f8 // MPropertyAttributeEditor "VDataChoice( scripts/ammo.vdata )" // MPropertyGroupName "Ammo" // MPropertyCustomFGDType - AmmoIndex_t m_nPrimaryAmmoType; // 0x2d9 + AmmoIndex_t m_nPrimaryAmmoType; // 0x1f9 // MPropertyAttributeEditor "VDataChoice( scripts/ammo.vdata )" // MPropertyGroupName "Ammo" // MPropertyCustomFGDType - AmmoIndex_t m_nSecondaryAmmoType; // 0x2da + AmmoIndex_t m_nSecondaryAmmoType; // 0x1fa private: - [[maybe_unused]] uint8_t __pad02db[0x1]; // 0x2db + [[maybe_unused]] uint8_t __pad01fb[0x1]; // 0x1fb public: // MPropertyFriendlyName "Primary Clip Size" // MPropertyDescription "How many bullets this gun can fire before it reloads (0 if no clip)" // MPropertyAttributeRange "0 255" // MPropertyGroupName "Ammo" - int32_t m_iMaxClip1; // 0x2dc + int32_t m_iMaxClip1; // 0x1fc // MPropertyFriendlyName "Secondary Clip Size" // MPropertyDescription "How many secondary bullets this gun can fire before it reloads (0 if no clip)" // MPropertyGroupName "Ammo" // MPropertyAttributeRange "0 255" - int32_t m_iMaxClip2; // 0x2e0 + int32_t m_iMaxClip2; // 0x200 // MPropertyDescription "Primary Initial Clip (-1 means use clip size)" // MPropertyGroupName "Ammo" // MPropertyAttributeRange "-1 255" - int32_t m_iDefaultClip1; // 0x2e4 + int32_t m_iDefaultClip1; // 0x204 // MPropertyDescription "Secondary Initial Clip (-1 means use clip size)" // MPropertyGroupName "Ammo" // MPropertyAttributeRange "-1 255" - int32_t m_iDefaultClip2; // 0x2e8 + int32_t m_iDefaultClip2; // 0x208 // MPropertyDescription "This value used to determine this weapon's importance in autoselection" // MPropertyGroupName "UI" - int32_t m_iWeight; // 0x2ec + int32_t m_iWeight; // 0x20c // MPropertyFriendlyName "Safe To Auto-Switch To" // MPropertyDescription "Whether this weapon is safe to automatically switch to (should be false for eg. explosives that can the player may accidentally hurt themselves with)" // MPropertyGroupName "UI" - bool m_bAutoSwitchTo; // 0x2f0 + bool m_bAutoSwitchTo; // 0x210 // MPropertyFriendlyName "Safe To Auto-Switch Away From" // MPropertyGroupName "UI" - bool m_bAutoSwitchFrom; // 0x2f1 + bool m_bAutoSwitchFrom; // 0x211 private: - [[maybe_unused]] uint8_t __pad02f2[0x2]; // 0x2f2 + [[maybe_unused]] uint8_t __pad0212[0x2]; // 0x212 public: // MPropertyGroupName "UI" - RumbleEffect_t m_iRumbleEffect; // 0x2f4 - CUtlMap< WeaponSound_t, CSoundEventName > m_aShootSounds; // 0x2f8 + RumbleEffect_t m_iRumbleEffect; // 0x214 + CUtlMap< WeaponSound_t, CSoundEventName > m_aShootSounds; // 0x218 // MPropertyFriendlyName "HUD Bucket" // MPropertyDescription "Which 'column' to display this weapon in the HUD" // MPropertyGroupName "UI" - int32_t m_iSlot; // 0x318 + int32_t m_iSlot; // 0x238 // MPropertyFriendlyName "HUD Bucket Position" // MPropertyDescription "Which 'row' to display this weapon in the HUD" // MPropertyGroupName "UI" - int32_t m_iPosition; // 0x31c + int32_t m_iPosition; // 0x23c }; // Alignment: 2 @@ -8212,6 +8613,8 @@ public: // MNetworkDisable // MNetworkChangeAccessorFieldPathIndex CNetworkVarChainer __m_pChainEntity; // 0x6b0 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentBaseAnimGraph")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentBaseAnimGraph")->m_static_fields[1]->m_instance);}; }; @@ -8328,7 +8731,7 @@ public: bool m_bPassthoughCaller; // 0x504 }; -// Alignment: 21 +// Alignment: 22 // Size: 0xc78 class CParticleSystem : public CBaseModelEntity { @@ -8367,10 +8770,9 @@ public: bool m_bNoSave; // 0xa54 // MNetworkEnable bool m_bNoFreeze; // 0xa55 - bool m_bStartActive; // 0xa56 -private: - [[maybe_unused]] uint8_t __pad0a57[0x1]; // 0xa57 -public: + // MNetworkEnable + bool m_bNoRamp; // 0xa56 + bool m_bStartActive; // 0xa57 CUtlSymbolLarge m_iszEffectName; // 0xa58 CUtlSymbolLarge m_iszControlPointNames[64]; // 0xa60 int32_t m_nDataCP; // 0xc60 @@ -8537,13 +8939,13 @@ public: int32_t m_Exponent; // 0x708 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "360" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "360.000000" float m_InnerAngle; // 0x70c // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "360" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "360.000000" float m_OuterAngle; // 0x710 // MNetworkEnable float m_SpotRadius; // 0x714 @@ -8677,6 +9079,8 @@ public: // Size: 0x5498 class CDebugHistory : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x1f4040]; // 0x4b0 public: int32_t m_nNpcEvents; // 0x1f44f0 }; @@ -8789,8 +9193,8 @@ public: CUtlSymbolLarge m_iszOverlayNames[10]; // 0x4b0 // MNetworkEnable // MNetworkBitCount "11" - // MNetworkMinValue "-1" - // MNetworkMaxValue "63" + // MNetworkMinValue "-1.000000" + // MNetworkMaxValue "63.000000" float m_flOverlayTimes[10]; // 0x500 // MNetworkEnable GameTime_t m_flStartTime; // 0x528 @@ -8800,15 +9204,6 @@ public: bool m_bIsActive; // 0x530 }; -// Alignment: 2 -// Size: 0x4b8 -class CEnvZoom : public CPointEntity -{ -public: - float m_flSpeed; // 0x4b0 - int32_t m_nFOV; // 0x4b4 -}; - // Alignment: 4 // Size: 0x4e8 class CEnvFade : public CLogicalEntity @@ -9107,13 +9502,13 @@ public: uint32_t m_nOuterMaxDist; // 0x710 // MNetworkEnable // MNetworkBitCount "6" - // MNetworkMinValue "0" - // MNetworkMaxValue "64" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "64.000000" // MNetworkEncodeFlags float m_flGlowProxySize; // 0x714 // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "100" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "100.000000" float m_flHDRColorScale; // 0x718 }; @@ -9134,6 +9529,8 @@ public: // Size: 0x500 class CLogicGameEventListener : public CLogicalEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x10]; // 0x4b0 public: CEntityIOOutput m_OnEventFired; // 0x4c0 CUtlSymbolLarge m_iszGameEventName; // 0x4e8 @@ -9163,6 +9560,8 @@ public: // Size: 0x4c0 class CLogicNavigation : public CLogicalEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: bool m_isOn; // 0x4b8 private: @@ -9615,6 +10014,8 @@ public: // Size: 0x510 class CPhysForce : public CPointEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: CUtlSymbolLarge m_nameAttach; // 0x4b8 float m_force; // 0x4c0 @@ -9664,6 +10065,8 @@ public: // Size: 0x4f0 class CKeepUpright : public CPointEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: Vector m_worldGoalAxis; // 0x4b8 Vector m_localTestAxis; // 0x4c4 @@ -9681,6 +10084,8 @@ public: // Size: 0x508 class CPhysConstraint : public CLogicalEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: CUtlSymbolLarge m_nameAttach1; // 0x4b8 CUtlSymbolLarge m_nameAttach2; // 0x4c0 @@ -9696,6 +10101,8 @@ public: // Size: 0x6a8 class CPhysHinge : public CPhysConstraint { +private: + [[maybe_unused]] uint8_t __pad0508[0x8]; // 0x508 public: ConstraintSoundInfo m_soundInfo; // 0x510 CEntityIOOutput m_NotifyMinLimitReached; // 0x598 @@ -9757,6 +10164,8 @@ public: // Size: 0x5c0 class CPhysSlideConstraint : public CPhysConstraint { +private: + [[maybe_unused]] uint8_t __pad0508[0x8]; // 0x508 public: Vector m_axisEnd; // 0x510 float m_slideFriction; // 0x51c @@ -9833,6 +10242,8 @@ public: // Size: 0x638 class CGenericConstraint : public CPhysConstraint { +private: + [[maybe_unused]] uint8_t __pad0508[0x8]; // 0x508 public: JointMotion_t m_nLinearMotionX; // 0x510 JointMotion_t m_nLinearMotionY; // 0x514 @@ -9926,6 +10337,8 @@ public: // Size: 0x4c8 class CPhysicsEntitySolver : public CLogicalEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: CHandle< CBaseEntity > m_hMovingEntity; // 0x4b8 CHandle< CBaseEntity > m_hPhysicsBlocker; // 0x4bc @@ -9937,6 +10350,8 @@ public: // Size: 0x4f8 class CPhysicsSpring : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: float m_flFrequency; // 0x4b8 float m_flDampingRatio; // 0x4bc @@ -9999,30 +10414,6 @@ public: CEntityIOOutput m_OnFoundEntity; // 0x4d8 }; -// Alignment: 3 -// Size: 0x4c0 -class CPointHMDAnchor : public CBaseEntity -{ -public: - // MNetworkEnable - bool m_bDisabled; // 0x4b0 -private: - [[maybe_unused]] uint8_t __pad04b1[0x3]; // 0x4b1 -public: - // MNetworkEnable - GameTime_t m_flEnableTime; // 0x4b4 - // MNetworkEnable - int32_t m_nPlayerIndex; // 0x4b8 -}; - -// Alignment: 0 -// Size: 0x4c0 -class CPointHMDAnchorOverride : public CPointHMDAnchor -{ -public: - // No members available -}; - // Alignment: 44 // Size: 0x6a8 class CPointValueRemapper : public CBaseEntity @@ -10234,7 +10625,7 @@ public: CHandle< CBaseEntity > m_pActivator; // 0x4c8 }; -// Alignment: 3 +// Alignment: 4 // Size: 0x4d0 class CPointTeleport : public CServerOnlyPointEntity { @@ -10242,6 +10633,7 @@ public: Vector m_vSaveOrigin; // 0x4b0 QAngle m_vSaveAngles; // 0x4bc bool m_bTeleportParentedEntities; // 0x4c8 + bool m_bTeleportUseCurrentAngle; // 0x4c9 }; // Alignment: 0 @@ -10294,10 +10686,12 @@ public: CHandle< CBaseEntity > m_hScenes[16]; // 0x548 }; -// Alignment: 64 -// Size: 0xa10 +// Alignment: 63 +// Size: 0xa08 class CSceneEntity : public CPointEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: CUtlSymbolLarge m_iszSceneFile; // 0x4b8 CUtlSymbolLarge m_iszResumeSceneFile; // 0x4c0 @@ -10391,9 +10785,10 @@ public: CUtlSymbolLarge m_iszSoundName; // 0x9e8 CHandle< CBaseFlex > m_hActor; // 0x9f0 CHandle< CBaseEntity > m_hActivator; // 0x9f4 - CHandle< CBaseEntity > m_hCamera; // 0x9f8 - int32_t m_BusyActor; // 0x9fc - SceneOnPlayerDeath_t m_iPlayerDeathBehavior; // 0xa00 + int32_t m_BusyActor; // 0x9f8 + SceneOnPlayerDeath_t m_iPlayerDeathBehavior; // 0x9fc + + // Static fields: static int32_t &Get_s_nSceneFlushCounter(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CSceneEntity")->m_static_fields[0]->m_instance);}; }; @@ -10482,6 +10877,8 @@ public: // Size: 0x4f8 class CSoundOpvarSetEntity : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: CUtlSymbolLarge m_iszStackName; // 0x4b8 CUtlSymbolLarge m_iszOperatorName; // 0x4c0 @@ -10568,6 +10965,15 @@ public: Vector m_vMaxs; // 0x564 }; +// Alignment: 2 +// Size: 0x570 +class CSoundEventOBBEntity : public CSoundEventEntity +{ +public: + Vector m_vMins; // 0x558 + Vector m_vMaxs; // 0x564 +}; + // Alignment: 6 // Size: 0x598 class CSoundEventPathCornerEntity : public CSoundEventEntity @@ -10585,6 +10991,8 @@ public: // Size: 0x4c8 class CSoundEventParameter : public CBaseEntity { +private: + [[maybe_unused]] uint8_t __pad04b0[0x8]; // 0x4b0 public: CUtlSymbolLarge m_iszParamName; // 0x4b8 float m_flFloatValue; // 0x4c0 @@ -10659,36 +11067,36 @@ private: [[maybe_unused]] uint8_t __pad0722[0x2]; // 0x722 public: // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "100" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "100.000000" float m_flSize; // 0x724 // MNetworkEnable - // MNetworkMinValue "-360" - // MNetworkMaxValue "360" + // MNetworkMinValue "-360.000000" + // MNetworkMaxValue "360.000000" float m_flRotation; // 0x728 // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "100" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "100.000000" float m_flHazeScale; // 0x72c // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "2" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "2.000000" float m_flAlphaHaze; // 0x730 // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "2" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "2.000000" float m_flAlphaHdr; // 0x734 // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "2" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "2.000000" float m_flAlphaScale; // 0x738 // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "100" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "100.000000" float m_flHDRColorScale; // 0x73c // MNetworkEnable - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" float m_flFarZScale; // 0x740 }; @@ -10834,10 +11242,20 @@ public: // No members available }; +// Alignment: 0 +// Size: 0x5c8 +class CPointScript : public CBaseEntity +{ +public: + // No members available +}; + // Alignment: 1 // Size: 0x710 class CFuncNavObstruction : public CBaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0700[0x8]; // 0x700 public: bool m_bDisabled; // 0x708 }; @@ -11007,6 +11425,8 @@ public: // Size: 0x988 class CBaseDoor : public CBaseToggle { +private: + [[maybe_unused]] uint8_t __pad0780[0x10]; // 0x780 public: QAngle m_angMoveEntitySpace; // 0x790 Vector m_vecMoveDirParentSpace; // 0x79c @@ -11145,14 +11565,14 @@ public: uint32_t m_nShadowQuality; // 0x94c // MNetworkEnable // MNetworkBitCount "16" - // MNetworkMinValue "0" - // MNetworkMaxValue "500" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "500.000000" // MNetworkEncodeFlags float m_flNearZ; // 0x950 // MNetworkEnable // MNetworkBitCount "18" - // MNetworkMinValue "0" - // MNetworkMaxValue "1500" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1500.000000" // MNetworkEncodeFlags float m_flFarZ; // 0x954 // MNetworkEnable @@ -11250,6 +11670,8 @@ public: // Size: 0x7c0 class CBreakable : public CBaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0700[0x10]; // 0x700 public: Materials m_Material; // 0x710 CHandle< CBaseEntity > m_hBreaker; // 0x714 @@ -11277,7 +11699,7 @@ public: GameTime_t m_flLastPhysicsInfluenceTime; // 0x7bc }; -// Alignment: 12 +// Alignment: 13 // Size: 0x830 class CFuncMoveLinear : public CBaseToggle { @@ -11299,7 +11721,8 @@ private: public: CEntityIOOutput m_OnFullyOpen; // 0x7d0 CEntityIOOutput m_OnFullyClosed; // 0x7f8 - bool m_bCreateNavObstacle; // 0x820 + bool m_bCreateMovableNavMesh; // 0x820 + bool m_bCreateNavObstacle; // 0x821 }; // Alignment: 14 @@ -11374,6 +11797,8 @@ public: // Size: 0x740 class CMarkupVolumeTagged : public CMarkupVolume { +private: + [[maybe_unused]] uint8_t __pad0708[0x30]; // 0x708 public: bool m_bIsGroup; // 0x738 bool m_bGroupByPrefab; // 0x739 @@ -11425,6 +11850,8 @@ public: int32_t m_nIterVal; // 0x4d8 TrackOrientationType_t m_eOrientationType; // 0x4dc CEntityIOOutput m_OnPass; // 0x4e0 + + // Static fields: static int32_t &Get_s_nCurrIterVal(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CPathTrack")->m_static_fields[0]->m_instance);}; static bool &Get_s_bIsIterating(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CPathTrack")->m_static_fields[1]->m_instance);}; }; @@ -11490,6 +11917,8 @@ public: // Size: 0x758 class CRopeKeyframe : public CBaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0700[0x8]; // 0x700 public: // MNetworkEnable uint16_t m_RopeFlags; // 0x708 @@ -11506,8 +11935,8 @@ public: float m_Width; // 0x71c // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0.1" - // MNetworkMaxValue "10" + // MNetworkMinValue "0.100000" + // MNetworkMaxValue "10.000000" float m_TextureScale; // 0x720 // MNetworkEnable uint8_t m_nSegments; // 0x724 @@ -11830,8 +12259,8 @@ public: int32_t m_nBlockedTeamNumber; // 0x704 }; -// Alignment: 12 -// Size: 0x550 +// Alignment: 13 +// Size: 0x558 class CNavLinkAreaEntity : public CPointEntity { public: @@ -11856,6 +12285,7 @@ private: public: CEntityIOOutput m_OnNavLinkStart; // 0x500 CEntityIOOutput m_OnNavLinkFinish; // 0x528 + bool m_bIsTerminus; // 0x550 }; // Alignment: 1 @@ -11873,8 +12303,8 @@ class CBeam : public CBaseModelEntity public: // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "-25" - // MNetworkMaxValue "25" + // MNetworkMinValue "-25.000000" + // MNetworkMaxValue "25.000000" // MNetworkEncodeFlags float m_flFrameRate; // 0x700 // MNetworkEnable @@ -11903,14 +12333,14 @@ private: public: // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0" - // MNetworkMaxValue "102.3" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "102.300003" // MNetworkEncodeFlags float m_fWidth; // 0x764 // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0" - // MNetworkMaxValue "102.3" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "102.300003" // MNetworkEncodeFlags float m_fEndWidth; // 0x768 // MNetworkEnable @@ -11919,25 +12349,25 @@ public: float m_fHaloScale; // 0x770 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "64" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "64.000000" // MNetworkEncodeFlags float m_fAmplitude; // 0x774 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "256" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "256.000000" // MNetworkEncodeFlags float m_fStartFrame; // 0x778 // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "100" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "100.000000" float m_fSpeed; // 0x77c // MNetworkEnable // MNetworkBitCount "20" - // MNetworkMinValue "0" - // MNetworkMaxValue "256" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "256.000000" // MNetworkEncodeFlags // MNetworkPriority "32" float m_flFrame; // 0x780 @@ -11986,6 +12416,8 @@ public: CUtlSymbolLarge m_surfacePropName; // 0x758 CEntityIOOutput m_OnPlayerGotOnLadder; // 0x760 CEntityIOOutput m_OnPlayerGotOffLadder; // 0x788 + + // Static fields: static CUtlVector< CFuncLadder* > &Get_s_Ladders(){return *reinterpret_cast*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CFuncLadder")->m_static_fields[0]->m_instance);}; }; @@ -12054,26 +12486,6 @@ public: CUtlString m_szModifier; // 0x120 }; -// Alignment: 9 -// Size: 0x80 -class CRagdoll : public IRagdoll -{ -public: - ragdoll_t m_ragdoll; // 0x8 - Vector m_mins; // 0x40 - Vector m_maxs; // 0x4c - Vector m_origin; // 0x58 - float m_lastUpdate; // 0x64 - bool m_allAsleep; // 0x68 -private: - [[maybe_unused]] uint8_t __pad0069[0x3]; // 0x69 -public: - Vector m_vecLastOrigin; // 0x6c - float m_flLastOriginChangeTime; // 0x78 - float m_flAwakeTime; // 0x7c - static uint32_t &Get_s_globalCount(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CRagdoll")->m_static_fields[0]->m_instance);}; -}; - // Alignment: 23 // Size: 0x770 class CSprite : public CBaseModelEntity @@ -12090,14 +12502,14 @@ private: public: // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "60" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "60.000000" // MNetworkEncodeFlags float m_flSpriteFramerate; // 0x710 // MNetworkEnable // MNetworkBitCount "20" - // MNetworkMinValue "0" - // MNetworkMaxValue "256" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "256.000000" // MNetworkEncodeFlags float m_flFrame; // 0x714 GameTime_t m_flDieTime; // 0x718 @@ -12120,8 +12532,8 @@ private: public: // MNetworkEnable // MNetworkBitCount "6" - // MNetworkMinValue "0" - // MNetworkMaxValue "64" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "64.000000" // MNetworkEncodeFlags float m_flGlowProxySize; // 0x73c // MNetworkEnable @@ -12253,14 +12665,6 @@ public: char m_messageText[512]; // 0x908 }; -// Alignment: 0 -// Size: 0x910 -class CPointHintUi : public CPointClientUIWorldPanel -{ -public: - // No members available -}; - // Alignment: 10 // Size: 0x528 class CInfoOffscreenPanoramaTexture : public CPointEntity @@ -12360,6 +12764,66 @@ public: CHandle< CBaseEntity > m_pActivator; // 0x4b0 }; +// Alignment: 9 +// Size: 0x938 +class CBombTarget : public CBaseTrigger +{ +public: + CEntityIOOutput m_OnBombExplode; // 0x8a8 + CEntityIOOutput m_OnBombPlanted; // 0x8d0 + CEntityIOOutput m_OnBombDefused; // 0x8f8 + bool m_bIsBombSiteB; // 0x920 + bool m_bIsHeistBombTarget; // 0x921 + // MNetworkEnable + bool m_bBombPlantedHere; // 0x922 +private: + [[maybe_unused]] uint8_t __pad0923[0x5]; // 0x923 +public: + CUtlSymbolLarge m_szMountTarget; // 0x928 + CHandle< CBaseEntity > m_hInstructorHint; // 0x930 + int32_t m_nBombSiteDesignation; // 0x934 +}; + +// Alignment: 0 +// Size: 0x4b0 +class CInfoInstructorHintBombTargetA : public CPointEntity +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x4b0 +class CInfoInstructorHintBombTargetB : public CPointEntity +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x8a8 +class CHostageRescueZoneShim : public CBaseTrigger +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x8b8 +class CHostageRescueZone : public CHostageRescueZoneShim +{ +public: + // No members available +}; + +// Alignment: 0 +// Size: 0x4b0 +class CInfoInstructorHintHostageRescueZone : public CPointEntity +{ +public: + // No members available +}; + // Alignment: 2 // Size: 0x8d8 class CTriggerBuoyancy : public CBaseTrigger @@ -12378,10 +12842,12 @@ public: CBuoyancyHelper m_BuoyancyHelper; // 0x700 }; -// Alignment: 66 -// Size: -0x700 +// Alignment: 71 +// Size: -0x6f8 class CCSPlayerController : public CBasePlayerController { +private: + [[maybe_unused]] uint8_t __pad0690[0x10]; // 0x690 public: // MNetworkEnable CCSPlayerController_InGameMoneyServices* m_pInGameMoneyServices; // 0x6a0 @@ -12421,8 +12887,9 @@ public: bool m_bHasSeenJoinGame; // 0x6e6 bool m_bJustBecameSpectator; // 0x6e7 bool m_bSwitchTeamsOnNextRoundReset; // 0x6e8 + bool m_bRemoveAllItemsOnNextRoundReset; // 0x6e9 private: - [[maybe_unused]] uint8_t __pad06e9[0x7]; // 0x6e9 + [[maybe_unused]] uint8_t __pad06ea[0x6]; // 0x6ea public: // MNetworkEnable CUtlSymbolLarge m_szClan; // 0x6f0 @@ -12446,96 +12913,106 @@ private: [[maybe_unused]] uint8_t __pad0739[0x3]; // 0x739 public: // MNetworkEnable - int32_t m_nEndMatchNextMapVote; // 0x73c + int32_t m_iCompetitiveRankingPredicted_Win; // 0x73c // MNetworkEnable - uint16_t m_unActiveQuestId; // 0x740 + int32_t m_iCompetitiveRankingPredicted_Loss; // 0x740 + // MNetworkEnable + int32_t m_iCompetitiveRankingPredicted_Tie; // 0x744 + // MNetworkEnable + int32_t m_nEndMatchNextMapVote; // 0x748 + // MNetworkEnable + uint16_t m_unActiveQuestId; // 0x74c private: - [[maybe_unused]] uint8_t __pad0742[0x2]; // 0x742 + [[maybe_unused]] uint8_t __pad074e[0x2]; // 0x74e public: // MNetworkEnable - QuestProgress::Reason m_nQuestProgressReason; // 0x744 + QuestProgress::Reason m_nQuestProgressReason; // 0x750 // MNetworkEnable - uint32_t m_unPlayerTvControlFlags; // 0x748 + uint32_t m_unPlayerTvControlFlags; // 0x754 private: - [[maybe_unused]] uint8_t __pad074c[0x6c]; // 0x74c + [[maybe_unused]] uint8_t __pad0758[0x68]; // 0x758 public: - int32_t m_iDraftIndex; // 0x7b8 - uint32_t m_msQueuedModeDisconnectionTimestamp; // 0x7bc - uint32_t m_uiAbandonRecordedReason; // 0x7c0 - bool m_bEverFullyConnected; // 0x7c4 - bool m_bAbandonAllowsSurrender; // 0x7c5 - bool m_bDisconnection1MinWarningPrinted; // 0x7c6 - bool m_bScoreReported; // 0x7c7 - // MNetworkEnable - int32_t m_nDisconnectionTick; // 0x7c8 + int32_t m_iDraftIndex; // 0x7c0 + uint32_t m_msQueuedModeDisconnectionTimestamp; // 0x7c4 + uint32_t m_uiAbandonRecordedReason; // 0x7c8 + bool m_bEverFullyConnected; // 0x7cc + bool m_bAbandonAllowsSurrender; // 0x7cd + bool m_bAbandonOffersInstantSurrender; // 0x7ce + bool m_bDisconnection1MinWarningPrinted; // 0x7cf + bool m_bScoreReported; // 0x7d0 private: - [[maybe_unused]] uint8_t __pad07cc[0xc]; // 0x7cc + [[maybe_unused]] uint8_t __pad07d1[0x3]; // 0x7d1 public: // MNetworkEnable - bool m_bControllingBot; // 0x7d8 - // MNetworkEnable - bool m_bHasControlledBotThisRound; // 0x7d9 - bool m_bHasBeenControlledByPlayerThisRound; // 0x7da + int32_t m_nDisconnectionTick; // 0x7d4 private: - [[maybe_unused]] uint8_t __pad07db[0x1]; // 0x7db -public: - int32_t m_nBotsControlledThisRound; // 0x7dc - // MNetworkEnable - bool m_bCanControlObservedBot; // 0x7e0 -private: - [[maybe_unused]] uint8_t __pad07e1[0x3]; // 0x7e1 + [[maybe_unused]] uint8_t __pad07d8[0x8]; // 0x7d8 public: // MNetworkEnable - CHandle< CCSPlayerPawn > m_hPlayerPawn; // 0x7e4 + bool m_bControllingBot; // 0x7e0 // MNetworkEnable - CHandle< CCSObserverPawn > m_hObserverPawn; // 0x7e8 - int32_t m_DesiredObserverMode; // 0x7ec - CEntityHandle m_hDesiredObserverTarget; // 0x7f0 - // MNetworkEnable - bool m_bPawnIsAlive; // 0x7f4 + bool m_bHasControlledBotThisRound; // 0x7e1 + bool m_bHasBeenControlledByPlayerThisRound; // 0x7e2 private: - [[maybe_unused]] uint8_t __pad07f5[0x3]; // 0x7f5 + [[maybe_unused]] uint8_t __pad07e3[0x1]; // 0x7e3 +public: + int32_t m_nBotsControlledThisRound; // 0x7e4 + // MNetworkEnable + bool m_bCanControlObservedBot; // 0x7e8 +private: + [[maybe_unused]] uint8_t __pad07e9[0x3]; // 0x7e9 public: // MNetworkEnable - uint32_t m_iPawnHealth; // 0x7f8 + CHandle< CCSPlayerPawn > m_hPlayerPawn; // 0x7ec // MNetworkEnable - int32_t m_iPawnArmor; // 0x7fc + CHandle< CCSObserverPawn > m_hObserverPawn; // 0x7f0 + int32_t m_DesiredObserverMode; // 0x7f4 + CEntityHandle m_hDesiredObserverTarget; // 0x7f8 // MNetworkEnable - bool m_bPawnHasDefuser; // 0x800 - // MNetworkEnable - bool m_bPawnHasHelmet; // 0x801 - // MNetworkEnable - uint16_t m_nPawnCharacterDefIndex; // 0x802 - // MNetworkEnable - int32_t m_iPawnLifetimeStart; // 0x804 - // MNetworkEnable - int32_t m_iPawnLifetimeEnd; // 0x808 - // MNetworkEnable - int32_t m_iPawnGunGameLevel; // 0x80c - // MNetworkEnable - int32_t m_iPawnBotDifficulty; // 0x810 - // MNetworkEnable - CHandle< CCSPlayerController > m_hOriginalControllerOfCurrentPawn; // 0x814 - // MNetworkEnable - int32_t m_iScore; // 0x818 - int32_t m_iRoundScore; // 0x81c - // MNetworkEnable - CNetworkUtlVectorBase< EKillTypes_t > m_vecKills; // 0x820 - // MNetworkEnable - int32_t m_iMVPs; // 0x838 - int32_t m_nUpdateCounter; // 0x83c + bool m_bPawnIsAlive; // 0x7fc private: - [[maybe_unused]] uint8_t __pad0840[0xf0a0]; // 0x840 + [[maybe_unused]] uint8_t __pad07fd[0x3]; // 0x7fd public: - IntervalTimer m_lastHeldVoteTimer; // 0xf8e0 + // MNetworkEnable + uint32_t m_iPawnHealth; // 0x800 + // MNetworkEnable + int32_t m_iPawnArmor; // 0x804 + // MNetworkEnable + bool m_bPawnHasDefuser; // 0x808 + // MNetworkEnable + bool m_bPawnHasHelmet; // 0x809 + // MNetworkEnable + uint16_t m_nPawnCharacterDefIndex; // 0x80a + // MNetworkEnable + int32_t m_iPawnLifetimeStart; // 0x80c + // MNetworkEnable + int32_t m_iPawnLifetimeEnd; // 0x810 + // MNetworkEnable + int32_t m_iPawnGunGameLevel; // 0x814 + // MNetworkEnable + int32_t m_iPawnBotDifficulty; // 0x818 + // MNetworkEnable + CHandle< CCSPlayerController > m_hOriginalControllerOfCurrentPawn; // 0x81c + // MNetworkEnable + int32_t m_iScore; // 0x820 + int32_t m_iRoundScore; // 0x824 + // MNetworkEnable + CNetworkUtlVectorBase< EKillTypes_t > m_vecKills; // 0x828 + // MNetworkEnable + int32_t m_iMVPs; // 0x840 + int32_t m_nUpdateCounter; // 0x844 private: - [[maybe_unused]] uint8_t __padf8f0[0x8]; // 0xf8f0 + [[maybe_unused]] uint8_t __pad0848[0xf0a0]; // 0x848 public: - bool m_bShowHints; // 0xf8f8 + IntervalTimer m_lastHeldVoteTimer; // 0xf8e8 private: - [[maybe_unused]] uint8_t __padf8f9[0x3]; // 0xf8f9 + [[maybe_unused]] uint8_t __padf8f8[0x8]; // 0xf8f8 public: - int32_t m_iNextTimeCheck; // 0xf8fc + bool m_bShowHints; // 0xf900 +private: + [[maybe_unused]] uint8_t __padf901[0x3]; // 0xf901 +public: + int32_t m_iNextTimeCheck; // 0xf904 }; // Alignment: 2 @@ -12579,22 +13056,22 @@ private: public: int32_t m_iShotsRemaining; // 0x4e4 int32_t m_iSpread; // 0x4e8 - Vector m_vecSpread; // 0x4ec - Vector m_vecTargetPosition; // 0x4f8 - float m_flTargetDist; // 0x504 - float m_flBias; // 0x508 - bool m_bCollide; // 0x50c + Vector2D m_vecSpread; // 0x4ec + Vector m_vecTargetPosition; // 0x4f4 + float m_flTargetDist; // 0x500 + float m_flBias; // 0x504 + bool m_bCollide; // 0x508 private: - [[maybe_unused]] uint8_t __pad050d[0x3]; // 0x50d + [[maybe_unused]] uint8_t __pad0509[0x3]; // 0x509 public: - CHandle< CBaseEntity > m_hTarget; // 0x510 - bool m_bAllowNullTarget; // 0x514 - bool m_bAlwaysWallbangTracer; // 0x515 + CHandle< CBaseEntity > m_hTarget; // 0x50c + bool m_bAllowNullTarget; // 0x510 + bool m_bAlwaysWallbangTracer; // 0x511 private: - [[maybe_unused]] uint8_t __pad0516[0x2]; // 0x516 + [[maybe_unused]] uint8_t __pad0512[0x2]; // 0x512 public: - float m_flDamageScaleValue; // 0x518 - float m_flAdditionalSpread; // 0x51c + float m_flDamageScaleValue; // 0x514 + float m_flAdditionalSpread; // 0x518 }; // Alignment: 0 @@ -12637,24 +13114,26 @@ public: float m_flGrassBurnClearTime; // 0x4b0 }; -// Alignment: 89 +// Alignment: 90 // Size: 0xda8 class CWeaponCSBaseVData : public CBasePlayerWeaponVData { public: - CSWeaponType m_WeaponType; // 0x320 - CSWeaponCategory m_WeaponCategory; // 0x324 + CSWeaponType m_WeaponType; // 0x240 + CSWeaponCategory m_WeaponCategory; // 0x244 // MPropertyStartGroup "Visuals" - CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szViewModel; // 0x328 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szPlayerModel; // 0x408 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szWorldDroppedModel; // 0x4e8 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szAimsightLensMaskModel; // 0x5c8 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szMagazineModel; // 0x6a8 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szHeatEffect; // 0x788 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szEjectBrassEffect; // 0x868 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashParticleAlt; // 0x948 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashThirdPersonParticle; // 0xa28 - CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashThirdPersonParticleAlt; // 0xb08 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szViewModel; // 0x248 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szPlayerModel; // 0x328 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szWorldDroppedModel; // 0x408 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szAimsightLensMaskModel; // 0x4e8 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeCModel > > m_szMagazineModel; // 0x5c8 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szHeatEffect; // 0x6a8 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szEjectBrassEffect; // 0x788 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashParticleAlt; // 0x868 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashThirdPersonParticle; // 0x948 + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szMuzzleFlashThirdPersonParticleAlt; // 0xa28 + // MPropertyDescription "Effect to actually fire into the world from this weapon" + CResourceNameTyped< CWeakHandle< InfoForResourceTypeIParticleSystemDefinition > > m_szTracerParticle; // 0xb08 // MPropertyStartGroup "HUD Positions" // MPropertyFriendlyName "HUD Bucket" // MPropertyDescription "Which 'column' to display this weapon in the HUD" @@ -12662,7 +13141,7 @@ public: int32_t m_GearSlotPosition; // 0xbec // MPropertyFriendlyName "HUD Bucket Position" // MPropertyDescription "Default team (non Terrorist or Counter-Terrorist) 'row' to display this weapon in the HUD." - loadout_positions_t m_DefaultLoadoutPosition; // 0xbf0 + loadout_slot_t m_DefaultLoadoutSlot; // 0xbf0 private: [[maybe_unused]] uint8_t __pad0bf4[0x4]; // 0xbf4 public: @@ -12810,64 +13289,6 @@ public: CUtlSymbolLarge m_iszMessage; // 0x4b0 }; -// Alignment: 8 -// Size: 0x938 -class CBombTarget : public CBaseTrigger -{ -public: - CEntityIOOutput m_OnBombExplode; // 0x8a8 - CEntityIOOutput m_OnBombPlanted; // 0x8d0 - CEntityIOOutput m_OnBombDefused; // 0x8f8 - bool m_bIsBombSiteB; // 0x920 - bool m_bIsHeistBombTarget; // 0x921 - bool m_bBombPlantedHere; // 0x922 -private: - [[maybe_unused]] uint8_t __pad0923[0x5]; // 0x923 -public: - CUtlSymbolLarge m_szMountTarget; // 0x928 - CHandle< CBaseEntity > m_hInstructorHint; // 0x930 -}; - -// Alignment: 0 -// Size: 0x4b0 -class CInfoInstructorHintBombTargetA : public CPointEntity -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x4b0 -class CInfoInstructorHintBombTargetB : public CPointEntity -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x8a8 -class CHostageRescueZoneShim : public CBaseTrigger -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x8b8 -class CHostageRescueZone : public CHostageRescueZoneShim -{ -public: - // No members available -}; - -// Alignment: 0 -// Size: 0x4b0 -class CInfoInstructorHintHostageRescueZone : public CPointEntity -{ -public: - // No members available -}; - // Alignment: 1 // Size: 0x8b0 class CBuyZone : public CBaseTrigger @@ -12913,6 +13334,8 @@ public: // Size: 0x710 class CCSPlace : public CServerOnlyModelEntity { +private: + [[maybe_unused]] uint8_t __pad0700[0x8]; // 0x700 public: CUtlSymbolLarge m_name; // 0x708 }; @@ -12952,6 +13375,8 @@ public: uint8_t m_nVersion; // 0x754 // MNetworkEnable uint8_t m_ubSignature[128]; // 0x755 + + // Static fields: static CUtlVector< CPlayerSprayDecal* > &Get_s_arrFEPlayerDecals(){return *reinterpret_cast*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CPlayerSprayDecal")->m_static_fields[0]->m_instance);}; }; @@ -12990,6 +13415,8 @@ public: // Size: 0x1388 class CInferno : public CBaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0700[0x10]; // 0x700 public: // MNetworkEnable int32_t m_fireXDelta[64]; // 0x710 @@ -13038,6 +13465,8 @@ public: CountdownTimer m_BookkeepingTimer; // 0x1300 CountdownTimer m_NextSpreadTimer; // 0x1318 uint16_t m_nSourceItemDefIndex; // 0x1330 + + // Static fields: static float &Get_InfernoFire_Radius(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CInferno")->m_static_fields[0]->m_instance);}; static float &Get_InfernoFire_LOSHeight(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CInferno")->m_static_fields[1]->m_instance);}; static float &Get_InfernoFire_CylinderHeight(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CInferno")->m_static_fields[2]->m_instance);}; @@ -13299,6 +13728,8 @@ public: CPlayerSlot m_nGGLeaderSlot_T; // 0x834 bool m_bGGHasLeader_CT; // 0x838 bool m_bGGHasLeader_T; // 0x839 + + // Static fields: static CPlayerSlot &Get_m_nStaticGGLeader_CT(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CCSTeam")->m_static_fields[0]->m_instance);}; static CPlayerSlot &Get_m_nStaticGGLeader_T(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CCSTeam")->m_static_fields[1]->m_instance);}; }; @@ -13619,6 +14050,8 @@ public: int32_t m_nImportance; // 0x4b8 int32_t m_nLightChoice; // 0x4bc CHandle< CBaseEntity > m_hLight; // 0x4c0 + + // Static fields: static CUtlVector< CInfoDynamicShadowHint* > &Get_m_AllHints(){return *reinterpret_cast*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CInfoDynamicShadowHint")->m_static_fields[0]->m_instance);}; }; @@ -13631,8 +14064,8 @@ public: Vector m_vBoxMaxs; // 0x4d4 }; -// Alignment: 10 -// Size: 0x748 +// Alignment: 12 +// Size: 0x760 class CEnvSky : public CBaseModelEntity { public: @@ -13641,34 +14074,40 @@ public: CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSkyMaterial; // 0x700 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - bool m_bStartDisabled; // 0x708 + CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSkyMaterialLightingOnly; // 0x708 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - Color m_vTintColor; // 0x709 + bool m_bStartDisabled; // 0x710 + // MNetworkEnable + // MNetworkChangeCallback "SkyStateChanged" + Color m_vTintColor; // 0x711 + // MNetworkEnable + // MNetworkChangeCallback "SkyStateChanged" + Color m_vTintColorLightingOnly; // 0x715 private: - [[maybe_unused]] uint8_t __pad070d[0x3]; // 0x70d + [[maybe_unused]] uint8_t __pad0719[0x3]; // 0x719 public: // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - float m_flBrightnessScale; // 0x710 + float m_flBrightnessScale; // 0x71c // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - int32_t m_nFogType; // 0x714 + int32_t m_nFogType; // 0x720 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - float m_flFogMinStart; // 0x718 + float m_flFogMinStart; // 0x724 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - float m_flFogMinEnd; // 0x71c + float m_flFogMinEnd; // 0x728 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - float m_flFogMaxStart; // 0x720 + float m_flFogMaxStart; // 0x72c // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - float m_flFogMaxEnd; // 0x724 + float m_flFogMaxEnd; // 0x730 // MNetworkEnable // MNetworkChangeCallback "SkyStateChanged" - bool m_bEnabled; // 0x728 + bool m_bEnabled; // 0x734 }; // Alignment: 0 @@ -13744,6 +14183,8 @@ public: // Size: 0x8f8 class CPostProcessingVolume : public CBaseTrigger { +private: + [[maybe_unused]] uint8_t __pad08a8[0x10]; // 0x8a8 public: // MNetworkEnable CStrongHandle< InfoForResourceTypeCPostProcessingResource > m_hPostSettings; // 0x8b8 @@ -13837,6 +14278,8 @@ public: // Size: 0x930 class CBaseAnimGraph : public CBaseModelEntity { +private: + [[maybe_unused]] uint8_t __pad0700[0x8]; // 0x700 public: // MNetworkEnable bool m_bInitiallyPopulateInterpHistory; // 0x708 @@ -13899,6 +14342,8 @@ public: // Size: 0xaa8 class CBreakableProp : public CBaseProp { +private: + [[maybe_unused]] uint8_t __pad0970[0x10]; // 0x970 public: CEntityIOOutput m_OnBreak; // 0x980 CEntityOutputTemplate< float32 > m_OnHealthChanged; // 0x9a8 @@ -13956,6 +14401,8 @@ public: // Size: 0xba8 class CDynamicProp : public CBreakableProp { +private: + [[maybe_unused]] uint8_t __pad0aa8[0x8]; // 0xaa8 public: bool m_bCreateNavObstacle; // 0xab0 // MNetworkEnable @@ -14350,7 +14797,7 @@ public: }; // Alignment: 0 -// Size: 0xa10 +// Size: 0xa08 class CSceneEntityAlias_logic_choreographed_scene : public CSceneEntity { public: @@ -14358,18 +14805,18 @@ public: }; // Alignment: 5 -// Size: 0xa28 +// Size: 0xa20 class CInstancedSceneEntity : public CSceneEntity { public: - CHandle< CBaseEntity > m_hOwner; // 0xa10 - bool m_bHadOwner; // 0xa14 + CHandle< CBaseEntity > m_hOwner; // 0xa08 + bool m_bHadOwner; // 0xa0c private: - [[maybe_unused]] uint8_t __pad0a15[0x3]; // 0xa15 + [[maybe_unused]] uint8_t __pad0a0d[0x3]; // 0xa0d public: - float m_flPostSpeakDelay; // 0xa18 - float m_flPreDelay; // 0xa1c - bool m_bIsBackground; // 0xa20 + float m_flPostSpeakDelay; // 0xa10 + float m_flPreDelay; // 0xa14 + bool m_bIsBackground; // 0xa18 }; // Alignment: 3 @@ -14644,6 +15091,8 @@ public: // Size: 0x908 class CTriggerPhysics : public CBaseTrigger { +private: + [[maybe_unused]] uint8_t __pad08a8[0x10]; // 0x8a8 public: float m_gravityScale; // 0x8b8 float m_linearLimit; // 0x8bc @@ -14679,6 +15128,8 @@ public: // Size: 0x908 class CTriggerDetectExplosion : public CBaseTrigger { +private: + [[maybe_unused]] uint8_t __pad08a8[0x38]; // 0x8a8 public: CEntityIOOutput m_OnDetectedExplosion; // 0x8e0 }; @@ -14698,8 +15149,8 @@ class CBaseFlex : public CBaseAnimGraph public: // MNetworkEnable // MNetworkBitCount "12" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags CNetworkUtlVectorBase< float32 > m_flexWeight; // 0x930 // MNetworkEnable @@ -14720,6 +15171,8 @@ public: // Size: 0xe38 class CBasePropDoor : public CDynamicProp { +private: + [[maybe_unused]] uint8_t __pad0ba8[0x10]; // 0xba8 public: float m_flAutoReturnDelay; // 0xbb8 private: @@ -14818,8 +15271,8 @@ public: // MNetworkEnable // MNetworkSerializer "angle_normalize_positive" // MNetworkBitCount "7" - // MNetworkMinValue "0" - // MNetworkMaxValue "360" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "360.000000" // MNetworkEncodeFlags float m_angle; // 0x944 float m_angleChange; // 0x948 @@ -14852,6 +15305,8 @@ public: // Size: 0xa08 class CItem : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0930[0x8]; // 0x930 public: CEntityIOOutput m_OnPlayerTouch; // 0x938 bool m_bActivateWhenAtRest; // 0x960 @@ -14870,6 +15325,8 @@ public: // Size: 0xad8 class CRagdollProp : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0930[0x8]; // 0x930 public: ragdoll_t m_ragdoll; // 0x938 bool m_bStartDisabled; // 0x970 @@ -14914,8 +15371,8 @@ private: public: // MNetworkEnable // MNetworkBitCount "8" - // MNetworkMinValue "0" - // MNetworkMaxValue "1" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1.000000" // MNetworkEncodeFlags float m_flBlendWeight; // 0x9fc float m_flDefaultFadeScale; // 0xa00 @@ -14960,6 +15417,8 @@ public: // Size: 0xc18 class CPhysicsProp : public CBreakableProp { +private: + [[maybe_unused]] uint8_t __pad0aa8[0x8]; // 0xaa8 public: CEntityIOOutput m_MotionEnabled; // 0xab0 CEntityIOOutput m_OnAwakened; // 0xad8 @@ -15053,6 +15512,8 @@ public: // Size: 0xcb8 class CEconEntity : public CBaseFlex { +private: + [[maybe_unused]] uint8_t __pad09c0[0x10]; // 0x9c0 public: // MNetworkEnable CAttributeContainer m_AttributeManager; // 0x9d0 @@ -15085,6 +15546,8 @@ public: // Size: 0xa68 class CBaseGrenade : public CBaseFlex { +private: + [[maybe_unused]] uint8_t __pad09c0[0x8]; // 0x9c0 public: CEntityIOOutput m_OnPlayerPickup; // 0x9c8 CEntityIOOutput m_OnExplode; // 0x9f0 @@ -15097,8 +15560,8 @@ private: public: // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0" - // MNetworkMaxValue "1024" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "1024.000000" // MNetworkEncodeFlags float m_DmgRadius; // 0xa1c // MNetworkEnable @@ -15106,8 +15569,8 @@ public: float m_flWarnAITime; // 0xa24 // MNetworkEnable // MNetworkBitCount "10" - // MNetworkMinValue "0" - // MNetworkMaxValue "256" + // MNetworkMinValue "0.000000" + // MNetworkMaxValue "256.000000" // MNetworkEncodeFlags float m_flDamage; // 0xa28 private: @@ -15139,6 +15602,8 @@ public: // Size: 0x968 class CBRC4Target : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0930[0x28]; // 0x930 public: CHandle< CBaseEntity > m_hPlayerThatActivatedMe; // 0x958 // MNetworkEnable @@ -15154,6 +15619,8 @@ public: // Size: 0x970 class CParadropChopper : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0930[0x4]; // 0x930 public: Vector m_vecDropPos; // 0x934 float m_flLastDistFromDrop; // 0x940 @@ -15209,6 +15676,8 @@ public: // Size: 0x9a8 class CDronegun : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0930[0x10]; // 0x930 public: // MNetworkEnable Vector m_vecAttentionTarget; // 0x940 @@ -15242,6 +15711,8 @@ public: // Size: 0xfb0 class CDrone : public CPhysicsProp { +private: + [[maybe_unused]] uint8_t __pad0c18[0x18]; // 0xc18 public: // MNetworkEnable CHandle< CBaseEntity > m_hMoveToThisEntity; // 0xc30 @@ -15357,6 +15828,8 @@ public: // Size: 0xc30 class CCSPropExplodingBarrel : public CPhysicsProp { +private: + [[maybe_unused]] uint8_t __pad0c18[0x8]; // 0xc18 public: CEntityHandle m_hBarrelTop; // 0xc20 bool m_bExploded; // 0xc24 @@ -15459,6 +15932,8 @@ public: // Size: 0x978 class CBaseViewModel : public CBaseAnimGraph { +private: + [[maybe_unused]] uint8_t __pad0930[0x8]; // 0x930 public: Vector m_vecLastFacing; // 0x938 // MNetworkEnable @@ -15509,6 +15984,7 @@ public: CEntityIOOutput m_OnBombDefused; // 0x940 CEntityIOOutput m_OnBombBeginDefuse; // 0x968 CEntityIOOutput m_OnBombDefuseAborted; // 0x990 + // MNetworkEnable bool m_bCannotBeDefused; // 0x9b8 private: [[maybe_unused]] uint8_t __pad09b9[0x7]; // 0x9b9 @@ -15517,12 +15993,14 @@ public: EntitySpottedState_t m_entitySpottedState; // 0x9c0 int32_t m_nSpotRules; // 0x9d8 bool m_bTrainingPlacedByPlayer; // 0x9dc + // MNetworkEnable bool m_bHasExploded; // 0x9dd private: [[maybe_unused]] uint8_t __pad09de[0x2]; // 0x9de public: // MNetworkEnable float m_flTimerLength; // 0x9e0 + // MNetworkEnable bool m_bBeingDefused; // 0x9e4 private: [[maybe_unused]] uint8_t __pad09e5[0x7]; // 0x9e5 @@ -15562,7 +16040,7 @@ public: GameTime_t m_flLastSpinDetectionTime; // 0xa2c }; -// Alignment: 13 +// Alignment: 14 // Size: 0xac8 class CBaseCSGrenadeProjectile : public CBaseGrenade { @@ -15591,6 +16069,9 @@ public: GameTime_t m_flLastBounceSoundTime; // 0xaa8 RotationVector m_vecGrenadeSpin; // 0xaac Vector m_vecLastHitSurfaceNormal; // 0xab8 + int32_t m_nTicksAtZeroVelocity; // 0xac4 + + // Static fields: static float &Get_s_flThinkInterval(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseCSGrenadeProjectile")->m_static_fields[0]->m_instance);}; }; @@ -15783,6 +16264,8 @@ public: // Size: 0xc78 class CPhysPropRadarJammer : public CBrBaseItem { +private: + [[maybe_unused]] uint8_t __pad0c40[0x8]; // 0xc40 public: GameTime_t m_flSpawnTime; // 0xc48 GameTime_t m_flLastSoundTime; // 0xc4c @@ -15830,6 +16313,8 @@ public: // Size: 0x30f0 class CChicken : public CDynamicProp { +private: + [[maybe_unused]] uint8_t __pad0ba8[0x20]; // 0xba8 public: // MNetworkEnable CAttributeContainer m_AttributeManager; // 0xbc8 @@ -16027,8 +16512,8 @@ public: bool m_bShouldDeleteAttachedActivationRecord; // 0xb08 }; -// Alignment: 16 -// Size: 0xec8 +// Alignment: 17 +// Size: 0xed0 class CPropDoorRotating : public CBasePropDoor { public: @@ -16047,25 +16532,29 @@ public: Vector m_vecForwardBoundsMax; // 0xea0 Vector m_vecBackBoundsMin; // 0xeac Vector m_vecBackBoundsMax; // 0xeb8 - CHandle< CEntityBlocker > m_hEntityBlocker; // 0xec4 + bool m_bAjarDoorShouldntAlwaysOpen; // 0xec4 +private: + [[maybe_unused]] uint8_t __pad0ec5[0x3]; // 0xec5 +public: + CHandle< CEntityBlocker > m_hEntityBlocker; // 0xec8 }; // Alignment: 4 -// Size: 0xee8 +// Size: 0xef0 class CPropDoorRotatingBreakable : public CPropDoorRotating { public: - bool m_bBreakable; // 0xec8 - bool m_isAbleToCloseAreaPortals; // 0xec9 + bool m_bBreakable; // 0xed0 + bool m_isAbleToCloseAreaPortals; // 0xed1 private: - [[maybe_unused]] uint8_t __pad0eca[0x2]; // 0xeca + [[maybe_unused]] uint8_t __pad0ed2[0x2]; // 0xed2 public: - int32_t m_currentDamageState; // 0xecc - CUtlVector< CUtlSymbolLarge > m_damageStates; // 0xed0 + int32_t m_currentDamageState; // 0xed4 + CUtlVector< CUtlSymbolLarge > m_damageStates; // 0xed8 }; -// Alignment: 14 -// Size: 0xa78 +// Alignment: 13 +// Size: 0xa70 class CBaseCombatCharacter : public CBaseFlex { public: @@ -16087,16 +16576,14 @@ public: private: [[maybe_unused]] uint8_t __pad09f4[0x5c]; // 0x9f4 public: - int32_t m_registeredNavTeam; // 0xa50 - int32_t m_navMeshID; // 0xa54 - int32_t m_iDamageCount; // 0xa58 -private: - [[maybe_unused]] uint8_t __pad0a5c[0x4]; // 0xa5c -public: - CUtlVector< RelationshipOverride_t >* m_pVecRelationships; // 0xa60 - CUtlSymbolLarge m_strRelationships; // 0xa68 - Hull_t m_eHull; // 0xa70 - uint32_t m_nNavHullIdx; // 0xa74 + int32_t m_navMeshID; // 0xa50 + int32_t m_iDamageCount; // 0xa54 + CUtlVector< RelationshipOverride_t >* m_pVecRelationships; // 0xa58 + CUtlSymbolLarge m_strRelationships; // 0xa60 + Hull_t m_eHull; // 0xa68 + uint32_t m_nNavHullIdx; // 0xa6c + + // Static fields: static int32_t &Get_sm_lastInteraction(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseCombatCharacter")->m_static_fields[0]->m_instance);}; }; @@ -16104,6 +16591,8 @@ public: // Size: 0xb78 class CItemGeneric : public CItem { +private: + [[maybe_unused]] uint8_t __pad0a08[0x8]; // 0xa08 public: bool m_bHasTriggerRadius; // 0xa10 bool m_bHasPickupRadius; // 0xa11 @@ -16155,71 +16644,61 @@ public: }; // Alignment: 24 -// Size: 0xbb0 +// Size: 0xbf0 class CBasePlayerPawn : public CBaseCombatCharacter { public: // MNetworkEnable - CPlayer_WeaponServices* m_pWeaponServices; // 0xa78 + CPlayer_WeaponServices* m_pWeaponServices; // 0xa70 // MNetworkEnable - CPlayer_ItemServices* m_pItemServices; // 0xa80 + CPlayer_ItemServices* m_pItemServices; // 0xa78 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - CPlayer_AutoaimServices* m_pAutoaimServices; // 0xa88 + CPlayer_AutoaimServices* m_pAutoaimServices; // 0xa80 // MNetworkEnable - CPlayer_ObserverServices* m_pObserverServices; // 0xa90 + CPlayer_ObserverServices* m_pObserverServices; // 0xa88 // MNetworkEnable - CPlayer_WaterServices* m_pWaterServices; // 0xa98 + CPlayer_WaterServices* m_pWaterServices; // 0xa90 // MNetworkEnable - CPlayer_UseServices* m_pUseServices; // 0xaa0 + CPlayer_UseServices* m_pUseServices; // 0xa98 // MNetworkEnable - CPlayer_FlashlightServices* m_pFlashlightServices; // 0xaa8 + CPlayer_FlashlightServices* m_pFlashlightServices; // 0xaa0 // MNetworkEnable - CPlayer_CameraServices* m_pCameraServices; // 0xab0 + CPlayer_CameraServices* m_pCameraServices; // 0xaa8 // MNetworkEnable - CPlayer_MovementServices* m_pMovementServices; // 0xab8 + CPlayer_MovementServices* m_pMovementServices; // 0xab0 private: - [[maybe_unused]] uint8_t __pad0ac0[0x8]; // 0xac0 + [[maybe_unused]] uint8_t __pad0ab8[0x8]; // 0xab8 public: // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - FixAngleSet_t m_fixAngleChangeType; // 0xac8 -private: - [[maybe_unused]] uint8_t __pad0ac9[0x3]; // 0xac9 -public: + CUtlVectorEmbeddedNetworkVar< ViewAngleServerChange_t > m_ServerViewAngleChanges; // 0xac0 + uint32_t m_nHighestGeneratedServerViewAngleChangeIndex; // 0xb10 + QAngle v_angle; // 0xb14 + QAngle v_anglePrevious; // 0xb20 // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - QAngle m_fixAngleChangeAngle; // 0xacc + uint32_t m_iHideHUD; // 0xb2c // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - int32_t m_fixAngleChangeTick; // 0xad8 - QAngle v_angle; // 0xadc + sky3dparams_t m_skybox3d; // 0xb30 + GameTime_t m_fTimeLastHurt; // 0xbc0 // MNetworkEnable - // MNetworkUserGroup "LocalPlayerExclusive" - uint32_t m_iHideHUD; // 0xae8 + GameTime_t m_flDeathTime; // 0xbc4 + GameTime_t m_fNextSuicideTime; // 0xbc8 + bool m_fInitHUD; // 0xbcc private: - [[maybe_unused]] uint8_t __pad0aec[0x4]; // 0xaec + [[maybe_unused]] uint8_t __pad0bcd[0x3]; // 0xbcd public: + CAI_Expresser* m_pExpresser; // 0xbd0 // MNetworkEnable - // MNetworkUserGroup "LocalPlayerExclusive" - sky3dparams_t m_skybox3d; // 0xaf0 - GameTime_t m_fTimeLastHurt; // 0xb80 - // MNetworkEnable - GameTime_t m_flDeathTime; // 0xb84 - GameTime_t m_fNextSuicideTime; // 0xb88 - bool m_fInitHUD; // 0xb8c + CHandle< CBasePlayerController > m_hController; // 0xbd8 private: - [[maybe_unused]] uint8_t __pad0b8d[0x3]; // 0xb8d + [[maybe_unused]] uint8_t __pad0bdc[0x4]; // 0xbdc public: - CAI_Expresser* m_pExpresser; // 0xb90 - // MNetworkEnable - CHandle< CBasePlayerController > m_hController; // 0xb98 -private: - [[maybe_unused]] uint8_t __pad0b9c[0x4]; // 0xb9c -public: - float m_fHltvReplayDelay; // 0xba0 - float m_fHltvReplayEnd; // 0xba4 - CEntityIndex m_iHltvReplayEntity; // 0xba8 + float m_fHltvReplayDelay; // 0xbe0 + float m_fHltvReplayEnd; // 0xbe4 + CEntityIndex m_iHltvReplayEntity; // 0xbe8 }; // Alignment: 3 @@ -16238,9 +16717,11 @@ public: }; // Alignment: 52 -// Size: 0xe60 +// Size: 0xe80 class CWeaponCSBase : public CBasePlayerWeapon { +private: + [[maybe_unused]] uint8_t __pad0d08[0x28]; // 0xd08 public: // MNetworkEnable float m_flFireSequenceStartTime; // 0xd30 @@ -16255,10 +16736,8 @@ public: HSequence m_seqIdle; // 0xd40 HSequence m_seqFirePrimary; // 0xd44 HSequence m_seqFireSecondary; // 0xd48 - // MNetworkEnable - int32_t m_nRefundable; // 0xd4c private: - [[maybe_unused]] uint8_t __pad0d50[0x8]; // 0xd50 + [[maybe_unused]] uint8_t __pad0d4c[0xc]; // 0xd4c public: bool m_bPlayerAmmoStockOnPickup; // 0xd58 bool m_bRequireUseToTouch; // 0xd59 @@ -16272,154 +16751,156 @@ public: uint32_t m_nViewModelIndex; // 0xd64 bool m_bReloadsWithClips; // 0xd68 private: - [[maybe_unused]] uint8_t __pad0d69[0x3]; // 0xd69 + [[maybe_unused]] uint8_t __pad0d69[0x1f]; // 0xd69 public: // MNetworkEnable // MNetworkUserGroup "LocalWeaponExclusive" // MNetworkPriority "32" - GameTime_t m_flTimeWeaponIdle; // 0xd6c - bool m_bFireOnEmpty; // 0xd70 + GameTime_t m_flTimeWeaponIdle; // 0xd88 + bool m_bFireOnEmpty; // 0xd8c private: - [[maybe_unused]] uint8_t __pad0d71[0x7]; // 0xd71 + [[maybe_unused]] uint8_t __pad0d8d[0x3]; // 0xd8d public: - CEntityIOOutput m_OnPlayerPickup; // 0xd78 + CEntityIOOutput m_OnPlayerPickup; // 0xd90 // MNetworkEnable - CSWeaponMode m_weaponMode; // 0xda0 - float m_flTurningInaccuracyDelta; // 0xda4 - Vector m_vecTurningInaccuracyEyeDirLast; // 0xda8 - float m_flTurningInaccuracy; // 0xdb4 + CSWeaponMode m_weaponMode; // 0xdb8 + float m_flTurningInaccuracyDelta; // 0xdbc + Vector m_vecTurningInaccuracyEyeDirLast; // 0xdc0 + float m_flTurningInaccuracy; // 0xdcc // MNetworkEnable - float m_fAccuracyPenalty; // 0xdb8 - GameTime_t m_flLastAccuracyUpdateTime; // 0xdbc - float m_fAccuracySmoothedForZoom; // 0xdc0 - GameTime_t m_fScopeZoomEndTime; // 0xdc4 + float m_fAccuracyPenalty; // 0xdd0 + GameTime_t m_flLastAccuracyUpdateTime; // 0xdd4 + float m_fAccuracySmoothedForZoom; // 0xdd8 + GameTime_t m_fScopeZoomEndTime; // 0xddc // MNetworkEnable - int32_t m_iRecoilIndex; // 0xdc8 + int32_t m_iRecoilIndex; // 0xde0 // MNetworkEnable - float m_flRecoilIndex; // 0xdcc + float m_flRecoilIndex; // 0xde4 // MNetworkEnable - bool m_bBurstMode; // 0xdd0 + bool m_bBurstMode; // 0xde8 private: - [[maybe_unused]] uint8_t __pad0dd1[0x3]; // 0xdd1 + [[maybe_unused]] uint8_t __pad0de9[0x3]; // 0xde9 public: // MNetworkEnable - GameTime_t m_flPostponeFireReadyTime; // 0xdd4 + GameTime_t m_flPostponeFireReadyTime; // 0xdec // MNetworkEnable - bool m_bInReload; // 0xdd8 + bool m_bInReload; // 0xdf0 // MNetworkEnable - bool m_bReloadVisuallyComplete; // 0xdd9 + bool m_bReloadVisuallyComplete; // 0xdf1 private: - [[maybe_unused]] uint8_t __pad0dda[0x2]; // 0xdda + [[maybe_unused]] uint8_t __pad0df2[0x2]; // 0xdf2 public: // MNetworkEnable - GameTime_t m_flDroppedAtTime; // 0xddc + GameTime_t m_flDroppedAtTime; // 0xdf4 // MNetworkEnable - bool m_bIsHauledBack; // 0xde0 + bool m_bIsHauledBack; // 0xdf8 // MNetworkEnable - bool m_bSilencerOn; // 0xde1 -private: - [[maybe_unused]] uint8_t __pad0de2[0x2]; // 0xde2 -public: - // MNetworkEnable - GameTime_t m_flTimeSilencerSwitchComplete; // 0xde4 - // MNetworkEnable - int32_t m_iOriginalTeamNumber; // 0xde8 - float m_flNextAttackRenderTimeOffset; // 0xdec -private: - [[maybe_unused]] uint8_t __pad0df0[0x8]; // 0xdf0 -public: - bool m_bCanBePickedUp; // 0xdf8 - bool m_bUseCanOverrideNextOwnerTouchTime; // 0xdf9 + bool m_bSilencerOn; // 0xdf9 private: [[maybe_unused]] uint8_t __pad0dfa[0x2]; // 0xdfa public: - GameTime_t m_nextOwnerTouchTime; // 0xdfc - GameTime_t m_nextPrevOwnerTouchTime; // 0xe00 // MNetworkEnable - CHandle< CCSPlayerPawnBase > m_hPrevOwner; // 0xe04 + GameTime_t m_flTimeSilencerSwitchComplete; // 0xdfc + // MNetworkEnable + int32_t m_iOriginalTeamNumber; // 0xe00 + float m_flNextAttackRenderTimeOffset; // 0xe04 private: - [[maybe_unused]] uint8_t __pad0e08[0x1c]; // 0xe08 + [[maybe_unused]] uint8_t __pad0e08[0x8]; // 0xe08 public: - bool m_donated; // 0xe24 + bool m_bCanBePickedUp; // 0xe10 + bool m_bUseCanOverrideNextOwnerTouchTime; // 0xe11 private: - [[maybe_unused]] uint8_t __pad0e25[0x3]; // 0xe25 + [[maybe_unused]] uint8_t __pad0e12[0x2]; // 0xe12 +public: + GameTime_t m_nextOwnerTouchTime; // 0xe14 + GameTime_t m_nextPrevOwnerTouchTime; // 0xe18 + // MNetworkEnable + CHandle< CCSPlayerPawnBase > m_hPrevOwner; // 0xe1c + // MNetworkEnable + GameTick_t m_nDropTick; // 0xe20 +private: + [[maybe_unused]] uint8_t __pad0e24[0x20]; // 0xe24 +public: + bool m_donated; // 0xe44 +private: + [[maybe_unused]] uint8_t __pad0e45[0x3]; // 0xe45 public: // MNetworkEnable - GameTime_t m_fLastShotTime; // 0xe28 - bool m_bWasOwnedByCT; // 0xe2c - bool m_bWasOwnedByTerrorist; // 0xe2d - bool m_bFiredOutOfAmmoEvent; // 0xe2e + GameTime_t m_fLastShotTime; // 0xe48 + bool m_bWasOwnedByCT; // 0xe4c + bool m_bWasOwnedByTerrorist; // 0xe4d + bool m_bFiredOutOfAmmoEvent; // 0xe4e private: - [[maybe_unused]] uint8_t __pad0e2f[0x1]; // 0xe2f + [[maybe_unused]] uint8_t __pad0e4f[0x1]; // 0xe4f public: - int32_t m_numRemoveUnownedWeaponThink; // 0xe30 + int32_t m_numRemoveUnownedWeaponThink; // 0xe50 private: - [[maybe_unused]] uint8_t __pad0e34[0x4]; // 0xe34 + [[maybe_unused]] uint8_t __pad0e54[0x4]; // 0xe54 public: - CIronSightController m_IronSightController; // 0xe38 + CIronSightController m_IronSightController; // 0xe58 // MNetworkEnable - int32_t m_iIronSightMode; // 0xe50 - GameTime_t m_flLastLOSTraceFailureTime; // 0xe54 + int32_t m_iIronSightMode; // 0xe70 + GameTime_t m_flLastLOSTraceFailureTime; // 0xe74 // MNetworkEnable - int32_t m_iNumEmptyAttacks; // 0xe58 + int32_t m_iNumEmptyAttacks; // 0xe78 }; // Alignment: 9 -// Size: 0xe80 +// Size: 0xea0 class CWeaponCSBaseGun : public CWeaponCSBase { public: // MNetworkEnable - int32_t m_zoomLevel; // 0xe60 + int32_t m_zoomLevel; // 0xe80 // MNetworkEnable - int32_t m_iBurstShotsRemaining; // 0xe64 + int32_t m_iBurstShotsRemaining; // 0xe84 private: - [[maybe_unused]] uint8_t __pad0e68[0x8]; // 0xe68 + [[maybe_unused]] uint8_t __pad0e88[0x8]; // 0xe88 public: - int32_t m_silencedModelIndex; // 0xe70 - bool m_inPrecache; // 0xe74 + int32_t m_silencedModelIndex; // 0xe90 + bool m_inPrecache; // 0xe94 // MNetworkEnable - bool m_bNeedsBoltAction; // 0xe75 - bool m_bSkillReloadAvailable; // 0xe76 - bool m_bSkillReloadLiftedReloadKey; // 0xe77 - bool m_bSkillBoltInterruptAvailable; // 0xe78 - bool m_bSkillBoltLiftedFireKey; // 0xe79 + bool m_bNeedsBoltAction; // 0xe95 + bool m_bSkillReloadAvailable; // 0xe96 + bool m_bSkillReloadLiftedReloadKey; // 0xe97 + bool m_bSkillBoltInterruptAvailable; // 0xe98 + bool m_bSkillBoltLiftedFireKey; // 0xe99 }; // Alignment: 13 -// Size: 0xeb0 +// Size: 0xed0 class CC4 : public CWeaponCSBase { public: - Vector m_vecLastValidPlayerHeldPosition; // 0xe60 - Vector m_vecLastValidDroppedPosition; // 0xe6c - bool m_bDoValidDroppedPositionCheck; // 0xe78 + Vector m_vecLastValidPlayerHeldPosition; // 0xe80 + Vector m_vecLastValidDroppedPosition; // 0xe8c + bool m_bDoValidDroppedPositionCheck; // 0xe98 // MNetworkEnable - bool m_bStartedArming; // 0xe79 + bool m_bStartedArming; // 0xe99 private: - [[maybe_unused]] uint8_t __pad0e7a[0x2]; // 0xe7a + [[maybe_unused]] uint8_t __pad0e9a[0x2]; // 0xe9a public: // MNetworkEnable - GameTime_t m_fArmedTime; // 0xe7c + GameTime_t m_fArmedTime; // 0xe9c // MNetworkEnable - bool m_bBombPlacedAnimation; // 0xe80 + bool m_bBombPlacedAnimation; // 0xea0 // MNetworkEnable - bool m_bShowC4LED; // 0xe81 + bool m_bShowC4LED; // 0xea1 // MNetworkEnable - bool m_bIsPlantingViaUse; // 0xe82 + bool m_bIsPlantingViaUse; // 0xea2 private: - [[maybe_unused]] uint8_t __pad0e83[0x5]; // 0xe83 + [[maybe_unused]] uint8_t __pad0ea3[0x5]; // 0xea3 public: // MNetworkEnable - EntitySpottedState_t m_entitySpottedState; // 0xe88 - int32_t m_nSpotRules; // 0xea0 - bool m_bPlayedArmingBeeps[7]; // 0xea4 - bool m_bBombPlanted; // 0xeab - bool m_bDroppedFromDeath; // 0xeac + EntitySpottedState_t m_entitySpottedState; // 0xea8 + int32_t m_nSpotRules; // 0xec0 + bool m_bPlayedArmingBeeps[7]; // 0xec4 + bool m_bBombPlanted; // 0xecb + bool m_bDroppedFromDeath; // 0xecc }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CDEagle : public CWeaponCSBaseGun { public: @@ -16427,7 +16908,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponElite : public CWeaponCSBaseGun { public: @@ -16435,7 +16916,7 @@ public: }; // Alignment: 0 -// Size: 0xe60 +// Size: 0xe80 class CWeaponNOVA : public CWeaponCSBase { public: @@ -16443,7 +16924,7 @@ public: }; // Alignment: 0 -// Size: 0xe60 +// Size: 0xe80 class CWeaponSawedoff : public CWeaponCSBase { public: @@ -16451,16 +16932,16 @@ public: }; // Alignment: 1 -// Size: 0xe88 +// Size: 0xea8 class CWeaponTaser : public CWeaponCSBaseGun { public: // MNetworkEnable - GameTime_t m_fFireTime; // 0xe80 + GameTime_t m_fFireTime; // 0xea0 }; // Alignment: 0 -// Size: 0xe60 +// Size: 0xe80 class CWeaponXM1014 : public CWeaponCSBase { public: @@ -16468,7 +16949,7 @@ public: }; // Alignment: 0 -// Size: 0xe60 +// Size: 0xe80 class CKnife : public CWeaponCSBase { public: @@ -16476,7 +16957,7 @@ public: }; // Alignment: 0 -// Size: 0xe60 +// Size: 0xe80 class CKnifeGG : public CKnife { public: @@ -16484,18 +16965,18 @@ public: }; // Alignment: 3 -// Size: 0xe70 +// Size: 0xe90 class CMelee : public CWeaponCSBase { public: // MNetworkEnable - GameTime_t m_flThrowAt; // 0xe60 - CHandle< CBaseEntity > m_hThrower; // 0xe64 - bool m_bDidThrowDamage; // 0xe68 + GameTime_t m_flThrowAt; // 0xe80 + CHandle< CBaseEntity > m_hThrower; // 0xe84 + bool m_bDidThrowDamage; // 0xe88 }; // Alignment: 0 -// Size: 0xea0 +// Size: 0xec0 class CWeaponZoneRepulsor : public CWeaponCSBaseGun { public: @@ -16503,14 +16984,14 @@ public: }; // Alignment: 3 -// Size: 0xe90 +// Size: 0xeb0 class CWeaponShield : public CWeaponCSBaseGun { public: - float m_flBulletDamageAbsorbed; // 0xe80 - GameTime_t m_flLastBulletHitSoundTime; // 0xe84 + float m_flBulletDamageAbsorbed; // 0xea0 + GameTime_t m_flLastBulletHitSoundTime; // 0xea4 // MNetworkEnable - float m_flDisplayHealth; // 0xe88 + float m_flDisplayHealth; // 0xea8 }; // Alignment: 4 @@ -16538,6 +17019,8 @@ public: // Size: 0xae8 class CDecoyProjectile : public CBaseCSGrenadeProjectile { +private: + [[maybe_unused]] uint8_t __pad0ac8[0x8]; // 0xac8 public: int32_t m_shotsRemaining; // 0xad0 GameTime_t m_fExpireTime; // 0xad4 @@ -16548,9 +17031,11 @@ public: }; // Alignment: 8 -// Size: 0xcb8 +// Size: 0xcc8 class CSmokeGrenadeProjectile : public CBaseCSGrenadeProjectile { +private: + [[maybe_unused]] uint8_t __pad0ac8[0x18]; // 0xac8 public: // MNetworkEnable int32_t m_nSmokeEffectTickBegin; // 0xae0 @@ -16574,45 +17059,46 @@ public: GameTime_t m_fllastSimulationTime; // 0xb24 }; -// Alignment: 8 -// Size: 0xea0 +// Alignment: 9 +// Size: 0xec0 class CBaseCSGrenade : public CWeaponCSBase { -public: - // MNetworkEnable - bool m_bRedraw; // 0xe80 - // MNetworkEnable - bool m_bIsHeldByPlayer; // 0xe81 - // MNetworkEnable - bool m_bPinPulled; // 0xe82 private: - [[maybe_unused]] uint8_t __pad0e83[0x1]; // 0xe83 + [[maybe_unused]] uint8_t __pad0e80[0x20]; // 0xe80 public: // MNetworkEnable - EGrenadeThrowState m_eThrowStatus; // 0xe84 + bool m_bRedraw; // 0xea0 // MNetworkEnable - GameTime_t m_fThrowTime; // 0xe88 + bool m_bIsHeldByPlayer; // 0xea1 // MNetworkEnable - float m_flThrowStrength; // 0xe8c + bool m_bPinPulled; // 0xea2 // MNetworkEnable - float m_flThrowStrengthApproach; // 0xe90 + bool m_bJumpThrow; // 0xea3 // MNetworkEnable - GameTime_t m_fDropTime; // 0xe94 + EGrenadeThrowState m_eThrowStatus; // 0xea4 + // MNetworkEnable + GameTime_t m_fThrowTime; // 0xea8 + // MNetworkEnable + float m_flThrowStrength; // 0xeac + // MNetworkEnable + float m_flThrowStrengthApproach; // 0xeb0 + // MNetworkEnable + GameTime_t m_fDropTime; // 0xeb4 }; // Alignment: 2 -// Size: 0xe80 +// Size: 0xea0 class CWeaponBaseItem : public CWeaponCSBase { public: // MNetworkEnable - CountdownTimer m_SequenceCompleteTimer; // 0xe60 + CountdownTimer m_SequenceCompleteTimer; // 0xe80 // MNetworkEnable - bool m_bRedraw; // 0xe78 + bool m_bRedraw; // 0xe98 }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CItem_Healthshot : public CWeaponBaseItem { public: @@ -16620,83 +17106,85 @@ public: }; // Alignment: 7 -// Size: 0xe78 +// Size: 0xe98 class CFists : public CWeaponCSBase { public: // MNetworkEnable - bool m_bPlayingUninterruptableAct; // 0xe60 + bool m_bPlayingUninterruptableAct; // 0xe80 private: - [[maybe_unused]] uint8_t __pad0e61[0x3]; // 0xe61 + [[maybe_unused]] uint8_t __pad0e81[0x3]; // 0xe81 public: // MNetworkEnable // MNetworkChangeCallback "OnUninterruptChanged" - PlayerAnimEvent_t m_nUninterruptableActivity; // 0xe64 - bool m_bRestorePrevWep; // 0xe68 + PlayerAnimEvent_t m_nUninterruptableActivity; // 0xe84 + bool m_bRestorePrevWep; // 0xe88 private: - [[maybe_unused]] uint8_t __pad0e69[0x3]; // 0xe69 + [[maybe_unused]] uint8_t __pad0e89[0x3]; // 0xe89 public: - CHandle< CBasePlayerWeapon > m_hWeaponBeforePrevious; // 0xe6c - CHandle< CBasePlayerWeapon > m_hWeaponPrevious; // 0xe70 - bool m_bDelayedHardPunchIncoming; // 0xe74 - bool m_bDestroyAfterTaunt; // 0xe75 + CHandle< CBasePlayerWeapon > m_hWeaponBeforePrevious; // 0xe8c + CHandle< CBasePlayerWeapon > m_hWeaponPrevious; // 0xe90 + bool m_bDelayedHardPunchIncoming; // 0xe94 + bool m_bDestroyAfterTaunt; // 0xe95 }; // Alignment: 20 -// Size: 0x1178 +// Size: 0x1198 class CTablet : public CWeaponCSBase { -public: - bool m_bPendingBuyMenu; // 0xe68 private: - [[maybe_unused]] uint8_t __pad0e69[0x3]; // 0xe69 + [[maybe_unused]] uint8_t __pad0e80[0x8]; // 0xe80 public: - // MNetworkEnable - GameTime_t m_flUpgradeExpirationTime[4]; // 0xe6c - // MNetworkEnable - int32_t m_vecLocalHexFlags[42]; // 0xe7c - // MNetworkEnable - int32_t m_nContractKillGridIndex; // 0xf24 - // MNetworkEnable - int32_t m_nContractKillGridHighResIndex; // 0xf28 - // MNetworkEnable - bool m_bTabletReceptionIsBlocked; // 0xf2c + bool m_bPendingBuyMenu; // 0xe88 private: - [[maybe_unused]] uint8_t __pad0f2d[0x3]; // 0xf2d + [[maybe_unused]] uint8_t __pad0e89[0x3]; // 0xe89 public: // MNetworkEnable - float m_flScanProgress; // 0xf30 + GameTime_t m_flUpgradeExpirationTime[4]; // 0xe8c // MNetworkEnable - GameTime_t m_flBootTime; // 0xf34 + int32_t m_vecLocalHexFlags[42]; // 0xe9c // MNetworkEnable - GameTime_t m_flShowMapTime; // 0xf38 + int32_t m_nContractKillGridIndex; // 0xf44 // MNetworkEnable - Vector m_vecNearestMetalCratePos; // 0xf3c + int32_t m_nContractKillGridHighResIndex; // 0xf48 // MNetworkEnable - tablet_skin_state_t m_skinState; // 0xf48 + bool m_bTabletReceptionIsBlocked; // 0xf4c private: - [[maybe_unused]] uint8_t __pad0f49[0x3]; // 0xf49 + [[maybe_unused]] uint8_t __pad0f4d[0x3]; // 0xf4d public: // MNetworkEnable - int32_t m_vecNotificationIds[8]; // 0xf4c + float m_flScanProgress; // 0xf50 // MNetworkEnable - GameTime_t m_vecNotificationTimestamps[8]; // 0xf6c + GameTime_t m_flBootTime; // 0xf54 // MNetworkEnable - int32_t m_nLastPurchaseIndex; // 0xf8c + GameTime_t m_flShowMapTime; // 0xf58 // MNetworkEnable - Vector m_vecPlayerPositionHistory[24]; // 0xf90 - Vector2D m_vecLastPlayerPosition; // 0x10b0 - GameTime_t m_flNextCheckForIncomingDronesTime; // 0x10b8 - GameTime_t m_flLastPlayerOccupiedGridUpdate; // 0x10bc - GameTime_t m_flLastTabletBlockedTime; // 0x10c0 + Vector m_vecNearestMetalCratePos; // 0xf5c + // MNetworkEnable + tablet_skin_state_t m_skinState; // 0xf68 private: - [[maybe_unused]] uint8_t __pad10c4[0xac]; // 0x10c4 + [[maybe_unused]] uint8_t __pad0f69[0x3]; // 0xf69 public: - float m_flLastClosePoseParamVal; // 0x1170 + // MNetworkEnable + int32_t m_vecNotificationIds[8]; // 0xf6c + // MNetworkEnable + GameTime_t m_vecNotificationTimestamps[8]; // 0xf8c + // MNetworkEnable + int32_t m_nLastPurchaseIndex; // 0xfac + // MNetworkEnable + Vector m_vecPlayerPositionHistory[24]; // 0xfb0 + Vector2D m_vecLastPlayerPosition; // 0x10d0 + GameTime_t m_flNextCheckForIncomingDronesTime; // 0x10d8 + GameTime_t m_flLastPlayerOccupiedGridUpdate; // 0x10dc + GameTime_t m_flLastTabletBlockedTime; // 0x10e0 +private: + [[maybe_unused]] uint8_t __pad10e4[0xac]; // 0x10e4 +public: + float m_flLastClosePoseParamVal; // 0x1190 }; // Alignment: 0 -// Size: 0xe60 +// Size: 0xe80 class CBreachCharge : public CWeaponCSBase { public: @@ -16704,7 +17192,7 @@ public: }; // Alignment: 0 -// Size: 0xe60 +// Size: 0xe80 class CBumpMine : public CWeaponCSBase { public: @@ -16712,7 +17200,7 @@ public: }; // Alignment: 0 -// Size: 0xea0 +// Size: 0xec0 class CTripWireFire : public CBaseCSGrenade { public: @@ -16815,7 +17303,7 @@ public: }; // Alignment: 0 -// Size: 0xea0 +// Size: 0xec0 class CSensorGrenade : public CBaseCSGrenade { public: @@ -16823,576 +17311,584 @@ public: }; // Alignment: 184 -// Size: 0x1698 +// Size: 0x16d8 class CCSPlayerPawnBase : public CBasePlayerPawn { +private: + [[maybe_unused]] uint8_t __pad0bf0[0x10]; // 0xbf0 public: // MNetworkEnable // MNetworkUserGroup "CTouchExpansionComponent" // MNetworkAlias "CTouchExpansionComponent" // MNetworkTypeAlias "CTouchExpansionComponent" - CTouchExpansionComponent m_CTouchExpansionComponent; // 0xbc0 + CTouchExpansionComponent m_CTouchExpansionComponent; // 0xc00 // MNetworkEnable - CCSPlayer_ActionTrackingServices* m_pActionTrackingServices; // 0xc10 + CCSPlayer_ActionTrackingServices* m_pActionTrackingServices; // 0xc50 // MNetworkEnable - CCSPlayer_ViewModelServices* m_pViewModelServices; // 0xc18 - uint32_t m_iDisplayHistoryBits; // 0xc20 - float m_flLastAttackedTeammate; // 0xc24 + CCSPlayer_ViewModelServices* m_pViewModelServices; // 0xc58 + uint32_t m_iDisplayHistoryBits; // 0xc60 + float m_flLastAttackedTeammate; // 0xc64 // MNetworkEnable - CHandle< CCSPlayerController > m_hOriginalController; // 0xc28 - GameTime_t m_blindUntilTime; // 0xc2c - GameTime_t m_blindStartTime; // 0xc30 - GameTime_t m_allowAutoFollowTime; // 0xc34 + CHandle< CCSPlayerController > m_hOriginalController; // 0xc68 + GameTime_t m_blindUntilTime; // 0xc6c + GameTime_t m_blindStartTime; // 0xc70 + GameTime_t m_allowAutoFollowTime; // 0xc74 // MNetworkEnable - bool m_bHasFemaleVoice; // 0xc38 + bool m_bHasFemaleVoice; // 0xc78 private: - [[maybe_unused]] uint8_t __pad0c39[0x7]; // 0xc39 + [[maybe_unused]] uint8_t __pad0c79[0x7]; // 0xc79 public: // MNetworkEnable - EntitySpottedState_t m_entitySpottedState; // 0xc40 - int32_t m_nSpotRules; // 0xc58 + EntitySpottedState_t m_entitySpottedState; // 0xc80 + int32_t m_nSpotRules; // 0xc98 // MNetworkEnable - float m_flTimeOfLastInjury; // 0xc5c + float m_flTimeOfLastInjury; // 0xc9c // MNetworkEnable - RelativeDamagedDirection_t m_nRelativeDirectionOfLastInjury; // 0xc60 + RelativeDamagedDirection_t m_nRelativeDirectionOfLastInjury; // 0xca0 // MNetworkEnable - CSPlayerState m_iPlayerState; // 0xc64 + CSPlayerState m_iPlayerState; // 0xca4 private: - [[maybe_unused]] uint8_t __pad0c68[0x8]; // 0xc68 + [[maybe_unused]] uint8_t __pad0ca8[0x8]; // 0xca8 public: - CountdownTimer m_chickenIdleSoundTimer; // 0xc70 - CountdownTimer m_chickenJumpSoundTimer; // 0xc88 + CountdownTimer m_chickenIdleSoundTimer; // 0xcb0 + CountdownTimer m_chickenJumpSoundTimer; // 0xcc8 private: - [[maybe_unused]] uint8_t __pad0ca0[0xa0]; // 0xca0 + [[maybe_unused]] uint8_t __pad0ce0[0xa0]; // 0xce0 public: - Vector m_vecLastBookmarkedPosition; // 0xd40 - float m_flLastDistanceTraveledNotice; // 0xd4c - float m_flAccumulatedDistanceTraveled; // 0xd50 - float m_flLastFriendlyFireDamageReductionRatio; // 0xd54 - bool m_bRespawning; // 0xd58 + Vector m_vecLastBookmarkedPosition; // 0xd80 + float m_flLastDistanceTraveledNotice; // 0xd8c + float m_flAccumulatedDistanceTraveled; // 0xd90 + float m_flLastFriendlyFireDamageReductionRatio; // 0xd94 + bool m_bRespawning; // 0xd98 private: - [[maybe_unused]] uint8_t __pad0d59[0x3]; // 0xd59 + [[maybe_unused]] uint8_t __pad0d99[0x3]; // 0xd99 public: - int32_t m_iNumGunGameTRBombTotalPoints; // 0xd5c - bool m_bShouldProgressGunGameTRBombModeWeapon; // 0xd60 + int32_t m_iNumGunGameTRBombTotalPoints; // 0xd9c + bool m_bShouldProgressGunGameTRBombModeWeapon; // 0xda0 private: - [[maybe_unused]] uint8_t __pad0d61[0x3]; // 0xd61 + [[maybe_unused]] uint8_t __pad0da1[0x3]; // 0xda1 public: - int32_t m_nLastPickupPriority; // 0xd64 - float m_flLastPickupPriorityTime; // 0xd68 + int32_t m_nLastPickupPriority; // 0xda4 + float m_flLastPickupPriorityTime; // 0xda8 // MNetworkEnable - bool m_passiveItems[4]; // 0xd6c + bool m_passiveItems[4]; // 0xdac // MNetworkEnable - bool m_bIsScoped; // 0xd70 + bool m_bIsScoped; // 0xdb0 // MNetworkEnable - bool m_bIsWalking; // 0xd71 + bool m_bIsWalking; // 0xdb1 // MNetworkEnable - bool m_bResumeZoom; // 0xd72 + bool m_bResumeZoom; // 0xdb2 // MNetworkEnable - bool m_bIsDefusing; // 0xd73 + bool m_bIsDefusing; // 0xdb3 // MNetworkEnable - bool m_bIsGrabbingHostage; // 0xd74 + bool m_bIsGrabbingHostage; // 0xdb4 private: - [[maybe_unused]] uint8_t __pad0d75[0x3]; // 0xd75 + [[maybe_unused]] uint8_t __pad0db5[0x3]; // 0xdb5 public: // MNetworkEnable - CSPlayerBlockingUseAction_t m_iBlockingUseActionInProgress; // 0xd78 + CSPlayerBlockingUseAction_t m_iBlockingUseActionInProgress; // 0xdb8 // MNetworkEnable - GameTime_t m_fImmuneToGunGameDamageTime; // 0xd7c + GameTime_t m_fImmuneToGunGameDamageTime; // 0xdbc // MNetworkEnable - bool m_bGunGameImmunity; // 0xd80 + bool m_bGunGameImmunity; // 0xdc0 // MNetworkEnable - bool m_bMadeFinalGunGameProgressiveKill; // 0xd81 + bool m_bMadeFinalGunGameProgressiveKill; // 0xdc1 private: - [[maybe_unused]] uint8_t __pad0d82[0x2]; // 0xd82 + [[maybe_unused]] uint8_t __pad0dc2[0x2]; // 0xdc2 public: // MNetworkEnable - int32_t m_iGunGameProgressiveWeaponIndex; // 0xd84 + int32_t m_iGunGameProgressiveWeaponIndex; // 0xdc4 // MNetworkEnable - int32_t m_iNumGunGameTRKillPoints; // 0xd88 + int32_t m_iNumGunGameTRKillPoints; // 0xdc8 // MNetworkEnable - int32_t m_iNumGunGameKillsWithCurrentWeapon; // 0xd8c + int32_t m_iNumGunGameKillsWithCurrentWeapon; // 0xdcc // MNetworkEnable - uint32_t m_unTotalRoundDamageDealt; // 0xd90 + uint32_t m_unTotalRoundDamageDealt; // 0xdd0 // MNetworkEnable - float m_fMolotovDamageTime; // 0xd94 + float m_fMolotovDamageTime; // 0xdd4 // MNetworkEnable - bool m_bHasMovedSinceSpawn; // 0xd98 + bool m_bHasMovedSinceSpawn; // 0xdd8 // MNetworkEnable - bool m_bCanMoveDuringFreezePeriod; // 0xd99 + bool m_bCanMoveDuringFreezePeriod; // 0xdd9 // MNetworkEnable - bool m_isCurrentGunGameLeader; // 0xd9a + bool m_isCurrentGunGameLeader; // 0xdda // MNetworkEnable - bool m_isCurrentGunGameTeamLeader; // 0xd9b + bool m_isCurrentGunGameTeamLeader; // 0xddb // MNetworkEnable - float m_flGuardianTooFarDistFrac; // 0xd9c - float m_flNextGuardianTooFarHurtTime; // 0xda0 + float m_flGuardianTooFarDistFrac; // 0xddc + float m_flNextGuardianTooFarHurtTime; // 0xde0 // MNetworkEnable - GameTime_t m_flDetectedByEnemySensorTime; // 0xda4 + GameTime_t m_flDetectedByEnemySensorTime; // 0xde4 // MNetworkEnable - bool m_bIsSpawnRappelling; // 0xda8 + bool m_bIsSpawnRappelling; // 0xde8 private: - [[maybe_unused]] uint8_t __pad0da9[0x3]; // 0xda9 + [[maybe_unused]] uint8_t __pad0de9[0x3]; // 0xde9 public: // MNetworkEnable - Vector m_vecSpawnRappellingRopeOrigin; // 0xdac + Vector m_vecSpawnRappellingRopeOrigin; // 0xdec // MNetworkEnable - int32_t m_nSurvivalTeam; // 0xdb8 + int32_t m_nSurvivalTeam; // 0xdf8 // MNetworkEnable - CHandle< CCSPlayerPawnBase > m_hSurvivalAssassinationTarget; // 0xdbc - int32_t m_nCompletedSurvivalAssassinations; // 0xdc0 - float m_flDealtDamageToEnemyMostRecentTimestamp; // 0xdc4 + CHandle< CCSPlayerPawnBase > m_hSurvivalAssassinationTarget; // 0xdfc + int32_t m_nCompletedSurvivalAssassinations; // 0xe00 + float m_flDealtDamageToEnemyMostRecentTimestamp; // 0xe04 // MNetworkEnable - float m_flHealthShotBoostExpirationTime; // 0xdc8 - GameTime_t m_flLastEquippedHelmetTime; // 0xdcc - GameTime_t m_flLastEquippedArmorTime; // 0xdd0 + float m_flHealthShotBoostExpirationTime; // 0xe08 + GameTime_t m_flLastEquippedHelmetTime; // 0xe0c + GameTime_t m_flLastEquippedArmorTime; // 0xe10 // MNetworkEnable - int32_t m_nHeavyAssaultSuitCooldownRemaining; // 0xdd4 - bool m_bResetArmorNextSpawn; // 0xdd8 + int32_t m_nHeavyAssaultSuitCooldownRemaining; // 0xe14 + bool m_bResetArmorNextSpawn; // 0xe18 private: - [[maybe_unused]] uint8_t __pad0dd9[0x3]; // 0xdd9 + [[maybe_unused]] uint8_t __pad0e19[0x3]; // 0xe19 public: - GameTime_t m_flLastBumpMineBumpTime; // 0xddc + GameTime_t m_flLastBumpMineBumpTime; // 0xe1c // MNetworkEnable - GameTime_t m_flEmitSoundTime; // 0xde0 - int32_t m_iNumSpawns; // 0xde4 - int32_t m_iShouldHaveCash; // 0xde8 - bool m_bJustKilledTeammate; // 0xdec - bool m_bPunishedForTK; // 0xded - bool m_bInvalidSteamLogonDelayed; // 0xdee + GameTime_t m_flEmitSoundTime; // 0xe20 + int32_t m_iNumSpawns; // 0xe24 + int32_t m_iShouldHaveCash; // 0xe28 + bool m_bJustKilledTeammate; // 0xe2c + bool m_bPunishedForTK; // 0xe2d + bool m_bInvalidSteamLogonDelayed; // 0xe2e private: - [[maybe_unused]] uint8_t __pad0def[0x1]; // 0xdef + [[maybe_unused]] uint8_t __pad0e2f[0x1]; // 0xe2f public: - int32_t m_iTeamKills; // 0xdf0 - GameTime_t m_flLastAction; // 0xdf4 - float m_flNameChangeHistory[5]; // 0xdf8 - float m_fLastGivenDefuserTime; // 0xe0c - float m_fLastGivenBombTime; // 0xe10 + int32_t m_iTeamKills; // 0xe30 + GameTime_t m_flLastAction; // 0xe34 + float m_flNameChangeHistory[5]; // 0xe38 + float m_fLastGivenDefuserTime; // 0xe4c + float m_fLastGivenBombTime; // 0xe50 // MNetworkEnable - bool m_bHasNightVision; // 0xe14 + bool m_bHasNightVision; // 0xe54 // MNetworkEnable - bool m_bNightVisionOn; // 0xe15 + bool m_bNightVisionOn; // 0xe55 private: - [[maybe_unused]] uint8_t __pad0e16[0x2]; // 0xe16 + [[maybe_unused]] uint8_t __pad0e56[0x2]; // 0xe56 public: - float m_fNextRadarUpdateTime; // 0xe18 - float m_flLastMoneyUpdateTime; // 0xe1c - char m_MenuStringBuffer[1024]; // 0xe20 - CHandle< CBaseEntity > m_pIntroCamera; // 0x1220 - float m_fIntroCamTime; // 0x1224 - int32_t m_nMyCollisionGroup; // 0x1228 + float m_fNextRadarUpdateTime; // 0xe58 + float m_flLastMoneyUpdateTime; // 0xe5c + char m_MenuStringBuffer[1024]; // 0xe60 + CHandle< CBaseEntity > m_pIntroCamera; // 0x1260 + float m_fIntroCamTime; // 0x1264 + int32_t m_nMyCollisionGroup; // 0x1268 // MNetworkEnable - bool m_bInBombZone; // 0x122c + bool m_bInBombZone; // 0x126c // MNetworkEnable - bool m_bInBuyZone; // 0x122d + bool m_bInBuyZone; // 0x126d // MNetworkEnable - bool m_bInNoDefuseArea; // 0x122e + bool m_bInNoDefuseArea; // 0x126e // MNetworkEnable - bool m_bKilledByTaser; // 0x122f + bool m_bKilledByTaser; // 0x126f // MNetworkEnable - int32_t m_iMoveState; // 0x1230 + int32_t m_iMoveState; // 0x1270 private: - [[maybe_unused]] uint8_t __pad1234[0x4]; // 0x1234 + [[maybe_unused]] uint8_t __pad1274[0x4]; // 0x1274 public: - CStrongHandle< InfoForResourceTypeCModel > m_nPreviousModelIndex; // 0x1238 - GameTime_t m_grenadeParameterStashTime; // 0x1240 - bool m_bGrenadeParametersStashed; // 0x1244 + CStrongHandle< InfoForResourceTypeCModel > m_nPreviousModelIndex; // 0x1278 + GameTime_t m_grenadeParameterStashTime; // 0x1280 + bool m_bGrenadeParametersStashed; // 0x1284 private: - [[maybe_unused]] uint8_t __pad1245[0x3]; // 0x1245 + [[maybe_unused]] uint8_t __pad1285[0x3]; // 0x1285 public: - QAngle m_angStashedShootAngles; // 0x1248 - Vector m_vecStashedGrenadeThrowPosition; // 0x1254 - Vector m_vecStashedVelocity; // 0x1260 - QAngle m_angShootAngleHistory[2]; // 0x126c - Vector m_vecThrowPositionHistory[2]; // 0x1284 - Vector m_vecVelocityHistory[2]; // 0x129c - uint16_t m_nCharacterDefIndex; // 0x12b4 - bool m_bDiedAirborne; // 0x12b6 + QAngle m_angStashedShootAngles; // 0x1288 + Vector m_vecStashedGrenadeThrowPosition; // 0x1294 + Vector m_vecStashedVelocity; // 0x12a0 + QAngle m_angShootAngleHistory[2]; // 0x12ac + Vector m_vecThrowPositionHistory[2]; // 0x12c4 + Vector m_vecVelocityHistory[2]; // 0x12dc + uint16_t m_nCharacterDefIndex; // 0x12f4 + bool m_bDiedAirborne; // 0x12f6 private: - [[maybe_unused]] uint8_t __pad12b7[0x1]; // 0x12b7 + [[maybe_unused]] uint8_t __pad12f7[0x1]; // 0x12f7 public: - CEntityIndex m_iBombSiteIndex; // 0x12b8 + CEntityIndex m_iBombSiteIndex; // 0x12f8 // MNetworkEnable - int32_t m_nWhichBombZone; // 0x12bc - bool m_bInBombZoneTrigger; // 0x12c0 - bool m_bWasInBombZoneTrigger; // 0x12c1 - bool m_bWasInHostageRescueZone; // 0x12c2 - bool m_bWasInBuyZone; // 0x12c3 + int32_t m_nWhichBombZone; // 0x12fc + bool m_bInBombZoneTrigger; // 0x1300 + bool m_bWasInBombZoneTrigger; // 0x1301 + bool m_bWasInHostageRescueZone; // 0x1302 + bool m_bWasInBuyZone; // 0x1303 // MNetworkEnable - bool m_bInHostageRescueZone; // 0x12c4 + bool m_bInHostageRescueZone; // 0x1304 private: - [[maybe_unused]] uint8_t __pad12c5[0x3]; // 0x12c5 + [[maybe_unused]] uint8_t __pad1305[0x3]; // 0x1305 public: // MNetworkEnable - float m_flStamina; // 0x12c8 + float m_flStamina; // 0x1308 // MNetworkEnable - int32_t m_iDirection; // 0x12cc + int32_t m_iDirection; // 0x130c // MNetworkEnable - int32_t m_iShotsFired; // 0x12d0 + int32_t m_iShotsFired; // 0x1310 // MNetworkEnable - int32_t m_ArmorValue; // 0x12d4 - float m_flFlinchStack; // 0x12d8 + int32_t m_ArmorValue; // 0x1314 + float m_flFlinchStack; // 0x1318 // MNetworkEnable - float m_flVelocityModifier; // 0x12dc - int32_t m_iHostagesKilled; // 0x12e0 - Vector m_vecTotalBulletForce; // 0x12e4 + float m_flVelocityModifier; // 0x131c // MNetworkEnable - float m_flFlashDuration; // 0x12f0 + float m_flHitHeading; // 0x1320 // MNetworkEnable - float m_flFlashMaxAlpha; // 0x12f4 + int32_t m_nHitBodyPart; // 0x1324 + int32_t m_iHostagesKilled; // 0x1328 + Vector m_vecTotalBulletForce; // 0x132c // MNetworkEnable - float m_flProgressBarStartTime; // 0x12f8 + float m_flFlashDuration; // 0x1338 // MNetworkEnable - int32_t m_iProgressBarDuration; // 0x12fc + float m_flFlashMaxAlpha; // 0x133c // MNetworkEnable - bool m_bWaitForNoAttack; // 0x1300 + float m_flProgressBarStartTime; // 0x1340 // MNetworkEnable - bool m_bIsRespawningForDMBonus; // 0x1301 + int32_t m_iProgressBarDuration; // 0x1344 + // MNetworkEnable + bool m_bWaitForNoAttack; // 0x1348 private: - [[maybe_unused]] uint8_t __pad1302[0x2]; // 0x1302 + [[maybe_unused]] uint8_t __pad1349[0x3]; // 0x1349 public: // MNetworkEnable - float m_flLowerBodyYawTarget; // 0x1304 + float m_flLowerBodyYawTarget; // 0x134c // MNetworkEnable - bool m_bStrafing; // 0x1308 + bool m_bStrafing; // 0x1350 private: - [[maybe_unused]] uint8_t __pad1309[0x3]; // 0x1309 + [[maybe_unused]] uint8_t __pad1351[0x3]; // 0x1351 public: - Vector m_lastStandingPos; // 0x130c - float m_ignoreLadderJumpTime; // 0x1318 + Vector m_lastStandingPos; // 0x1354 + float m_ignoreLadderJumpTime; // 0x1360 private: - [[maybe_unused]] uint8_t __pad131c[0x4]; // 0x131c + [[maybe_unused]] uint8_t __pad1364[0x4]; // 0x1364 public: - CountdownTimer m_ladderSurpressionTimer; // 0x1320 - Vector m_lastLadderNormal; // 0x1338 - Vector m_lastLadderPos; // 0x1344 + CountdownTimer m_ladderSurpressionTimer; // 0x1368 + Vector m_lastLadderNormal; // 0x1380 + Vector m_lastLadderPos; // 0x138c // MNetworkEnable // MNetworkEncoder // MNetworkPriority "32" - QAngle m_thirdPersonHeading; // 0x1350 + QAngle m_thirdPersonHeading; // 0x1398 // MNetworkEnable // MNetworkPriority "32" - float m_flSlopeDropOffset; // 0x135c + float m_flSlopeDropOffset; // 0x13a4 // MNetworkEnable // MNetworkPriority "32" - float m_flSlopeDropHeight; // 0x1360 + float m_flSlopeDropHeight; // 0x13a8 // MNetworkEnable // MNetworkPriority "32" - Vector m_vHeadConstraintOffset; // 0x1364 + Vector m_vHeadConstraintOffset; // 0x13ac private: - [[maybe_unused]] uint8_t __pad1370[0x8]; // 0x1370 + [[maybe_unused]] uint8_t __pad13b8[0x8]; // 0x13b8 public: - int32_t m_iLastWeaponFireUsercmd; // 0x1378 + int32_t m_iLastWeaponFireUsercmd; // 0x13c0 // MNetworkEnable // MNetworkEncoder // MNetworkPriority "32" - QAngle m_angEyeAngles; // 0x137c - bool m_bVCollisionInitted; // 0x1388 + QAngle m_angEyeAngles; // 0x13c4 + bool m_bVCollisionInitted; // 0x13d0 private: - [[maybe_unused]] uint8_t __pad1389[0x3]; // 0x1389 + [[maybe_unused]] uint8_t __pad13d1[0x3]; // 0x13d1 public: - Vector m_storedSpawnPosition; // 0x138c - QAngle m_storedSpawnAngle; // 0x1398 - bool m_bIsSpawning; // 0x13a4 + Vector m_storedSpawnPosition; // 0x13d4 + QAngle m_storedSpawnAngle; // 0x13e0 + bool m_bIsSpawning; // 0x13ec // MNetworkEnable - bool m_bHideTargetID; // 0x13a5 + bool m_bHideTargetID; // 0x13ed private: - [[maybe_unused]] uint8_t __pad13a6[0x2]; // 0x13a6 + [[maybe_unused]] uint8_t __pad13ee[0x2]; // 0x13ee public: - int32_t m_nNumDangerZoneDamageHits; // 0x13a8 + int32_t m_nNumDangerZoneDamageHits; // 0x13f0 // MNetworkEnable - bool m_bHud_MiniScoreHidden; // 0x13ac + bool m_bHud_MiniScoreHidden; // 0x13f4 // MNetworkEnable - bool m_bHud_RadarHidden; // 0x13ad + bool m_bHud_RadarHidden; // 0x13f5 private: - [[maybe_unused]] uint8_t __pad13ae[0x2]; // 0x13ae + [[maybe_unused]] uint8_t __pad13f6[0x2]; // 0x13f6 public: // MNetworkEnable - CEntityIndex m_nLastKillerIndex; // 0x13b0 + CEntityIndex m_nLastKillerIndex; // 0x13f8 // MNetworkEnable - int32_t m_nLastConcurrentKilled; // 0x13b4 + int32_t m_nLastConcurrentKilled; // 0x13fc // MNetworkEnable - int32_t m_nDeathCamMusic; // 0x13b8 + int32_t m_nDeathCamMusic; // 0x1400 // MNetworkEnable - int32_t m_iAddonBits; // 0x13bc + int32_t m_iAddonBits; // 0x1404 // MNetworkEnable - int32_t m_iPrimaryAddon; // 0x13c0 + int32_t m_iPrimaryAddon; // 0x1408 // MNetworkEnable - int32_t m_iSecondaryAddon; // 0x13c4 - int32_t m_nTeamDamageGivenForMatch; // 0x13c8 - bool m_bTDGaveProtectionWarning; // 0x13cc - bool m_bTDGaveProtectionWarningThisRound; // 0x13cd + int32_t m_iSecondaryAddon; // 0x140c + int32_t m_nTeamDamageGivenForMatch; // 0x1410 + bool m_bTDGaveProtectionWarning; // 0x1414 + bool m_bTDGaveProtectionWarningThisRound; // 0x1415 private: - [[maybe_unused]] uint8_t __pad13ce[0x2]; // 0x13ce + [[maybe_unused]] uint8_t __pad1416[0x2]; // 0x1416 public: - float m_flLastTHWarningTime; // 0x13d0 - CUtlStringToken m_currentDeafnessFilter; // 0x13d4 - CUtlVector< CHandle< CCSPlayerPawnBase > > m_enemyPlayersKilledThisRound; // 0x13d8 - int32_t m_NumEnemiesKilledThisSpawn; // 0x13f0 - int32_t m_maxNumEnemiesKillStreak; // 0x13f4 - int32_t m_NumEnemiesKilledThisRound; // 0x13f8 - int32_t m_NumEnemiesAtRoundStart; // 0x13fc - int32_t m_iRoundsWon; // 0x1400 - bool m_bHasUsedDMBonusRespawn; // 0x1404 + float m_flLastTHWarningTime; // 0x1418 + CUtlStringToken m_currentDeafnessFilter; // 0x141c + CUtlVector< CHandle< CCSPlayerPawnBase > > m_enemyPlayersKilledThisRound; // 0x1420 + int32_t m_NumEnemiesKilledThisSpawn; // 0x1438 + int32_t m_maxNumEnemiesKillStreak; // 0x143c + int32_t m_NumEnemiesKilledThisRound; // 0x1440 + int32_t m_NumEnemiesAtRoundStart; // 0x1444 + int32_t m_iRoundsWon; // 0x1448 + int32_t m_lastRoundResult; // 0x144c + bool m_wasNotKilledNaturally; // 0x1450 private: - [[maybe_unused]] uint8_t __pad1405[0x3]; // 0x1405 -public: - int32_t m_lastRoundResult; // 0x1408 - bool m_wasNotKilledNaturally; // 0x140c -private: - [[maybe_unused]] uint8_t __pad140d[0x3]; // 0x140d + [[maybe_unused]] uint8_t __pad1451[0x3]; // 0x1451 public: // MNetworkEnable - uint32_t m_vecPlayerPatchEconIndices[5]; // 0x1410 - int32_t m_iDeathFlags; // 0x1424 - CHandle< CChicken > m_hPet; // 0x1428 + uint32_t m_vecPlayerPatchEconIndices[5]; // 0x1454 + int32_t m_iDeathFlags; // 0x1468 + CHandle< CChicken > m_hPet; // 0x146c private: - [[maybe_unused]] uint8_t __pad142c[0x1cc]; // 0x142c + [[maybe_unused]] uint8_t __pad1470[0x1c8]; // 0x1470 public: // MNetworkEnable - uint16_t m_unCurrentEquipmentValue; // 0x15f8 + uint16_t m_unCurrentEquipmentValue; // 0x1638 // MNetworkEnable - uint16_t m_unRoundStartEquipmentValue; // 0x15fa + uint16_t m_unRoundStartEquipmentValue; // 0x163a // MNetworkEnable - uint16_t m_unFreezetimeEndEquipmentValue; // 0x15fc + uint16_t m_unFreezetimeEndEquipmentValue; // 0x163c // MNetworkEnable - char m_szLastPlaceName[18]; // 0x15fe - int32_t m_nSuicides; // 0x1610 + char m_szLastPlaceName[18]; // 0x163e + int32_t m_nSuicides; // 0x1650 // MNetworkEnable - int32_t m_nSurvivalTeamNumber; // 0x1614 + int32_t m_nSurvivalTeamNumber; // 0x1654 // MNetworkEnable - // MNetworkEncoder - QAngle m_aimPunchAngle; // 0x1618 + // MNetworkBitCount "32" + QAngle m_aimPunchAngle; // 0x1658 // MNetworkEnable - // MNetworkEncoder - QAngle m_aimPunchAngleVel; // 0x1624 + // MNetworkBitCount "32" + QAngle m_aimPunchAngleVel; // 0x1664 // MNetworkEnable - int32_t m_aimPunchTickBase; // 0x1630 + int32_t m_aimPunchTickBase; // 0x1670 // MNetworkEnable - float m_aimPunchTickFraction; // 0x1634 - CUtlVector< QAngle > m_aimPunchCache; // 0x1638 - bool m_bHasDeathInfo; // 0x1650 + float m_aimPunchTickFraction; // 0x1674 + CUtlVector< QAngle > m_aimPunchCache; // 0x1678 + bool m_bHasDeathInfo; // 0x1690 private: - [[maybe_unused]] uint8_t __pad1651[0x3]; // 0x1651 + [[maybe_unused]] uint8_t __pad1691[0x3]; // 0x1691 public: - float m_flDeathInfoTime; // 0x1654 - Vector m_vecDeathInfoOrigin; // 0x1658 + float m_flDeathInfoTime; // 0x1694 + Vector m_vecDeathInfoOrigin; // 0x1698 // MNetworkEnable - bool m_bKilledByHeadshot; // 0x1664 + bool m_bKilledByHeadshot; // 0x16a4 private: - [[maybe_unused]] uint8_t __pad1665[0x3]; // 0x1665 + [[maybe_unused]] uint8_t __pad16a5[0x3]; // 0x16a5 public: - int32_t m_LastHitBox; // 0x1668 - int32_t m_LastHealth; // 0x166c - float m_flLastCollisionCeiling; // 0x1670 - float m_flLastCollisionCeilingChangeTime; // 0x1674 - CUtlString m_strVOPrefix; // 0x1678 - float m_flLandseconds; // 0x1680 + int32_t m_LastHitBox; // 0x16a8 + int32_t m_LastHealth; // 0x16ac + float m_flLastCollisionCeiling; // 0x16b0 + float m_flLastCollisionCeilingChangeTime; // 0x16b4 + CUtlString m_strVOPrefix; // 0x16b8 + float m_flLandseconds; // 0x16c0 private: - [[maybe_unused]] uint8_t __pad1684[0x4]; // 0x1684 + [[maybe_unused]] uint8_t __pad16c4[0x4]; // 0x16c4 public: - CCSBot* m_pBot; // 0x1688 - bool m_bBotAllowActive; // 0x1690 - bool m_bCommittingSuicideOnTeamChange; // 0x1691 + CCSBot* m_pBot; // 0x16c8 + bool m_bBotAllowActive; // 0x16d0 + bool m_bCommittingSuicideOnTeamChange; // 0x16d1 }; // Alignment: 0 -// Size: 0x16c0 +// Size: 0x1700 class CCSObserverPawn : public CCSPlayerPawnBase { public: // No members available }; -// Alignment: 25 -// Size: 0x1c20 +// Alignment: 26 +// Size: 0x2050 class CCSPlayerPawn : public CCSPlayerPawnBase { public: - CCSPlayer_ParachuteServices* m_pParachuteServices; // 0x1698 + CCSPlayer_ParachuteServices* m_pParachuteServices; // 0x16d8 // MNetworkEnable - CCSPlayer_BulletServices* m_pBulletServices; // 0x16a0 + CCSPlayer_BulletServices* m_pBulletServices; // 0x16e0 // MNetworkEnable - CCSPlayer_HostageServices* m_pHostageServices; // 0x16a8 - CCSPlayer_BuyServices* m_pBuyServices; // 0x16b0 + CCSPlayer_HostageServices* m_pHostageServices; // 0x16e8 // MNetworkEnable - CCSPlayer_PingServices* m_pPingServices; // 0x16b8 - CCSPlayer_RadioServices* m_pRadioServices; // 0x16c0 - CCSPlayer_DamageReactServices* m_pDamageReactServices; // 0x16c8 + CCSPlayer_BuyServices* m_pBuyServices; // 0x16f0 + // MNetworkEnable + CCSPlayer_PingServices* m_pPingServices; // 0x16f8 + CCSPlayer_RadioServices* m_pRadioServices; // 0x1700 + CCSPlayer_DamageReactServices* m_pDamageReactServices; // 0x1708 private: - [[maybe_unused]] uint8_t __pad16d0[0xc8]; // 0x16d0 + [[maybe_unused]] uint8_t __pad1710[0xc8]; // 0x1710 public: // MNetworkEnable - int32_t m_iRetakesOffering; // 0x1798 + int32_t m_iRetakesOffering; // 0x17d8 // MNetworkEnable - int32_t m_iRetakesOfferingCard; // 0x179c + int32_t m_iRetakesOfferingCard; // 0x17dc // MNetworkEnable - bool m_bRetakesHasDefuseKit; // 0x17a0 + bool m_bRetakesHasDefuseKit; // 0x17e0 // MNetworkEnable - bool m_bRetakesMVPLastRound; // 0x17a1 + bool m_bRetakesMVPLastRound; // 0x17e1 private: - [[maybe_unused]] uint8_t __pad17a2[0x2]; // 0x17a2 + [[maybe_unused]] uint8_t __pad17e2[0x2]; // 0x17e2 public: // MNetworkEnable - int32_t m_iRetakesMVPBoostItem; // 0x17a4 + int32_t m_iRetakesMVPBoostItem; // 0x17e4 // MNetworkEnable - loadout_positions_t m_RetakesMVPBoostExtraUtility; // 0x17a8 + loadout_slot_t m_RetakesMVPBoostExtraUtility; // 0x17e8 // MNetworkEnable - bool m_bIsBuyMenuOpen; // 0x17ac + bool m_bIsBuyMenuOpen; // 0x17ec private: - [[maybe_unused]] uint8_t __pad17ad[0x153]; // 0x17ad + [[maybe_unused]] uint8_t __pad17ed[0x543]; // 0x17ed public: - CTransform m_xLastHeadBoneTransform; // 0x1900 - bool m_bLastHeadBoneTransformIsValid; // 0x1920 + CTransform m_xLastHeadBoneTransform; // 0x1d30 + bool m_bLastHeadBoneTransformIsValid; // 0x1d50 private: - [[maybe_unused]] uint8_t __pad1921[0x3]; // 0x1921 + [[maybe_unused]] uint8_t __pad1d51[0x3]; // 0x1d51 public: - int32_t m_iPlayerLocked; // 0x1924 + int32_t m_iPlayerLocked; // 0x1d54 private: - [[maybe_unused]] uint8_t __pad1928[0x4]; // 0x1928 + [[maybe_unused]] uint8_t __pad1d58[0x4]; // 0x1d58 public: // MNetworkEnable // MNetworkUserGroup "LocalPlayerExclusive" - float m_flNextSprayDecalTime; // 0x192c + float m_flNextSprayDecalTime; // 0x1d5c private: - [[maybe_unused]] uint8_t __pad1930[0x4]; // 0x1930 + [[maybe_unused]] uint8_t __pad1d60[0x4]; // 0x1d60 public: // MNetworkEnable - int32_t m_nRagdollDamageBone; // 0x1934 + int32_t m_nRagdollDamageBone; // 0x1d64 // MNetworkEnable - Vector m_vRagdollDamageForce; // 0x1938 + Vector m_vRagdollDamageForce; // 0x1d68 // MNetworkEnable - Vector m_vRagdollDamagePosition; // 0x1944 + Vector m_vRagdollDamagePosition; // 0x1d74 // MNetworkEnable - char m_szRagdollDamageWeaponName[64]; // 0x1950 + char m_szRagdollDamageWeaponName[64]; // 0x1d80 // MNetworkEnable - bool m_bRagdollDamageHeadshot; // 0x1990 + bool m_bRagdollDamageHeadshot; // 0x1dc0 private: - [[maybe_unused]] uint8_t __pad1991[0x7]; // 0x1991 + [[maybe_unused]] uint8_t __pad1dc1[0x7]; // 0x1dc1 public: // MNetworkEnable - CEconItemView m_EconGloves; // 0x1998 + CEconItemView m_EconGloves; // 0x1dc8 // MNetworkEnable - QAngle m_qDeathEyeAngles; // 0x1c10 + QAngle m_qDeathEyeAngles; // 0x2040 + bool m_bSkipOneHeadConstraintUpdate; // 0x204c }; // Alignment: 6 -// Size: 0xf38 +// Size: 0xf40 class CDZDoor : public CPropDoorRotatingBreakable { -public: - bool m_bIsSecurityDoor; // 0xef0 private: - [[maybe_unused]] uint8_t __pad0ef1[0x3]; // 0xef1 + [[maybe_unused]] uint8_t __pad0ef0[0x8]; // 0xef0 public: - CHandle< CPointDZWeaponSpawn > m_hSpawnPoint; // 0xef4 - bool m_bPaidToUnlock; // 0xef8 + bool m_bIsSecurityDoor; // 0xef8 private: [[maybe_unused]] uint8_t __pad0ef9[0x3]; // 0xef9 public: - int32_t m_nPlayDoorOpenSound; // 0xefc + CHandle< CPointDZWeaponSpawn > m_hSpawnPoint; // 0xefc + bool m_bPaidToUnlock; // 0xf00 private: - [[maybe_unused]] uint8_t __pad0f00[0x30]; // 0xf00 + [[maybe_unused]] uint8_t __pad0f01[0x3]; // 0xf01 public: - AttachmentHandle_t m_nAttachmentIndex1; // 0xf30 - AttachmentHandle_t m_nAttachmentIndex2; // 0xf31 + int32_t m_nPlayDoorOpenSound; // 0xf04 +private: + [[maybe_unused]] uint8_t __pad0f08[0x30]; // 0xf08 +public: + AttachmentHandle_t m_nAttachmentIndex1; // 0xf38 + AttachmentHandle_t m_nAttachmentIndex2; // 0xf39 }; // Alignment: 1 -// Size: 0xa80 +// Size: 0xa78 class CHostageExpresserShim : public CBaseCombatCharacter { public: - CAI_Expresser* m_pExpresser; // 0xa78 + CAI_Expresser* m_pExpresser; // 0xa70 }; -// Alignment: 39 -// Size: 0x2d10 +// Alignment: 38 +// Size: 0x2d08 class CHostage : public CHostageExpresserShim { -public: - CEntityIOOutput m_OnHostageBeginGrab; // 0xa90 - CEntityIOOutput m_OnFirstPickedUp; // 0xab8 - CEntityIOOutput m_OnDroppedNotRescued; // 0xae0 - CEntityIOOutput m_OnRescued; // 0xb08 - // MNetworkEnable - EntitySpottedState_t m_entitySpottedState; // 0xb30 - int32_t m_nSpotRules; // 0xb48 - uint32_t m_uiHostageSpawnExclusionGroupMask; // 0xb4c - uint32_t m_nHostageSpawnRandomFactor; // 0xb50 - bool m_bRemove; // 0xb54 private: - [[maybe_unused]] uint8_t __pad0b55[0x3]; // 0xb55 + [[maybe_unused]] uint8_t __pad0a78[0x10]; // 0xa78 +public: + CEntityIOOutput m_OnHostageBeginGrab; // 0xa88 + CEntityIOOutput m_OnFirstPickedUp; // 0xab0 + CEntityIOOutput m_OnDroppedNotRescued; // 0xad8 + CEntityIOOutput m_OnRescued; // 0xb00 + // MNetworkEnable + EntitySpottedState_t m_entitySpottedState; // 0xb28 + int32_t m_nSpotRules; // 0xb40 + uint32_t m_uiHostageSpawnExclusionGroupMask; // 0xb44 + uint32_t m_nHostageSpawnRandomFactor; // 0xb48 + bool m_bRemove; // 0xb4c +private: + [[maybe_unused]] uint8_t __pad0b4d[0x3]; // 0xb4d public: // MNetworkEnable - Vector m_vel; // 0xb58 + Vector m_vel; // 0xb50 // MNetworkEnable - bool m_isRescued; // 0xb64 + bool m_isRescued; // 0xb5c // MNetworkEnable - bool m_jumpedThisFrame; // 0xb65 + bool m_jumpedThisFrame; // 0xb5d private: - [[maybe_unused]] uint8_t __pad0b66[0x2]; // 0xb66 + [[maybe_unused]] uint8_t __pad0b5e[0x2]; // 0xb5e public: // MNetworkEnable - int32_t m_nHostageState; // 0xb68 + int32_t m_nHostageState; // 0xb60 // MNetworkEnable - CHandle< CBaseEntity > m_leader; // 0xb6c - CHandle< CCSPlayerPawnBase > m_lastLeader; // 0xb70 + CHandle< CBaseEntity > m_leader; // 0xb64 + CHandle< CCSPlayerPawnBase > m_lastLeader; // 0xb68 private: - [[maybe_unused]] uint8_t __pad0b74[0x4]; // 0xb74 + [[maybe_unused]] uint8_t __pad0b6c[0x4]; // 0xb6c public: - CountdownTimer m_reuseTimer; // 0xb78 - bool m_hasBeenUsed; // 0xb90 -private: - [[maybe_unused]] uint8_t __pad0b91[0x3]; // 0xb91 -public: - Vector m_accel; // 0xb94 - bool m_isRunning; // 0xba0 - bool m_isCrouching; // 0xba1 -private: - [[maybe_unused]] uint8_t __pad0ba2[0x6]; // 0xba2 -public: - CountdownTimer m_jumpTimer; // 0xba8 - bool m_isWaitingForLeader; // 0xbc0 -private: - [[maybe_unused]] uint8_t __pad0bc1[0x200f]; // 0xbc1 -public: - CountdownTimer m_repathTimer; // 0x2bd0 - CountdownTimer m_inhibitDoorTimer; // 0x2be8 -private: - [[maybe_unused]] uint8_t __pad2c00[0x78]; // 0x2c00 -public: - CountdownTimer m_inhibitObstacleAvoidanceTimer; // 0x2c78 -private: - [[maybe_unused]] uint8_t __pad2c90[0x8]; // 0x2c90 -public: - CountdownTimer m_wiggleTimer; // 0x2c98 -private: - [[maybe_unused]] uint8_t __pad2cb0[0x4]; // 0x2cb0 -public: - bool m_isAdjusted; // 0x2cb4 - bool m_bHandsHaveBeenCut; // 0x2cb5 -private: - [[maybe_unused]] uint8_t __pad2cb6[0x2]; // 0x2cb6 -public: - CHandle< CCSPlayerPawn > m_pHostageGrabber; // 0x2cb8 - GameTime_t m_fLastGrabTime; // 0x2cbc - float m_flGrabbingLength; // 0x2cc0 - Vector m_vecPositionWhenStartedDroppingToGround; // 0x2cc4 - Vector m_vecGrabbedPos; // 0x2cd0 // MNetworkEnable - GameTime_t m_flRescueStartTime; // 0x2cdc + CountdownTimer m_reuseTimer; // 0xb70 + bool m_hasBeenUsed; // 0xb88 +private: + [[maybe_unused]] uint8_t __pad0b89[0x3]; // 0xb89 +public: + Vector m_accel; // 0xb8c + bool m_isRunning; // 0xb98 + bool m_isCrouching; // 0xb99 +private: + [[maybe_unused]] uint8_t __pad0b9a[0x6]; // 0xb9a +public: + CountdownTimer m_jumpTimer; // 0xba0 + bool m_isWaitingForLeader; // 0xbb8 +private: + [[maybe_unused]] uint8_t __pad0bb9[0x200f]; // 0xbb9 +public: + CountdownTimer m_repathTimer; // 0x2bc8 + CountdownTimer m_inhibitDoorTimer; // 0x2be0 +private: + [[maybe_unused]] uint8_t __pad2bf8[0x78]; // 0x2bf8 +public: + CountdownTimer m_inhibitObstacleAvoidanceTimer; // 0x2c70 +private: + [[maybe_unused]] uint8_t __pad2c88[0x8]; // 0x2c88 +public: + CountdownTimer m_wiggleTimer; // 0x2c90 +private: + [[maybe_unused]] uint8_t __pad2ca8[0x4]; // 0x2ca8 +public: + bool m_isAdjusted; // 0x2cac // MNetworkEnable - GameTime_t m_flGrabSuccessTime; // 0x2ce0 + bool m_bHandsHaveBeenCut; // 0x2cad +private: + [[maybe_unused]] uint8_t __pad2cae[0x2]; // 0x2cae +public: // MNetworkEnable - GameTime_t m_flDropStartTime; // 0x2ce4 - int32_t m_nApproachRewardPayouts; // 0x2ce8 - int32_t m_nPickupEventCount; // 0x2cec - Vector m_vecSpawnGroundPos; // 0x2cf0 + CHandle< CCSPlayerPawn > m_hHostageGrabber; // 0x2cb0 + GameTime_t m_fLastGrabTime; // 0x2cb4 + Vector m_vecPositionWhenStartedDroppingToGround; // 0x2cb8 + Vector m_vecGrabbedPos; // 0x2cc4 + // MNetworkEnable + GameTime_t m_flRescueStartTime; // 0x2cd0 + // MNetworkEnable + GameTime_t m_flGrabSuccessTime; // 0x2cd4 + // MNetworkEnable + GameTime_t m_flDropStartTime; // 0x2cd8 + int32_t m_nApproachRewardPayouts; // 0x2cdc + int32_t m_nPickupEventCount; // 0x2ce0 + Vector m_vecSpawnGroundPos; // 0x2ce4 }; // Alignment: 0 -// Size: 0x2d10 +// Size: 0x2d08 class CHostageAlias_info_hostage_spawn : public CHostage { public: @@ -17408,7 +17904,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CAK47 : public CWeaponCSBaseGun { public: @@ -17416,7 +17912,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponAug : public CWeaponCSBaseGun { public: @@ -17424,7 +17920,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponAWP : public CWeaponCSBaseGun { public: @@ -17432,7 +17928,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponBizon : public CWeaponCSBaseGun { public: @@ -17440,7 +17936,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponFamas : public CWeaponCSBaseGun { public: @@ -17448,7 +17944,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponFiveSeven : public CWeaponCSBaseGun { public: @@ -17456,7 +17952,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponG3SG1 : public CWeaponCSBaseGun { public: @@ -17464,7 +17960,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponGalilAR : public CWeaponCSBaseGun { public: @@ -17472,7 +17968,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponGlock : public CWeaponCSBaseGun { public: @@ -17480,7 +17976,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponHKP2000 : public CWeaponCSBaseGun { public: @@ -17488,7 +17984,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponM4A1 : public CWeaponCSBaseGun { public: @@ -17496,7 +17992,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponMAC10 : public CWeaponCSBaseGun { public: @@ -17504,7 +18000,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponMag7 : public CWeaponCSBaseGun { public: @@ -17512,7 +18008,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponMP7 : public CWeaponCSBaseGun { public: @@ -17520,7 +18016,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponMP9 : public CWeaponCSBaseGun { public: @@ -17528,7 +18024,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponNegev : public CWeaponCSBaseGun { public: @@ -17536,7 +18032,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponP250 : public CWeaponCSBaseGun { public: @@ -17544,7 +18040,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponP90 : public CWeaponCSBaseGun { public: @@ -17552,7 +18048,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponSCAR20 : public CWeaponCSBaseGun { public: @@ -17560,7 +18056,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponSG556 : public CWeaponCSBaseGun { public: @@ -17568,7 +18064,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponSSG08 : public CWeaponCSBaseGun { public: @@ -17576,7 +18072,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponTec9 : public CWeaponCSBaseGun { public: @@ -17584,7 +18080,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponUMP45 : public CWeaponCSBaseGun { public: @@ -17592,7 +18088,7 @@ public: }; // Alignment: 0 -// Size: 0xe80 +// Size: 0xea0 class CWeaponM249 : public CWeaponCSBaseGun { public: @@ -17600,7 +18096,7 @@ public: }; // Alignment: 0 -// Size: 0xea0 +// Size: 0xec0 class CMolotovGrenade : public CBaseCSGrenade { public: @@ -17608,7 +18104,7 @@ public: }; // Alignment: 0 -// Size: 0xea0 +// Size: 0xec0 class CIncendiaryGrenade : public CMolotovGrenade { public: @@ -17616,7 +18112,7 @@ public: }; // Alignment: 0 -// Size: 0xea0 +// Size: 0xec0 class CDecoyGrenade : public CBaseCSGrenade { public: @@ -17624,7 +18120,7 @@ public: }; // Alignment: 0 -// Size: 0xea0 +// Size: 0xec0 class CFlashbang : public CBaseCSGrenade { public: @@ -17632,7 +18128,7 @@ public: }; // Alignment: 0 -// Size: 0xea0 +// Size: 0xec0 class CHEGrenade : public CBaseCSGrenade { public: @@ -17640,7 +18136,7 @@ public: }; // Alignment: 0 -// Size: 0xea8 +// Size: 0xec8 class CSmokeGrenade : public CBaseCSGrenade { public: diff --git a/sdk/soundsystem.hpp b/sdk/soundsystem.hpp index 3b968fb7..af743205 100644 --- a/sdk/soundsystem.hpp +++ b/sdk/soundsystem.hpp @@ -4,7 +4,7 @@ // ///////////////////////////////////////////////////////////// // Binary: soundsystem.dll -// Classes count: 36 +// Classes count: 37 // Enums count: 13 // Created using source2gen - github.com/neverlosecc/source2gen // ///////////////////////////////////////////////////////////// @@ -46,12 +46,13 @@ enum class soundlevel_t : uint32_t }; // Alignment: 4 -// Size: 0x3 +// Size: 0x4 enum class ActionType_t : uint32_t { SOS_ACTION_NONE = 0x0, SOS_ACTION_LIMITER = 0x1, SOS_ACTION_TIME_LIMIT = 0x2, + SOS_ACTION_SET_SOUNDEVENT_PARAM = 0x3, }; // Alignment: 4 @@ -206,6 +207,8 @@ struct VMixFilterDesc_t; // Size: 0x18 class CSosGroupActionSchema { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MPropertyFriendlyName "Name" CUtlString m_name; // 0x8 @@ -237,10 +240,32 @@ public: float m_flMaxDuration; // 0x18 }; +// Alignment: 5 +// Size: 0x38 +class CSosGroupActionSetSoundeventParameterSchema : public CSosGroupActionSchema +{ +public: + // MPropertyFriendlyName "Max Count" + int32_t m_nMaxCount; // 0x18 + // MPropertyFriendlyName "Minimum Value" + float m_flMinValue; // 0x1c + // MPropertyFriendlyName "Maximum Value" + float m_flMaxValue; // 0x20 +private: + [[maybe_unused]] uint8_t __pad0024[0x4]; // 0x24 +public: + // MPropertyFriendlyName "Parameter Name" + CUtlString m_opvarName; // 0x28 + // MPropertyFriendlyName "Sort Type" + SosActionSortType_t m_nSortType; // 0x30 +}; + // Alignment: 4 // Size: 0x10 class CSosGroupBranchPattern { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: // MPropertyFriendlyName "Event Name" bool m_bMatchEventName; // 0x8 diff --git a/sdk/vphysics2.hpp b/sdk/vphysics2.hpp index a02bf66e..78bac651 100644 --- a/sdk/vphysics2.hpp +++ b/sdk/vphysics2.hpp @@ -4,7 +4,7 @@ // ///////////////////////////////////////////////////////////// // Binary: vphysics2.dll -// Classes count: 88 +// Classes count: 87 // Enums count: 2 // Created using source2gen - github.com/neverlosecc/source2gen // ///////////////////////////////////////////////////////////// @@ -79,8 +79,10 @@ public: // Size: 0x8 class IPhysicsPlayerController { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: - uint8_t __pad0000[0x8]; // Autoaligned + // No members available }; // Alignment: 35 @@ -146,8 +148,8 @@ public: CFeJiggleBone m_jiggleBone; // 0x8 }; -// Alignment: 100 -// Size: 0x600 +// Alignment: 98 +// Size: 0x5e8 struct PhysFeModelDesc_t { public: @@ -167,12 +169,11 @@ public: uint16_t m_nSimdQuadCount2; // 0x4e uint16_t m_nQuadCount1; // 0x50 uint16_t m_nQuadCount2; // 0x52 - uint16_t m_nCollisionSphereInclusiveCount; // 0x54 - uint16_t m_nTreeDepth; // 0x56 - uint16_t m_nNodeBaseJiggleboneDependsCount; // 0x58 - uint16_t m_nRopeCount; // 0x5a + uint16_t m_nTreeDepth; // 0x54 + uint16_t m_nNodeBaseJiggleboneDependsCount; // 0x56 + uint16_t m_nRopeCount; // 0x58 private: - [[maybe_unused]] uint8_t __pad005c[0x4]; // 0x5c + [[maybe_unused]] uint8_t __pad005a[0x6]; // 0x5a public: CUtlVector< uint16 > m_Ropes; // 0x60 CUtlVector< FeNodeBase_t > m_NodeBases; // 0x78 @@ -189,71 +190,70 @@ public: CUtlVector< FeCtrlOffset_t > m_CtrlOffsets; // 0x180 CUtlVector< FeCtrlOsOffset_t > m_CtrlOsOffsets; // 0x198 CUtlVector< FeFollowNode_t > m_FollowNodes; // 0x1b0 - CUtlVector< FeCollisionSphere_t > m_CollisionSpheres; // 0x1c8 - CUtlVector< FeCollisionPlane_t > m_CollisionPlanes; // 0x1e0 - CUtlVector< FeNodeIntegrator_t > m_NodeIntegrator; // 0x1f8 - CUtlVector< FeSpringIntegrator_t > m_SpringIntegrator; // 0x210 - CUtlVector< FeSimdSpringIntegrator_t > m_SimdSpringIntegrator; // 0x228 - CUtlVector< FeWorldCollisionParams_t > m_WorldCollisionParams; // 0x240 - CUtlVector< float32 > m_LegacyStretchForce; // 0x258 - CUtlVector< float32 > m_NodeCollisionRadii; // 0x270 - CUtlVector< float32 > m_DynNodeFriction; // 0x288 - CUtlVector< float32 > m_LocalRotation; // 0x2a0 - CUtlVector< float32 > m_LocalForce; // 0x2b8 - CUtlVector< FeTaperedCapsuleStretch_t > m_TaperedCapsuleStretches; // 0x2d0 - CUtlVector< FeTaperedCapsuleRigid_t > m_TaperedCapsuleRigids; // 0x2e8 - CUtlVector< FeSphereRigid_t > m_SphereRigids; // 0x300 - CUtlVector< uint16 > m_WorldCollisionNodes; // 0x318 - CUtlVector< uint16 > m_TreeParents; // 0x330 - CUtlVector< uint16 > m_TreeCollisionMasks; // 0x348 - CUtlVector< FeTreeChildren_t > m_TreeChildren; // 0x360 - CUtlVector< uint16 > m_FreeNodes; // 0x378 - CUtlVector< FeFitMatrix_t > m_FitMatrices; // 0x390 - CUtlVector< FeFitWeight_t > m_FitWeights; // 0x3a8 - CUtlVector< FeNodeReverseOffset_t > m_ReverseOffsets; // 0x3c0 - CUtlVector< FeAnimStrayRadius_t > m_AnimStrayRadii; // 0x3d8 - CUtlVector< FeSimdAnimStrayRadius_t > m_SimdAnimStrayRadii; // 0x3f0 - CUtlVector< FeKelagerBend2_t > m_KelagerBends; // 0x408 - CUtlVector< FeCtrlSoftOffset_t > m_CtrlSoftOffsets; // 0x420 - CUtlVector< CFeIndexedJiggleBone > m_JiggleBones; // 0x438 - CUtlVector< uint16 > m_SourceElems; // 0x450 - CUtlVector< uint32 > m_GoalDampedSpringIntegrators; // 0x468 - CUtlVector< FeTri_t > m_Tris; // 0x480 - uint16_t m_nTriCount1; // 0x498 - uint16_t m_nTriCount2; // 0x49a - uint8_t m_nReservedUint8; // 0x49c - uint8_t m_nExtraPressureIterations; // 0x49d - uint8_t m_nExtraGoalIterations; // 0x49e - uint8_t m_nExtraIterations; // 0x49f - CUtlVector< FeBoxRigid_t > m_BoxRigids; // 0x4a0 - CUtlVector< uint8 > m_DynNodeVertexSet; // 0x4b8 - CUtlVector< uint32 > m_VertexSetNames; // 0x4d0 - CUtlVector< FeRigidColliderIndices_t > m_RigidColliderPriorities; // 0x4e8 - CUtlVector< FeMorphLayerDepr_t > m_MorphLayers; // 0x500 - CUtlVector< uint8 > m_MorphSetData; // 0x518 - CUtlVector< FeVertexMapDesc_t > m_VertexMaps; // 0x530 - CUtlVector< uint8 > m_VertexMapValues; // 0x548 - CUtlVector< FeEffectDesc_t > m_Effects; // 0x560 - CUtlVector< FeCtrlOffset_t > m_LockToParent; // 0x578 - CUtlVector< uint16 > m_LockToGoal; // 0x590 - CUtlVector< FeNodeWindBase_t > m_DynNodeWindBases; // 0x5a8 - float m_flInternalPressure; // 0x5c0 - float m_flDefaultTimeDilation; // 0x5c4 - float m_flWindage; // 0x5c8 - float m_flWindDrag; // 0x5cc - float m_flDefaultSurfaceStretch; // 0x5d0 - float m_flDefaultThreadStretch; // 0x5d4 - float m_flDefaultGravityScale; // 0x5d8 - float m_flDefaultVelAirDrag; // 0x5dc - float m_flDefaultExpAirDrag; // 0x5e0 - float m_flDefaultVelQuadAirDrag; // 0x5e4 - float m_flDefaultExpQuadAirDrag; // 0x5e8 - float m_flRodVelocitySmoothRate; // 0x5ec - float m_flQuadVelocitySmoothRate; // 0x5f0 - float m_flAddWorldCollisionRadius; // 0x5f4 - float m_flDefaultVolumetricSolveAmount; // 0x5f8 - uint16_t m_nRodVelocitySmoothIterations; // 0x5fc - uint16_t m_nQuadVelocitySmoothIterations; // 0x5fe + CUtlVector< FeCollisionPlane_t > m_CollisionPlanes; // 0x1c8 + CUtlVector< FeNodeIntegrator_t > m_NodeIntegrator; // 0x1e0 + CUtlVector< FeSpringIntegrator_t > m_SpringIntegrator; // 0x1f8 + CUtlVector< FeSimdSpringIntegrator_t > m_SimdSpringIntegrator; // 0x210 + CUtlVector< FeWorldCollisionParams_t > m_WorldCollisionParams; // 0x228 + CUtlVector< float32 > m_LegacyStretchForce; // 0x240 + CUtlVector< float32 > m_NodeCollisionRadii; // 0x258 + CUtlVector< float32 > m_DynNodeFriction; // 0x270 + CUtlVector< float32 > m_LocalRotation; // 0x288 + CUtlVector< float32 > m_LocalForce; // 0x2a0 + CUtlVector< FeTaperedCapsuleStretch_t > m_TaperedCapsuleStretches; // 0x2b8 + CUtlVector< FeTaperedCapsuleRigid_t > m_TaperedCapsuleRigids; // 0x2d0 + CUtlVector< FeSphereRigid_t > m_SphereRigids; // 0x2e8 + CUtlVector< uint16 > m_WorldCollisionNodes; // 0x300 + CUtlVector< uint16 > m_TreeParents; // 0x318 + CUtlVector< uint16 > m_TreeCollisionMasks; // 0x330 + CUtlVector< FeTreeChildren_t > m_TreeChildren; // 0x348 + CUtlVector< uint16 > m_FreeNodes; // 0x360 + CUtlVector< FeFitMatrix_t > m_FitMatrices; // 0x378 + CUtlVector< FeFitWeight_t > m_FitWeights; // 0x390 + CUtlVector< FeNodeReverseOffset_t > m_ReverseOffsets; // 0x3a8 + CUtlVector< FeAnimStrayRadius_t > m_AnimStrayRadii; // 0x3c0 + CUtlVector< FeSimdAnimStrayRadius_t > m_SimdAnimStrayRadii; // 0x3d8 + CUtlVector< FeKelagerBend2_t > m_KelagerBends; // 0x3f0 + CUtlVector< FeCtrlSoftOffset_t > m_CtrlSoftOffsets; // 0x408 + CUtlVector< CFeIndexedJiggleBone > m_JiggleBones; // 0x420 + CUtlVector< uint16 > m_SourceElems; // 0x438 + CUtlVector< uint32 > m_GoalDampedSpringIntegrators; // 0x450 + CUtlVector< FeTri_t > m_Tris; // 0x468 + uint16_t m_nTriCount1; // 0x480 + uint16_t m_nTriCount2; // 0x482 + uint8_t m_nReservedUint8; // 0x484 + uint8_t m_nExtraPressureIterations; // 0x485 + uint8_t m_nExtraGoalIterations; // 0x486 + uint8_t m_nExtraIterations; // 0x487 + CUtlVector< FeBoxRigid_t > m_BoxRigids; // 0x488 + CUtlVector< uint8 > m_DynNodeVertexSet; // 0x4a0 + CUtlVector< uint32 > m_VertexSetNames; // 0x4b8 + CUtlVector< FeRigidColliderIndices_t > m_RigidColliderPriorities; // 0x4d0 + CUtlVector< FeMorphLayerDepr_t > m_MorphLayers; // 0x4e8 + CUtlVector< uint8 > m_MorphSetData; // 0x500 + CUtlVector< FeVertexMapDesc_t > m_VertexMaps; // 0x518 + CUtlVector< uint8 > m_VertexMapValues; // 0x530 + CUtlVector< FeEffectDesc_t > m_Effects; // 0x548 + CUtlVector< FeCtrlOffset_t > m_LockToParent; // 0x560 + CUtlVector< uint16 > m_LockToGoal; // 0x578 + CUtlVector< FeNodeWindBase_t > m_DynNodeWindBases; // 0x590 + float m_flInternalPressure; // 0x5a8 + float m_flDefaultTimeDilation; // 0x5ac + float m_flWindage; // 0x5b0 + float m_flWindDrag; // 0x5b4 + float m_flDefaultSurfaceStretch; // 0x5b8 + float m_flDefaultThreadStretch; // 0x5bc + float m_flDefaultGravityScale; // 0x5c0 + float m_flDefaultVelAirDrag; // 0x5c4 + float m_flDefaultExpAirDrag; // 0x5c8 + float m_flDefaultVelQuadAirDrag; // 0x5cc + float m_flDefaultExpQuadAirDrag; // 0x5d0 + float m_flRodVelocitySmoothRate; // 0x5d4 + float m_flQuadVelocitySmoothRate; // 0x5d8 + float m_flAddWorldCollisionRadius; // 0x5dc + float m_flDefaultVolumetricSolveAmount; // 0x5e0 + uint16_t m_nRodVelocitySmoothIterations; // 0x5e4 + uint16_t m_nQuadVelocitySmoothIterations; // 0x5e6 }; // Alignment: 2 @@ -580,18 +580,6 @@ public: float flWeight; // 0x4 }; -// Alignment: 5 -// Size: 0x18 -struct FeCollisionSphere_t -{ -public: - uint16_t nCtrlParent; // 0x0 - uint16_t nChildNode; // 0x2 - float m_flRFactor; // 0x4 - Vector m_vOrigin; // 0x8 - float flStickiness; // 0x14 -}; - // Alignment: 2 // Size: 0x10 struct RnPlane_t @@ -728,16 +716,15 @@ public: uint16_t nBeginDynamic; // 0x30 }; -// Alignment: 5 -// Size: 0xc +// Alignment: 4 +// Size: 0x8 struct FeRigidColliderIndices_t { public: uint16_t m_nTaperedCapsuleRigidIndex; // 0x0 uint16_t m_nSphereRigidIndex; // 0x2 uint16_t m_nBoxRigidIndex; // 0x4 - uint16_t m_nCollisionSphereIndex[2]; // 0x6 - uint16_t m_nCollisionPlaneIndex; // 0xa + uint16_t m_nCollisionPlaneIndex; // 0x6 }; // Alignment: 2 @@ -985,7 +972,7 @@ public: uint32_t m_nTriangleOffset; // 0x1c }; -// Alignment: 8 +// Alignment: 9 // Size: 0xa0 struct RnMesh_t { @@ -998,6 +985,7 @@ public: CUtlVector< RnWing_t > m_Wings; // 0x60 CUtlVector< uint8 > m_Materials; // 0x78 Vector m_vOrthographicAreas; // 0x90 + bool m_bHasOpenEdges; // 0x9c }; // Alignment: 3 diff --git a/sdk/worldrenderer.hpp b/sdk/worldrenderer.hpp index 4681ae4a..9eb33e64 100644 --- a/sdk/worldrenderer.hpp +++ b/sdk/worldrenderer.hpp @@ -61,6 +61,8 @@ public: // Size: 0x40 struct EntityKeyValueData_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlVector< EntityIOConnectionData_t > m_connections; // 0x8 CUtlBinaryBlock m_keyValuesData; // 0x20 @@ -70,6 +72,8 @@ public: // Size: 0x40 struct PermEntityLumpData_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x8]; // 0x0 public: CUtlString m_name; // 0x8 CUtlString m_hammerUniqueId; // 0x10 @@ -241,11 +245,11 @@ struct ClutterTile_t public: uint32_t m_nFirstInstance; // 0x0 uint32_t m_nLastInstance; // 0x4 - AABB_t m_Bounds; // 0x8 + AABB_t m_BoundsWs; // 0x8 }; -// Alignment: 7 -// Size: 0x70 +// Alignment: 8 +// Size: 0xa0 struct ClutterSceneObject_t { public: @@ -255,10 +259,14 @@ public: private: [[maybe_unused]] uint8_t __pad001e[0x2]; // 0x1e public: - CUtlVector< matrix3x4_t > m_transforms; // 0x20 - CUtlVector< Color > m_tintColorSrgb; // 0x38 - CUtlVector< ClutterTile_t > m_tiles; // 0x50 - CStrongHandle< InfoForResourceTypeCModel > m_renderableModel; // 0x68 + CUtlVector< Vector > m_instancePositions; // 0x20 +private: + [[maybe_unused]] uint8_t __pad0038[0x18]; // 0x38 +public: + CUtlVector< float32 > m_instanceScales; // 0x50 + CUtlVector< Color > m_instanceTintSrgb; // 0x68 + CUtlVector< ClutterTile_t > m_tiles; // 0x80 + CStrongHandle< InfoForResourceTypeCModel > m_renderableModel; // 0x98 }; // Alignment: 13 @@ -337,6 +345,8 @@ public: // Size: 0xa0 class CVoxelVisibility { +private: + [[maybe_unused]] uint8_t __pad0000[0x40]; // 0x0 public: uint32_t m_nBaseClusterCount; // 0x40 uint32_t m_nPVSBytesPerCluster; // 0x44 @@ -357,22 +367,28 @@ public: // Size: 0x1 struct VMapResourceData_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 0 // Size: 0x1 struct InfoForResourceTypeVMapResourceData_t { +private: + [[maybe_unused]] uint8_t __pad0000[0x1]; // 0x0 public: - uint8_t __pad0000[0x1]; // Autoaligned + // No members available }; // Alignment: 11 // Size: 0x78 class CEntityIdentity { +private: + [[maybe_unused]] uint8_t __pad0000[0x14]; // 0x0 public: // MNetworkEnable // MNetworkChangeCallback "entityIdentityNameChanged" @@ -423,8 +439,12 @@ public: // Size: 0x38 class CScriptComponent : public CEntityComponent { +private: + [[maybe_unused]] uint8_t __pad0008[0x28]; // 0x8 public: CUtlSymbolLarge m_scriptClassName; // 0x30 + + // Static fields: static EntComponentInfo_t &Get_s_EntComponentInfo(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("worldrenderer.dll")->FindDeclaredClass("CScriptComponent")->m_static_fields[0]->m_instance);}; static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced(){return *reinterpret_cast(interfaces::g_schema->FindTypeScopeForModule("worldrenderer.dll")->FindDeclaredClass("CScriptComponent")->m_static_fields[1]->m_instance);}; };