@@ -19,16 +19,19 @@ void UserMessages::Initialize()
1919{
2020 SH_ADD_HOOK_MEMFUNC (IGameEventSystem, PostEventAbstract, g_pGameEventSystem, this , &UserMessages::PostEvent, false );
2121
22+ #ifndef _WIN32
2223 DynLibUtils::CModule eng = DetermineModuleByLibrary (" engine2" );
2324 void * serverSideClientVTable = FindVirtTable (&eng, " CServerSideClient" , g_GameData.GetOffset (" INetworkMessageProcessingPreFilter" ));
2425
2526 hookID = SH_ADD_MANUALDVPHOOK (FilterMessage, serverSideClientVTable, SH_MEMBER (this , &UserMessages::FilterMessage), false );
27+ #endif
2628}
2729
2830bool UserMessages::FilterMessage (const CNetMessage* cMsg, INetChannel* netchan)
2931{
3032 auto client = META_IFACEPTR (CServerSideClient);
3133 if (!client) RETURN_META_VALUE (MRES_IGNORED, true );
34+ if (!cMsg) RETURN_META_VALUE (MRES_IGNORED, true );
3235
3336 UserMessage um (cMsg->GetNetMessage (), const_cast <CNetMessage*>(cMsg), (uint64_t *)0 );
3437 ClassData* umobj = new ClassData ({ { " um_ptr" , &um } }, " UserMessage" , nullptr );
@@ -43,9 +46,11 @@ bool UserMessages::FilterMessage(const CNetMessage* cMsg, INetChannel* netchan)
4346void UserMessages::Destroy ()
4447{
4548 SH_REMOVE_HOOK_MEMFUNC (IGameEventSystem, PostEventAbstract, g_pGameEventSystem, this , &UserMessages::PostEvent, false );
46-
49+
50+ #ifndef _WIN32
4751 SH_REMOVE_HOOK_ID (hookID);
4852 hookID = -1 ;
53+ #endif
4954}
5055
5156void UserMessages::PostEvent (CSplitScreenSlot nSlot, bool bLocalOnly, int nClientCount, const uint64* clients, INetworkMessageInternal* pEvent, const CNetMessage* pData, unsigned long nSize, NetChannelBufType_t bufType)
0 commit comments