123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #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
|