feat(Modules): Added GTAV-Classes submodule

This commit is contained in:
Yimura 2021-12-06 20:31:55 +01:00
parent ca473efe1c
commit 9c03a402d0
No known key found for this signature in database
GPG Key ID: 3D8FF4397E768682
15 changed files with 8 additions and 437 deletions

3
.gitmodules vendored
View File

@ -18,3 +18,6 @@
path = vendor/g3log path = vendor/g3log
url = https://github.com/KjellKod/g3log.git url = https://github.com/KjellKod/g3log.git
ignore = dirty ignore = dirty
[submodule "vendor/GTAV-Classes"]
path = vendor/GTAV-Classes
url = https://github.com/Yimura/GTAV-Classes.git

View File

@ -51,7 +51,7 @@
#include "logger.hpp" #include "logger.hpp"
#include "core/globals.hpp" #include "core/globals.hpp"
#include "core/class/CPed.hpp" #include "CPed.hpp"
#include "services/vehicle_service.hpp" #include "services/vehicle_service.hpp"

View File

@ -1,21 +0,0 @@
#pragma once
#pragma pack(push, 1)
class CAmmoInfo
{
public:
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
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)

View File

@ -1,51 +0,0 @@
#pragma once
#include "CHandlingData.hpp"
#include "CVehicleDrawHandler.hpp"
#pragma pack(push, 1)
class CAutomobile
{
public:
char pad_0000[72]; //0x0000
class CVehicleDrawHandler* m_mods; //0x0048
char pad_0050[313]; //0x0050
uint8_t m_godmode; //0x0189
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[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_engine_health; //0x0908
char pad_090C[44]; //0x090C
class CHandlingData* m_handling; //0x0938
char pad_0940[2]; //0x0940
uint8_t m_is_drivable; //0x0942
uint8_t m_tyres_can_burst; //0x0943
uint8_t m_deform_god; //0x0944
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
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)

View File

@ -1,83 +0,0 @@
#pragma once
#include "gta/vector.hpp"
#pragma pack(push, 1)
class CHandlingData
{
public:
char pad_0000[8]; //0x0000
uint32_t m_model_hash; //0x0008
float m_mass; //0x000C
float m_initial_drag_coeff; //0x0010
float m_downforce_multiplier; //0x0014
float m_popup_light_rotation; //0x0018
char pad_001C[4]; //0x001C
rage::vector3 m_centre_of_mass; //0x0020
char pad_002C[4]; //0x002C
rage::vector3 m_inertia_mult; //0x0030
char pad_003C[4]; //0x003C
float m_buoyancy; //0x0040
float m_drive_bias_rear; //0x0044
float m_drive_bias_front; //0x0048
float m_acceleration; //0x004C
uint8_t m_initial_drive_gears; //0x0050
char pad_0051[3]; //0x0051
float m_drive_inertia; //0x0054
float m_upshift; //0x0058
float m_downshift; //0x005C
float m_initial_drive_force; //0x0060
float m_drive_max_flat_velocity; //0x0064
float m_initial_drive_max_flat_vel; //0x0068
float m_brake_force; //0x006C
char pad_0070[4]; //0x0070
float m_brake_bias_front; //0x0074
float m_brake_bias_rear; //0x0078
float m_handbrake_force; //0x007C
float m_steering_lock; //0x0080
float m_steering_lock_ratio; //0x0084
float m_traction_curve_max; //0x0088
float m_traction_curve_lateral; //0x008C
float m_traction_curve_min; //0x0090
float m_traction_curve_ratio; //0x0094
float m_curve_lateral; //0x0098
float m_curve_lateral_ratio; //0x009C
float m_traction_spring_delta_max; //0x00A0
float m_traction_spring_delta_max_ratio; //0x00A4
float m_low_speed_traction_loss_mult; //0x00A8
float m_camber_stiffness; //0x00AC
float m_traction_bias_front; //0x00B0
float m_traction_bias_rear; //0x00B4
float m_traction_loss_mult; //0x00B8
float m_suspension_force; //0x00BC
float m_suspension_comp_damp; //0x00C0
float m_suspension_rebound_damp; //0x00C4
float m_suspension_upper_limit; //0x00C8
float m_suspension_lower_limit; //0x00CC
float m_suspension_raise; //0x00D0
float m_suspension_bias_front; //0x00D4
float m_suspension_bias_rear; //0x00D8
float m_anti_rollbar_force; //0x00DC
float m_anti_rollbar_bias_front; //0x00E0
float m_anti_rollbar_bias_rear; //0x00E4
float m_roll_centre_height_front; //0x00E8
float m_roll_centre_height_rear; //0x00EC
float m_collision_damage_mult; //0x00F0
float m_weapon_damamge_mult; //0x00F4
float m_deformation_mult; //0x00F8
float m_engine_damage_mult; //0x00FC
float m_petrol_tank_volume; //0x0100
float m_oil_volume; //0x0104
char pad_0108[4]; //0x0108
rage::vector3 m_seat_offset_dist; //0x010C
uint32_t m_monetary_value; //0x0118
char pad_011C[8]; //0x011C
uint32_t m_model_flags; //0x0124
uint32_t m_handling_flags; //0x0128
uint32_t m_damage_flags; //0x012C
char pad_0130[12]; //0x0130
uint32_t m_ai_handling_hash; //0x013C
}; //Size: 0x0140
static_assert(sizeof(CHandlingData) == 0x140);
#pragma pack(pop)

View File

@ -1,49 +0,0 @@
#pragma once
#include "CAutomobile.hpp"
#include "CPedModelInfo.hpp"
#include "CPedWeaponManager.hpp"
#include "CPlayerInfo.hpp"
#include "gta/vector.hpp"
#pragma pack(push, 1)
class CPed
{
public:
char pad_0000[32]; //0x0000
class CPedModelInfo* m_ped_model_info; //0x0020
uint8_t m_entity_type; //0x0028
char pad_0029[3]; //0x0029
uint8_t m_invisible; //0x002C
char pad_002D[1]; //0x002D
uint8_t m_freeze_momentum; //0x002E
char pad_002F[97]; //0x002F
rage::vector3 m_position; //0x0090
char pad_009C[237]; //0x009C
uint8_t m_godmode; //0x0189
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
char pad_02A4[124]; //0x02A4
rage::vector3 m_velocity; //0x0320
char pad_032C[2564]; //0x032C
class CAutomobile* m_vehicle; //0x0D30
char pad_0D38[912]; //0x0D38
class CPlayerInfo* m_player_info; //0x10C8
char pad_10D0[8]; //0x10D0
class CPedWeaponManager* m_weapon_manager; //0x10D8
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
}; //Size: 0x14E4
static_assert(sizeof(CPed) == 0x14E4);
#pragma pack(pop)

View File

@ -1,14 +0,0 @@
#pragma once
#include "CPed.hpp"
#pragma pack(push, 1)
class CPedFactory
{
public:
char pad_0000[8]; //0x0000
class CPed* m_local_ped; //0x0008
}; //Size: 0x0010
static_assert(sizeof(CPedFactory) == 0x10);
#pragma pack(pop)

View File

@ -1,13 +0,0 @@
#pragma once
#pragma pack(push, 1)
class CPedModelInfo
{
public:
char pad_0000[24]; //0x0000
uint32_t m_model_hash; //0x0018
}; //Size: 0x001C
static_assert(sizeof(CPedModelInfo) == 0x1C);
#pragma pack(pop)

View File

@ -1,19 +0,0 @@
#pragma once
#include "CWeaponInfo.hpp"
#pragma pack(push, 1)
class CPedWeaponManager
{
public:
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
}; //Size: 0x0078
static_assert(sizeof(CPedWeaponManager) == 0x78);
#pragma pack(pop)

View File

@ -1,69 +0,0 @@
#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[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[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
char pad_00B8[184]; //0x00B8
float m_swim_speed; //0x0170
char pad_0174[20]; //0x0174
uint32_t m_water_proof; //0x0188
char pad_018C[92]; //0x018C
class CPed* m_ped; //0x01E8
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
char pad_0740[304]; //0x0740
uint32_t m_npc_ignore; //0x0870
char pad_0874[12]; //0x0874
bool m_is_wanted; //0x0880
char pad_0881[7]; //0x0881
uint32_t m_wanted_level; //0x0888
uint32_t m_wanted_level_display; //0x088C
char pad_0890[1120]; //0x0890
float m_run_speed; //0x0CF0
float m_stamina; //0x0CF4
float m_stamina_regen; //0x0CF8
char pad_0CFC[16]; //0x0CFC
float m_weapon_damage_mult; //0x0D0C
float m_weapon_defence_mult; //0x0D10
char pad_0D14[4]; //0x0D14
float m_melee_weapon_damage_mult; //0x0D18
float m_melee_damage_mult; //0x0D1C
float m_melee_defence_mult; //0x0D20
char pad_0D24[8]; //0x0D24
float m_melee_weapon_defence_mult; //0x0D2C
}; //Size: 0x0D30
static_assert(sizeof(CPlayerInfo) == 0xD30);
#pragma pack(pop)

