@@ -166,6 +166,23 @@ static void hkTraceIPC(const char* iface, const char* fn)
166166 }
167167}
168168
169+ static uint32_t hkCAPIJob_GetPlayerStats (void * pAPIJob)
170+ {
171+ uint32_t res = Hooks::CAPIJob_GetPlayerStats.tramp .fn (pAPIJob);
172+
173+ g_pLog->debug
174+ (
175+ " %s(%p) -> %i\n " ,
176+ Hooks::CAPIJob_GetPlayerStats.name .c_str (),
177+ pAPIJob,
178+ res
179+ );
180+
181+ Achievements::getPlayerStats (res);
182+
183+ return res;
184+ }
185+
169186static void hkProtoBufMsgBase_InitFromPacket (CProtoBufMsgBase* pMsg, void * pSrc)
170187{
171188 Hooks::CProtoBufMsgBase_InitFromPacket.tramp .fn (pMsg, pSrc);
@@ -925,6 +942,8 @@ namespace Hooks
925942 DetourHook<IClientUser_RunIPCFrame_t> IClientUser_RunIPCFrame;
926943 DetourHook<IClientUserStats_RunIPCFrame_t> IClientUserStats_RunIPCFrame;
927944
945+ DetourHook<CAPIJob_GetPlayerStats_t> CAPIJob_GetPlayerStats;
946+
928947 DetourHook<CProtoBufMsgBase_InitFromPacket_t> CProtoBufMsgBase_InitFromPacket;
929948 DetourHook<CProtoBufMsgBase_Send_t> CProtoBufMsgBase_Send;
930949
@@ -976,6 +995,8 @@ bool Hooks::setup()
976995 bool succeeded =
977996 TraceIPC.setup (Patterns::TraceIPC, &hkTraceIPC)
978997
998+ && CAPIJob_GetPlayerStats.setup (Patterns::CAPIJob::GetPlayerStats, &hkCAPIJob_GetPlayerStats)
999+
9791000 && CProtoBufMsgBase_InitFromPacket.setup (Patterns::CProtoBufMsgBase::InitFromPacket, &hkProtoBufMsgBase_InitFromPacket)
9801001 && CProtoBufMsgBase_Send.setup (Patterns::CProtoBufMsgBase::Send, &hkProtoBufMsgBase_Send)
9811002
@@ -1022,6 +1043,8 @@ void Hooks::place()
10221043 // Detours
10231044 TraceIPC.place ();
10241045
1046+ CAPIJob_GetPlayerStats.place ();
1047+
10251048 CProtoBufMsgBase_InitFromPacket.place ();
10261049 CProtoBufMsgBase_Send.place ();
10271050
@@ -1060,6 +1083,8 @@ void Hooks::remove()
10601083 // Detours
10611084 TraceIPC.remove ();
10621085
1086+ CAPIJob_GetPlayerStats.remove ();
1087+
10631088 CProtoBufMsgBase_InitFromPacket.remove ();
10641089 CProtoBufMsgBase_Send.remove ();
10651090
0 commit comments