Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void carica_tessere_da_file()
- {
- string zero="0.png";
- string novanta="90.png";
- string centoottanta="180.png";
- string duecentosettanta="270.png";
- vector<string> nome_angolazione;
- nome_angolazione.push_back(zero); //0
- nome_angolazione.push_back(novanta); //1
- nome_angolazione.push_back(centoottanta); //2
- nome_angolazione.push_back(duecentosettanta); //3
- boost::filesystem::directory_iterator end;
- boost::filesystem::path percorso_Tessere("Tessere"); //crea indirizzo statico c:\.....Tessere
- boost::filesystem::directory_iterator iteratore_cartelle_Tessere(percorso_Tessere); //crea un iteratore nell'indirizzo dato (c:\...Tessere)
- int contatore_tessere = 0;
- while (iteratore_cartelle_Tessere != end) //continua ad iterare finchè l'iteratore non troverà niente e quindi sarà uguale ad un iteratore vuoto (.size() ==0 si può dire)
- {
- Tessere_editor t;
- MATTEO_BITMAP m_b;
- Parametri_Tessera Tessera_x;
- for (int i = 0; i < 4; i++)
- {
- t.angolatura.push_back(0);
- t.immagini_in_varie_angolature.push_back(m_b);
- }
- boost::filesystem::path percorso_cartella_Tessere = *iteratore_cartelle_Tessere; //crea un nuovo indirizzo che punta all'indirizzo corrente dell'iteratore, e quindi: c:\...Tessere\cartella
- boost::filesystem::directory_iterator file_Tessere(percorso_cartella_Tessere);//crea un nuovo iteratore associato all'indirizzo precedentemente creato
- string nome = percorso_cartella_Tessere.stem().string();
- t.nome = nome;
- while (file_Tessere != end) //continua ad iterare finchè non finisco i file della cartella
- {
- boost::filesystem::path percorso_file_Tessere = *file_Tessere;
- if (is_regular_file(percorso_file_Tessere) && percorso_file_Tessere.extension() == ".png") //se ne trova una .png
- {
- for (size_t i = 0; i < 4; i++)
- {
- string nome_1 = nome + " " + nome_angolazione[i];
- if (nome_1 == percorso_file_Tessere.stem().string() + ".png")
- {
- switch (i)
- {
- case 0: //0
- t.angolatura[0] = 0;
- t.immagini_in_varie_angolature[0].re_inizializza(0, 0, MATTEO_BITMAP::CARICA, percorso_file_Tessere.string().c_str());
- break;
- case 1: //90
- t.angolatura[1] = 90;
- t.immagini_in_varie_angolature[1].re_inizializza(0, 0, MATTEO_BITMAP::CARICA, percorso_file_Tessere.string().c_str());
- break;
- case 2: //180
- t.angolatura[2] = 180;
- t.immagini_in_varie_angolature[2].re_inizializza(0, 0, MATTEO_BITMAP::CARICA, percorso_file_Tessere.string().c_str());
- break;
- case 3: //270
- t.angolatura[3] = 270;
- t.immagini_in_varie_angolature[3].re_inizializza(0, 0, MATTEO_BITMAP::CARICA, percorso_file_Tessere.string().c_str());
- break;
- }
- }
- nome_1.clear();
- }
- }
- else if (is_regular_file(percorso_file_Tessere) && percorso_file_Tessere.extension() == ".txt")
- {
- ifstream leggi = ifstream(percorso_file_Tessere.string());
- int numero_letto = 0;
- leggi >> numero_letto;
- while (numero_letto != -1) //codice di fine lettura zone
- {
- Tessera_x.n_zona.push_back(numero_letto);
- leggi >> numero_letto; Tessera_x.x_zona.push_back(numero_letto);
- leggi >> numero_letto; Tessera_x.y_zona.push_back(numero_letto);
- leggi >> numero_letto; Tessera_x.x_dim_zona.push_back(numero_letto);
- leggi >> numero_letto; Tessera_x.y_dim_zona.push_back(numero_letto);
- leggi >> numero_letto;
- if (numero_letto == 0)
- Tessera_x.cercabile.push_back(false);
- else
- Tessera_x.cercabile.push_back(true);
- vector<bool> fusione;
- for (int i = 0; i < 4; i++)
- {
- leggi >> numero_letto;
- if (numero_letto == 0) //false
- fusione.push_back(false);
- else
- fusione.push_back(true);
- }
- Tessera_x.direzione_fusione.push_back(fusione);
- leggi >> numero_letto; Tessera_x.fila_della_zona.push_back(numero_letto);
- fusione.clear(); //lo uso anche per vedere se ci sono mura nelle sue 4 direzioni
- for (int i = 0; i < 4; i++)
- {
- leggi >> numero_letto;
- if (numero_letto == 0) //false
- fusione.push_back(false);
- else
- fusione.push_back(true);
- }
- Tessera_x.direzione_mura.push_back(fusione);
- leggi >> numero_letto;
- }
- leggi >> numero_letto;
- while (numero_letto != -1) //codice di fine lettura porte
- {
- Tessera_x.x_porta.push_back(numero_letto);
- leggi >> numero_letto; Tessera_x.y_porta.push_back(numero_letto);
- vector<int> zone_porte;
- leggi >> numero_letto; zone_porte.push_back(numero_letto);
- leggi >> numero_letto; zone_porte.push_back(numero_letto);
- Tessera_x.zone_porta.push_back(zone_porte);
- leggi >> numero_letto;
- }
- leggi >> numero_letto;
- while (numero_letto != -2) //Codice di fine lettura tombini e anche del file
- {
- Tessera_x.zone_tombini.push_back(numero_letto);
- leggi >> numero_letto;
- }
- }
- file_Tessere++; //incrementa l'iteratore per cercare il prossimo file
- }
- t.parametri_per_angolatura.push_back(Tessera_x); //parametri 0 gradi
- //creo copia di parametri 0, li ruoto di 90 con la funzione e li push back
- aggiungi_parametri_ruotati_di_oggetto_tessere_editor
- (t.parametri_per_angolatura[0], Tessera_x, t.immagini_in_varie_angolature[0].height);
- t.parametri_per_angolatura.push_back(Tessera_x);
- //90 gradi a dx l'oggetto già ruotato di 90 --> 180
- aggiungi_parametri_ruotati_di_oggetto_tessere_editor
- (Tessera_x, Tessera_x, t.immagini_in_varie_angolature[0].height);
- t.parametri_per_angolatura.push_back(Tessera_x);
- //90 gradi a dx l'oggetto già ruotato di 180 --> 270
- aggiungi_parametri_ruotati_di_oggetto_tessere_editor
- (Tessera_x, Tessera_x, t.immagini_in_varie_angolature[0].height);
- t.parametri_per_angolatura.push_back(Tessera_x);
- stato.Elenco_Tessere.push_back(t);
- iteratore_cartelle_Tessere++; //incrementa l'iteratore per cercare la prossima cartella
- contatore_tessere++;
- }
- Tessere_editor vuota;
- vuota.nome = "VUOTA";
- MATTEO_BITMAP m_b(0, 0, MATTEO_BITMAP::CARICA, "Immagini/segnalini/Tessera_vuota_editor.png");
- for (int i = 0; i < 4; i++)
- {
- vuota.immagini_in_varie_angolature.push_back(m_b);
- }
- stato.Elenco_Tessere.push_back(vuota);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement