#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