Bonsoir!!
> > UNE EXCEPTION C++ EST INTERVENUE (pas de bol) :
> > Il faut au moins deux équipes valides !
> >
> > Pourtant, voici mon config.xml :
> > <?xml version="1.0" encoding="iso-8859-1"?>
> > <config>
> > <terrain>noel</terrain>
> > <equipes>
> > <equipe>ball.xml</equipe>
> > <equipe>ver.xml</equipe>
> > <equipe>xbill.xml</equipe>
> > </equipes>
> >
Même problème ici.. le problème est dans gst_equipes.cpp à la ligne 93:
while ((fichier = readdir(dir)) != NULL)
{
// On a trouvé un fichier normal ?
if ((fichier -> d_type == DT_DIR) && (fichier -> d_name[0] != '.'))
{
Equipe nv_equipe;
liste_complete.push_back(nv_equipe);
std::string nomfich = fichier -> d_name;
if (!liste_complete.back().Init (-1, nomfich))
liste_complete.pop_back();
}
}
fichier->d_type reste à 0 (alors que DT_DIR vaut 4).
Un 'man 3 readdir' donne :
D'après POSIX, la structure dirent contient un champ char d_name[] de
taille non spécifiée, avec au plus NAME_MAX caractères avant le
caractère nul final. L'utilisation des autres champs de cette
structure compromet la portabilité de votre programme.
Donc ça doit marcher seulement sur certaine distrib...
Par contre par quoi faut remplacer ça... une idée haypo?
> Par contre ça devrait pas planter le
> jeu, juste afficher un message. C'est le cas ?
Non ca quitte tous de suite...