void ProcessAI( World *pWorld ) { g_PlayerList.Clear(); for ( ImplementingComponentIterator<PlayerComponent> iterator( *pWorld->GetComponentManager() ); iterator.GetBaseComponent(); iterator.Advance() ) { if ( iterator->m_Avatar ) { TransformComponent *pTransform = iterator->m_Avatar->GetFirst<TransformComponent>(); if ( pTransform ) { g_PlayerList.New( *iterator, pTransform->GetPosition() ); } } } QueryComponents< AIComponentChasePlayer, AvatarControllerComponent, UpdateAI_ChasePlayer >( pWorld ); }