Update for b3407 (#2)
Some checks failed
Build / build (ubuntu-latest) (push) Has been cancelled
Build / build (windows-latest) (push) Has been cancelled

This commit is contained in:
Mr-X-GTA 2024-12-14 02:40:29 +01:00 committed by GitHub
parent 6e53c26ac9
commit d274128767
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 55 additions and 52 deletions

View File

@ -29,7 +29,7 @@ public:
char pad_0A64[4]; //0x0A64 char pad_0A64[4]; //0x0A64
uint64_t m_host_tokens_complained[64]; //0x0A68 uint64_t m_host_tokens_complained[64]; //0x0A68
uint32_t m_num_tokens_complained; //0x0C68 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_connection_identifier; //0x0E74
uint32_t m_last_resend_time; //0x0E78 uint32_t m_last_resend_time; //0x0E78
char pad_0E7C[4]; //0x0E7C char pad_0E7C[4]; //0x0E7C
@ -68,5 +68,5 @@ public:
m_num_tokens_complained--; m_num_tokens_complained--;
} }
}; //Size: 0x0C98 }; //Size: 0x1098
static_assert(sizeof(CNetComplaintMgr) == 0xE98); static_assert(sizeof(CNetComplaintMgr) == 0x1098);

View File

@ -210,7 +210,7 @@ public:
class rage::rlSessionInfo m_unk_session_info; //0xB408 class rage::rlSessionInfo m_unk_session_info; //0xB408
char pad_B4D8[643]; //0xB4D8 char pad_B4D8[643]; //0xB4D8
bool m_need_host_change; //0xB753 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 rage::rlSessionDetail m_joining_session_detail; //0x1D9A0
class SessionInfoBackup m_last_joined_session; //0x1DE18 class SessionInfoBackup m_last_joined_session; //0x1DE18
char pad_1DEF4[40]; //0x1DEF4 char pad_1DEF4[40]; //0x1DEF4
@ -242,19 +242,20 @@ public:
class rage::rlGamerHandle m_inviter_handle; //0x2DCE0 class rage::rlGamerHandle m_inviter_handle; //0x2DCE0
class CNetComplaintMgr m_game_complaint_mgr; //0x2DCF0 class CNetComplaintMgr m_game_complaint_mgr; //0x2DCF0
class CNetComplaintMgr m_transition_complaint_mgr; //0x2EB88 class CNetComplaintMgr m_transition_complaint_mgr; //0x2EB88
char pad_309E0[28];
// fields beyond this point are outdated! uint32_t unk_309FC;
uint32_t unk_30A00; // added b3407
char pad_2FA20[32]; //0x2FA20 char pad_30A04[10468];
class JoiningPlayerNameMap m_unused_joining_player_name_map; //0x2FA40
char pad_31048[8]; //0x31048
class CNetBlacklist m_blacklist; //0x31050 class CNetBlacklist m_blacklist; //0x31050
char pad_31308[8]; //0x31308 char pad_32E90[648]; //0x31308
class InvitedGamers m_game_invited_gamers; //0x31310 class InvitedGamers m_game_invited_gamers; //0x31310
char pad_31F98[5888]; //0x31F98 char pad_31F98[2680]; //0x31F98
class SessionInfoBackup m_last_joined_transition; //0x33698 class SessionInfoBackup m_last_joined_transition; //0x33698
uint32_t m_activity_max_players; //0x33774 uint32_t m_activity_max_players; //0x33774
uint32_t m_activity_max_spectators; //0x33778 uint32_t m_activity_max_spectators; //0x33778
// fields beyond this point are outdated!
char pad_3377C[48]; //0x3377C char pad_3377C[48]; //0x3377C
bool m_do_not_launch_from_join_as_migrated_host; //0x337AC bool m_do_not_launch_from_join_as_migrated_host; //0x337AC
char pad_337AD[7]; //0x337AD char pad_337AD[7]; //0x337AD
@ -287,7 +288,7 @@ public:
uint32_t m_follower_count; //0x49EE0 uint32_t m_follower_count; //0x49EE0
char pad_49EE4[632]; //0x49EE4 char pad_49EE4[632]; //0x49EE4
char pad[6548]; char pad[2492];
}; //Size: 0x38650 }; //Size: 0x38650
static_assert(sizeof(Network) == 0x4C628); static_assert(sizeof(Network) == 0x4C628);
#pragma pack(pop) #pragma pack(pop)

View File

