Skip to content

Commit 1ca2d4b

Browse files
committed
Hook s_logic_qos_reply_manager_globals dyn-init
Fixed `logic_qos_reply_manager_initialize` typo
1 parent 9d1c6db commit 1ca2d4b

2 files changed

Lines changed: 34 additions & 11 deletions

File tree

game/source/networking/logic/logic_qos_reply_manager.cpp

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,40 @@
1212

1313
REFERENCE_DECLARE(0x018639A0, s_logic_qos_reply_manager_globals, g_logic_qos_reply_manager_globals);
1414

15-
//// $TODO: remove this when we have full control over `logic_qos_reply_manager_globals`
16-
//void __cdecl dynamic_initializer_for_logic_qos_reply_manager_globals()
17-
//{
18-
// static s_logic_qos_reply_manager_globals temp;
19-
// csmemcpy(&g_logic_qos_reply_manager_globals, &temp, sizeof(s_logic_qos_reply_manager_globals));
20-
//}
21-
//HOOK_DECLARE(0x01594CD0, dynamic_initializer_for_logic_qos_reply_manager_globals);
15+
// $TODO: remove this when we have full control over `logic_qos_reply_manager_globals`
16+
void __cdecl dynamic_initializer_for_logic_qos_reply_manager_globals()
17+
{
18+
static s_logic_qos_reply_manager_globals temp;
19+
csmemcpy(&g_logic_qos_reply_manager_globals, &temp, sizeof(s_logic_qos_reply_manager_globals));
20+
}
21+
HOOK_DECLARE(0x01594CD0, dynamic_initializer_for_logic_qos_reply_manager_globals);
2222

23-
//.text:0049AD90 ; public: c_group_session_qos_reply_manager::c_group_session_qos_reply_manager()
23+
c_group_session_qos_reply_manager::c_group_session_qos_reply_manager() :
24+
c_session_qos_reply_manager()
25+
{
26+
//DECLFUNC(0x0049AD90, void, __thiscall, c_group_session_qos_reply_manager*)(this);
27+
}
2428

2529
c_live_service_qos_manager::c_live_service_qos_manager() :
2630
m_flags()
2731
{
2832
//DECLFUNC(0x0049ADB0, void, __thiscall, c_live_service_qos_manager*)(this);
2933
}
3034

31-
//.text:0049ADC0 ; public: c_session_qos_reply_manager::c_session_qos_reply_manager()
32-
//.text:0049ADE0 ; public: c_squad_session_qos_reply_manager::c_squad_session_qos_reply_manager()
35+
c_session_qos_reply_manager::c_session_qos_reply_manager() :
36+
m_initialized(),
37+
m_qos_listener_update_timestamp(),
38+
saved_qos_status()
39+
{
40+
//DECLFUNC(0x0049ADC0, void, __thiscall, c_session_qos_reply_manager*)(this);
41+
}
42+
43+
c_squad_session_qos_reply_manager::c_squad_session_qos_reply_manager() :
44+
c_session_qos_reply_manager()
45+
{
46+
//DECLFUNC(0x0049ADE0, void, __thiscall, c_squad_session_qos_reply_manager*)(this);
47+
}
48+
3349
//.text:0049AE00 ; public: s_logic_qos_reply_manager_globals::s_logic_qos_reply_manager_globals()
3450
//.text:0049AE40 ;
3551

@@ -170,7 +186,7 @@ void __cdecl logic_qos_reply_manager_initialize()
170186
g_logic_qos_reply_manager_globals.live_service_qos_manager.initialize();
171187
g_logic_qos_reply_manager_globals.squad_qos_reply_manager.initialize();
172188
g_logic_qos_reply_manager_globals.group_qos_reply_manager.initialize();
173-
g_logic_qos_reply_manager_globals.initialized = false;
189+
g_logic_qos_reply_manager_globals.initialized = true;
174190
}
175191

176192
void __cdecl logic_qos_reply_manager_update()

game/source/networking/logic/logic_qos_reply_manager.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ struct c_session_qos_reply_manager
4848
virtual void notify_qos_reply_block_set() = 0;
4949

5050
public:
51+
c_session_qos_reply_manager();
5152
void dispose();
5253
int32 get_qos_reply_block(s_network_squad_status_data const* qos_status, int32 max_block_size, byte* block_data);
5354
void initialize();
@@ -70,6 +71,9 @@ struct c_squad_session_qos_reply_manager :
7071
virtual bool get_qos_status(s_network_squad_status_data* qos_status_out) override;
7172
virtual int32 get_qos_reply_bandwidth_limit() override;
7273
virtual void notify_qos_reply_block_set() override;
74+
75+
public:
76+
c_squad_session_qos_reply_manager();
7377
};
7478
static_assert(sizeof(c_squad_session_qos_reply_manager) == sizeof(c_session_qos_reply_manager));
7579

@@ -82,6 +86,9 @@ struct c_group_session_qos_reply_manager :
8286
virtual bool get_qos_status(s_network_squad_status_data* qos_status_out) override;
8387
virtual int32 get_qos_reply_bandwidth_limit() override;
8488
virtual void notify_qos_reply_block_set() override;
89+
90+
public:
91+
c_group_session_qos_reply_manager();
8592
};
8693
static_assert(sizeof(c_group_session_qos_reply_manager) == sizeof(c_session_qos_reply_manager));
8794

0 commit comments

Comments
 (0)