diff --git a/network/CNetComplaintMgr.hpp b/network/CNetComplaintMgr.hpp index 866956a..f656cc2 100644 --- a/network/CNetComplaintMgr.hpp +++ b/network/CNetComplaintMgr.hpp @@ -29,7 +29,7 @@ public: 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 + char pad_0C6C[1032]; //0x0C6C uint32_t m_connection_identifier; //0x0E74 uint32_t m_last_resend_time; //0x0E78 char pad_0E7C[4]; //0x0E7C @@ -68,5 +68,5 @@ public: m_num_tokens_complained--; } -}; //Size: 0x0C98 -static_assert(sizeof(CNetComplaintMgr) == 0xE98); \ No newline at end of file +}; //Size: 0x1098 +static_assert(sizeof(CNetComplaintMgr) == 0x1098); \ No newline at end of file diff --git a/network/Network.hpp b/network/Network.hpp index bc99390..e0f2f73 100644 --- a/network/Network.hpp +++ b/network/Network.hpp @@ -210,7 +210,7 @@ public: class rage::rlSessionInfo m_unk_session_info; //0xB408 char pad_B4D8[643]; //0xB4D8 bool m_need_host_change; //0xB753 - char pad_B754[75868]; //0xB754 + char pad_B754[76644]; //0xB754 class rage::rlSessionDetail m_joining_session_detail; //0x1D9A0 class SessionInfoBackup m_last_joined_session; //0x1DE18 char pad_1DEF4[40]; //0x1DEF4 @@ -242,19 +242,20 @@ public: class rage::rlGamerHandle m_inviter_handle; //0x2DCE0 class CNetComplaintMgr m_game_complaint_mgr; //0x2DCF0 class CNetComplaintMgr m_transition_complaint_mgr; //0x2EB88 - - // fields beyond this point are outdated! - - char pad_2FA20[32]; //0x2FA20 - class JoiningPlayerNameMap m_unused_joining_player_name_map; //0x2FA40 - char pad_31048[8]; //0x31048 + char pad_309E0[28]; + uint32_t unk_309FC; + uint32_t unk_30A00; // added b3407 + char pad_30A04[10468]; class CNetBlacklist m_blacklist; //0x31050 - char pad_31308[8]; //0x31308 + char pad_32E90[648]; //0x31308 class InvitedGamers m_game_invited_gamers; //0x31310 - char pad_31F98[5888]; //0x31F98 + 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 @@ -287,7 +288,7 @@ public: uint32_t m_follower_count; //0x49EE0 char pad_49EE4[632]; //0x49EE4 - char pad[6548]; + char pad[2492]; }; //Size: 0x38650 static_assert(sizeof(Network) == 0x4C628); #pragma pack(pop) \ No newline at end of file diff --git a/script/globals/GPBD_FM_3.hpp b/script/globals/GPBD_FM_3.hpp index 6d6f97c..4bff163 100644 --- a/script/globals/GPBD_FM_3.hpp +++ b/script/globals/GPBD_FM_3.hpp @@ -212,7 +212,8 @@ struct BOSS_GOON uint64_t PAD_0183[4]; // TODO some unknown contraband struct VEHICLE_EXPORT VehicleExport; uint64_t PAD_0193[12]; // TODO - SCR_ARRAY ActiveFreemodeEvents; // force thunder, size 7 -> 8 b3258 + SCR_ARRAY ActiveFreemodeEvents; // force thunder, size 7 -> 8 b3258 + // 8 -> 9 b3407 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 +281,7 @@ struct BOSS_GOON uint64_t PAD_0478[18]; // TODO SCR_BOOL DoubleActionCacheLocationRevealed; }; -static_assert(sizeof(BOSS_GOON) == 499 * 8); +static_assert(sizeof(BOSS_GOON) == 500 * 8); struct MC_STATS { @@ -348,10 +349,10 @@ struct GBPD_FM_3_Entry SCR_INT CasinoFlowProgress; SCR_ARRAY DailyObjectiveFlags; // @607 as of 1.67 }; -static_assert(sizeof(GBPD_FM_3_Entry) == 610 * 8); +static_assert(sizeof(GBPD_FM_3_Entry) == 611 * 8); struct GPBD_FM_3 { SCR_ARRAY Entries; }; -static_assert(sizeof(GPBD_FM_3) == 19521 * 8); \ No newline at end of file +static_assert(sizeof(GPBD_FM_3) == 19553 * 8); diff --git a/script/globals/GSBD_FM.hpp b/script/globals/GSBD_FM.hpp index eb8f300..08d515c 100644 --- a/script/globals/GSBD_FM.hpp +++ b/script/globals/GSBD_FM.hpp @@ -24,12 +24,13 @@ struct WEAPON_PICKUPS SCR_INT LastMeleeWeaponPickupTime; SCR_INT LastProjectilePickupTime; SCR_INT LastGunPickupTime; - SCR_ARRAY Indices; // size increased in b3095 (62 -> 95) - SCR_ARRAY Owners; + SCR_ARRAY Indices; // size increased in b3095 (62 -> 95) + // and in b3407 (95 -> 96) + SCR_ARRAY Owners; SCR_INT SpawnCounter; SCR_INT AmmoCount; }; -static_assert(sizeof(WEAPON_PICKUPS) == 198 * 8); +static_assert(sizeof(WEAPON_PICKUPS) == 200 * 8); struct BIKER_CONTRACTS_SERVER { @@ -49,7 +50,7 @@ struct GSBD_FM SCR_ARRAY MuggingPlayers; // 0 = mugger, 1 = merryweather mercs SCR_ARRAY MuggedPlayers; uint64_t PAD_0112[4]; // unused - SCR_ARRAY PAD_0116; // TODO + SCR_ARRAY PAD_0116; // TODO b3407 (61 -> 62) SCR_INT ShopProcessingBitset; SCR_ARRAY ActiveContactServiceBitsets; SCR_ARRAY ActiveContactServices; @@ -63,4 +64,4 @@ struct GSBD_FM BIKER_CONTRACTS_SERVER BikerContracts; SCR_ARRAY DoubleActionCacheLocationRevealed; }; -static_assert(sizeof(GSBD_FM) == 643 * 8); \ No newline at end of file +static_assert(sizeof(GSBD_FM) == 647 * 8); diff --git a/script/globals/g_AMC_playerBD.hpp b/script/globals/g_AMC_playerBD.hpp index 783892f..33c00c2 100644 --- a/script/globals/g_AMC_playerBD.hpp +++ b/script/globals/g_AMC_playerBD.hpp @@ -7,10 +7,10 @@ struct g_AMC_playerBD_Entry SCR_ARRAY UsedContactServicesTimer; // only index 2 (mugger) is actually used by the scripts. the rest is just a waste of bandwidth SCR_ARRAY ContactServiceCooldowns; // same as above }; -static_assert(sizeof(g_AMC_playerBD_Entry) == 245 * 8); +static_assert(sizeof(g_AMC_playerBD_Entry) == 248 * 8); struct g_AMC_playerBD { SCR_ARRAY Entries; }; -static_assert(sizeof(g_AMC_playerBD) == 7841 * 8); \ No newline at end of file +static_assert(sizeof(g_AMC_playerBD) == 7937 * 8); \ No newline at end of file diff --git a/script/tlsContext.hpp b/script/tlsContext.hpp index be90fb5..1b27e6a 100644 --- a/script/tlsContext.hpp +++ b/script/tlsContext.hpp @@ -12,18 +12,18 @@ namespace rage class tlsContext { public: - char gap0[180]; - std::uint8_t m_unk_byte; // 0xB4 + char gap0[8884]; + std::uint8_t m_unk_byte; // 0x22B4 char gapB5[3]; - sysMemAllocator *m_allocator; // 0xB8 - sysMemAllocator *m_allocator2; // 0xC0 - Same as 0xB8 - sysMemAllocator *m_allocator3; // 0xC8 - Same as 0xB8 - uint32_t m_console_smth; // 0xD0 + sysMemAllocator *m_allocator; // 0x22B8 + sysMemAllocator *m_allocator2; // 0x22C0 - Same as 0x22B8 + sysMemAllocator *m_allocator3; // 0x22C8 - Same as 0x22B8 + uint32_t m_console_smth; // 0x22D0 char gapD4[188]; - uint64_t m_unk; // 0x190 - char gap198[1728]; - rage::scrThread* m_script_thread; // 0x858 - bool m_is_script_thread_active; // 0x860 + uint64_t m_unk; // 0x2390 + char gap198[1720]; + rage::scrThread* m_script_thread; // 0x2A50 + bool m_is_script_thread_active; // 0x2A58 #if _WIN32 static tlsContext* get() @@ -33,6 +33,6 @@ namespace rage } #endif }; - static_assert(sizeof(tlsContext) == 0x861); + static_assert(sizeof(tlsContext) == 0x2A59); #pragma pack(pop) } \ No newline at end of file diff --git a/script/types.hpp b/script/types.hpp index 78336e6..2c78b0d 100644 --- a/script/types.hpp +++ b/script/types.hpp @@ -100,4 +100,4 @@ private: }; static_assert(sizeof(GAMER_HANDLE) == 13 * 8); -#define NUM_CONTACTS 81 \ No newline at end of file +#define NUM_CONTACTS 82 \ No newline at end of file diff --git a/vehicle/CVehicle.hpp b/vehicle/CVehicle.hpp index 370b1fb..967af28 100644 --- a/vehicle/CVehicle.hpp +++ b/vehicle/CVehicle.hpp @@ -62,20 +62,20 @@ public: float m_dirt_level; //0x0A20 char pad_0A24[202]; //0x0A24 bool m_is_targetable; //0x0AEE - char pad_0AEF[297]; //0x0AEF - uint32_t m_gravity_state; //0x0C18 - char pad_0C1C[112]; //0x0C1C - float m_gravity; //0x0C8C - uint8_t m_max_passengers; //0x0C90 - char pad_0C91[1]; //0x0C91 - uint8_t m_num_of_passengers; //0x0C92 - char pad_0C93[5]; //0x0C93 - class CPed* m_driver; //0x0C98 - class CPed* m_passengers[15]; //0x0CA0 - class CPed* m_last_driver; //0x0D18 - char pad_0D20[1696]; //0x0D20 - uint32_t m_door_lock_status; //0x13C0 - char pad_13C4[2356]; //0x13C4 -}; //Size: 0x1CF8 -static_assert(sizeof(CVehicle) == 0x1CF8); + char pad_0AEF[313]; //0x0AEF + uint32_t m_type; //0x0C28 + char pad_0C2C[112]; //0x0C2C + float m_gravity; //0x0C9C + uint8_t m_max_passengers; //0x0CA0 + char pad_0CA1[1]; //0x0CA1 + uint8_t m_num_of_passengers; //0x0CA2 + char pad_0CA3[5]; //0x0CA3 + class CPed* m_driver; //0x0CA8 + class CPed* m_passengers[15]; //0x0CB0 + class CPed* m_last_driver; //0x0CB0 + char pad_0D30[1696]; //0x0D30 + uint32_t m_door_lock_status; //0x13D0 + char pad_13D4[204]; //0x13D4 +}; //Size: 0x14A0 +static_assert(sizeof(CVehicle) == 0x14A0); #pragma pack(pop) \ No newline at end of file