@ -212,7 +212,8 @@ struct BOSS_GOON
uint64_t PAD_0183[4]; // TODO some unknown contraband struct uint64_t PAD_0183[4]; // TODO some unknown contraband struct
VEHICLE_EXPORT VehicleExport; VEHICLE_EXPORT VehicleExport;
uint64_t PAD_0193[12]; // TODO uint64_t PAD_0193[12]; // TODO
SCR_ARRAY<uint64_t, 8> ActiveFreemodeEvents; // force thunder, size 7 -> 8 b3258 SCR_ARRAY<uint64_t, 9> 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 uint64_t PAD_0212[22]; // I'm not even going to bother with this one
HANGAR_CARGO HangarCargo; HANGAR_CARGO HangarCargo;
uint64_t PAD_0236[23]; // not going to bother with this one either 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 uint64_t PAD_0478[18]; // TODO
SCR_BOOL DoubleActionCacheLocationRevealed; SCR_BOOL DoubleActionCacheLocationRevealed;
}; };
static_assert(sizeof(BOSS_GOON) == 499 * 8); static_assert(sizeof(BOSS_GOON) == 500 * 8);
struct MC_STATS struct MC_STATS
{ {
@ -348,10 +349,10 @@ struct GBPD_FM_3_Entry
SCR_INT CasinoFlowProgress; SCR_INT CasinoFlowProgress;
SCR_ARRAY<uint64_t, 1> DailyObjectiveFlags; // @607 as of 1.67 SCR_ARRAY<uint64_t, 1> 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 struct GPBD_FM_3
{ {
SCR_ARRAY<GBPD_FM_3_Entry, 32> Entries; SCR_ARRAY<GBPD_FM_3_Entry, 32> Entries;
}; };
static_assert(sizeof(GPBD_FM_3) == 19521 * 8); static_assert(sizeof(GPBD_FM_3) == 19553 * 8);

View File

@ -24,12 +24,13 @@ struct WEAPON_PICKUPS
SCR_INT LastMeleeWeaponPickupTime; SCR_INT LastMeleeWeaponPickupTime;
SCR_INT LastProjectilePickupTime; SCR_INT LastProjectilePickupTime;
SCR_INT LastGunPickupTime; SCR_INT LastGunPickupTime;
SCR_ARRAY<uint64_t, 95> Indices; // size increased in b3095 (62 -> 95) SCR_ARRAY<uint64_t, 96> Indices; // size increased in b3095 (62 -> 95)
SCR_ARRAY<uint64_t, 95> Owners; // and in b3407 (95 -> 96)
SCR_ARRAY<uint64_t, 96> Owners;
SCR_INT SpawnCounter; SCR_INT SpawnCounter;
SCR_INT AmmoCount; SCR_INT AmmoCount;
}; };
static_assert(sizeof(WEAPON_PICKUPS) == 198 * 8); static_assert(sizeof(WEAPON_PICKUPS) == 200 * 8);
struct BIKER_CONTRACTS_SERVER struct BIKER_CONTRACTS_SERVER
{ {
@ -49,7 +50,7 @@ struct GSBD_FM
SCR_ARRAY<uint64_t, 2> MuggingPlayers; // 0 = mugger, 1 = merryweather mercs SCR_ARRAY<uint64_t, 2> MuggingPlayers; // 0 = mugger, 1 = merryweather mercs
SCR_ARRAY<uint64_t, 2> MuggedPlayers; SCR_ARRAY<uint64_t, 2> MuggedPlayers;
uint64_t PAD_0112[4]; // unused uint64_t PAD_0112[4]; // unused
SCR_ARRAY<uint64_t, 61> PAD_0116; // TODO SCR_ARRAY<uint64_t, 62> PAD_0116; // TODO b3407 (61 -> 62)
SCR_INT ShopProcessingBitset; SCR_INT ShopProcessingBitset;
SCR_ARRAY<uint64_t, NUM_CONTACTS> ActiveContactServiceBitsets; SCR_ARRAY<uint64_t, NUM_CONTACTS> ActiveContactServiceBitsets;
SCR_ARRAY<ACTIVE_CONTACT_SERVICE, 32> ActiveContactServices; SCR_ARRAY<ACTIVE_CONTACT_SERVICE, 32> ActiveContactServices;
@ -63,4 +64,4 @@ struct GSBD_FM
BIKER_CONTRACTS_SERVER BikerContracts; BIKER_CONTRACTS_SERVER BikerContracts;
SCR_ARRAY<uint64_t, 32> DoubleActionCacheLocationRevealed; SCR_ARRAY<uint64_t, 32> DoubleActionCacheLocationRevealed;
}; };
static_assert(sizeof(GSBD_FM) == 643 * 8); static_assert(sizeof(GSBD_FM) == 647 * 8);

