From 1418c3141a6f5278107ae1eae1d2f999c4696219 Mon Sep 17 00:00:00 2001 From: Yimura Date: Tue, 21 Sep 2021 18:10:21 +0200 Subject: [PATCH] feat(Classes): Updated classes --- BigBaseV2/src/core/class/CAmmonInfo.hpp | 14 ++++-- BigBaseV2/src/core/class/CAutomobile.hpp | 37 ++++++++++++---- BigBaseV2/src/core/class/CPed.hpp | 10 ++++- .../src/core/class/CPedWeaponManager.hpp | 5 ++- BigBaseV2/src/core/class/CPlayerInfo.hpp | 44 ++++++++++++------- BigBaseV2/src/core/class/CWeaponInfo.hpp | 9 ++-- 6 files changed, 85 insertions(+), 34 deletions(-) diff --git a/BigBaseV2/src/core/class/CAmmonInfo.hpp b/BigBaseV2/src/core/class/CAmmonInfo.hpp index e084eaf9..50cdbcf4 100644 --- a/BigBaseV2/src/core/class/CAmmonInfo.hpp +++ b/BigBaseV2/src/core/class/CAmmonInfo.hpp @@ -5,9 +5,17 @@ class CAmmoInfo { public: - char pad_0000[40]; //0x0000 + char pad_0000[12]; //0x0000 + uint32_t m_projectile_type; //0x000C + uint32_t m_ammo_name_hash; //0x0010 + uint32_t m_ammo_model_hash; //0x0014 + char pad_0018[16]; //0x0018 uint32_t m_max_ammo; //0x0028 -}; //Size: 0x002C -static_assert(sizeof(CAmmoInfo) == 0x2C); + char pad_002C[44]; //0x002C + float m_missile_speed; //0x0058 + char pad_005C[284]; //0x005C + uint32_t m_lock_on_time; //0x0178 +}; //Size: 0x017C +static_assert(sizeof(CAmmoInfo) == 0x17C); #pragma pack(pop) \ No newline at end of file diff --git a/BigBaseV2/src/core/class/CAutomobile.hpp b/BigBaseV2/src/core/class/CAutomobile.hpp index fd804cbb..352f60b8 100644 --- a/BigBaseV2/src/core/class/CAutomobile.hpp +++ b/BigBaseV2/src/core/class/CAutomobile.hpp @@ -11,22 +11,41 @@ public: class CVehicleDrawHandler* m_mods; //0x0048 char pad_0050[313]; //0x0050 uint8_t m_godmode; //0x0189 - char pad_018A[406]; //0x018A + char pad_018A[246]; //0x018A + float m_health; //0x0280 + char pad_0284[28]; //0x0284 + float m_health_max; //0x02A0 + char pad_02A4[116]; //0x02A4 + uint8_t m_boost_state; //0x0318 + char pad_0319[2]; //0x0319 + uint8_t m_boost_allow_recharge; //0x031B + char pad_031C[4]; //0x031C float m_boost; //0x0320 float m_rocket_recharge_speed; //0x0324 - char pad_0328[1308]; //0x0328 - float m_health; //0x0844 + char pad_0328[136]; //0x0328 + float m_jump_boost_charge; //0x03B0 + char pad_03B4[1164]; //0x03B4 + float m_body_health; //0x0840 + float m_petrol_tank_health; //0x0844 char pad_0848[192]; //0x0848 - float m_health2; //0x0908 + float m_engine_health; //0x0908 char pad_090C[44]; //0x090C class CHandlingData* m_handling; //0x0938 char pad_0940[2]; //0x0940 - uint8_t m_bullet_proof_tyres; //0x0942 - char pad_0943[1]; //0x0943 + uint8_t m_is_drivable; //0x0942 + uint8_t m_tyres_can_burst; //0x0943 uint8_t m_deform_god; //0x0944 - char pad_0945[791]; //0x0945 + char pad_0945[179]; //0x0945 + float m_dirt_level; //0x09F8 + char pad_09FC[194]; //0x09FC + uint8_t m_is_targetable; //0x0ABE + char pad_0ABF[413]; //0x0ABF float m_gravity; //0x0C5C -}; //Size: 0x0C60 -static_assert(sizeof(CAutomobile) == 0xC60); + char pad_0C60[8]; //0x0C60 + class CPed* m_driver; //0x0C68 + class CPed* m_passengers[15]; //0x0C70 + class CPed* m_last_driver; //0x0CE8 +}; //Size: 0x0CF0 +static_assert(sizeof(CAutomobile) == 0xCF0); #pragma pack(pop) \ No newline at end of file diff --git a/BigBaseV2/src/core/class/CPed.hpp b/BigBaseV2/src/core/class/CPed.hpp index 83cc0740..9a6ecec0 100644 --- a/BigBaseV2/src/core/class/CPed.hpp +++ b/BigBaseV2/src/core/class/CPed.hpp @@ -21,7 +21,9 @@ public: rage::vector3 m_position; //0x0090 char pad_009C[237]; //0x009C uint8_t m_godmode; //0x0189 - char pad_018A[246]; //0x018A + char pad_018A[2]; //0x018A + uint8_t m_hostility; //0x018C + char pad_018D[243]; //0x018D float m_health; //0x0280 char pad_0284[28]; //0x0284 float m_maxhealth; //0x02A0 @@ -33,7 +35,11 @@ public: class CPlayerInfo* m_player_info; //0x10C8 char pad_10D0[8]; //0x10D0 class CPedWeaponManager* m_weapon_manager; //0x10D8 - char pad_10E0[919]; //0x10E0 + char pad_10E0[812]; //0x10E0 + uint8_t m_bike_seatbelt; //0x140C + char pad_140D[11]; //0x140D + uint8_t m_vehicle_seatbelt; //0x1418 + char pad_1419[94]; //0x1419 uint8_t m_in_vehicle; //0x1477 char pad_1478[104]; //0x1478 float m_armor; //0x14E0 diff --git a/BigBaseV2/src/core/class/CPedWeaponManager.hpp b/BigBaseV2/src/core/class/CPedWeaponManager.hpp index debdda4f..6ffaeb8c 100644 --- a/BigBaseV2/src/core/class/CPedWeaponManager.hpp +++ b/BigBaseV2/src/core/class/CPedWeaponManager.hpp @@ -6,7 +6,10 @@ class CPedWeaponManager { public: - char pad_0000[32]; //0x0000 + char pad_0000[16]; //0x0000 + class CPed* m_owner; //0x0010 + uint32_t m_selected_weapon_hash; //0x0018 + char pad_001C[4]; //0x001C class CWeaponInfo* m_weapon_info; //0x0020 char pad_0028[72]; //0x0028 class CWeaponInfo* m_vehicle_weapon_info; //0x0070 diff --git a/BigBaseV2/src/core/class/CPlayerInfo.hpp b/BigBaseV2/src/core/class/CPlayerInfo.hpp index 239c0519..e9554e92 100644 --- a/BigBaseV2/src/core/class/CPlayerInfo.hpp +++ b/BigBaseV2/src/core/class/CPlayerInfo.hpp @@ -1,22 +1,33 @@ #pragma once +#pragma warning(push) +#pragma warning(disable : 4201) // nonstandard extension used: nameless struct/union +union netAddress +{ + std::uint32_t m_raw; + struct + { + std::uint8_t m_field4; + std::uint8_t m_field3; + std::uint8_t m_field2; + std::uint8_t m_field1; + }; +}; +#pragma warning(pop) #pragma pack(push, 1) class CPlayerInfo { public: - char pad_0000[40]; //0x0000 + char pad_0000[32]; //0x0000 + netAddress m_internal_ip; //0x0020 + uint16_t m_internal_port; //0x0024 + char pad_0026[2]; //0x0026 uint64_t m_rockstar_id; //0x0028 - char pad_0030[8]; //0x0030 - uint32_t m_internal_ip; //0x0038 - uint16_t m_internal_port; //0x003C - char pad_003E[2]; //0x003E - uint32_t m_relay_ip; //0x0040 - uint16_t m_relay_port; //0x0044 - char pad_0046[2]; //0x0046 - uint32_t m_external_ip; //0x0048 - uint16_t m_external_port; //0x004C - char pad_004E[66]; //0x004E + char pad_0030[60]; //0x0030 + netAddress m_external_ip; //0x006C + uint16_t m_external_port; //0x0070 + char pad_0072[30]; //0x0072 uint64_t m_rockstar_id2; //0x0090 char pad_0098[12]; //0x0098 char m_name[20]; //0x00A4 @@ -26,9 +37,9 @@ public: uint32_t m_water_proof; //0x0188 char pad_018C[92]; //0x018C class CPed* m_ped; //0x01E8 - char pad_01F0[41]; //0x01F0 - uint32_t m_frame_flags; //0x0219 - char pad_021D[51]; //0x021D + char pad_01F0[40]; //0x01F0 + uint32_t m_frame_flags; //0x0218 + char pad_021C[52]; //0x021C uint32_t m_player_controls; //0x0250 char pad_0254[1256]; //0x0254 float m_wanted_can_change; //0x073C @@ -38,10 +49,11 @@ public: bool m_is_wanted; //0x0880 char pad_0881[7]; //0x0881 uint32_t m_wanted_level; //0x0888 - char pad_088C[1124]; //0x088C + uint32_t m_wanted_level_display; //0x088C + char pad_0890[1120]; //0x0890 float m_run_speed; //0x0CF0 float m_stamina; //0x0CF4 - float m_stamina_max; //0x0CF8 + float m_stamina_regen; //0x0CF8 char pad_0CFC[16]; //0x0CFC float m_weapon_damage_mult; //0x0D0C float m_weapon_defence_mult; //0x0D10 diff --git a/BigBaseV2/src/core/class/CWeaponInfo.hpp b/BigBaseV2/src/core/class/CWeaponInfo.hpp index b71827dc..309580a9 100644 --- a/BigBaseV2/src/core/class/CWeaponInfo.hpp +++ b/BigBaseV2/src/core/class/CWeaponInfo.hpp @@ -31,9 +31,12 @@ public: char pad_0138[12]; //0x0138 float m_spinup; //0x0144 float m_spin; //0x0148 - char pad_014C[320]; //0x014C + char pad_014C[316]; //0x014C + float m_lock_on_range; //0x0288 float m_weapon_range; //0x028C -}; //Size: 0x0290 -static_assert(sizeof(CWeaponInfo) == 0x290); + char pad_0290[100]; //0x0290 + float m_accuracy_recoil; //0x02F4 +}; //Size: 0x02F8 +static_assert(sizeof(CWeaponInfo) == 0x2F8); #pragma pack(pop) \ No newline at end of file