View File

@ -1,74 +0,0 @@
#pragma once
#pragma pack(push, 1)
class CVehicleDrawHandler
{
public:
char pad_0000[904]; //0x0000
uint8_t m_primary_color; //0x0388
char pad_0389[3]; //0x0389
uint8_t m_pearlescent; //0x038C
char pad_038D[3]; //0x038D
uint8_t m_secondary_color; //0x0390
char pad_0391[15]; //0x0391
uint8_t m_neon_blue; //0x03A0
uint8_t m_neon_green; //0x03A1
uint8_t m_neon_red; //0x03A2
char pad_03A3[15]; //0x03A3
uint8_t m_spoiler; //0x03B2
uint8_t m_bumper_front; //0x03B3
uint8_t m_bumper_rear; //0x03B4
uint8_t m_sideskirts; //0x03B5
uint8_t m_exhaust; //0x03B6
uint8_t m_frame; //0x03B7
uint8_t m_grille; //0x03B8
uint8_t m_hood; //0x03B9
uint8_t m_fenders; //0x03BA
uint8_t m_bullbars; //0x03BB
uint8_t m_roof; //0x03BC
char pad_03BD[3]; //0x03BD
uint8_t m_ornaments; //0x03C0
char pad_03C1[1]; //0x03C1
uint8_t m_dail_design; //0x03C2
uint8_t m_sunstrips; //0x03C3
uint8_t m_seats; //0x03C4
uint8_t m_steering_wheel; //0x03C5
uint8_t m_column_shifter_levers; //0x03C6
char pad_03C7[2]; //0x03C7
uint8_t m_truck_beds; //0x03C9
char pad_03CA[4]; //0x03CA
uint8_t m_roll_cages; //0x03CE
uint8_t m_skid_plate; //0x03CF
uint8_t m_secondary_light_surrounds; //0x03D0
uint8_t m_hood_accessories; //0x03D1
uint8_t m_doors; //0x03D2
uint8_t m_snorkel; //0x03D3
uint8_t m_livery; //0x03D4
char pad_03D5[1]; //0x03D5
uint8_t m_engine; //0x03D6
uint8_t m_brakes; //0x03D7
uint8_t m_transmission; //0x03D8
uint8_t m_horn; //0x03D9
uint8_t m_suspension; //0x03DA
uint8_t m_armor; //0x03DB
char pad_03DC[1]; //0x03DC
uint8_t m_turbo; //0x03DD
char pad_03DE[3]; //0x03DE
uint8_t m_xenon; //0x03E1
uint8_t m_tire_design; //0x03E2
char pad_03E3[16]; //0x03E3
uint8_t m_truck_bed; //0x03F3
char pad_03F4[5]; //0x03F4
uint8_t m_wheel_color; //0x03F9
char pad_03FA[5]; //0x03FA
uint8_t m_window; //0x03FF
char pad_0400[2]; //0x0400
uint8_t m_neon_left; //0x0402
uint8_t m_neon_right; //0x0403
uint8_t m_neon_front; //0x0404
uint8_t m_neon_rear; //0x0405
}; //Size: 0x0406
static_assert(sizeof(CVehicleDrawHandler) == 0x406);
#pragma pack(pop)

