mirror of
https://github.com/Mr-X-GTA/GTAV-Classes-1.git
synced 2024-12-22 22:47:32 +08:00
feat/fix(Random): Update and add a bunch of classes (#51)
This commit is contained in:
parent
1e3bf3ce73
commit
2692d9aa0e
@ -1,8 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "../rage/vector.hpp"
|
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include "fwArchetype.hpp"
|
||||||
|
|
||||||
enum class eModelType : std::uint8_t
|
enum class eModelType : std::uint8_t
|
||||||
{
|
{
|
||||||
@ -28,32 +27,18 @@ enum class eModelType : std::uint8_t
|
|||||||
};
|
};
|
||||||
|
|
||||||
#pragma pack(push, 8)
|
#pragma pack(push, 8)
|
||||||
class CBaseModelInfo
|
class CBaseModelInfo : public rage::fwArchetype
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
char pad_0000[24]; //0x0000
|
char pad_0070[8]; //0x0070
|
||||||
uint32_t m_model_hash; //0x0018
|
uint64_t unk_0078; //0x0078
|
||||||
char pad_001C[20]; //0x001C
|
uint64_t unk_0080; //0x0080
|
||||||
rage::fvector4 m_axis_aligned_bounding_box_min; //0x0030
|
char pad_0088[8]; //0x0088
|
||||||
rage::fvector4 m_axis_aligned_bounding_box_max; //0x0040
|
uint64_t unk_0090; //0x0090
|
||||||
uint32_t m_flags;
|
char pad_0098[5]; //0x0098
|
||||||
char pad_0054[4];
|
eModelType m_model_type; //0x009D
|
||||||
uint16_t unk_0x58;
|
char pad_009E[6]; //0x009E
|
||||||
char pad_005A[6];
|
uint64_t unk_00A8; //0x00A8
|
||||||
uint8_t m_drawable_type;
|
|
||||||
char pad_0061;
|
|
||||||
uint16_t m_drawable_index;
|
|
||||||
char pad_0064[6];
|
|
||||||
uint16_t unk_0x6A;
|
|
||||||
char pad_006C[12];
|
|
||||||
uint64_t unk_0x78;
|
|
||||||
uint64_t unk_0x80;
|
|
||||||
char pad_0088[8];
|
|
||||||
uint64_t unk_0x90;
|
|
||||||
char pad_0098[5];
|
|
||||||
eModelType m_model_type;
|
|
||||||
char pad_009E[6];
|
|
||||||
uint64_t unk_0xA8;
|
|
||||||
}; //Size: 0x00B0
|
}; //Size: 0x00B0
|
||||||
static_assert(sizeof(CBaseModelInfo) == 0xB0);
|
static_assert(sizeof(CBaseModelInfo) == 0xB0);
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
36
base/fwArchetype.hpp
Normal file
36
base/fwArchetype.hpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
#include "../rage/vector.hpp"
|
||||||
|
#include "datBase.hpp"
|
||||||
|
#include "fwArchetypeDef.hpp"
|
||||||
|
|
||||||
|
namespace rage {
|
||||||
|
#pragma pack(push,8)
|
||||||
|
class fwArchetype : public datBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual void Initialize() = 0;
|
||||||
|
virtual void InitializeFromArchetypeDef(uint32_t mapTypeStoreIdx, fwArchetypeDef* archetypeDef, bool) = 0;
|
||||||
|
virtual class fwEntity* CreateEntity() = 0;
|
||||||
|
|
||||||
|
char pad_0008[16]; //0x0008
|
||||||
|
int32_t m_hash; //0x0018
|
||||||
|
char unk_001C[4]; //0x001C
|
||||||
|
fvector3 m_bounding_sphere_center; //0x0020
|
||||||
|
float m_bounding_sphere_radius; //0x002C
|
||||||
|
fvector3 m_aabbMin; //0x0030
|
||||||
|
float m_lod_dist; //0x003C
|
||||||
|
fvector3 m_aabbMax; //0x0040
|
||||||
|
float m_hd_texture_dist; //0x004C
|
||||||
|
uint32_t m_flags; //0x0050
|
||||||
|
char unk_0054[4]; //0x0054
|
||||||
|
uint64_t unk_0058; //0x0058
|
||||||
|
char unk_0060[4]; //0x0060
|
||||||
|
uint32_t m_asset_index; //0x0064
|
||||||
|
uint16_t unk_0068; //0x0068
|
||||||
|
uint16_t unk_006A; //0x006A
|
||||||
|
};
|
||||||
|
static_assert(sizeof(fwArchetype) == 0x70);
|
||||||
|
#pragma pack(pop)
|
||||||
|
}
|
43
base/fwArchetypeDef.hpp
Normal file
43
base/fwArchetypeDef.hpp
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
#include "../rage/vector.hpp"
|
||||||
|
|
||||||
|
namespace rage {
|
||||||
|
#pragma pack(push,8)
|
||||||
|
class fwArchetypeDef
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~fwArchetypeDef() = 0;
|
||||||
|
virtual int GetTypeIdentifier() = 0;
|
||||||
|
|
||||||
|
float m_lod_dist; //0x0008
|
||||||
|
uint32_t m_flags; //0x000C
|
||||||
|
uint32_t m_special_attribute; //0x0010
|
||||||
|
char pad_0014[12]; //0x0014
|
||||||
|
fvector4 m_bounding_box_min; //0x0020
|
||||||
|
fvector4 m_bounding_box_max; //0x0030
|
||||||
|
fvector4 m_bounding_sphere_center; //0x0040
|
||||||
|
float m_bounding_sphere_radius; //0x0050
|
||||||
|
float m_hd_texture_dist; //0x0054
|
||||||
|
uint32_t m_name_hash; //0x0058
|
||||||
|
uint32_t m_texture_dictionary; //0x005C
|
||||||
|
uint32_t m_clip_dictionary_hash; //0x0060
|
||||||
|
uint32_t m_drawable_dictionary_hash; //0x0064
|
||||||
|
uint32_t m_physics_dictionary_hash; //0x0068
|
||||||
|
enum eAssetType : uint32_t
|
||||||
|
{
|
||||||
|
ASSET_TYPE_UNINITIALIZED = 0,
|
||||||
|
ASSET_TYPE_FRAGMENT = 1,
|
||||||
|
ASSET_TYPE_DRAWABLE = 2,
|
||||||
|
ASSET_TYPE_DRAWABLEDICTIONARY = 3,
|
||||||
|
ASSET_TYPE_ASSETLESS = 4,
|
||||||
|
} m_asset_type; //0x006C
|
||||||
|
uint32_t m_asset_name_hash; //0x0070
|
||||||
|
uint64_t *m_extensions; //0x0078
|
||||||
|
uint16_t unk_0080; //0x0080
|
||||||
|
char pad_0082[12]; //0x0082
|
||||||
|
}; //Size: 0x0090
|
||||||
|
static_assert(sizeof(fwArchetypeDef) == 0x90);
|
||||||
|
#pragma pack(pop)
|
||||||
|
}
|
12
datanodes/ped/CPedAIDataNode.hpp
Normal file
12
datanodes/ped/CPedAIDataNode.hpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
class CPedAIDataNode
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
char pad_0000[192]; //0x0000
|
||||||
|
uint32_t m_relationship_group; //0x00C0
|
||||||
|
uint32_t m_decision_maker_type; //0x00C4
|
||||||
|
}; //Size: 0x00C8
|
||||||
|
static_assert(sizeof(CPedAIDataNode) == 0xC8);
|
78
datanodes/ped/CPedGameStateDataNode.hpp
Normal file
78
datanodes/ped/CPedGameStateDataNode.hpp
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
#pragma pack(push,2)
|
||||||
|
class CPedGameStateDataNode
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
char pad_0000[192]; //0x0000
|
||||||
|
bool m_weapon_component_something[11]; //0x0C0
|
||||||
|
uint32_t m_weapon_component_hash[11]; //0x0CC
|
||||||
|
uint32_t m_gadget_hash[3]; //0x0F8
|
||||||
|
uint32_t unk_0104; // 0x0104
|
||||||
|
uint32_t unk_0108; // 0x0108
|
||||||
|
uint32_t unk_010C; // 0x010C
|
||||||
|
float unk_0110; // 0x0110
|
||||||
|
float unk_0114; // 0x0114
|
||||||
|
float unk_0118; // 0x0118
|
||||||
|
bool unk_011C; // 0x011C
|
||||||
|
char pad_011D[3]; //0x011D
|
||||||
|
uint32_t m_arrest_state; //0x0120
|
||||||
|
uint32_t m_death_state; //0x0124
|
||||||
|
uint32_t m_weapon_hash; //0x0128
|
||||||
|
uint32_t m_num_weapon_components; //0x012C
|
||||||
|
uint32_t m_num_equiped_gadgets; //0x0130
|
||||||
|
uint32_t m_seat; //0x0134
|
||||||
|
uint32_t m_action_mode_override; //0x0138
|
||||||
|
uint32_t unk_013C; // 0x013C
|
||||||
|
uint16_t m_vehicle; //0x0140
|
||||||
|
uint16_t m_mount_id; //0x0142
|
||||||
|
uint16_t m_custodian_id; //0x0144
|
||||||
|
uint16_t unk_0146; // 0x0146
|
||||||
|
bool m_tint_index; //0x0148
|
||||||
|
char pad_0149; //0x0149
|
||||||
|
uint8_t unk_014A; // 0x014A
|
||||||
|
bool m_is_handcuffed; //0x014B
|
||||||
|
bool m_can_preform_arrest; //0x014C
|
||||||
|
bool m_can_preform_uncuff; //0x014D
|
||||||
|
bool m_can_be_arrested; //0x014E
|
||||||
|
bool m_is_in_custody; //0x014F
|
||||||
|
char pad_0150; //0x0150
|
||||||
|
bool m_weapon_exists; //0x0151
|
||||||
|
bool m_weapon_visible; //0x0152
|
||||||
|
bool m_weapon_has_ammo; //0x0153
|
||||||
|
bool m_weapon_attach_left; //0x0154
|
||||||
|
char pad_0155; //0x0155
|
||||||
|
bool m_in_seat; //0x0156
|
||||||
|
bool m_in_vehicle; //0x0157
|
||||||
|
bool m_on_mount; //0x0158
|
||||||
|
bool m_has_custodian_or_arrest_flags; //0x0159
|
||||||
|
char pad_015A; //0x015A
|
||||||
|
bool m_action_mode_enabled; //0x015B
|
||||||
|
bool m_stealth_mode_enabled; //0x015C
|
||||||
|
bool unk_015D; // 0x015D
|
||||||
|
bool unk_015E; // 0x015E
|
||||||
|
bool unk_015F; // 0x015F
|
||||||
|
bool unk_0160; // 0x0160
|
||||||
|
bool unk_0161; // 0x0161
|
||||||
|
bool unk_0162; // 0x0162
|
||||||
|
bool unk_0163; // 0x0163
|
||||||
|
bool unk_0164; // 0x0164
|
||||||
|
bool unk_0165; // 0x0165
|
||||||
|
bool unk_0166; // 0x0166
|
||||||
|
bool unk_0167; // 0x0167
|
||||||
|
bool unk_0168; // 0x0168
|
||||||
|
bool unk_0169; // 0x0169
|
||||||
|
bool unk_016A; // 0x016A
|
||||||
|
bool unk_016B; // 0x016B
|
||||||
|
bool unk_016C; // 0x016C
|
||||||
|
bool unk_016D; // 0x016D
|
||||||
|
bool unk_016E; // 0x016E
|
||||||
|
bool unk_016F; // 0x016F
|
||||||
|
bool unk_0170; // 0x0170
|
||||||
|
bool unk_0171; // 0x0171
|
||||||
|
bool unk_0172; // 0x0172
|
||||||
|
}; //Size: 0x0174
|
||||||
|
static_assert(sizeof(CPedGameStateDataNode) == 0x174);
|
||||||
|
#pragma pack(pop)
|
29
datanodes/ped/CPedHealthDataNode.hpp
Normal file
29
datanodes/ped/CPedHealthDataNode.hpp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
#pragma pack(push,2)
|
||||||
|
class CPedHealthDataNode
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
char pad_0000[192]; //0x0000
|
||||||
|
uint32_t unk_00C0; //0x00C0
|
||||||
|
uint32_t m_health; //0x00C4
|
||||||
|
uint32_t m_armor; //0x00C8
|
||||||
|
uint32_t unk_00CC; //0x00CC
|
||||||
|
uint32_t unk_00D0; //0x00D0
|
||||||
|
uint32_t m_weapon_damage_hash; //0x00D4
|
||||||
|
uint32_t m_hurt_end_time; //0x00D8
|
||||||
|
uint32_t m_weapon_damage_component; //0x00DC
|
||||||
|
uint16_t m_weapon_damage_entity; //0x00E0
|
||||||
|
bool m_has_max_health; //0x00E2
|
||||||
|
bool m_has_default_armor; //0x00E3
|
||||||
|
bool unk_00E4; //0x00E4
|
||||||
|
bool m_killed_with_headshot; //0x00E5
|
||||||
|
bool m_killed_with_melee; //0x00E6
|
||||||
|
char m_hurt_started; //0x00E7
|
||||||
|
bool unk_00E8; //0x00E8
|
||||||
|
bool unk_00E9; //0x00E9
|
||||||
|
}; //Size: 0x0EA
|
||||||
|
static_assert(sizeof(CPedHealthDataNode) == 0xEA);
|
||||||
|
#pragma pack(pop)
|
@ -1,11 +1,22 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include "../base/datBase.hpp"
|
||||||
|
|
||||||
class CTunables
|
enum eTunableType
|
||||||
|
{
|
||||||
|
TunableType_DONTCARE = -1,
|
||||||
|
TunableType_UNK0,
|
||||||
|
TunableType_4BYTE,
|
||||||
|
TunableType_1BYTE,
|
||||||
|
};
|
||||||
|
|
||||||
|
class CTunables : public rage::datBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
char pad_0000[112]; //0x0000
|
char pad_0000[104]; //0x0008
|
||||||
uint64_t m_bPtr; //0x0070
|
uint64_t m_bPtr; //0x0070
|
||||||
uint16_t m_bCount; //0x0078
|
uint16_t m_bCount; //0x0078
|
||||||
}; //Size: 0x007A
|
char pad_007A[0x4E]; //0x007A
|
||||||
|
}; //Size: 0x00C8
|
||||||
|
static_assert(sizeof(CTunables) == 0xC8);
|
||||||
|
38
network/CNetGamePlayerDataMsg.hpp
Normal file
38
network/CNetGamePlayerDataMsg.hpp
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
class datBitBuffer;
|
||||||
|
|
||||||
|
#pragma pack(push,8)
|
||||||
|
namespace rage {
|
||||||
|
class playerDataMsg
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~playerDataMsg() = 0;
|
||||||
|
virtual int GetBufferSize() = 0;
|
||||||
|
virtual void Log() = 0;
|
||||||
|
virtual bool Serialize(datBitBuffer* buffer) = 0;
|
||||||
|
virtual bool Deserialize(datBitBuffer* buffer) = 0;
|
||||||
|
|
||||||
|
uint32_t m_game_version; //0x0008
|
||||||
|
uint32_t m_nat_type; //0x000C
|
||||||
|
}; //Size: 0x0010
|
||||||
|
static_assert(sizeof(playerDataMsg) == 0x10);
|
||||||
|
}
|
||||||
|
|
||||||
|
class CNetGamePlayerDataMsg : public rage::playerDataMsg
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
uint32_t m_player_type; //0x0010
|
||||||
|
uint32_t m_matchmaking_group; //0x0014
|
||||||
|
uint32_t m_flags; //0x0018
|
||||||
|
uint32_t m_team; //0x001C
|
||||||
|
uint64_t m_crew_id; //0x0020
|
||||||
|
uint32_t m_aim_preference; //0x0028
|
||||||
|
uint16_t m_rank; //0x002C
|
||||||
|
uint16_t unk_002E; //0x002E
|
||||||
|
uint16_t unk_0030; //0x0030
|
||||||
|
}; //Size: 0x0038
|
||||||
|
static_assert(sizeof(CNetGamePlayerDataMsg) == 0x38);
|
||||||
|
#pragma pack(pop)
|
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "CNetGamePlayer.hpp"
|
#include "CNetGamePlayer.hpp"
|
||||||
|
#include "CNetGamePlayerDataMsg.hpp"
|
||||||
#include "../player/CNonPhysicalPlayerData.hpp"
|
#include "../player/CNonPhysicalPlayerData.hpp"
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
@ -15,10 +16,10 @@ namespace rage
|
|||||||
virtual void Initialize() = 0;
|
virtual void Initialize() = 0;
|
||||||
virtual void Shutdown() = 0;
|
virtual void Shutdown() = 0;
|
||||||
virtual void unk_0x18() = 0;
|
virtual void unk_0x18() = 0;
|
||||||
virtual CNetGamePlayer* AddPlayer_raw(void* a1, void* a2, void* a3, rage::rlGamerInfo* gamer_info, CNonPhysicalPlayerData* non_physical_player_data) = 0;
|
virtual CNetGamePlayer* AddPlayer_raw(rage::rlGamerInfo* gamer_info, uint32_t a2, CNetGamePlayerDataMsg* player_data, CNonPhysicalPlayerData* non_physical_player_data) = 0;
|
||||||
virtual void RemovePlayer(CNetGamePlayer* net_game_player) = 0;
|
virtual void RemovePlayer(CNetGamePlayer* net_game_player) = 0;
|
||||||
virtual void UpdatePlayerListsForPlayer(CNetGamePlayer* net_game_player) = 0;
|
virtual void UpdatePlayerListsForPlayer(CNetGamePlayer* net_game_player) = 0;
|
||||||
virtual CNetGamePlayer* AddPlayer(void* a1, void* a2, void* a3, rage::rlGamerInfo* gamer_info, CNonPhysicalPlayerData* non_physical_player_data) = 0;
|
virtual CNetGamePlayer* AddPlayer(rage::rlGamerInfo* gamer_info, uint32_t a3, CNetGamePlayerDataMsg* player_data, CNonPhysicalPlayerData* non_physical_player_data) = 0;
|
||||||
|
|
||||||
char pad_0008[8]; //0x0008
|
char pad_0008[8]; //0x0008
|
||||||
uint64_t *m_network_bandwidth_manager; //0x0010
|
uint64_t *m_network_bandwidth_manager; //0x0010
|
||||||
|
@ -10,9 +10,9 @@ namespace rage
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~nonPhysicalPlayerDataBase();
|
virtual ~nonPhysicalPlayerDataBase();
|
||||||
virtual void _0x08();
|
virtual void read();
|
||||||
virtual void _0x10();
|
virtual void write();
|
||||||
virtual void _0x18();
|
virtual void calculate_size();
|
||||||
virtual void log();
|
virtual void log();
|
||||||
}; //Size: 0x0008
|
}; //Size: 0x0008
|
||||||
static_assert(sizeof(nonPhysicalPlayerDataBase) == 0x8);
|
static_assert(sizeof(nonPhysicalPlayerDataBase) == 0x8);
|
||||||
|
@ -8,16 +8,19 @@ namespace rage
|
|||||||
class rlGamerHandle
|
class rlGamerHandle
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
uint64_t m_rockstar_id;
|
uint64_t m_rockstar_id; //0x0000
|
||||||
uint64_t m_unk;
|
uint8_t m_platform; //0x0008
|
||||||
|
uint8_t unk_0009; //0x0009
|
||||||
|
|
||||||
inline rlGamerHandle() = default;
|
inline rlGamerHandle() = default;
|
||||||
|
|
||||||
inline rlGamerHandle(uint64_t rockstar_id) :
|
inline rlGamerHandle(uint64_t rockstar_id) :
|
||||||
m_rockstar_id(rockstar_id),
|
m_rockstar_id(rockstar_id),
|
||||||
m_unk(3)
|
m_platform(3),
|
||||||
|
unk_0009(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
}; //Size: 0x0010
|
||||||
|
static_assert(sizeof(rlGamerHandle) == 0x10);
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
}
|
}
|
@ -21,19 +21,19 @@ namespace rage
|
|||||||
class rlGamerInfoBase
|
class rlGamerInfoBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
uint64_t m_peer_id;
|
uint64_t m_peer_id; //0x0000
|
||||||
rlGamerHandle m_gamer_handle;
|
rlGamerHandle m_gamer_handle; //0x008
|
||||||
char m_aes_key[32];
|
char m_aes_key[32]; //0x0018
|
||||||
uint8_t unk_0038;
|
uint8_t unk_0038; //0x0038
|
||||||
netAddress m_unk_ip;
|
netAddress m_unk_ip; //0x003C
|
||||||
uint16_t m_unk_port;
|
uint16_t m_unk_port; //0x0040
|
||||||
netAddress m_relay_ip;
|
netAddress m_relay_ip; //0x0044
|
||||||
uint16_t m_relay_port;
|
uint16_t m_relay_port; //0x0048
|
||||||
netAddress m_external_ip;
|
netAddress m_external_ip; //0x004C
|
||||||
uint16_t m_external_port;
|
uint16_t m_external_port; //0x0050
|
||||||
netAddress m_internal_ip;
|
netAddress m_internal_ip; //0x0054
|
||||||
uint16_t m_internal_port;
|
uint16_t m_internal_port; //0x0058
|
||||||
uint32_t unk_005C;
|
uint32_t unk_005C; //0x005C
|
||||||
};
|
};
|
||||||
static_assert(sizeof(rlGamerInfoBase) == 0x60);
|
static_assert(sizeof(rlGamerInfoBase) == 0x60);
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
Loading…
Reference in New Issue
Block a user