@@ -6477,20 +6477,26 @@ bool CClientGame::WorldSoundHandler(const SWorldSoundEvent& event)
64776477 //  Audio events without a game entity could default to the root element, but the
64786478 //  best approach is to avoid spamming the event with the barely notable sounds (without a source).
64796479 //  Warning: Canceling sounds emitted by an audio entity (like vehicles do) will cause massive spam
6480+  CClientEntity* pEntity = nullptr ;
6481+ 64806482 if  (event.pGameEntity )
64816483 {
6482-  CPools* pPools = g_pGame->GetPools ();
6483-  CClientEntity* pEntity = pPools->GetClientEntity ((DWORD*)event.pGameEntity );
6484-  if  (pEntity)
6485-  {
6486-  CLuaArguments Arguments;
6487-  Arguments.PushNumber (event.uiGroup );
6488-  Arguments.PushNumber (event.uiIndex );
6489-  Arguments.PushNumber (event.vecPosition .fX );
6490-  Arguments.PushNumber (event.vecPosition .fY );
6491-  Arguments.PushNumber (event.vecPosition .fZ );
6492-  return  pEntity->CallEvent (" onClientWorldSound" true );
6493-  }
6484+  CPools* pPools = g_pGame->GetPools ();
6485+  pEntity = pPools->GetClientEntity ((DWORD*)event.pGameEntity );
6486+  }
6487+ 6488+  if  (!pEntity)
6489+  pEntity = GetRootEntity ();
6490+ 6491+  if  (pEntity)
6492+  {
6493+  CLuaArguments Arguments;
6494+  Arguments.PushNumber (event.uiGroup );
6495+  Arguments.PushNumber (event.uiIndex );
6496+  Arguments.PushNumber (event.vecPosition .fX );
6497+  Arguments.PushNumber (event.vecPosition .fY );
6498+  Arguments.PushNumber (event.vecPosition .fZ );
6499+  return  pEntity->CallEvent (" onClientWorldSound" true );
64946500 }
64956501
64966502 return  true ;
0 commit comments