View File

@ -1,42 +0,0 @@
#pragma once
#include "CAmmonInfo.hpp"
#pragma pack(push, 1)
class CWeaponInfo
{
public:
char pad_0000[16]; //0x0000
uint32_t m_name_hash; //0x0010
uint32_t m_model_hash; //0x0014
char pad_0018[12]; //0x0018
uint32_t m_impact_explosion; //0x0024
char pad_0028[56]; //0x0028
class CAmmoInfo* m_ammo_info; //0x0060
char pad_0068[20]; //0x0068
float m_spread; //0x007C
char pad_0080[60]; //0x0080
float m_bullet_dmg; //0x00BC
char pad_00C0[28]; //0x00C0
float m_force_on_ped; //0x00DC
float m_force_on_vehicle; //0x00E0
float m_force_on_heli; //0x00E4
char pad_00E8[40]; //0x00E8
float m_penetration; //0x0110
char pad_0114[8]; //0x0114
float m_muzzle_velocity; //0x011C
char pad_0120[16]; //0x0120
float m_vehicle_reload_mult; //0x0130
float m_reload_mult; //0x0134
char pad_0138[12]; //0x0138
float m_spinup; //0x0144
float m_spin; //0x0148
char pad_014C[316]; //0x014C
float m_lock_on_range; //0x0288
float m_weapon_range; //0x028C
char pad_0290[100]; //0x0290
float m_accuracy_recoil; //0x02F4
}; //Size: 0x02F8
static_assert(sizeof(CWeaponInfo) == 0x2F8);
#pragma pack(pop)

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
#include "common.hpp" #include "common.hpp"
#include "gta/array.hpp" #include "gta/array.hpp"
#include "core/class/CPedFactory.hpp" #include "CPedFactory.hpp"
#include "gta/player.hpp" #include "gta/player.hpp"
#include "gta/script_thread.hpp" #include "gta/script_thread.hpp"
#include "gta/tls_context.hpp" #include "gta/tls_context.hpp"

