1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #include "Methodes.h"
- std::string niveauSuivant(std::string index, std::string niveauPrecedant)
- {
- std::ifstream flux(index.c_str());
- std::string _niveauSuivant;
- if(flux)
- {
- if(niveauPrecedant == "")
- {
- if(getline(flux, _niveauSuivant))
- return _niveauSuivant.erase(0, 5);
- else
- return "";
- }
- bool trouver = false;
- while(getline(flux, _niveauSuivant))
- {
- if(trouver)
- return _niveauSuivant;
- if(_niveauSuivant == niveauPrecedant)
- trouver = true;
- }
- if(trouver)
- save("Niveaux/0index.txt", niveauPrecedant);
- }
- return "";
- }
- bool chargerNiveau(char terrain[24*18], std::string chemin)
- {
- std::ifstream flux(chemin.c_str());
- if(flux)
- {
- for(int y = 0;y<18;y++)
- {
- std::string ligne = "";
- if(!getline(flux, ligne))
- std::cout << "ligne " << y+1 << ": raté" << std::endl;
- for(unsigned int x = 0;x<24;x++)
- {
- if(x<ligne.size())
- terrain[x+y*24] = ligne[x];
- else
- terrain[x+y*24] = '#';
- }
- }
- return true;
- }
- return false;
- }
- void save(std::string index, std::string niveauActuel)
- {
- std::ifstream iflux(index.c_str());
- if(!iflux)
- return;
- std::string tmp, firstline, ligne;
- //enlever ligne save:
- getline(iflux, ligne);
- //recuperer premiere ligne tout en la mettant dans tmp
- getline(iflux, firstline);
- tmp+=firstline+"\n";
- while(getline(iflux, ligne))tmp+=ligne+"\n";
- if(niveauActuel == ligne)
- niveauActuel = firstline;
- iflux.close();
- std::ofstream oflux(index.c_str());
- if(!oflux)
- return;
- oflux << "save:"+niveauActuel+"\n" << tmp;
- }
|