1+ #pragma once
2+ #include < cstdint>
3+
4+ class CNetGamePlayer ;
5+ class CNetGamePlayerDataMsg ;
6+ class CNonPhysicalPlayerData ;
7+
8+ namespace rage
9+ {
10+ class rlGamerInfo ;
11+ class netConnectionManager ;
12+ #pragma pack(push, 8)
13+ // the same as GTA 1.63
14+ class netPlayerMgrBase
15+ {
16+ public:
17+ virtual ~netPlayerMgrBase () = default ;
18+ virtual void Initialize () = 0;
19+ virtual void Shutdown () = 0;
20+ virtual void unk_0x18 () = 0;
21+ virtual CNetGamePlayer* AddPlayer_raw (rage::rlGamerInfo* gamer_info, uint32_t a2, CNetGamePlayerDataMsg* player_data, CNonPhysicalPlayerData* non_physical_player_data) = 0;
22+ virtual void RemovePlayer (CNetGamePlayer* net_game_player) = 0;
23+ virtual void UpdatePlayerListsForPlayer (CNetGamePlayer* net_game_player) = 0;
24+ virtual CNetGamePlayer* AddPlayer (rage::rlGamerInfo* gamer_info, uint32_t a3, CNetGamePlayerDataMsg* player_data, CNonPhysicalPlayerData* non_physical_player_data) = 0;
25+
26+ rage::netConnectionManager* m_NetConnectionManager; // 0x0008
27+ uint64_t * m_NetBandwidthManager; // 0x0010
28+ char pad_0018[208 ]; // 0x0018
29+ CNetGamePlayer* m_LocalPlayer; // 0x00E8
30+ char pad_00F0[144 ]; // 0x00F0
31+ CNetGamePlayer* m_PlayerList[32 ]; // 0x0180 (TODO: is this used?)
32+ uint16_t m_PlayerLimit; // 0x0280
33+ char pad_0282[10 ]; // 0x0282
34+ uint16_t m_PlayerCount; // 0x028C
35+ char pad_0290[1618 ]; // 0x0290
36+ }; // Size: 0x08E0
37+ static_assert (sizeof (netPlayerMgrBase) == 0x8E0 );
38+ #pragma pack(pop)
39+ }
0 commit comments