feat: Updated classes, added CPedInventory, ...
This commit is contained in:
parent
528f0c8926
commit
5e0f2d6eab
@ -64,7 +64,7 @@ namespace rage
|
|||||||
uint8_t m_tire_design; //0x03E2
|
uint8_t m_tire_design; //0x03E2
|
||||||
char gap3E3[16]; //0x03E3
|
char gap3E3[16]; //0x03E3
|
||||||
uint8_t m_truck_bed; //0x03F3
|
uint8_t m_truck_bed; //0x03F3
|
||||||
char gap3F4[2];
|
uint16_t m_modkit; //0x03F4
|
||||||
uint8_t byte3F6;
|
uint8_t byte3F6;
|
||||||
uint8_t byte3F7;
|
uint8_t byte3F7;
|
||||||
uint8_t byte3F8;
|
uint8_t byte3F8;
|
||||||
|
@ -3,28 +3,33 @@
|
|||||||
#include "../player/CPlayerInfo.hpp"
|
#include "../player/CPlayerInfo.hpp"
|
||||||
#include "../player/CNonPhysicalPlayerData.hpp"
|
#include "../player/CNonPhysicalPlayerData.hpp"
|
||||||
|
|
||||||
|
#include "ClandData.hpp"
|
||||||
#include "netPlayer.hpp"
|
#include "netPlayer.hpp"
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 8)
|
||||||
|
|
||||||
class CNetGamePlayer : public rage::netPlayer
|
class CNetGamePlayer : public rage::netPlayer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
char pad_0008[8]; //0x0008
|
char pad_00A0[8]; //0x00A0
|
||||||
class CNonPhysicalPlayerData *m_non_physical_player; //0x0010
|
uint32_t m_matchmaking_group; //0x00A8
|
||||||
uint32_t m_msg_id; //0x0018
|
CPlayerInfo* m_player_info; //0x00B0
|
||||||
char pad_001C[4]; //0x001C
|
char pad_00B0[16]; //0x00B0
|
||||||
uint8_t m_active_id; //0x0020
|
class ClanData m_clan_data; //0x00C8
|
||||||
uint8_t m_player_id; //0x0021
|
char m_crew_rank_title[25]; //0x0180
|
||||||
char pad_0022[3]; //0x0022
|
bool m_is_rockstar_dev; //0x0199
|
||||||
uint16_t m_complaints; //0x0025
|
bool m_is_rockstar_qa; //0x019A
|
||||||
char pad_0027[17]; //0x0027
|
bool m_is_cheater; //0x019B
|
||||||
class CNetGamePlayer *m_unk_net_player_list[10]; //0x0038
|
char pad_019C[14]; //0x019C
|
||||||
char pad_0088[24]; //0x0088
|
bool m_has_started_transition; //0x01AA
|
||||||
class CPlayerInfo *m_player_info; //0x00A0
|
char pad_01AB[5]; //0x01AB
|
||||||
}; //Size: 0x00A8
|
char m_transition_info_buffer[125]; //0x01B0
|
||||||
static_assert(sizeof(CNetGamePlayer) == 0xA8);
|
char pad_022D[19]; //0x022D
|
||||||
|
uint32_t m_mute_count; //0x0240
|
||||||
|
uint32_t m_mute_talkers_count; //0x0244
|
||||||
|
char pad_0248[112]; //0x0248
|
||||||
|
uint32_t unk_02B8; //0x02B8
|
||||||
|
}; //Size: 0x02C0
|
||||||
|
static_assert(sizeof(CNetGamePlayer) == 0x2C0);
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
@ -1,38 +1,34 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "netPlayerMgrBase.hpp"
|
||||||
#include "CNetGamePlayer.hpp"
|
#include "CNetGamePlayer.hpp"
|
||||||
#include "../player/CNonPhysicalPlayerData.hpp"
|
#include "../player/CNonPhysicalPlayerData.hpp"
|
||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
namespace rage
|
|
||||||
{
|
|
||||||
class netPlayerMgrBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~netPlayerMgrBase() = default;
|
|
||||||
virtual void Initialize() = 0;
|
|
||||||
virtual void Shutdown() = 0;
|
|
||||||
virtual void unk_0x18() = 0;
|
|
||||||
virtual CNetGamePlayer* AddPlayer_raw(void* a1, void* a2, void* a3, rage::netPlayerData* net_player_data, CNonPhysicalPlayerData* non_physical_player_data) = 0;
|
|
||||||
virtual void RemovePlayer(CNetGamePlayer* net_game_player) = 0;
|
|
||||||
virtual void UpdatePlayerListsForPlayer(CNetGamePlayer* net_game_player) = 0;
|
|
||||||
virtual CNetGamePlayer* AddPlayer(void* a1, void* a2, void* a3, rage::netPlayerData* net_player_data, CNonPhysicalPlayerData* non_physical_player_data) = 0;
|
|
||||||
}; //Size: 0x0008
|
|
||||||
static_assert(sizeof(netPlayerMgrBase) == 0x8);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma pack(push, 2)
|
#pragma pack(push, 2)
|
||||||
class CNetworkPlayerMgr : public rage::netPlayerMgrBase
|
class CNetworkPlayerMgr : public rage::netPlayerMgrBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
char pad_0008[224]; //0x0008
|
CNetGamePlayer m_net_players[32]; //0x08E0
|
||||||
class CNetGamePlayer* m_local_net_player; //0x00E8
|
uint64_t unk_60E0; //0x60E0
|
||||||
char pad_00F0[144]; //0x00F0
|
uint64_t unk_60E8; //0x60E8
|
||||||
class CNetGamePlayer* m_player_list[32]; //0x0180
|
uint64_t unk_60F0; //0x60F0
|
||||||
uint16_t m_player_limit; //0x0280
|
uint64_t unk_60F8; //0x60F8
|
||||||
char pad_0282[10]; //0x0282
|
CNetGamePlayer m_net_players_2[32]; //0x6100
|
||||||
uint16_t m_player_count; //0x028C
|
uint64_t unk_B900; //0xB900
|
||||||
}; //Size: 0x028E
|
uint64_t unk_B908; //0xB908
|
||||||
static_assert(sizeof(CNetworkPlayerMgr) == 0x28E);
|
uint64_t unk_B910; //0xB910
|
||||||
|
uint64_t unk_B918; //0xB918
|
||||||
|
uint64_t unk_B920; //0xB920
|
||||||
|
uint64_t unk_B928; //0xB928
|
||||||
|
uint64_t unk_B930; //0xB930
|
||||||
|
uint32_t unk_B938; //0xB938
|
||||||
|
char pad_B93C[3]; //0xB93C
|
||||||
|
bool unk_B93F; //0xB93F
|
||||||
|
uint32_t unk_B940; //0xB940
|
||||||
|
uint32_t unk_B944; //0xB944
|
||||||
|
uint16_t unk_B948; //0xB948
|
||||||
|
}; //Size: 0xB94A
|
||||||
|
static_assert(sizeof(CNetworkPlayerMgr) == 0xB94A);
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
27
network/ClandData.hpp
Normal file
27
network/ClandData.hpp
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
#pragma pack(push, 1)
|
||||||
|
class ClanData
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
int64_t m_clan_member_id; //0x0000
|
||||||
|
int64_t m_clan_id; //0x0008
|
||||||
|
int32_t m_clan_color; //0x0010
|
||||||
|
int32_t m_clan_member_count; //0x0014
|
||||||
|
int32_t m_clan_created_time; //0x0018
|
||||||
|
bool m_is_system_clan; //0x001C
|
||||||
|
bool m_is_clan_open; //0x001D
|
||||||
|
char m_clan_name[25]; //0x001E
|
||||||
|
char m_clan_tag[5]; //0x0037
|
||||||
|
char m_clan_motto[65]; //0x003C
|
||||||
|
char pad_007D[3]; //0x007D
|
||||||
|
int64_t m_clan_id_2; //0x0080
|
||||||
|
char m_clan_rank_name[25]; //0x0088
|
||||||
|
char pad_00A1[3]; //0x00A1
|
||||||
|
int32_t m_clan_rank_order; //0x00A4
|
||||||
|
int64_t m_clan_rank_flags; //0x00A8
|
||||||
|
char unk_00B0[8]; //0x00B0
|
||||||
|
};
|
||||||
|
#pragma pack(pop)
|
@ -1,9 +1,11 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "netPlayerData.hpp"
|
#include "netPlayerData.hpp"
|
||||||
|
#include "../player/CNonPhysicalPlayerData.hpp"
|
||||||
|
|
||||||
namespace rage
|
namespace rage
|
||||||
{
|
{
|
||||||
|
#pragma pack(push, 8)
|
||||||
class netPlayer
|
class netPlayer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -15,6 +17,20 @@ namespace rage
|
|||||||
virtual bool is_host();
|
virtual bool is_host();
|
||||||
virtual netPlayerData* get_net_data();
|
virtual netPlayerData* get_net_data();
|
||||||
virtual void _0x38();
|
virtual void _0x38();
|
||||||
}; //Size: 0x0008
|
|
||||||
static_assert(sizeof(netPlayer) == 0x8);
|
char pad_0008[8]; //0x0008
|
||||||
|
CNonPhysicalPlayerData *m_non_physical_player; //0x0010
|
||||||
|
uint32_t m_msg_id; //0x0018
|
||||||
|
char pad_001C[4]; //0x001C
|
||||||
|
uint8_t m_active_id; //0x0020
|
||||||
|
uint8_t m_player_id; //0x0021
|
||||||
|
char pad_0022[3]; //0x0022
|
||||||
|
uint16_t m_complaints; //0x0026
|
||||||
|
char pad_0027[17]; //0x0028
|
||||||
|
class CNetGamePlayer *m_unk_net_player_list[10]; //0x0040
|
||||||
|
char pad_0090[4]; //0x0090
|
||||||
|
uint64_t pad_0098; //0x0098
|
||||||
|
}; //Size: 0x00A0
|
||||||
|
static_assert(sizeof(netPlayer) == 0xA0);
|
||||||
|
#pragma pack(pop)
|
||||||
}
|
}
|
||||||
|
36
network/netPlayerMgrBase.hpp
Normal file
36
network/netPlayerMgrBase.hpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CNetGamePlayer.hpp"
|
||||||
|
#include "../player/CNonPhysicalPlayerData.hpp"
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
namespace rage
|
||||||
|
{
|
||||||
|
#pragma pack(push, 8)
|
||||||
|
class netPlayerMgrBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~netPlayerMgrBase() = default;
|
||||||
|
virtual void Initialize() = 0;
|
||||||
|
virtual void Shutdown() = 0;
|
||||||
|
virtual void unk_0x18() = 0;
|
||||||
|
virtual CNetGamePlayer* AddPlayer_raw(void* a1, void* a2, void* a3, rage::netPlayerData* net_player_data, CNonPhysicalPlayerData* non_physical_player_data) = 0;
|
||||||
|
virtual void RemovePlayer(CNetGamePlayer* net_game_player) = 0;
|
||||||
|
virtual void UpdatePlayerListsForPlayer(CNetGamePlayer* net_game_player) = 0;
|
||||||
|
virtual CNetGamePlayer* AddPlayer(void* a1, void* a2, void* a3, rage::netPlayerData* net_player_data, CNonPhysicalPlayerData* non_physical_player_data) = 0;
|
||||||
|
|
||||||
|
char pad_0008[8]; //0x0008
|
||||||
|
uint64_t *m_network_bandwidth_manager; //0x0010
|
||||||
|
char pad_0018[208]; //0x0018
|
||||||
|
CNetGamePlayer *m_local_net_player; //0x00E8
|
||||||
|
char pad_00F0[144]; //0x00F0
|
||||||
|
CNetGamePlayer *m_player_list[32]; //0x0180
|
||||||
|
uint16_t m_player_limit; //0x0280
|
||||||
|
char pad_0282[10]; //0x0282
|
||||||
|
uint16_t m_player_count; //0x028C
|
||||||
|
char pad_0290[1618]; //0x0290
|
||||||
|
}; //Size: 0x08E0
|
||||||
|
static_assert(sizeof(netPlayerMgrBase) == 0x8E0);
|
||||||
|
#pragma pack(pop)
|
||||||
|
}
|
@ -5,7 +5,7 @@
|
|||||||
#include "../player/CPlayerInfo.hpp"
|
#include "../player/CPlayerInfo.hpp"
|
||||||
#include "CPedModelInfo.hpp"
|
#include "CPedModelInfo.hpp"
|
||||||
#include "CPedWeaponManager.hpp"
|
#include "CPedWeaponManager.hpp"
|
||||||
|
#include "CPedInventory.hpp"
|
||||||
#include "../entities/fwEntity.hpp"
|
#include "../entities/fwEntity.hpp"
|
||||||
#include "../rage/vector.hpp"
|
#include "../rage/vector.hpp"
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ public:
|
|||||||
class CVehicle *m_vehicle; //0x0D30
|
class CVehicle *m_vehicle; //0x0D30
|
||||||
char pad_0D38[912]; //0x0D38
|
char pad_0D38[912]; //0x0D38
|
||||||
class CPlayerInfo *m_player_info; //0x10C8
|
class CPlayerInfo *m_player_info; //0x10C8
|
||||||
char pad_10D0[8]; //0x10D0
|
class CPedInventory* m_inventory; //0x10D0
|
||||||
class CPedWeaponManager *m_weapon_manager; //0x10D8
|
class CPedWeaponManager *m_weapon_manager; //0x10D8
|
||||||
char pad_10E0[907]; //0x10E0
|
char pad_10E0[907]; //0x10E0
|
||||||
uint8_t m_ped_task_flag; //0x146B
|
uint8_t m_ped_task_flag; //0x146B
|
||||||
|
39
ped/CPedInventory.hpp
Normal file
39
ped/CPedInventory.hpp
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
class CPed;
|
||||||
|
|
||||||
|
#pragma pack(push, 8)
|
||||||
|
class CPedInventory
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~CPedInventory();
|
||||||
|
virtual void _0x0008();
|
||||||
|
virtual void _0x0010();
|
||||||
|
virtual void _0x0018();
|
||||||
|
|
||||||
|
uint64_t unk_0008;
|
||||||
|
CPed* m_ped;
|
||||||
|
uint64_t unk_0018;
|
||||||
|
uint32_t unk_0020;
|
||||||
|
uint64_t unk_0028;
|
||||||
|
uint64_t unk_0030;
|
||||||
|
uint32_t unk_0038;
|
||||||
|
char pad_003C[4];
|
||||||
|
char unk_0040;
|
||||||
|
char pad_0041[7];
|
||||||
|
uint64_t unk_0048;
|
||||||
|
uint32_t unk_0050;
|
||||||
|
uint64_t unk_0058;
|
||||||
|
uint64_t unk_0060;
|
||||||
|
uint32_t unk_0068;
|
||||||
|
char pad_006C[4];
|
||||||
|
char unk_0070;
|
||||||
|
char pad_0071[7];
|
||||||
|
char unk_0078;
|
||||||
|
char pad_0079[7];
|
||||||
|
uint64_t unk_0080;
|
||||||
|
};
|
||||||
|
static_assert(sizeof(CPedInventory) == 0x88);
|
||||||
|
#pragma pack(pop)
|
@ -7,9 +7,9 @@
|
|||||||
enum class eVehicleType : std::uint32_t
|
enum class eVehicleType : std::uint32_t
|
||||||
{
|
{
|
||||||
Unknown = 4294967295,
|
Unknown = 4294967295,
|
||||||
Car = 0,
|
Car = 0,
|
||||||
Plane = 1,
|
Plane = 1,
|
||||||
Trailer = 2,
|
Trailer = 2,
|
||||||
Quadbike = 3,
|
Quadbike = 3,
|
||||||
Draft = 4, //Unused
|
Draft = 4, //Unused
|
||||||
SubmarineCar = 5,
|
SubmarineCar = 5,
|
||||||
@ -29,7 +29,7 @@ enum class eVehicleType : std::uint32_t
|
|||||||
class CVehicleModelInfo : public CBaseModelInfo
|
class CVehicleModelInfo : public CBaseModelInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
char pad_00B0[72]; //0x00B0
|
char pad_00A4[72]; //0x00A4
|
||||||
uint8_t m_primary_color_combinations[25]; //0x00F8
|
uint8_t m_primary_color_combinations[25]; //0x00F8
|
||||||
uint8_t m_secondary_color_combinations[25]; //0x0111
|
uint8_t m_secondary_color_combinations[25]; //0x0111
|
||||||
uint8_t m_unk_color_combos1[25]; //0x012A
|
uint8_t m_unk_color_combos1[25]; //0x012A
|
||||||
@ -39,7 +39,7 @@ public:
|
|||||||
char pad_018E[266]; //0x018E
|
char pad_018E[266]; //0x018E
|
||||||
char m_name[12]; //0x0298
|
char m_name[12]; //0x0298
|
||||||
char m_manufacturer[12]; //0x02A4
|
char m_manufacturer[12]; //0x02A4
|
||||||
char pad_02B0[8]; //0x02B0
|
uint16_t* m_modkits; //0x02B0
|
||||||
uint16_t m_modkits_count; //0x02B8
|
uint16_t m_modkits_count; //0x02B8
|
||||||
char pad_02BA[30]; //0x02BA
|
char pad_02BA[30]; //0x02BA
|
||||||
uint8_t m_passenger_capacity; //0x02D8
|
uint8_t m_passenger_capacity; //0x02D8
|
||||||
|
Loading…
Reference in New Issue
Block a user