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
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);
}; //Size: 0x1098
static_assert(sizeof(CNetComplaintMgr) == 0x1098);

View File

@ -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)

View File

@ -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<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
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<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
{
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 LastProjectilePickupTime;
SCR_INT LastGunPickupTime;
SCR_ARRAY<uint64_t, 95> Indices; // size increased in b3095 (62 -> 95)
SCR_ARRAY<uint64_t, 95> Owners;
SCR_ARRAY<uint64_t, 96> Indices; // size increased in b3095 (62 -> 95)
// and in b3407 (95 -> 96)
SCR_ARRAY<uint64_t, 96> 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<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, 61> PAD_0116; // TODO
SCR_ARRAY<uint64_t, 62> PAD_0116; // TODO b3407 (61 -> 62)
SCR_INT ShopProcessingBitset;
SCR_ARRAY<uint64_t, NUM_CONTACTS> ActiveContactServiceBitsets;
SCR_ARRAY<ACTIVE_CONTACT_SERVICE, 32> ActiveContactServices;
@ -63,4 +64,4 @@ struct GSBD_FM
BIKER_CONTRACTS_SERVER BikerContracts;
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<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
{
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
{
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)
}

View File

@ -100,4 +100,4 @@ private:
};
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
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)