mirror of
https://github.com/Mr-X-GTA/GTAV-Classes-1.git
synced 2024-12-22 14:37:31 +08:00
fix(CAmmoInfo & CWeaponInfo): Split into proper classes. (#38)
This commit is contained in:
parent
f6d799e775
commit
4a0157c69d
92
enums/eExplosionTag.hpp
Normal file
92
enums/eExplosionTag.hpp
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
enum eExplosionTag : int32_t
|
||||||
|
{
|
||||||
|
DONTCARE = -1,
|
||||||
|
GRENADE,
|
||||||
|
GRENADELAUNCHER,
|
||||||
|
STICKYBOMB,
|
||||||
|
MOLOTOV,
|
||||||
|
ROCKET,
|
||||||
|
TANKSHELL,
|
||||||
|
HI_OCTANE,
|
||||||
|
CAR,
|
||||||
|
PLANE,
|
||||||
|
PETROL_PUMP,
|
||||||
|
BIKE,
|
||||||
|
DIR_STEAM,
|
||||||
|
DIR_FLAME,
|
||||||
|
DIR_WATER_HYDRANT,
|
||||||
|
DIR_GAS_CANISTER,
|
||||||
|
BOAT,
|
||||||
|
SHIP_DESTROY,
|
||||||
|
TRUCK,
|
||||||
|
BULLET,
|
||||||
|
SMOKEGRENADELAUNCHER,
|
||||||
|
SMOKEGRENADE,
|
||||||
|
BZGAS,
|
||||||
|
FLARE,
|
||||||
|
GAS_CANISTER,
|
||||||
|
EXTINGUISHER,
|
||||||
|
_0x988620B8,
|
||||||
|
EXP_TAG_TRAIN,
|
||||||
|
EXP_TAG_BARREL,
|
||||||
|
EXP_TAG_PROPANE,
|
||||||
|
EXP_TAG_BLIMP,
|
||||||
|
EXP_TAG_DIR_FLAME_EXPLODE,
|
||||||
|
EXP_TAG_TANKER,
|
||||||
|
PLANE_ROCKET,
|
||||||
|
EXP_TAG_VEHICLE_BULLET,
|
||||||
|
EXP_TAG_GAS_TANK,
|
||||||
|
EXP_TAG_BIRD_CRAP,
|
||||||
|
EXP_TAG_RAILGUN,
|
||||||
|
EXP_TAG_BLIMP2,
|
||||||
|
EXP_TAG_FIREWORK,
|
||||||
|
EXP_TAG_SNOWBALL,
|
||||||
|
EXP_TAG_PROXMINE,
|
||||||
|
EXP_TAG_VALKYRIE_CANNON,
|
||||||
|
EXP_TAG_AIR_DEFENCE,
|
||||||
|
EXP_TAG_PIPEBOMB,
|
||||||
|
EXP_TAG_VEHICLEMINE,
|
||||||
|
EXP_TAG_EXPLOSIVEAMMO,
|
||||||
|
EXP_TAG_APCSHELL,
|
||||||
|
EXP_TAG_BOMB_CLUSTER,
|
||||||
|
EXP_TAG_BOMB_GAS,
|
||||||
|
EXP_TAG_BOMB_INCENDIARY,
|
||||||
|
EXP_TAG_BOMB_STANDARD,
|
||||||
|
EXP_TAG_TORPEDO,
|
||||||
|
EXP_TAG_TORPEDO_UNDERWATER,
|
||||||
|
EXP_TAG_BOMBUSHKA_CANNON,
|
||||||
|
EXP_TAG_BOMB_CLUSTER_SECONDARY,
|
||||||
|
EXP_TAG_HUNTER_BARRAGE,
|
||||||
|
EXP_TAG_HUNTER_CANNON,
|
||||||
|
EXP_TAG_ROGUE_CANNON,
|
||||||
|
EXP_TAG_MINE_UNDERWATER,
|
||||||
|
EXP_TAG_ORBITAL_CANNON,
|
||||||
|
EXP_TAG_BOMB_STANDARD_WIDE,
|
||||||
|
EXP_TAG_EXPLOSIVEAMMO_SHOTGUN,
|
||||||
|
EXP_TAG_OPPRESSOR2_CANNON,
|
||||||
|
EXP_TAG_MORTAR_KINETIC,
|
||||||
|
EXP_TAG_VEHICLEMINE_KINETIC,
|
||||||
|
EXP_TAG_VEHICLEMINE_EMP,
|
||||||
|
EXP_TAG_VEHICLEMINE_SPIKE,
|
||||||
|
EXP_TAG_VEHICLEMINE_SLICK,
|
||||||
|
EXP_TAG_VEHICLEMINE_TAR,
|
||||||
|
EXP_TAG_SCRIPT_DRONE,
|
||||||
|
EXP_TAG_RAYGUN,
|
||||||
|
EXP_TAG_BURIEDMINE,
|
||||||
|
EXP_TAG_SCRIPT_MISSILE,
|
||||||
|
EXP_TAG_RCTANK_ROCKET,
|
||||||
|
EXP_TAG_BOMB_WATER,
|
||||||
|
EXP_TAG_BOMB_WATER_SECONDARY,
|
||||||
|
_0xF728C4A9,
|
||||||
|
_0xBAEC056F,
|
||||||
|
EXP_TAG_FLASHGRENADE,
|
||||||
|
EXP_TAG_STUNGRENADE,
|
||||||
|
_0x763D3B3B,
|
||||||
|
EXP_TAG_SCRIPT_MISSILE_LARGE,
|
||||||
|
EXP_TAG_SUBMARINE_BIG,
|
||||||
|
EXP_TAG_EMPLAUNCHER_EMP,
|
||||||
|
};
|
@ -6,37 +6,33 @@
|
|||||||
|
|
||||||
enum class eAmmoSpecialType : int32_t
|
enum class eAmmoSpecialType : int32_t
|
||||||
{
|
{
|
||||||
None,
|
None,
|
||||||
ArmorPiercing,
|
ArmorPiercing,
|
||||||
Explosive,
|
Explosive,
|
||||||
FMJ,
|
FMJ,
|
||||||
HollowPoint,
|
HollowPoint,
|
||||||
Incendiary,
|
Incendiary,
|
||||||
Tracer
|
Tracer
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class eAmmoFlags : uint32_t
|
enum class eAmmoFlags : uint32_t
|
||||||
{
|
{
|
||||||
InfiniteAmmo = 0,
|
InfiniteAmmo = 0,
|
||||||
AddSmokeOnExplosion = 1,
|
AddSmokeOnExplosion = 1,
|
||||||
Fuse = 2,
|
Fuse = 2,
|
||||||
FixedAfterExplosion = 3,
|
FixedAfterExplosion = 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
class CAmmoInfo : public CItemInfo
|
class CAmmoInfo : public CItemInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
int32_t m_ammo_max; //0x0020
|
int32_t m_ammo_max; //0x0020
|
||||||
int32_t m_ammo_max_50; //0x0024
|
int32_t m_ammo_max_50; //0x0024
|
||||||
int32_t m_ammo_max_100; //0x0028
|
int32_t m_ammo_max_100; //0x0028
|
||||||
int32_t m_ammo_max_mp; //0x002C
|
int32_t m_ammo_max_mp; //0x002C
|
||||||
int32_t m_ammo_max_50_mp; //0x0030
|
int32_t m_ammo_max_50_mp; //0x0030
|
||||||
int32_t m_ammo_max_100_mp; //0x0034
|
int32_t m_ammo_max_100_mp; //0x0034
|
||||||
eAmmoFlags m_ammo_flags; //0x0038
|
eAmmoFlags m_ammo_flags; //0x0038
|
||||||
eAmmoSpecialType m_ammo_special_type; //0x003C
|
eAmmoSpecialType m_ammo_special_type; //0x003C
|
||||||
char pad_0040[24]; //0x0040
|
}; //Size: 0x040
|
||||||
float m_missile_speed; //0x0058
|
static_assert(sizeof(CAmmoInfo) == 0x40);
|
||||||
char pad_005C[284]; //0x005C
|
|
||||||
uint32_t m_lock_on_time; //0x0178
|
|
||||||
}; //Size: 0x017C
|
|
||||||
static_assert(sizeof(CAmmoInfo) == 0x17C);
|
|
||||||
|
121
weapon/CAmmoProjectileInfo.hpp
Normal file
121
weapon/CAmmoProjectileInfo.hpp
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CAmmoInfo.hpp"
|
||||||
|
#include "CWeaponBoneId.hpp"
|
||||||
|
#include "../rage/vector.hpp"
|
||||||
|
#include "../enums/eExplosionTag.hpp"
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
class CAmmoProjectileInfo : public CAmmoInfo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
float m_damage; // 0x0040
|
||||||
|
float m_lifetime; // 0x0044
|
||||||
|
float m_from_vehicle_lifetime; //0x0048
|
||||||
|
float m_lifetime_after_impact; //0x004C
|
||||||
|
float m_lifetime_after_explosion; //0x0050
|
||||||
|
float m_explosion_time; //0x0054
|
||||||
|
float m_launch_speed; //0x0058
|
||||||
|
float m_separation_time; //0x005C
|
||||||
|
float m_time_to_reach_target; //0x0060
|
||||||
|
float m_amping; //0x0064
|
||||||
|
float m_gravity_factor; //0x0068
|
||||||
|
float m_ricochet_tolerance; //0x006C
|
||||||
|
float m_ped_ricochet_tolerance; //0x0070
|
||||||
|
float m_vehicle_ricochet_tolerance; //0x0074
|
||||||
|
float m_friction_multiplier; //0x0078
|
||||||
|
class sExplosion
|
||||||
|
{
|
||||||
|
enum eExplosionTag m_default; //0x0000
|
||||||
|
enum eExplosionTag m_hit_car; //0x0004
|
||||||
|
enum eExplosionTag m_hit_truck; //0x0008
|
||||||
|
enum eExplosionTag m_hit_bike; //0x000C
|
||||||
|
enum eExplosionTag m_hit_boat; //0x0010
|
||||||
|
enum eExplosionTag m_hit_plane; //0x0014
|
||||||
|
} m_explosion;
|
||||||
|
uint32_t m_m_fuse_fx_hash; //0x0094
|
||||||
|
uint32_t m_m_proximity_fx_hash; //0x0098
|
||||||
|
uint32_t m_m_trail_fx_hash; //0x009C
|
||||||
|
uint32_t m_trail_fx_under_water_hash; //0x00A0
|
||||||
|
uint32_t m_primed_fx_hash; //0x00A4
|
||||||
|
uint32_t m_fuse_fx_fp_hash; //0x00A8
|
||||||
|
uint32_t m_primed_fx_fp_hash; //0x00AC
|
||||||
|
float m_trail_fx_fade_in_time; //0x00B0
|
||||||
|
float m_trail_fx_fade_out_time; //0x00B4
|
||||||
|
uint32_t m_disturb_fx_default_hash; //0x00B8
|
||||||
|
uint32_t m_disturb_fx_sand_hash; //0x00BC
|
||||||
|
uint32_t m_disturb_fx_water_hash; //0x00C0
|
||||||
|
uint32_t m_disturb_fx_dirt_hash; //0x00C4
|
||||||
|
uint32_t m_disturb_fx_foliage_hash; //0x00C8
|
||||||
|
float m_disturb_fx_probe_dist; //0x00CC
|
||||||
|
float m_disturb_fx_scale; //0x00D0
|
||||||
|
float m_ground_fx_probe_distance; //0x00D4
|
||||||
|
bool m_fx_alt_tint_colour; //0x00D8
|
||||||
|
bool m_light_only_active_when_stuck; //0x00D9
|
||||||
|
bool m_light_flickers; //0x00DA
|
||||||
|
bool m_light_speeds_up; //0x00DB
|
||||||
|
class CWeaponBoneId m_light_bone; //0x00DC
|
||||||
|
rage::fvector4 m_light_colour; //0x00E0
|
||||||
|
float m_light_intensity; //0x00F0
|
||||||
|
float m_light_range; //0x00F4
|
||||||
|
float m_light_falloff_exp; //0x00F8
|
||||||
|
float m_light_frequency; //0x00FC
|
||||||
|
float m_light_power; //0x0100
|
||||||
|
float m_corona_size; //0x0104
|
||||||
|
float m_corona_intensity; //0x0108
|
||||||
|
float m_corona_z_bias; //0x010C
|
||||||
|
bool m_proximity_affects_firing_player; //0x0110
|
||||||
|
bool m_proximity_can_be_triggered_by_peds; //0x0111
|
||||||
|
float m_proximity_activation_time; //0x0114
|
||||||
|
float m_proximity_repeated_detonation_activation_time; //0x0118
|
||||||
|
float m_proximity_trigger_radius; //0x011C
|
||||||
|
float m_proximity_fuse_time_ped; //0x0120
|
||||||
|
float m_proximity_fuse_time_vehicle_min; //0x0124
|
||||||
|
float m_proximity_fuse_time_vehicle_max; //0x0128
|
||||||
|
float m_proximity_fuse_time_vehicle_speed; //0x012C
|
||||||
|
rage::fvector4 m_proximity_light_colour_untriggered; //0x0130
|
||||||
|
float m_proximity_light_frequency_multiplier_triggered; //0x0140
|
||||||
|
float m_time_to_ignore_owner; //0x0144
|
||||||
|
float m_charged_launch_time; //0x0148
|
||||||
|
float m_charged_launch_speed_mult; //0x014C
|
||||||
|
enum eExplosionTag m_cluster_explosion_tag; //0x0150
|
||||||
|
uint32_t m_cluster_explosion_count; //0x0154
|
||||||
|
float m_cluster_min_radius; //0x0158
|
||||||
|
float m_cluster_max_radius; //0x015C
|
||||||
|
float m_cluster_initial_delay; //0x0160
|
||||||
|
float m_cluster_inbetween_delay; //0x0164
|
||||||
|
enum Flags : uint32_t
|
||||||
|
{
|
||||||
|
Sticky,
|
||||||
|
DestroyOnImpact,
|
||||||
|
ProcessImpacts,
|
||||||
|
HideDrawable,
|
||||||
|
TrailFxInactiveOnceWet,
|
||||||
|
TrailFxRemovedOnImpact,
|
||||||
|
DoGroundDisturbanceFx,
|
||||||
|
CanBePlaced,
|
||||||
|
NoPullPin,
|
||||||
|
DelayUntilSettled,
|
||||||
|
CanBeDestroyedByDamage,
|
||||||
|
CanBounce,
|
||||||
|
DoubleDamping,
|
||||||
|
_0x08B0D0C23,
|
||||||
|
_0x02E3F9CBA,
|
||||||
|
ThrustUnderwater,
|
||||||
|
ApplyDamageOnImpact,
|
||||||
|
SetOnFireOnImpact,
|
||||||
|
DontFireAnyEvents,
|
||||||
|
AlignWithTrajectory,
|
||||||
|
ExplodeAtTrailFxPos,
|
||||||
|
ProximityDetonation,
|
||||||
|
AlignWithTrajectoryYAxis,
|
||||||
|
HomingAttractor,
|
||||||
|
Cluster,
|
||||||
|
_0x0E792E56F,
|
||||||
|
_0x08A7D429C,
|
||||||
|
UseGravityOutOfWater
|
||||||
|
} m_projectile_flags; //0x0168
|
||||||
|
char pad_016C[4]; //0x016C
|
||||||
|
};
|
||||||
|
static_assert(sizeof(CAmmoProjectileInfo) == 0x170);
|
24
weapon/CAmmoRocketInfo.hpp
Normal file
24
weapon/CAmmoRocketInfo.hpp
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CAmmoProjectileInfo.hpp"
|
||||||
|
#include "CHomingRocketParams.hpp"
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
class CAmmoRocketInfo : public CAmmoProjectileInfo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
float m_forward_drag_coeff; //0x0170
|
||||||
|
float m_side_drag_coeff; //0x0174
|
||||||
|
float m_time_before_homing; //0x0178
|
||||||
|
float m_time_before_switch_target_min; //0x017C
|
||||||
|
float m_time_before_switch_target_max; //0x0180
|
||||||
|
float m_proximity_radius; //0x0184
|
||||||
|
float m_pitch_change_rate; //0x0188
|
||||||
|
float m_yaw_change_rate; //0x018C
|
||||||
|
float m_roll_change_rate; //0x0190
|
||||||
|
float m_max_roll_angle_sin; //0x0194
|
||||||
|
float m_lifetime_player_vehicle_locked_override_mp; //0x0198
|
||||||
|
class CHomingRocketParams m_homing_rocket_params; //0x019C
|
||||||
|
}; // Size: 0x01BC
|
||||||
|
static_assert(sizeof(CAmmoRocketInfo) == 0x1BC);
|
13
weapon/CAmmoThrownInfo.hpp
Normal file
13
weapon/CAmmoThrownInfo.hpp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CAmmoProjectileInfo.hpp"
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
class CAmmoThrownInfo : CAmmoProjectileInfo
|
||||||
|
{
|
||||||
|
float m_thrown_force; //0x0170
|
||||||
|
float m_thrown_force_from_vehicle; //0x0174
|
||||||
|
int32_t m_ammo_max_mp_bonus; //0x0178
|
||||||
|
}; // Size: 0x017C
|
||||||
|
static_assert(sizeof(CAmmoThrownInfo) == 0x17C);
|
16
weapon/CHomingRocketParams.hpp
Normal file
16
weapon/CHomingRocketParams.hpp
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
class CHomingRocketParams
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool m_should_use_homing_params_from_info; //0x0000
|
||||||
|
bool m_should_ignore_owner_combat_behaviour; //0x0001
|
||||||
|
float m_time_before_starting_homing; //0x0004
|
||||||
|
float m_time_before_homing_angle_break; //0x0008
|
||||||
|
float m_turn_rate_modifier; //0x000C
|
||||||
|
float m_pitch_yaw_roll_clamp; //0x0010
|
||||||
|
float m_default_homing_rocket_break_lock_angle; //0x0014
|
||||||
|
float m_default_homing_rocket_break_lock_angle_close; //0x0018
|
||||||
|
float m_default_homing_rocket_break_lock_close_distance; //0x001C
|
||||||
|
}; // Size: 0x0020
|
||||||
|
static_assert(sizeof(CHomingRocketParams) == 0x20);
|
10
weapon/CWeaponBoneId.hpp
Normal file
10
weapon/CWeaponBoneId.hpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
class CWeaponBoneId
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
uint16_t m_bone_id;
|
||||||
|
}; // Size: 0x0002
|
||||||
|
static_assert(sizeof(CWeaponBoneId) == 0x2);
|
@ -3,267 +3,196 @@
|
|||||||
#include "CAmmoInfo.hpp"
|
#include "CAmmoInfo.hpp"
|
||||||
#include "CItemInfo.hpp"
|
#include "CItemInfo.hpp"
|
||||||
#include "../rage/vector.hpp"
|
#include "../rage/vector.hpp"
|
||||||
|
#include "../enums/eExplosionTag.hpp"
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
enum class eDamageType : int32_t
|
enum class eDamageType : int32_t
|
||||||
{
|
{
|
||||||
Unknown,
|
Unknown,
|
||||||
None,
|
None,
|
||||||
Melee,
|
Melee,
|
||||||
Bullet,
|
Bullet,
|
||||||
BulletRubber,
|
BulletRubber,
|
||||||
Explosive,
|
Explosive,
|
||||||
Fire,
|
Fire,
|
||||||
Collision,
|
Collision,
|
||||||
Fall,
|
Fall,
|
||||||
Drown,
|
Drown,
|
||||||
Electric,
|
Electric,
|
||||||
BarbedWire,
|
BarbedWire,
|
||||||
FireExtinguisher,
|
FireExtinguisher,
|
||||||
Smoke,
|
Smoke,
|
||||||
WaterCannon,
|
WaterCannon,
|
||||||
Tranquilizer
|
Tranquilizer
|
||||||
};
|
|
||||||
|
|
||||||
enum class eImpactType : int32_t
|
|
||||||
{
|
|
||||||
DEFAULT_BULLETS = -1,
|
|
||||||
GRENADE = 0,
|
|
||||||
GRENADELAUNCHER = 1,
|
|
||||||
STICKYBOMB = 2,
|
|
||||||
MOLOTOV = 3,
|
|
||||||
ROCKET = 4,
|
|
||||||
TANKSHELL = 5,
|
|
||||||
HI_OCTANE = 6,
|
|
||||||
CAR = 7,
|
|
||||||
PLANE = 8,
|
|
||||||
PETROL_PUMP = 9,
|
|
||||||
BIKE = 10,
|
|
||||||
DIR_STEAM = 11,
|
|
||||||
DIR_FLAME = 12,
|
|
||||||
DIR_WATER_HYDRANT = 13,
|
|
||||||
DIR_GAS_CANISTER = 14,
|
|
||||||
BOAT = 15,
|
|
||||||
SHIP_DESTROY = 16,
|
|
||||||
TRUCK = 17,
|
|
||||||
MK2_EXPLOSIVE_BULLETS = 18,
|
|
||||||
SMOKEGRENADELAUNCHER = 19,
|
|
||||||
SMOKEGRENADE = 20,
|
|
||||||
BZGAS = 21,
|
|
||||||
FLARE = 22,
|
|
||||||
GAS_CANISTER = 23,
|
|
||||||
EXTINGUISHER = 24,
|
|
||||||
PROGRAMMABLEAR = 25,
|
|
||||||
TRAIN = 26,
|
|
||||||
BARREL = 27,
|
|
||||||
PROPANE = 28,
|
|
||||||
BLIMP = 29,
|
|
||||||
DIR_FLAME_EXPLODE = 30,
|
|
||||||
TANKER = 31,
|
|
||||||
PLANE_ROCKET = 32,
|
|
||||||
VEHICLE_BULLET = 33,
|
|
||||||
GAS_TANK = 34,
|
|
||||||
BIRD_CRAP = 35,
|
|
||||||
RAILGUN = 36,
|
|
||||||
BLIMP2 = 37,
|
|
||||||
FIREWORK = 38,
|
|
||||||
SNOWBALL = 39,
|
|
||||||
PROXMINE = 40,
|
|
||||||
VALKYRIE_CANNON = 41,
|
|
||||||
AIR_DEFENCE = 42,
|
|
||||||
PIPEBOMB = 43,
|
|
||||||
VEHICLEMINE = 44,
|
|
||||||
EXPLOSIVEAMMO = 45,
|
|
||||||
APCSHELL = 46,
|
|
||||||
BOMB_CLUSTER = 47,
|
|
||||||
BOMB_GAS = 48,
|
|
||||||
BOMB_INCENDIARY = 49,
|
|
||||||
BOMB_STANDARD = 50,
|
|
||||||
TORPEDO = 51,
|
|
||||||
TORPEDO_UNDERWATER = 52,
|
|
||||||
BOMBUSHKA_CANNON = 53,
|
|
||||||
BOMB_CLUSTER_SECONDARY = 54,
|
|
||||||
HUNTER_BARRAGE = 55,
|
|
||||||
HUNTER_CANNON = 56,
|
|
||||||
ROGUE_CANNON = 57,
|
|
||||||
MINE_UNDERWATER = 58,
|
|
||||||
ORBITAL_CANNON = 59,
|
|
||||||
BOMB_STANDARD_WIDE = 60,
|
|
||||||
EXPLOSIVEAMMO_SHOTGUN = 61,
|
|
||||||
OPPRESSOR2_CANNON = 62,
|
|
||||||
MORTAR_KINETIC = 63,
|
|
||||||
VEHICLEMINE_KINETIC = 64,
|
|
||||||
VEHICLEMINE_EMP = 65,
|
|
||||||
VEHICLEMINE_SPIKE = 66,
|
|
||||||
VEHICLEMINE_SLICK = 67,
|
|
||||||
VEHICLEMINE_TAR = 68,
|
|
||||||
SCRIPT_DRONE = 69,
|
|
||||||
RAYGUN = 70,
|
|
||||||
BURIEDMINE = 71,
|
|
||||||
SCRIPT_MISSILE = 72,
|
|
||||||
RCTANK_ROCKET = 73,
|
|
||||||
BOMB_WATER = 74,
|
|
||||||
BOMB_WATER_SECONDARY = 75,
|
|
||||||
UNK76 = 76,
|
|
||||||
UNK77 = 77,
|
|
||||||
FLASH_GRENADE = 78,
|
|
||||||
STUN_GRENADE = 79,
|
|
||||||
Unk80 = 80,
|
|
||||||
SCRIPT_MISSILE_LARGE = 81,
|
|
||||||
SUBMARINE_BIG = 82,
|
|
||||||
EMPLAUNCHER_EMP = 83,
|
|
||||||
SPOOF_EXPLOSION = 99
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class eFireType : int32_t
|
enum class eFireType : int32_t
|
||||||
{
|
{
|
||||||
None,
|
None,
|
||||||
Melee,
|
Melee,
|
||||||
InstantHit,
|
InstantHit,
|
||||||
DelayedHit,
|
DelayedHit,
|
||||||
ProjectTile,
|
ProjectTile,
|
||||||
VolumetricParticle
|
VolumetricParticle
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class eWeaponWheelSlot : int32_t
|
enum class eWeaponWheelSlot : int32_t
|
||||||
{
|
{
|
||||||
Pistol,
|
Pistol,
|
||||||
SMG,
|
SMG,
|
||||||
Rifle,
|
Rifle,
|
||||||
Sniper,
|
Sniper,
|
||||||
UnarmedMelee,
|
UnarmedMelee,
|
||||||
ShotGun,
|
ShotGun,
|
||||||
Heavy,
|
Heavy,
|
||||||
Throwable
|
ThrowableSpecial
|
||||||
};
|
};
|
||||||
|
|
||||||
class AimingInfo;
|
class AimingInfo;
|
||||||
class CWeaponInfo : public CItemInfo
|
class CWeaponInfo : public CItemInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
eDamageType m_damage_type; //0x0020
|
eDamageType m_damage_type; //0x0020
|
||||||
eImpactType m_impact_type; //0x0024
|
class sExplosion
|
||||||
char pad_0028[44]; //0x0028
|
{
|
||||||
eFireType m_fire_type; //0x0054
|
enum eExplosionTag m_default; //0x0000
|
||||||
eWeaponWheelSlot m_wheel_slot; //0x0058
|
enum eExplosionTag m_hit_car; //0x0004
|
||||||
uint32_t m_group; //0x005C
|
enum eExplosionTag m_hit_truck; //0x0008
|
||||||
class CAmmoInfo *m_ammo_info; //0x0060
|
enum eExplosionTag m_hit_bike; //0x000C
|
||||||
class CAimingInfo *m_aiming_info; //0x0068
|
enum eExplosionTag m_hit_boat; //0x0010
|
||||||
uint32_t m_clip_size; //0x0070
|
enum eExplosionTag m_hit_plane; //0x0014
|
||||||
float m_accuracy_spread; //0x0074
|
} m_explosion; //0x0024
|
||||||
float m_accurate_mode_accuracy_modifier; //0x0078
|
static_assert(sizeof(sExplosion) == 0x18);
|
||||||
float m_run_and_gun_accuracy; //0x007C
|
struct sFrontClearTestParams
|
||||||
float m_run_and_gun_min_accuracy; //0x0080
|
{
|
||||||
float m_recoil_accuracy_max; //0x0084
|
bool m_should_perform_front_clear_test; //0x0000
|
||||||
float m_recoil_error_time; //0x0088
|
float m_forward_offset; //0x0004
|
||||||
float m_recoil_recovery_rate; //0x008C
|
float m_vertical_offset; //0x0008
|
||||||
float m_recoil_accuracy_to_allow_headshot_ai; //0x0090
|
float m_horizontal_offset; //0x000C
|
||||||
float m_min_headshot_distance_ai; //0x0094
|
float m_capsule_radius; //0x0010
|
||||||
float m_max_headshot_distance_ai; //0x0098
|
float m_capsule_length; //0x0014
|
||||||
float m_headshot_damage_modifier_ai; //0x009C
|
} m_front_clear_test_params; //0x003C
|
||||||
float m_recoil_accuracy_to_allow_headshot_player; //0x00A0
|
static_assert(sizeof(sFrontClearTestParams) == 0x18);
|
||||||
float m_min_headshot_distance_player; //0x00A4
|
eFireType m_fire_type; //0x0054
|
||||||
float m_max_headshot_distance_player; //0x00A8
|
eWeaponWheelSlot m_wheel_slot; //0x0058
|
||||||
float m_headshot_damage_modifier_player; //0x00AC
|
uint32_t m_group; //0x005C
|
||||||
float m_damage; //0x00B0
|
class CAmmoInfo *m_ammo_info; //0x0060
|
||||||
float m_damage_time; //0x00B4
|
class CAimingInfo *m_aiming_info; //0x0068
|
||||||
float m_damage_time_in_vehicle; //0x00B8
|
uint32_t m_clip_size; //0x0070
|
||||||
float m_damage_time_in_vehicle_headshot; //0x00BC
|
float m_accuracy_spread; //0x0074
|
||||||
float N000008F9; //0x00C0
|
float m_accurate_mode_accuracy_modifier; //0x0078
|
||||||
uint32_t N00000898; //0x00C4
|
float m_run_and_gun_accuracy; //0x007C
|
||||||
float m_hit_limbs_damage_modifier; //0x00C8
|
float m_run_and_gun_min_accuracy; //0x0080
|
||||||
float m_network_hit_limbs_damage_modifier; //0x00CC
|
float m_recoil_accuracy_max; //0x0084
|
||||||
float m_lightly_armoured_damage_modifier; //0x00D0
|
float m_recoil_error_time; //0x0088
|
||||||
float m_vehicle_damage_modifier; //0x00D4
|
float m_recoil_recovery_rate; //0x008C
|
||||||
float m_force; //0x00D8
|
float m_recoil_accuracy_to_allow_headshot_ai; //0x0090
|
||||||
float m_force_on_ped; //0x00DC
|
float m_min_headshot_distance_ai; //0x0094
|
||||||
float m_force_on_vehicle; //0x00E0
|
float m_max_headshot_distance_ai; //0x0098
|
||||||
float m_force_on_heli; //0x00E4
|
float m_headshot_damage_modifier_ai; //0x009C
|
||||||
char pad_00E8[16]; //0x00E8
|
float m_recoil_accuracy_to_allow_headshot_player; //0x00A0
|
||||||
float m_force_max_strength_mult; //0x00F8
|
float m_min_headshot_distance_player; //0x00A4
|
||||||
float m_force_falloff_range_start; //0x00FC
|
float m_max_headshot_distance_player; //0x00A8
|
||||||
float m_force_falloff_range_end; //0x0100
|
float m_headshot_damage_modifier_player; //0x00AC
|
||||||
float m_force_falloff_range_min; //0x0104
|
float m_damage; //0x00B0
|
||||||
float m_project_force; //0x0108
|
float m_damage_time; //0x00B4
|
||||||
float m_frag_impulse; //0x010C
|
float m_damage_time_in_vehicle; //0x00B8
|
||||||
float m_penetration; //0x0110
|
float m_damage_time_in_vehicle_headshot; //0x00BC
|
||||||
float m_vertical_launch_adjustment; //0x0114
|
float N000008F9; //0x00C0
|
||||||
float m_drop_forward_velocity; //0x0118
|
uint32_t N00000898; //0x00C4
|
||||||
float m_speed; //0x011C
|
float m_hit_limbs_damage_modifier; //0x00C8
|
||||||
uint32_t m_bullets_in_batch; //0x0120
|
float m_network_hit_limbs_damage_modifier; //0x00CC
|
||||||
float m_batch_spread; //0x0124
|
float m_lightly_armoured_damage_modifier; //0x00D0
|
||||||
float m_reload_time_mp; //0x0128
|
float m_vehicle_damage_modifier; //0x00D4
|
||||||
float m_reload_time_sp; //0x012C
|
float m_force; //0x00D8
|
||||||
float m_vehicle_reload_time; //0x0130
|
float m_force_on_ped; //0x00DC
|
||||||
float m_anim_reload_time; //0x0134
|
float m_force_on_vehicle; //0x00E0
|
||||||
int32_t m_bullets_per_anime_loop; //0x0138
|
float m_force_on_heli; //0x00E4
|
||||||
float m_time_between_shots; //0x013C
|
char pad_00E8[16]; //0x00E8
|
||||||
float m_time_left_between_shots_where_should_fire_is_cached; //0x0140
|
float m_force_max_strength_mult; //0x00F8
|
||||||
float m_spinup_time; //0x0144
|
float m_force_falloff_range_start; //0x00FC
|
||||||
float m_spin_time; //0x0148
|
float m_force_falloff_range_end; //0x0100
|
||||||
float m_spindown_time; //0x014C
|
float m_force_falloff_range_min; //0x0104
|
||||||
float m_alternate_wait_time; //0x0150
|
float m_project_force; //0x0108
|
||||||
char pad_0154[296]; //0x0154
|
float m_frag_impulse; //0x010C
|
||||||
float m_network_player_damage_modifier; //0x027C
|
float m_penetration; //0x0110
|
||||||
float m_network_ped_damage_modifier; //0x0280
|
float m_vertical_launch_adjustment; //0x0114
|
||||||
float m_network_headshot_modifier; //0x0284
|
float m_drop_forward_velocity; //0x0118
|
||||||
float m_lock_on_range; //0x0288
|
float m_speed; //0x011C
|
||||||
float m_weapon_range; //0x028C
|
uint32_t m_bullets_in_batch; //0x0120
|
||||||
float m_ai_sound_range; //0x0290
|
float m_batch_spread; //0x0124
|
||||||
float m_ai_potential_blast_event_range; //0x0294
|
float m_reload_time_mp; //0x0128
|
||||||
float m_damage_fall_off_range_min; //0x0298
|
float m_reload_time_sp; //0x012C
|
||||||
float m_damage_fall_off_range_max; //0x029C
|
float m_vehicle_reload_time; //0x0130
|
||||||
float m_damage_fall_off_modifier; //0x02A0
|
float m_anim_reload_time; //0x0134
|
||||||
uint32_t m_vehicle_weapon_hash; //0x02A4
|
int32_t m_bullets_per_anime_loop; //0x0138
|
||||||
uint32_t m_default_camera_hash; //0x02B8
|
float m_time_between_shots; //0x013C
|
||||||
uint32_t m_aim_camera_hash; //0x02BC
|
float m_time_left_between_shots_where_should_fire_is_cached; //0x0140
|
||||||
uint32_t m_fire_camera_hash; //0x02C0
|
float m_spinup_time; //0x0144
|
||||||
uint32_t m_cover_camera_hash; //0x02C4
|
float m_spin_time; //0x0148
|
||||||
uint32_t m_cover_ready_to_fire_hash; //0x02C8
|
float m_spindown_time; //0x014C
|
||||||
uint32_t m_run_and_gun_camera_hash; //0x02CC
|
float m_alternate_wait_time; //0x0150
|
||||||
uint32_t m_cinematic_shooting_camera_hash; //0x02D0
|
char pad_0154[296]; //0x0154
|
||||||
uint32_t m_alt_or_scoped_camera_hash; //0x002D4
|
float m_network_player_damage_modifier; //0x027C
|
||||||
uint32_t m_run_and_gun_alt_or_scoped_camera_hash; //0x02D8
|
float m_network_ped_damage_modifier; //0x0280
|
||||||
uint32_t m_cinematic_shooting_alt_or_scoped_camera_hash; //0x2DC
|
float m_network_headshot_modifier; //0x0284
|
||||||
uint32_t m_pov_turret_camera_hash; //0x2E0
|
float m_lock_on_range; //0x0288
|
||||||
uint32_t m_recoil_shake_hash; //0x02E4
|
float m_weapon_range; //0x028C
|
||||||
uint32_t m_recoil_shake_hash_first_person; //0x02E8
|
float m_ai_sound_range; //0x0290
|
||||||
float m_min_time_between_recoil_shakes; //0x02EC
|
float m_ai_potential_blast_event_range; //0x0294
|
||||||
float m_recoil_shake_amplitude; //0x02F0
|
float m_damage_fall_off_range_min; //0x0298
|
||||||
float m_explosion_shake_amplitude; //0x02F4
|
float m_damage_fall_off_range_max; //0x029C
|
||||||
float m_camera_fov; //0x02FC
|
float m_damage_fall_off_modifier; //0x02A0
|
||||||
float m_first_person_aim_fov_min; //0x0300
|
uint32_t m_vehicle_weapon_hash; //0x02A4
|
||||||
float m_first_person_aim_fov_max; //0x0300
|
uint32_t m_default_camera_hash; //0x02B8
|
||||||
float m_first_person_scope_fov; //0x0308
|
uint32_t m_aim_camera_hash; //0x02BC
|
||||||
float m_first_person_scope_attachment_fov; //0x030C
|
uint32_t m_fire_camera_hash; //0x02C0
|
||||||
char pad_00310[636]; //0x00310
|
uint32_t m_cover_camera_hash; //0x02C4
|
||||||
rage::fvector2 m_reticule_hud_position; //0x0590
|
uint32_t m_cover_ready_to_fire_hash; //0x02C8
|
||||||
rage::fvector2 m_reticule_hud_position_pov_turret; //0x0598
|
uint32_t m_run_and_gun_camera_hash; //0x02CC
|
||||||
float m_reticule_min_size_standing; //0x05A0
|
uint32_t m_cinematic_shooting_camera_hash; //0x02D0
|
||||||
float m_reticule_min_size_crouched; //0x05A4
|
uint32_t m_alt_or_scoped_camera_hash; //0x002D4
|
||||||
float m_reticule_scale; //0x05A8
|
uint32_t m_run_and_gun_alt_or_scoped_camera_hash; //0x02D8
|
||||||
uint32_t m_reticule_style_hash; //0x05AC
|
uint32_t m_cinematic_shooting_alt_or_scoped_camera_hash; //0x2DC
|
||||||
uint32_t m_first_person_reticule_style_hash; //0x05B0
|
uint32_t m_pov_turret_camera_hash; //0x2E0
|
||||||
uint32_t m_pickup_hash; //0x05B4
|
uint32_t m_recoil_shake_hash; //0x02E4
|
||||||
uint32_t m_mp_pickup_hash; //0x05B8
|
uint32_t m_recoil_shake_hash_first_person; //0x02E8
|
||||||
uint32_t m_human_name_hash; //0x05BC
|
float m_min_time_between_recoil_shakes; //0x02EC
|
||||||
uint32_t m_audio_collision_hash; //0x05C0
|
float m_recoil_shake_amplitude; //0x02F0
|
||||||
uint32_t m_movement_mode_conditional_idle_hash; //0x05C4
|
float m_explosion_shake_amplitude; //0x02F4
|
||||||
uint8_t m_ammo_diminishing_rate; //0x05C8
|
float m_camera_fov; //0x02FC
|
||||||
int8_t m_hud_damage; //0x05C9
|
float m_first_person_aim_fov_min; //0x0300
|
||||||
int8_t m_hud_speed; //0x05CA
|
float m_first_person_aim_fov_max; //0x0300
|
||||||
int8_t m_hud_capacity; //0x05CB
|
float m_first_person_scope_fov; //0x0308
|
||||||
int8_t m_hud_accuracy; //0x05CC
|
float m_first_person_scope_attachment_fov; //0x030C
|
||||||
float m_hud_range; //0x05CD
|
char pad_00310[636]; //0x00310
|
||||||
float m_aiming_breathing_additive_weight; //0x05D0
|
rage::fvector2 m_reticule_hud_position; //0x0590
|
||||||
float m_firing_breathing_additive_weight; //0x05D4
|
rage::fvector2 m_reticule_hud_position_pov_turret; //0x0598
|
||||||
float m_stealth_aiming_breathing_additive_weight; //0x5D8
|
float m_reticule_min_size_standing; //0x05A0
|
||||||
float m_stealth_firing_breathing_additive_weight; //0x5DC
|
float m_reticule_min_size_crouched; //0x05A4
|
||||||
float m_aiming_lean_additive_weight; //0x05E0
|
float m_reticule_scale; //0x05A8
|
||||||
float m_firing_lean_additive_weight; //0x05E4
|
uint32_t m_reticule_style_hash; //0x05AC
|
||||||
float m_stealth_aiming_lean_additive_weight; //0x05E8
|
uint32_t m_first_person_reticule_style_hash; //0x05B0
|
||||||
float m_stealth_firing_lean_additive_weight; //0x05EC
|
uint32_t m_pickup_hash; //0x05B4
|
||||||
char m_stat_name[8]; //0x05F0
|
uint32_t m_mp_pickup_hash; //0x05B8
|
||||||
|
uint32_t m_human_name_hash; //0x05BC
|
||||||
|
uint32_t m_audio_collision_hash; //0x05C0
|
||||||
|
uint32_t m_movement_mode_conditional_idle_hash; //0x05C4
|
||||||
|
uint8_t m_ammo_diminishing_rate; //0x05C8
|
||||||
|
int8_t m_hud_damage; //0x05C9
|
||||||
|
int8_t m_hud_speed; //0x05CA
|
||||||
|
int8_t m_hud_capacity; //0x05CB
|
||||||
|
int8_t m_hud_accuracy; //0x05CC
|
||||||
|
float m_hud_range; //0x05CD
|
||||||
|
float m_aiming_breathing_additive_weight; //0x05D0
|
||||||
|
float m_firing_breathing_additive_weight; //0x05D4
|
||||||
|
float m_stealth_aiming_breathing_additive_weight; //0x5D8
|
||||||
|
float m_stealth_firing_breathing_additive_weight; //0x5DC
|
||||||
|
float m_aiming_lean_additive_weight; //0x05E0
|
||||||
|
float m_firing_lean_additive_weight; //0x05E4
|
||||||
|
float m_stealth_aiming_lean_additive_weight; //0x05E8
|
||||||
|
float m_stealth_firing_lean_additive_weight; //0x05EC
|
||||||
|
char m_stat_name[8]; //0x05F0
|
||||||
}; //Size: 0x05E8
|
}; //Size: 0x05E8
|
||||||
static_assert(sizeof(CWeaponInfo) == 0x5E8);
|
static_assert(sizeof(CWeaponInfo) == 0x5E8);
|
||||||
|
Loading…
Reference in New Issue
Block a user