View File

@ -7,10 +7,10 @@ struct g_AMC_playerBD_Entry
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<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 SCR_ARRAY<uint64_t, NUM_CONTACTS> 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 struct g_AMC_playerBD
{ {
SCR_ARRAY<g_AMC_playerBD_Entry, 32> Entries; SCR_ARRAY<g_AMC_playerBD_Entry, 32> Entries;
}; };
static_assert(sizeof(g_AMC_playerBD) == 7841 * 8); static_assert(sizeof(g_AMC_playerBD) == 7937 * 8);

View File

@ -12,18 +12,18 @@ namespace rage
class tlsContext class tlsContext
{ {
public: public:
char gap0[180]; char gap0[8884];
std::uint8_t m_unk_byte; // 0xB4 std::uint8_t m_unk_byte; // 0x22B4
char gapB5[3]; char gapB5[3];
sysMemAllocator *m_allocator; // 0xB8 sysMemAllocator *m_allocator; // 0x22B8
sysMemAllocator *m_allocator2; // 0xC0 - Same as 0xB8 sysMemAllocator *m_allocator2; // 0x22C0 - Same as 0x22B8
sysMemAllocator *m_allocator3; // 0xC8 - Same as 0xB8 sysMemAllocator *m_allocator3; // 0x22C8 - Same as 0x22B8
uint32_t m_console_smth; // 0xD0 uint32_t m_console_smth; // 0x22D0
char gapD4[188]; char gapD4[188];
uint64_t m_unk; // 0x190 uint64_t m_unk; // 0x2390
char gap198[1728]; char gap198[1720];
rage::scrThread* m_script_thread; // 0x858 rage::scrThread* m_script_thread; // 0x2A50
bool m_is_script_thread_active; // 0x860 bool m_is_script_thread_active; // 0x2A58
#if _WIN32 #if _WIN32
static tlsContext* get() static tlsContext* get()
@ -33,6 +33,6 @@ namespace rage
} }
#endif #endif
}; };
static_assert(sizeof(tlsContext) == 0x861); static_assert(sizeof(tlsContext) == 0x2A59);
#pragma pack(pop) #pragma pack(pop)
} }

View File

@ -100,4 +100,4 @@ private:
}; };
static_assert(sizeof(GAMER_HANDLE) == 13 * 8); static_assert(sizeof(GAMER_HANDLE) == 13 * 8);
#define NUM_CONTACTS 81 #define NUM_CONTACTS 82

View File

@ -62,20 +62,20 @@ public:
float m_dirt_level; //0x0A20 float m_dirt_level; //0x0A20
char pad_0A24[202]; //0x0A24 char pad_0A24[202]; //0x0A24
bool m_is_targetable; //0x0AEE bool m_is_targetable; //0x0AEE
char pad_0AEF[297]; //0x0AEF char pad_0AEF[313]; //0x0AEF
uint32_t m_gravity_state; //0x0C18 uint32_t m_type; //0x0C28
char pad_0C1C[112]; //0x0C1C char pad_0C2C[112]; //0x0C2C
float m_gravity; //0x0C8C float m_gravity; //0x0C9C
uint8_t m_max_passengers; //0x0C90 uint8_t m_max_passengers; //0x0CA0
char pad_0C91[1]; //0x0C91 char pad_0CA1[1]; //0x0CA1
uint8_t m_num_of_passengers; //0x0C92 uint8_t m_num_of_passengers; //0x0CA2
char pad_0C93[5]; //0x0C93 char pad_0CA3[5]; //0x0CA3
class CPed* m_driver; //0x0C98 class CPed* m_driver; //0x0CA8
class CPed* m_passengers[15]; //0x0CA0 class CPed* m_passengers[15]; //0x0CB0
class CPed* m_last_driver; //0x0D18 class CPed* m_last_driver; //0x0CB0
char pad_0D20[1696]; //0x0D20 char pad_0D30[1696]; //0x0D30
uint32_t m_door_lock_status; //0x13C0 uint32_t m_door_lock_status; //0x13D0
char pad_13C4[2356]; //0x13C4 char pad_13D4[204]; //0x13D4
}; //Size: 0x1CF8 }; //Size: 0x14A0
static_assert(sizeof(CVehicle) == 0x1CF8); static_assert(sizeof(CVehicle) == 0x14A0);
#pragma pack(pop) #pragma pack(pop)