bool CHLTVClientState::ProcessGameEvent( SVC_GameEvent *msg ) { bf_read tmpBuf = msg->m_DataIn; IGameEvent *event = g_GameEventManager.UnserializeEvent( &tmpBuf ); if ( event ) { const char *pszName = event->GetName(); bool bDontForward = false; if ( Q_strcmp( pszName, "hltv_status" ) == 0 ) { m_pHLTV->m_nGlobalSlots = event->GetInt("slots");; m_pHLTV->m_nGlobalProxies = event->GetInt("proxies"); m_pHLTV->m_nGlobalClients = event->GetInt("clients"); m_pHLTV->m_RootServer.SetFromString( event->GetString("master") ); bDontForward = true; } else if ( Q_strcmp( pszName, "hltv_title" ) == 0 ) { // ignore title messages bDontForward = true; } // free event resources g_GameEventManager.FreeEvent( event ); if ( bDontForward ) return true; } // forward event CopyDataInToOut( msg ); return m_pHLTV->SendNetMsg( *msg ); // relay to server }