#include "IACtrl.h"

IACtrl::IACtrl(Persos_Gest* persosGest, bool allie)
: m_moi(0x0), m_persosGest(persosGest), m_allie(allie)
{
    //ctor
}

IACtrl::~IACtrl()
{
    //Ne rien détruire
}

void IACtrl::setPersoMoi(Perso* moi)
{
    m_moi = moi;
}

Uint16 IACtrl::focusProche(bool allie)
{
    /// Initialisation
    unsigned int i;
    Uint16 focusID( NO_FOCUS );
    Vec diff;
    float lg, lgMin; // Prend le premier vivant comme référence

    /// Balayage
    // Sélectionne le premier vivant
    for ( i = 0; i < m_persosGest->getNb( allie ); i++ )
    {
        if ( m_persosGest->getVivant(i, allie) ) {
            diff = m_persosGest->getPos(i, allie) - m_moi->getPos();
            lgMin = diff.norme();
            focusID = i;
            break;
        }
    }
    if ( focusID == NO_FOCUS ) return NO_FOCUS;

    // Sélectionne le plus près
    for ( i = i + 1; i < m_persosGest->getNb( allie ); i++ )
    {
        diff = m_persosGest->getPos(i, allie) - m_moi->getPos();
        lg = diff.norme();
        if ( m_persosGest->getVivant(i, allie) && lg != 0.0f && lg < lgMin ) {
            lgMin = lg;
            focusID = i;
        }
    }

    return focusID;
}

/// END FICHIER