From 9fa80bd650d37afd70056ec0f0c987cbc62e8a74 Mon Sep 17 00:00:00 2001 From: Mr-X-GTA <110748953+Mr-X-GTA@users.noreply.github.com> Date: Tue, 27 Jan 2026 17:21:28 +0100 Subject: [PATCH] fix: some fixes (#10) --- network/Network.hpp | 167 +++++++----------------------- script/globals/GlobalPlayerBD.hpp | 6 ++ 2 files changed, 46 insertions(+), 127 deletions(-) diff --git a/network/Network.hpp b/network/Network.hpp index 6ba48fc..b8450b0 100644 --- a/network/Network.hpp +++ b/network/Network.hpp @@ -127,9 +127,8 @@ class CNetBlacklistNode { public: class rage::rlGamerHandle m_handle; //0x0000 - bool m_block_rejoin; //0x0010 - char pad_0011[3]; //0x0011 - uint32_t m_added_time; //0x0014 + uint32_t m_added_time; //0x0010 + uint32_t unk_0014; //0x0014 class CNetBlacklistNode* m_next; //0x0018 class CNetBlacklistNode* m_prev; //0x0020 }; //Size: 0x0028 @@ -138,15 +137,15 @@ static_assert(sizeof(CNetBlacklistNode) == 0x28); class CNetBlacklist { public: - class CNetBlacklistNode m_nodes[16]; //0x0000 - class CNetBlacklistNode* m_head; //0x0280 - class CNetBlacklistNode* m_tail; //0x0288 - uint32_t m_free_nodes; //0x0290 - char pad_0294[4]; //0x0294 - class CNetBlacklistNode* m_start; //0x0298 - char pad_02A0[24]; //0x02A0 -}; //Size: 0x02B8 -static_assert(sizeof(CNetBlacklist) == 0x2B8); + class CNetBlacklistNode m_nodes[32]; //0x0000 + class CNetBlacklistNode* m_head; //0x0500 + class CNetBlacklistNode* m_tail; //0x0508 + uint32_t m_free_nodes; //0x0510 + char pad_0514[4]; //0x0514 + class CNetBlacklistNode* m_start; //0x0518 + char pad_0520[24]; //0x0520 +}; //Size: 0x0538 +static_assert(sizeof(CNetBlacklist) == 0x538); class RemotePlayerData { @@ -174,121 +173,35 @@ public: char pad_0C84[4]; //0x0C84 }; //Size: 0x0C88 static_assert(sizeof(InvitedGamers) == 0xC88); +#pragma pack(pop) -class Network +class alignas(8) Network { public: - bool m_unk; - char pad_0001[0x7]; - 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; //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[26]; //0xB3FE TODO: the reclass file is broken - class rage::rlSessionInfo m_unk_session_info; //0xB408 - char pad_B4D8[643]; //0xB4D8 - bool m_need_host_change; //0xB753 - char pad_B754[76652]; //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[479]; //0x2DAF1 - uint32_t m_host_queue_factor[2]; // added b3337 - char pad_2E588[16]; - class rage::rlGamerHandle m_inviter_handle; //0x2DCE0 - class CNetComplaintMgr m_game_complaint_mgr; //0x2DCF0 - class CNetComplaintMgr m_transition_complaint_mgr; //0x2EB88 - char pad_309E0[28]; - uint32_t unk_309FC; - uint32_t unk_30A00; // added b3407 - char pad_30A04[10484]; - class CNetBlacklist m_blacklist; //0x31050 - char pad_32E90[648]; //0x31308 - class InvitedGamers m_game_invited_gamers; //0x31310 - char pad_31F98[2680]; //0x31F98 - class SessionInfoBackup m_last_joined_transition; //0x33698 - uint32_t m_activity_max_players; //0x33774 - uint32_t m_activity_max_spectators; //0x33778 - - // fields beyond this point are outdated! - - 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[632]; //0x49EE4 - - char pad[3252]; -}; //Size: 0x38650 -static_assert(sizeof(Network) == 0x4DFE8); -#pragma pack(pop) \ No newline at end of file + bool m_steam_presence_allow_private_sessions; //0x0000 + rage::rlSessionInfo m_steam_presence_session; //0x0008 + rage::Obf32 m_num_dinput8_instances; //0x00D8 + rage::Obf32 m_last_time_dinput8_checked; //0x00E8 + rage::snSession m_game_session; //0x00F8 + rage::snSession m_transition_session; //0x5580 + char pad_AA08[16]; //0xAA08 + rage::snSession* m_game_session_ptr_2; //0xAA18 + rage::snSession* m_transition_session_ptr_2; //0xAA20 + char pad_AA28[16]; //0xAA28 + rage::snSession* m_game_session_ptr; //0xAA38 + rage::snSession* m_transition_session_ptr; //0xAA40 + char pad_AA48[24]; //0xAA48 + NetworkGameConfig m_network_game_config; //0xAA60 + NetworkGameConfig m_network_transition_config; //0xABA8 + char pad_ACF0[1028]; //0xACF0 + uint32_t m_game_session_state; //0xB0F4 + char pad_B0F8[79536]; //0xB0F8 + rage::rlSessionInfo m_last_joined_session; //0x1E7A8 + char pad_1E878[65632]; //0x1E878 + uint32_t m_host_candidates_sort_type[2]; //0x2E8D8 -- added b3337 + char pad_2E8E0[24]; //0x2E8E0 + CNetComplaintMgr m_game_complaint_mgr; //0x2E8F8 + CNetComplaintMgr m_transition_complaint_mgr; //0x2F990 + char pad_30A28[120304]; // 0x30A28 +}; //Size: 0x4E018 +static_assert(sizeof(Network) == 0x4E018); \ No newline at end of file diff --git a/script/globals/GlobalPlayerBD.hpp b/script/globals/GlobalPlayerBD.hpp index 626e611..17666a2 100644 --- a/script/globals/GlobalPlayerBD.hpp +++ b/script/globals/GlobalPlayerBD.hpp @@ -405,6 +405,12 @@ enum class eSimpleInteriorIndex SIMPLE_INTERIOR_BAIL_OFFICE_WEST_VINEWOOD, SIMPLE_INTERIOR_HACKER_DEN, SIMPLE_INTERIOR_FIELD_HANGAR, + SIMPLE_INTERIOR_SMALL_BUSINESS_CAR_WASH, + SIMPLE_INTERIOR_SMALL_BUSINESS_WEED_SHOP, + SIMPLE_INTERIOR_SMALL_BUSINESS_HELI_TOURS, + SIMPLE_INTERIOR_MANSION_TONGVA_HILLS, + SIMPLE_INTERIOR_MANSION_WEST_VINEWOOD, + SIMPLE_INTERIOR_MANSION_EAST_VINEWOOD, SIMPLE_INTERIOR_MAX };