// Classe Thresholds - Chargement de seuils // buzz - Programme du robot Efrei Robotique I1-I2 2003 // Copyright (C) 2003 Nicolas Schodet #include "thresholds.h" #include // Constructeur. Thresholds::Thresholds (const char *filename) { FILE *fp; Threshold **pt; int n; int zone, ym, yM, um, uM, vm, vM; // Ouvre le fichier. fp = fopen (filename, "r"); if (!fp) throw "Thresholds::Thresholds: fopen failled"; // Charge chaque lignes. pt = &m_thresholds; while (!feof (fp)) { n = fscanf (fp, "%d %d %d %d %d %d %d\n", &zone, &ym, &yM, &um, &uM, &vm, &vM); if (n != 7) { fclose (fp); throw "Thresholds::Thresholds: Bad format."; } // Ajoute un nouveaux seuil a la collection. *pt = new Threshold; (*pt)->zone = zone; (*pt)->ym = ym; (*pt)->yM = yM; (*pt)->um = um; (*pt)->uM = uM; (*pt)->vm = vm; (*pt)->vM = vM; pt = &(*pt)->next; } // Ferme la liste de seuils. *pt = 0; // Ferme le fichier. fclose (fp); } // Destructeur. Thresholds::~Thresholds (void) { Threshold *p, *p2; for (p = m_thresholds; p; p = p2) { p2 = p->next; delete p; } }