mirror of
https://github.com/Mr-X-GTA/GTAV-Classes-1.git
synced 2024-12-22 14:37:31 +08:00
Update to 1.67 (#117)
This commit is contained in:
parent
14adf08cac
commit
9d951d0e32
@ -9,25 +9,25 @@ public:
|
||||
class rage::rlGamerInfo m_gamer_info; //0x0000
|
||||
char pad_0098[40]; //0x00F8
|
||||
}; //Size: 0x00C0
|
||||
static_assert(sizeof(CVoiceConnection) == 0x120);
|
||||
static_assert(sizeof(CVoiceConnection) == 0x118);
|
||||
|
||||
class CVoice
|
||||
{
|
||||
public:
|
||||
class CVoiceConnection m_connection_storage[32]; //0x0000
|
||||
char pad_1800[8]; //0x1800
|
||||
class CVoiceConnection* m_connections[32]; //0x1808
|
||||
uint32_t m_connection_count; //0x1908
|
||||
char pad_190C[3508]; //0x190C
|
||||
}; //Size: 0x1978
|
||||
static_assert(sizeof(CVoice) == 0x32C0);
|
||||
char pad_2300[8]; //0x2300
|
||||
class CVoiceConnection* m_connections[32]; //0x2308
|
||||
uint32_t m_connection_count; //0x2408
|
||||
char pad_240C[3508]; //0x240C
|
||||
}; //Size: 0x31C0
|
||||
static_assert(sizeof(CVoice) == 0x31C0);
|
||||
|
||||
class CCommunications
|
||||
{
|
||||
public:
|
||||
char pad_0000[48]; //0x0000
|
||||
class CVoice m_voice; //0x0030
|
||||
char pad_26F0[280300]; //0x26F0
|
||||
}; //Size: 0x46DE4
|
||||
static_assert(sizeof(CCommunications) == 0x479DC);
|
||||
char pad_31F0[280300]; //0x31F0
|
||||
}; //Size: 0x478DC
|
||||
static_assert(sizeof(CCommunications) == 0x478DC);
|
||||
#pragma pack(pop)
|
@ -19,21 +19,21 @@ public:
|
||||
char pad_000C[4]; //0x000C
|
||||
void* m_net_connection_mgr; //0x0010
|
||||
char pad_0018[64]; //0x0018
|
||||
uint64_t m_host_tokens_in_scope[64]; //0x0058
|
||||
uint32_t m_num_tokens_in_scope; //0x0258
|
||||
char pad_025C[4]; //0x025C
|
||||
class CNetRemoteComplaint m_remote_complaints[64]; //0x0260
|
||||
uint32_t m_num_remote_complaints; //0x0860
|
||||
char pad_0864[4]; //0x0864
|
||||
uint64_t m_host_tokens_complained[64]; //0x0868
|
||||
uint32_t m_num_tokens_complained; //0x0A68
|
||||
char pad_0A6C[520]; //0x0A6C
|
||||
uint32_t m_connection_identifier; //0x0C74
|
||||
uint32_t m_last_resend_time; //0x0C78
|
||||
char pad_0C7C[4]; //0x0C7C
|
||||
uint32_t m_time_to_resend; //0x0C80
|
||||
uint32_t m_flags; //0x0C84
|
||||
char pad_0C88[16]; //0x0C88
|
||||
class rage::rlGamerHandle m_handles_in_scope[64]; //0x0058
|
||||
uint32_t m_num_handles_in_scope; //0x0458
|
||||
char pad_045C[4]; //0x045C
|
||||
class CNetRemoteComplaint m_remote_complaints[64]; //0x0460
|
||||
uint32_t m_num_remote_complaints; //0x0A60
|
||||
char pad_0A64[4]; //0x0A64
|
||||
uint64_t m_host_tokens_complained[64]; //0x0A68
|
||||
uint32_t m_num_tokens_complained; //0x0C68
|
||||
char pad_0C6C[520]; //0x0C6C
|
||||
uint32_t m_connection_identifier; //0x0E74
|
||||
uint32_t m_last_resend_time; //0x0E78
|
||||
char pad_0E7C[4]; //0x0E7C
|
||||
uint32_t m_time_to_resend; //0x0E80
|
||||
uint32_t m_flags; //0x0E84
|
||||
char pad_0E88[16]; //0x0E88
|
||||
|
||||
inline bool has_local_complaint(uint64_t host_token)
|
||||
{
|
||||
@ -67,4 +67,4 @@ public:
|
||||
}
|
||||
|
||||
}; //Size: 0x0C98
|
||||
static_assert(sizeof(CNetComplaintMgr) == 0xC98);
|
||||
static_assert(sizeof(CNetComplaintMgr) == 0xE98);
|
@ -30,5 +30,5 @@ public:
|
||||
uint32_t unk_B944; //0xB944
|
||||
uint16_t unk_B948; //0xB948
|
||||
}; //Size: 0xB94A
|
||||
static_assert(sizeof(CNetworkPlayerMgr) == 0xD14A);
|
||||
static_assert(sizeof(CNetworkPlayerMgr) == 0xD152);
|
||||
#pragma pack(pop)
|
||||
|
@ -110,22 +110,22 @@ static_assert(sizeof(MatchmakingSessionResult) == 0x490);
|
||||
class PlayerNameMapNode
|
||||
{
|
||||
public:
|
||||
char m_name[24]; //0x0000
|
||||
class rage::rlGamerHandle m_handle; //0x0018
|
||||
class PlayerNameMapNode* m_next; //0x0028
|
||||
class PlayerNameMapNode* m_prev; //0x0030
|
||||
}; //Size: 0x0038
|
||||
static_assert(sizeof(PlayerNameMapNode) == 0x38);
|
||||
char m_name[16]; //0x0000
|
||||
class rage::rlGamerHandle m_handle; //0x0010
|
||||
class PlayerNameMapNode* m_next; //0x0020
|
||||
class PlayerNameMapNode* m_prev; //0x0028
|
||||
}; //Size: 0x0030
|
||||
static_assert(sizeof(PlayerNameMapNode) == 0x30);
|
||||
|
||||
class JoiningPlayerNameMap
|
||||
{
|
||||
public:
|
||||
class PlayerNameMapNode m_names[100]; //0x0000
|
||||
char pad_15E0[40]; //0x15E0
|
||||
uint32_t m_num_name_nodes; //0x1608
|
||||
char pad_160C[796]; //0x160C
|
||||
}; //Size: 0x1928
|
||||
static_assert(sizeof(JoiningPlayerNameMap) == 0x1928);
|
||||
char pad_12C0[40]; //0x12C0
|
||||
uint32_t m_num_name_nodes; //0x12E8
|
||||
char pad_12EC[796]; //0x12EC
|
||||
}; //Size: 0x1608
|
||||
static_assert(sizeof(JoiningPlayerNameMap) == 0x1608);
|
||||
|
||||
class CNetBlacklistNode
|
||||
{
|
||||
@ -185,101 +185,104 @@ public:
|
||||
rage::rlSessionInfo m_steam_unk_session; //0x0000
|
||||
rage::Obf32 m_num_dinput8_instances; //0x0070
|
||||
rage::Obf32 m_last_time_dinput8_checked; //0x0080
|
||||
class rage::snSession* m_game_session_ptr; //0x0090
|
||||
class rage::snSession* m_transition_session_ptr; //0x0098
|
||||
char pad_00A0[24]; //0x00A0
|
||||
class rage::snSession m_game_session; //0x00B8
|
||||
class rage::snSession m_transition_session; //0x3F28
|
||||
char pad_7D98[16]; //0x7D98
|
||||
class NetworkGameConfig m_network_game_config; //0xAC48
|
||||
class NetworkGameConfig m_network_transition_config; //0xAD90
|
||||
bool m_session_attributes_dirty; //0xAED8
|
||||
char pad_AED9[19]; //0xAED9
|
||||
uint32_t m_session_visibility_flags; //0xAEEC
|
||||
uint32_t m_transition_visibility_flags; //0xAEF0
|
||||
char pad_AEF4[60]; //0xAEF4
|
||||
class MetricSessionMigrated m_metric_session_migrated; //0xAF30
|
||||
bool m_migrated_metric_enabled; //0xB278
|
||||
char pad_B279[3]; //0xB279
|
||||
uint32_t m_game_session_state; //0xB27C
|
||||
class NetworkGameFilter m_network_game_filter; //0xB280
|
||||
char pad_B5C4[33]; //0xB5C4
|
||||
bool m_was_invited; //0xB5E5
|
||||
char pad_B5E6[10]; //0xB5E6
|
||||
class rage::rlSessionInfo m_unk_session_info; //0xB5F0
|
||||
char pad_B6C0[635]; //0xB6C0
|
||||
bool m_need_host_change; //0xB93B
|
||||
char pad_B93C[2628]; //0xB93C
|
||||
class rage::rlSessionDetail m_joining_session_detail; //0xC380
|
||||
class SessionInfoBackup m_last_joined_session; //0xC7F8
|
||||
char pad_C8D4[40]; //0xC8D4
|
||||
uint32_t m_current_matchmaking_group; //0xC8FC
|
||||
uint32_t m_matchmaking_group_max_players[5]; //0xC900
|
||||
uint32_t m_num_active_matchmaking_groups; //0xC914
|
||||
char pad_C918[8]; //0xC918
|
||||
uint8_t m_matchmaking_property_id; //0xC920
|
||||
uint8_t m_matchmaking_mental_state; //0xC921
|
||||
char pad_C922[366]; //0xC922
|
||||
class rage::rlMatchmakingFindResult m_game_session_matchmaking[3]; //0xCA90
|
||||
char pad_195A0[40]; //0x195A0
|
||||
class MatchmakingSessionResult m_game_matchmaking_session_results[10]; //0x195C8
|
||||
char pad_1C368[308]; //0x1C368
|
||||
uint32_t m_num_bosses; //0x1C49C
|
||||
bool m_num_bosses_set; //0x1C4A0
|
||||
char pad_1C4A1[7]; //0x1C4A1
|
||||
class rage::rlGamerHandle m_transition_creator_handle; //0x1C4A8
|
||||
char pad_1C4B8[12]; //0x1C4B8
|
||||
bool m_is_waiting_async; //0x1C4C4
|
||||
bool m_is_preferred_activity; //0x1C4C5
|
||||
char pad_1C4C6[2]; //0x1C4C6
|
||||
uint32_t m_in_progress_finish_time; //0x1C4C8
|
||||
char pad_1C4CC[4]; //0x1C4CC
|
||||
bool m_local_player_info_dirty; //0x1C4D0
|
||||
char pad_1C4D1[495]; //0x1C4D1
|
||||
class rage::rlGamerHandle m_inviter_handle; //0x1C6C0
|
||||
class CNetComplaintMgr m_game_complaint_mgr; //0x1C6D0
|
||||
class CNetComplaintMgr m_transition_complaint_mgr; //0x1D368
|
||||
char pad_1E000[32]; //0x1E000
|
||||
class JoiningPlayerNameMap m_unused_joining_player_name_map; //0x1E020
|
||||
char pad_1F948[8]; //0x1F948
|
||||
class CNetBlacklist m_blacklist; //0x1F950
|
||||
char pad_1FC08[8]; //0x1FC08
|
||||
class InvitedGamers m_game_invited_gamers; //0x1FC10
|
||||
char pad_20898[4864]; //0x20898
|
||||
class SessionInfoBackup m_last_joined_transition; //0x21B98
|
||||
uint32_t m_activity_max_players; //0x21C74
|
||||
uint32_t m_activity_max_spectators; //0x21C78
|
||||
char pad_21C7C[48]; //0x21C7C
|
||||
bool m_do_not_launch_from_join_as_migrated_host; //0x21CAC
|
||||
char pad_21CAD[7]; //0x21CAD
|
||||
bool m_is_activity_session; //0x21CB4
|
||||
char pad_21CB5[35]; //0x21CB5
|
||||
class RemotePlayerData m_remote_player_data; //0x21CD8
|
||||
char pad_222E0[8]; //0x222E0
|
||||
class rage::netGamePlayerData m_local_net_game_player_data; //0x222E8
|
||||
char pad_22318[608]; //0x22318
|
||||
class rage::rlMatchmakingFindResult m_transition_matchmaking[4]; //0x22578
|
||||
class NetworkGameFilter m_transition_filters[4]; //0x33438
|
||||
char pad_34148[20]; //0x34148
|
||||
uint32_t m_transition_quickmatch_group_handle_count; //0x3415C
|
||||
class rage::rlGamerHandle m_transition_quickmatch_group_handles[32]; //0x34160
|
||||
bool m_retain_activity_group; //0x34360
|
||||
char pad_34361[7]; //0x34361
|
||||
class rage::rlSessionInfo m_transition_to_activity_session_info; //0x34368
|
||||
char pad_34438[48]; //0x34438
|
||||
class MatchmakingSessionResult m_transition_matchmaking_session_results[10]; //0x34468
|
||||
char pad_37208[8]; //0x37208
|
||||
class InvitedGamers m_transition_invited_gamers; //0x37210
|
||||
char pad_37E98[16]; //0x37E98
|
||||
class rage::rlGamerHandle m_transition_to_game_handle; //0x37EA8
|
||||
class rage::rlSessionInfo m_transition_to_game_session_info; //0x37EB8
|
||||
char pad_37F88[4]; //0x37F88
|
||||
uint32_t m_transition_to_game_session_participant_count; //0x37F8C
|
||||
class rage::rlGamerHandle m_transition_to_game_session_participants[32]; //0x37F90
|
||||
char pad_38190[72]; //0x38190
|
||||
class rage::rlGamerHandle m_follower_handles[32]; //0x381D8
|
||||
uint32_t m_follower_count; //0x383D8
|
||||
char pad_383DC[628]; //0x383DC
|
||||
class rage::snSession m_game_session; //0x00F0
|
||||
class rage::snSession m_transition_session; //0x5578
|
||||
char pad_AA00[16]; //0xAA00
|
||||
class rage::snSession* m_game_session_ptr_2; //0xAA10
|
||||
class rage::snSession* m_transition_session_ptr_2; //0xAA18
|
||||
char pad_AA20[16]; //0xAA20
|
||||
class rage::snSession* m_game_session_ptr; //0xAA30
|
||||
class rage::snSession* m_transition_session_ptr; //0xAA38
|
||||
char pad_AA40[24]; //0xAA40
|
||||
class NetworkGameConfig m_network_game_config; //0xAA58
|
||||
class NetworkGameConfig m_network_transition_config; //0xABA0
|
||||
bool m_session_attributes_dirty; //0xACE8
|
||||
char pad_ACE9[19]; //0xACE9
|
||||
uint32_t m_session_visibility_flags; //0xACFC
|
||||
uint32_t m_transition_visibility_flags; //0xAD00
|
||||
char pad_AD04[68]; //0xAD04
|
||||
class MetricSessionMigrated m_metric_session_migrated; //0xAD48
|
||||
bool m_migrated_metric_enabled; //0xB090
|
||||
char pad_B091[3]; //0xB091
|
||||
uint32_t m_game_session_state; //0xB094
|
||||
class NetworkGameFilter m_network_game_filter; //0xB098
|
||||
char pad_B3DC[33]; //0xB3DC
|
||||
bool m_was_invited; //0xB3FD
|
||||
char pad_B3FE[10]; //0xB3FE
|
||||
class rage::rlSessionInfo m_unk_session_info; //0xB408
|
||||
char pad_B4D8[635]; //0xB4D8
|
||||
bool m_need_host_change; //0xB753
|
||||
char pad_B754[74316]; //0xB754
|
||||
class rage::rlSessionDetail m_joining_session_detail; //0x1D9A0
|
||||
class SessionInfoBackup m_last_joined_session; //0x1DE18
|
||||
char pad_1DEF4[40]; //0x1DEF4
|
||||
uint32_t m_current_matchmaking_group; //0x1DF1C
|
||||
uint32_t m_matchmaking_group_max_players[5]; //0x1DF20
|
||||
uint32_t m_num_active_matchmaking_groups; //0x1DF34
|
||||
char pad_1DF38[8]; //0x1DF38
|
||||
uint8_t m_matchmaking_property_id; //0x1DF40
|
||||
uint8_t m_matchmaking_mental_state; //0x1DF41
|
||||
char pad_1DF42[366]; //0x1DF42
|
||||
class rage::rlMatchmakingFindResult m_game_session_matchmaking[3]; //0x1E0B0
|
||||
char pad_2ABC0[40]; //0x2ABC0
|
||||
class MatchmakingSessionResult m_game_matchmaking_session_results[10]; //0x2ABE8
|
||||
char pad_2D988[308]; //0x2D988
|
||||
uint32_t m_num_bosses; //0x2DABC
|
||||
bool m_num_bosses_set; //0x2DAC0
|
||||
char pad_2DAC1[7]; //0x2DAC1
|
||||
class rage::rlGamerHandle m_transition_creator_handle; //0x2DAC8
|
||||
char pad_2DAD8[12]; //0x2DAD8
|
||||
bool m_is_waiting_async; //0x2DAE4
|
||||
bool m_is_preferred_activity; //0x2DAE5
|
||||
char pad_2DAE6[2]; //0x2DAE6
|
||||
uint32_t m_in_progress_finish_time; //0x2DAE8
|
||||
char pad_2DAEC[4]; //0x2DAEC
|
||||
bool m_local_player_info_dirty; //0x2DAF0
|
||||
char pad_2DAF1[495]; //0x2DAF1
|
||||
class rage::rlGamerHandle m_inviter_handle; //0x2DCE0
|
||||
class CNetComplaintMgr m_game_complaint_mgr; //0x2DCF0
|
||||
class CNetComplaintMgr m_transition_complaint_mgr; //0x2EB88
|
||||
char pad_2FA20[32]; //0x2FA20
|
||||
class JoiningPlayerNameMap m_unused_joining_player_name_map; //0x2FA40
|
||||
char pad_31048[8]; //0x31048
|
||||
class CNetBlacklist m_blacklist; //0x31050
|
||||
char pad_31308[8]; //0x31308
|
||||
class InvitedGamers m_game_invited_gamers; //0x31310
|
||||
char pad_31F98[5888]; //0x31F98
|
||||
class SessionInfoBackup m_last_joined_transition; //0x33698
|
||||
uint32_t m_activity_max_players; //0x33774
|
||||
uint32_t m_activity_max_spectators; //0x33778
|
||||
char pad_3377C[48]; //0x3377C
|
||||
bool m_do_not_launch_from_join_as_migrated_host; //0x337AC
|
||||
char pad_337AD[7]; //0x337AD
|
||||
bool m_is_activity_session; //0x337B4
|
||||
char pad_337B5[35]; //0x337B5
|
||||
class RemotePlayerData m_remote_player_data; //0x337D8
|
||||
char pad_33DE0[8]; //0x33DE0
|
||||
class rage::netGamePlayerData m_local_net_game_player_data; //0x33DE8
|
||||
char pad_33E18[608]; //0x33E18
|
||||
class rage::rlMatchmakingFindResult m_transition_matchmaking[4]; //0x34078
|
||||
class NetworkGameFilter m_transition_filters[4]; //0x44F38
|
||||
char pad_45C48[20]; //0x45C48
|
||||
uint32_t m_transition_quickmatch_group_handle_count; //0x45C5C
|
||||
class rage::rlGamerHandle m_transition_quickmatch_group_handles[32]; //0x45C60
|
||||
bool m_retain_activity_group; //0x45E60
|
||||
char pad_45E61[7]; //0x45E61
|
||||
class rage::rlSessionInfo m_transition_to_activity_session_info; //0x45E68
|
||||
char pad_45F38[48]; //0x45F38
|
||||
class MatchmakingSessionResult m_transition_matchmaking_session_results[10]; //0x45F68
|
||||
char pad_48D08[8]; //0x48D08
|
||||
class InvitedGamers m_transition_invited_gamers; //0x48D10
|
||||
char pad_49998[16]; //0x49998
|
||||
class rage::rlGamerHandle m_transition_to_game_handle; //0x499A8
|
||||
class rage::rlSessionInfo m_transition_to_game_session_info; //0x499B8
|
||||
char pad_49A88[4]; //0x49A88
|
||||
uint32_t m_transition_to_game_session_participant_count; //0x49A8C
|
||||
class rage::rlGamerHandle m_transition_to_game_session_participants[32]; //0x49A90
|
||||
char pad_49C90[80]; //0x49C90
|
||||
class rage::rlGamerHandle m_follower_handles[32]; //0x49CE0
|
||||
uint32_t m_follower_count; //0x49EE0
|
||||
char pad_49EE4[628]; //0x49EE4
|
||||
}; //Size: 0x38650
|
||||
static_assert(sizeof(Network) == 0x38650);
|
||||
static_assert(sizeof(Network) == 0x4A158);
|
||||
#pragma pack(pop)
|
@ -31,5 +31,5 @@ public:
|
||||
uint32_t m_num_handles; //0x02C8
|
||||
class rage::rlGamerHandle m_handles[32]; //0x02D0
|
||||
}; //Size: 0x04D0
|
||||
static_assert(sizeof(RemoteGamerInfoMsg) == 0x530);
|
||||
static_assert(sizeof(RemoteGamerInfoMsg) == 0x528);
|
||||
#pragma pack(pop)
|
||||
|
@ -23,7 +23,7 @@ namespace rage
|
||||
|
||||
char pad_0008[8]; //0x0008
|
||||
uint64_t* m_network_bandwidth_manager; //0x0010
|
||||
char pad_0018[208]; //0x0018
|
||||
char pad_0018[216]; //0x0018
|
||||
CNetGamePlayer* m_local_net_player; //0x00E8
|
||||
char pad_00F0[144]; //0x00F0
|
||||
CNetGamePlayer* m_player_list[32]; //0x0180
|
||||
@ -32,6 +32,6 @@ namespace rage
|
||||
uint16_t m_player_count; //0x028C
|
||||
char pad_0290[1618]; //0x0290
|
||||
}; //Size: 0x08E0
|
||||
static_assert(sizeof(netPlayerMgrBase) == 0x8E0);
|
||||
static_assert(sizeof(netPlayerMgrBase) == 0x8E8);
|
||||
#pragma pack(pop)
|
||||
}
|
||||
|
@ -14,7 +14,8 @@ namespace rage
|
||||
public:
|
||||
uint64_t m_msg_id; //0x0000
|
||||
class rage::rlGamerInfo m_player_data; //0x0008
|
||||
}; //Size: 0x00A0
|
||||
char pad_00F8[8]; //0x00F8
|
||||
}; //Size: 0x0100
|
||||
static_assert(sizeof(rage::snPlayer) == 0x100);
|
||||
|
||||
class snPeer
|
||||
@ -23,7 +24,7 @@ namespace rage
|
||||
class rage::rlGamerInfo m_peer_data; //0x0000
|
||||
char pad_0098[40]; //0x0098
|
||||
}; //Size: 0x00C0
|
||||
static_assert(sizeof(rage::snPeer) == 0x120);
|
||||
static_assert(sizeof(rage::snPeer) == 0x118);
|
||||
|
||||
class rlRemoteGamer
|
||||
{
|
||||
@ -40,15 +41,15 @@ namespace rage
|
||||
class rlSession
|
||||
{
|
||||
public:
|
||||
char pad_0008[264]; //0x0008
|
||||
class rage::rlSessionInfo m_session_info; //0x0110
|
||||
char pad_01E0[288]; //0x01E0
|
||||
uint64_t m_session_id; //0x0300
|
||||
char pad_0308[1136]; //0x0308
|
||||
char pad_0008[248]; //0x0008
|
||||
class rage::rlSessionInfo m_session_info; //0x0100
|
||||
char pad_01D0[296]; //0x01D0
|
||||
uint64_t m_session_id; //0x02F8
|
||||
char pad_0300[1136]; //0x0300
|
||||
|
||||
virtual ~rlSession() = default;
|
||||
}; //Size: 0x0778
|
||||
static_assert(sizeof(rage::rlSession) == 0x778);
|
||||
}; //Size: 0x0770
|
||||
static_assert(sizeof(rage::rlSession) == 0x770);
|
||||
|
||||
class rlSessionDetail
|
||||
{
|
||||
@ -105,36 +106,37 @@ namespace rage
|
||||
class snSession
|
||||
{
|
||||
public:
|
||||
rage::sysMemAllocator* m_memory_allocator; //0x0000
|
||||
uint64_t m_memory_allocator; //0x0000
|
||||
char pad_0008[64]; //0x0008
|
||||
rage::netConnectionManager* m_net_connection_mgr; //0x0048
|
||||
char pad_0050[48]; //0x0050
|
||||
class rage::rlSession m_rline_session; //0x0080
|
||||
class rage::snPlayer m_local_player; //0x0938
|
||||
uint64_t m_host_token; //0x09D8
|
||||
char pad_09E0[144]; //0x09E0
|
||||
class rage::snPeer m_peer_storage[32]; //0x0A70
|
||||
char pad_2270[24]; //0x2270
|
||||
class rage::snPeer* m_peers[32]; //0x2288
|
||||
uint32_t m_peer_count; //0x2388
|
||||
char pad_238C[4]; //0x238C
|
||||
class rage::snPlayer m_player_storage[32]; //0x2390
|
||||
char pad_3790[24]; //0x3790
|
||||
class rage::snPlayer* m_players[32]; //0x37A8
|
||||
uint32_t m_player_count; //0x38A8
|
||||
char pad_38AC[4]; //0x38AC
|
||||
class rage::rlRemoteGamer m_remote_gamers[32]; //0x38B0
|
||||
uint32_t m_num_remote_gamers; //0x3CB0
|
||||
bool m_player_joining; //0x3CB4
|
||||
char pad_3CB5[107]; //0x3CB5
|
||||
uint32_t m_connection_identifier; //0x3D20
|
||||
char pad_3D24[8]; //0x3D24
|
||||
char m_token_key[64]; //0x3D2C
|
||||
char m_id_key[64]; //0x3D6C
|
||||
char m_info_key[64]; //0x3DAC
|
||||
char m_host_key[64]; //0x3DEC
|
||||
char m_join_key[64]; //0x3E2C
|
||||
char pad_3E6C[4]; //0x3E6C
|
||||
class rage::snPlayer m_local_player; //0x07F0
|
||||
uint64_t m_host_token; //0x08F0
|
||||
char pad_08F8[144]; //0x08F8
|
||||
class rage::snPeer m_peer_storage[32]; //0x0988
|
||||
char pad_2C88[24]; //0x2C88
|
||||
class rage::snPeer* m_peers[32]; //0x2CA0
|
||||
uint32_t m_peer_count; //0x2DA0
|
||||
char pad_2DA4[4]; //0x2DA4
|
||||
class rage::snPlayer m_player_storage[32]; //0x2DA8
|
||||
char pad_4DA8[24]; //0x4DA8
|
||||
class rage::snPlayer* m_players[32]; //0x4DC0
|
||||
int32_t m_player_count; //0x4EC0
|
||||
char pad_4EC4[4]; //0x4EC4
|
||||
class rage::rlRemoteGamer m_remote_gamers[32]; //0x4EC8
|
||||
uint32_t m_num_remote_gamers; //0x52C8
|
||||
bool m_player_joining; //0x52CC
|
||||
char pad_52CD[107]; //0x52CD
|
||||
uint32_t m_connection_identifier; //0x5338
|
||||
char pad_533C[4]; //0x533C
|
||||
uint32_t m_profile_index; //0x5340
|
||||
char m_token_key[64]; //0x5344
|
||||
char m_id_key[64]; //0x5384
|
||||
char m_info_key[64]; //0x53C4
|
||||
char m_host_key[64]; //0x5404
|
||||
char m_join_key[64]; //0x5444
|
||||
char pad_5484[4]; //0x5484
|
||||
|
||||
inline bool is_host()
|
||||
{
|
||||
@ -168,17 +170,17 @@ namespace rage
|
||||
}
|
||||
|
||||
}; //Size: 0x3E70
|
||||
static_assert(sizeof(rage::snSession) == 0x5590);
|
||||
static_assert(sizeof(rage::snSession) == 0x5488);
|
||||
|
||||
class snMsgRemoveGamersFromSessionCmd
|
||||
{
|
||||
public:
|
||||
uint64_t m_session_id; //0x0000
|
||||
uint64_t m_peer_ids[32]; //0x0008
|
||||
int32_t m_unk = -1; //0x0108
|
||||
uint32_t m_num_peers; //0x010C
|
||||
rage::rlGamerHandle m_handles[32]; //0x0008
|
||||
int32_t m_unk = -1; //0x208
|
||||
uint32_t m_num_peers; //0x20C
|
||||
}; //Size: 0x0110
|
||||
static_assert(sizeof(rage::snMsgRemoveGamersFromSessionCmd) == 0x110);
|
||||
static_assert(sizeof(rage::snMsgRemoveGamersFromSessionCmd) == 0x210);
|
||||
}
|
||||
|
||||
class SessionSortEntry
|
||||
|
@ -22,44 +22,40 @@ class CPlayerInfo
|
||||
public:
|
||||
char pad_0000[32]; //0x0000
|
||||
class rage::rlGamerInfo m_net_player_data; //0x0020
|
||||
char pad_00B8[184]; //0x00B8
|
||||
float m_swim_speed; //0x0170
|
||||
char pad_0174[20]; //0x0174
|
||||
uint32_t m_water_proof; //0x0188
|
||||
char pad_018C[76]; //0x018C
|
||||
eGameState m_game_state; //0x01D8
|
||||
char pad_01DC[12]; //0x01DC
|
||||
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[144]; //0x0740
|
||||
float m_wanted_level_difficulty; //0x07D0 min:-1 max:1
|
||||
char pad_07D4[52]; //0x07D4
|
||||
float m_wanted_level_multiplier; //0x0808 min:0 max:1
|
||||
char pad_080C[100]; //0x080C
|
||||
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) == 0xD90);
|
||||
char pad_0110[184]; //0x0110
|
||||
float m_swim_speed; //0x01C8
|
||||
char pad_01CC[20]; //0x01CC
|
||||
uint32_t m_water_proof; //0x01E0
|
||||
char pad_01E4[76]; //0x01E4
|
||||
eGameState m_game_state; //0x0230
|
||||
char pad_0234[12]; //0x0234
|
||||
class CPed* m_ped; //0x0240
|
||||
char pad_0248[40]; //0x0248
|
||||
uint32_t m_frame_flags; //0x0270
|
||||
char pad_0274[52]; //0x0274
|
||||
uint32_t m_player_controls; //0x02A8
|
||||
char pad_02AC[1248]; //0x02AC
|
||||
float m_wanted_can_change; //0x078C
|
||||
char pad_0790[304]; //0x0790
|
||||
uint32_t m_npc_ignore; //0x08C0
|
||||
char pad_08C4[12]; //0x08C4
|
||||
bool m_is_wanted; //0x08D0
|
||||
char pad_08D1[7]; //0x08D1
|
||||
uint32_t m_wanted_level; //0x08D8
|
||||
uint32_t m_wanted_level_display; //0x08DC
|
||||
char pad_08E0[1120]; //0x08E0
|
||||
float m_run_speed; //0x0D40
|
||||
float m_stamina; //0x0D44
|
||||
float m_stamina_regen; //0x0D48
|
||||
char pad_0D4C[16]; //0x0D4C
|
||||
float m_weapon_damage_mult; //0x0D5C
|
||||
float m_weapon_defence_mult; //0x0D60
|
||||
char pad_0D64[4]; //0x0D64
|
||||
float m_melee_weapon_damage_mult; //0x0D68
|
||||
float m_melee_damage_mult; //0x0D6C
|
||||
float m_melee_defence_mult; //0x0D70
|
||||
char pad_0D74[8]; //0x0D74
|
||||
float m_melee_weapon_defence_mult; //0x0D7C
|
||||
}; //Size: 0x0D80
|
||||
static_assert(sizeof(CPlayerInfo) == 0xD80);
|
||||
#pragma pack(pop)
|
||||
|
@ -10,11 +10,16 @@ namespace rage
|
||||
{
|
||||
public:
|
||||
uint64_t m_host_token;
|
||||
uint64_t m_peer_id_2;
|
||||
|
||||
union
|
||||
{
|
||||
rlGamerHandle m_gamer_handle_2;
|
||||
uint32_t m_peer_id_2; // not found in all instances
|
||||
};
|
||||
|
||||
uint32_t m_ros_privilege;
|
||||
char m_name[17];
|
||||
}; //Size: 0x0098
|
||||
static_assert(sizeof(rlGamerInfo) == 0xF8);
|
||||
static_assert(sizeof(rlGamerInfo) == 0xF0);
|
||||
#pragma pack(pop)
|
||||
}
|
||||
|
@ -488,7 +488,7 @@ struct PROPERTY_DATA
|
||||
SCR_INT PAD_0299;
|
||||
DEFUNCT_BASE_DATA DefunctBaseData;
|
||||
SCR_INT AvengerInteriorDecorFlags; // "PACKED_MP_INT_ARMORY_AIRCRAFT_INTERIOR_v0"
|
||||
uint64_t PAD_0308[2];
|
||||
uint64_t PAD_0308[3];
|
||||
BUSINESS_HUB_DATA BusinessHubData;
|
||||
NIGHTCLUB_DATA NightclubData;
|
||||
SCR_INT PAD_0365;
|
||||
@ -512,7 +512,7 @@ struct PROPERTY_DATA
|
||||
uint64_t PAD_0398[4];
|
||||
SCR_INT OfficeGarageModdingVehicleSlot;
|
||||
SCR_INT CurrentOfficeGarageFloor;
|
||||
CASINO_APARTMENT_DATA CasinoApartmentData;
|
||||
CASINO_APARTMENT_DATA CasinoApartmentData; // @405 as of 1.67
|
||||
ARCADE_DATA ArcadeData;
|
||||
ARCADE_MACHINES ArcadeMachines;
|
||||
SCR_ARRAY<uint64_t, 41> ArcadeMachineSlots;
|
||||
@ -523,11 +523,12 @@ struct PROPERTY_DATA
|
||||
CAR_CLUB_DATA CarClubData;
|
||||
FIXER_HQ_DATA FixerHQData;
|
||||
SCR_INT PAD_0503; // not read by the scripts
|
||||
SCR_INT PAD_0504;
|
||||
VEHICLE_INDEX CurrentlyModdingVehicleFixerHQ;
|
||||
MULTI_STOREY_GARAGE_DATA MultiStoreyGarageData;
|
||||
MULTI_STOREY_GARAGE_DATA MultiStoreyGarageData; // @507 as of 1.67
|
||||
SCR_INT FreakshopBits; // 0: has weapon workshop, 1: radio enabled
|
||||
};
|
||||
static_assert(sizeof(PROPERTY_DATA) == 512 * 8);
|
||||
static_assert(sizeof(PROPERTY_DATA) == 514 * 8);
|
||||
|
||||
struct BIKER_CONTRACTS
|
||||
{
|
||||
@ -631,14 +632,15 @@ struct GPBD_FM_Entry
|
||||
NIGHTCLUB_SALE NightclubSale;
|
||||
uint64_t PAD_844[11]; // unused, all of them
|
||||
SCR_INT SeatingIndex;
|
||||
ARENA_WAR_DATA ArenaWarData;
|
||||
uint64_t PAD_0859[2];
|
||||
ARENA_WAR_DATA ArenaWarData; // @858 as of 1.67
|
||||
uint64_t PAD_0861[2];
|
||||
SCR_INT ApartmentEnterFlags;
|
||||
SCR_VEC3 AvengerMissionStartPosition;
|
||||
};
|
||||
static_assert(sizeof(GPBD_FM_Entry) == 862 * 8);
|
||||
static_assert(sizeof(GPBD_FM_Entry) == 867 * 8);
|
||||
|
||||
struct GPBD_FM
|
||||
{
|
||||
SCR_ARRAY<GPBD_FM_Entry, 32> Entries;
|
||||
};
|
||||
static_assert(sizeof(GPBD_FM) == 27585 * 8);
|
||||
static_assert(sizeof(GPBD_FM) == 27745 * 8);
|
||||
|
@ -207,12 +207,12 @@ struct BOSS_GOON
|
||||
SCR_INT PAD_0178; // TODO
|
||||
SCR_HASH ContrabandPickupModel2;
|
||||
SCR_BOOL DestroyedCargo;
|
||||
SCR_INT VIPGameplayDisabledTimer;
|
||||
SCR_INT VIPGameplayDisabledTimer; // @181 as of 1.67
|
||||
SCR_INT SettingUpBusiness;
|
||||
uint64_t PAD_0183[4]; // TODO some unknown contraband struct
|
||||
VEHICLE_EXPORT VehicleExport;
|
||||
uint64_t PAD_0193[12]; // TODO
|
||||
SCR_ARRAY<uint64_t, 6> ActiveFreemodeEvents; // force thunder
|
||||
SCR_ARRAY<uint64_t, 7> ActiveFreemodeEvents; // force thunder
|
||||
uint64_t PAD_0212[22]; // I'm not even going to bother with this one
|
||||
HANGAR_CARGO HangarCargo;
|
||||
uint64_t PAD_0236[23]; // not going to bother with this one either
|
||||
@ -280,7 +280,7 @@ struct BOSS_GOON
|
||||
uint64_t PAD_0478[18]; // TODO
|
||||
SCR_BOOL DoubleActionCacheLocationRevealed;
|
||||
};
|
||||
static_assert(sizeof(BOSS_GOON) == 497 * 8);
|
||||
static_assert(sizeof(BOSS_GOON) == 498 * 8);
|
||||
|
||||
struct MC_STATS
|
||||
{
|
||||
@ -346,12 +346,12 @@ struct GBPD_FM_3_Entry
|
||||
SCR_INT CurrentlyUsingArenaTurretActivatedTime;
|
||||
SCR_INT CasinoStoryProgress;
|
||||
SCR_INT CasinoFlowProgress;
|
||||
SCR_ARRAY<uint64_t, 1> DailyObjectiveFlags;
|
||||
SCR_ARRAY<uint64_t, 1> DailyObjectiveFlags; // @607 as of 1.67
|
||||
};
|
||||
static_assert(sizeof(GBPD_FM_3_Entry) == 608 * 8);
|
||||
static_assert(sizeof(GBPD_FM_3_Entry) == 609 * 8);
|
||||
|
||||
struct GPBD_FM_3
|
||||
{
|
||||
SCR_ARRAY<GBPD_FM_3_Entry, 32> Entries;
|
||||
};
|
||||
static_assert(sizeof(GPBD_FM_3) == 19457 * 8);
|
||||
static_assert(sizeof(GPBD_FM_3) == 19489 * 8);
|
@ -49,9 +49,9 @@ struct GSBD_FM
|
||||
SCR_ARRAY<uint64_t, 2> MuggingPlayers; // 0 = mugger, 1 = merryweather mercs
|
||||
SCR_ARRAY<uint64_t, 2> MuggedPlayers;
|
||||
uint64_t PAD_0112[4]; // unused
|
||||
SCR_ARRAY<uint64_t, 60> PAD_0116; // TODO
|
||||
SCR_ARRAY<uint64_t, 61> PAD_0116; // TODO
|
||||
SCR_INT ShopProcessingBitset;
|
||||
SCR_ARRAY<uint64_t, 79> ActiveContactServiceBitsets;
|
||||
SCR_ARRAY<uint64_t, NUM_CONTACTS> ActiveContactServiceBitsets;
|
||||
SCR_ARRAY<ACTIVE_CONTACT_SERVICE, 32> ActiveContactServices;
|
||||
PLAYER_INDEX SpectatorTVWantedPlayer;
|
||||
SCR_BOOL SpectatorTVWantedClosing;
|
||||
@ -63,4 +63,4 @@ struct GSBD_FM
|
||||
BIKER_CONTRACTS_SERVER BikerContracts;
|
||||
SCR_ARRAY<uint64_t, 32> DoubleActionCacheLocationRevealed;
|
||||
};
|
||||
static_assert(sizeof(GSBD_FM) == 574 * 8);
|
||||
static_assert(sizeof(GSBD_FM) == 576 * 8);
|
@ -593,7 +593,7 @@ struct GlobalPlayerBDEntry
|
||||
SCR_INT CurrentStoreIndex; // the stores in the map which can be held up
|
||||
SCR_BOOL ShopActive; // any shop
|
||||
SCR_BOOL InTaxi;
|
||||
SCR_INT Haircut;
|
||||
SCR_INT Haircut; // @250 as of 1.67
|
||||
SCR_INT PrimaryHairColor;
|
||||
SCR_INT SecondaryHairColor;
|
||||
SCR_INT FriendlyPlayers; // bitset of player team relgroups that obtain a Respect relationship with player
|
||||
@ -617,23 +617,17 @@ struct GlobalPlayerBDEntry
|
||||
SMPL_INTERIOR_DATA SimpleInteriorData;
|
||||
SCR_BOOL PAD_0350; // TODO
|
||||
SCR_INT PAD_0351; // unused vehicle/interior stuff
|
||||
SCR_BOOL ShowMOCBlip;
|
||||
SCR_BOOL ShowAvengerBlip;
|
||||
SCR_BOOL ShowTerrorbyteBlip;
|
||||
SCR_BOOL ShowSubmarineBlip;
|
||||
SCR_BOOL ShowDinghyBlip;
|
||||
SCR_BOOL ShowDeliveryBikeBlip;
|
||||
SCR_BOOL ShowAcidLabBlip;
|
||||
LEAVE_CLUBHOUSE LeaveClubhouse;
|
||||
SCR_INT BlipShownBitset;
|
||||
LEAVE_CLUBHOUSE LeaveClubhouse; // @353 as of 1.67
|
||||
SCR_INT Friends; // bitset of players that are friends
|
||||
SCR_VEC3 InteriorVehiclePosition; // for terrorbyte and MOC, used to fake player blip position on map
|
||||
SCR_FLOAT InteriorVehicleHeading;
|
||||
SCR_VEC3 AcidLabPosition; // not read by the scripts
|
||||
SCR_FLOAT AcidLabHeading;
|
||||
SCR_INT VehicleTurretsActive; // bitset
|
||||
SCR_ARRAY<SCR_VEC3, 3> VehicleTurretsCameraPosition;
|
||||
SCR_ARRAY<SCR_VEC3, 4> VehicleTurretsCameraPosition; // 3->4 in 1.67
|
||||
SCR_INT PAD_0416; // TODO
|
||||
SCR_BOOL DozerDetected; // very shady stuff, anticheat?
|
||||
SCR_BOOL DozerDetected; // very shady stuff, anticheat? @414 as of 1.67
|
||||
SCR_ARRAY<uint64_t, 6> MissionTurretParticipants;
|
||||
SCR_INT PAD_0425; // some seat index
|
||||
SCR_INT MissionTurretSlot;
|
||||
@ -643,7 +637,7 @@ struct GlobalPlayerBDEntry
|
||||
SCR_BOOL PAD_0430; // todo
|
||||
SCR_BOOL BeingSolicitedByProstitute; // why tf is this used by the orbital cannon?
|
||||
SCR_VEC3 DronePosition; // updates every second
|
||||
SCR_FLOAT DroneHeading;
|
||||
SCR_FLOAT DroneHeading; // @432 as of 1.67
|
||||
SCR_INT OrbitalBitset2; // ugh
|
||||
SCR_INT CurrentlyUsingArenaTrapIndex;
|
||||
SCR_INT CurrentlyUsingArenaTrapActivatedTime;
|
||||
@ -657,13 +651,14 @@ struct GlobalPlayerBDEntry
|
||||
SCR_BITSET<eOutOfSightFlags> OutOfSightFlags;
|
||||
SCR_VEC3 OutOfSightArea;
|
||||
SCR_INT AmmunationWeaponPartFlags;
|
||||
PLAYER_INDEX LastKilledBy;
|
||||
PLAYER_INDEX LastKilledBy; // @461 as of 1.67
|
||||
SCR_BOOL CanSpawnGunVan;
|
||||
};
|
||||
static_assert(sizeof(GlobalPlayerBDEntry) == 466 * 8);
|
||||
|
||||
static_assert(sizeof(GlobalPlayerBDEntry) == 463 * 8);
|
||||
|
||||
struct GlobalPlayerBD
|
||||
{
|
||||
SCR_ARRAY<GlobalPlayerBDEntry, 32> Entries;
|
||||
};
|
||||
static_assert(sizeof(GlobalPlayerBD) == 14913 * 8);
|
||||
static_assert(sizeof(GlobalPlayerBD) == 14817 * 8);
|
@ -4,13 +4,13 @@
|
||||
|
||||
struct g_AMC_playerBD_Entry
|
||||
{
|
||||
SCR_ARRAY<TIMER, 79> UsedContactServicesTimer; // only index 2 (mugger) is actually used by the scripts. the rest is just a waste of bandwidth
|
||||
SCR_ARRAY<uint64_t, 79> ContactServiceCooldowns; // same as above
|
||||
SCR_ARRAY<TIMER, NUM_CONTACTS> UsedContactServicesTimer; // only index 2 (mugger) is actually used by the scripts. the rest is just a waste of bandwidth
|
||||
SCR_ARRAY<uint64_t, NUM_CONTACTS> ContactServiceCooldowns; // same as above
|
||||
};
|
||||
static_assert(sizeof(g_AMC_playerBD_Entry) == 239 * 8);
|
||||
static_assert(sizeof(g_AMC_playerBD_Entry) == 242 * 8);
|
||||
|
||||
struct g_AMC_playerBD
|
||||
{
|
||||
SCR_ARRAY<g_AMC_playerBD_Entry, 32> Entries;
|
||||
};
|
||||
static_assert(sizeof(g_AMC_playerBD) == 7649 * 8);
|
||||
static_assert(sizeof(g_AMC_playerBD) == 7745 * 8);
|
@ -99,3 +99,5 @@ private:
|
||||
uint64_t Data[13];
|
||||
};
|
||||
static_assert(sizeof(GAMER_HANDLE) == 13 * 8);
|
||||
|
||||
#define NUM_CONTACTS 80
|
Loading…
Reference in New Issue
Block a user