View File

@ -18,6 +18,7 @@ workspace "BigBaseV2"
IncludeDir["ImGui"] = "vendor/ImGui" IncludeDir["ImGui"] = "vendor/ImGui"
IncludeDir["ImGuiImpl"] = "vendor/ImGui/examples" IncludeDir["ImGuiImpl"] = "vendor/ImGui/examples"
IncludeDir["g3log"] = "vendor/g3log/src" IncludeDir["g3log"] = "vendor/g3log/src"
IncludeDir["GTAV_Classes"] = "vendor/GTAV-Classes"
CppVersion = "C++17" CppVersion = "C++17"
MsvcToolset = "v142" MsvcToolset = "v142"
@ -191,6 +192,7 @@ workspace "BigBaseV2"
"%{IncludeDir.ImGui}", "%{IncludeDir.ImGui}",
"%{IncludeDir.ImGuiImpl}", "%{IncludeDir.ImGuiImpl}",
"%{IncludeDir.g3log}", "%{IncludeDir.g3log}",
"%{IncludeDir.GTAV_Classes}",
"%{prj.name}/src" "%{prj.name}/src"
} }

1
vendor/GTAV-Classes vendored Submodule

@ -0,0 +1 @@
Subproject commit 2f2fa03b831fbaecbfff0da286fc16f23ae9e6f3