Panne de courant

Après un chtit piquenique au parc de Longchamp ce midi (j’aurais jamais du mettre un jean sombre et des chaussures de ville … j’ai faillit mourir desséché) on a eu droit à une jolie coupure de courant en rentrant au taf !

Du coup notre ami Lychen nous a fait des dessins sur mon tableau véléda histoire de passer le temps :)

Les joies des file streams …

Grande découverte aujourd’hui !
Considérons le bout de code suivant :

std::fstream stream;
std::string str;
stream.open("toto.txt", std::ios_base::in);

// read until the end and print the content
while (std::getline(stream, str).eof() == false)
    std::cout << str;

// rewind
stream.seekp(0);

// re-read
while (std::getline(stream, str).eof() == false)
    std::cout << str;

A priori, le contenu est affiché 2 fois de suite ? Ben non … la première boucle atteint la fin du fichier. Or la fonction std::getline, lorsqu’elle atteint la fin du stream, fait appel à la méthode setstate(failbit) dudit stream.
Et seekp ne reset pas cet état !! Ce qui fait qu’à la prochaine lecture, lorsque l’on teste si l’on est à la fin du fichier, le test est vérifié dès le début !

Il faut donc réinitialiser les bits d’information du stream avant de faire le seekp pour que ça marche :

stream.clear();
stream.seekp(0);

Là la deuxième boucle affiche bien le contenu. C’est un peu étrange que seekp ne puisse pas réinitialiser le bit de fin de fichier tout seul …

Réglage de la qualité graphique par macro

High quality
/console farclip 777
/console horizonfarclip 6226
/console groundeffectdensity 256
/console groundeffectdist 140
/console smallcull 0
/console skycloudlod 3
/console characterambient 0

Low quality
/console groundEffectDensity 16
/console groundEffectDist 1
/console horizonfarclip 1305
/console farclip 177
/console characterAmbient 1
/console smallcull 1
/console skycloudlod 1
/console detailDoodadAlpha 1