TPlansza* TMapa::Odczytaj(Wsp ktora) /* Odczytuje plansze o zadanych wspolrzednych, a jezeli jeszcze takiej nie ma w kolekcji to zwraca NULL */ { TPlansza *wynik; list<Wsp>::iterator it; int match=0; for(it=Dostepne_Plansze.begin(); it !=Dostepne_Plansze.end(); it++) { if(*it == ktora) { match=1; break; } } if(match) { wynik = new TPlansza; ifstream wejscie(ktora.nazwa_pliku()); wynik->wczytaj(wejscie); wejscie.close(); return wynik; } else return 0; }
EnemyParser::EnemyParser(GameMaster *mistrzGry) { this->mistrzGry = mistrzGry; aktualnaGrupa = -1; bylBlad = false; QFile plik(PLIK_PRZECIWNIKOW); if(!plik.open(QIODevice::ReadOnly)) { trescBledu = QString::fromUtf8( "Nie udało się wczytać pliku"); bylBlad = true; return; } QTextStream wejscie(&plik); bylBlad = wczytajDane(&wejscie); plik.close(); if(!bylBlad && aktualnaGrupa != -1 && !mistrzGry->enemyGroups_.contains(aktualnaGrupa)) { trescBledu = QString::fromUtf8("Grupa nie może być pusta.\n Pusta jest grupa: ") + aktualnaGrupa; bylBlad = true; } }
TPlansza* TMapa::Daj_Inna(Wsp &niz_ktora) /* Odczytuje plansze o innych niz zadane wspolrzednych, a jezeli jeszcze takiej nie ma w kolekcji (np. jest tylko 1, to zwraca NULL, ustawia parametr na wylosowana plansze */ { TPlansza *wynik; list<Wsp>::iterator it; int ok=0,i; if(Dostepne_Plansze.size() == 0) return 0; if(Dostepne_Plansze.size() == 1 && Dostepne_Plansze.front() == niz_ktora) return 0; while(!ok) { it = Dostepne_Plansze.begin(); for(i=0; i < rand() % Dostepne_Plansze.size(); i++) it++; if(!(*it == niz_ktora)) ok = 1; } wynik = new TPlansza; niz_ktora = *it; ifstream wejscie(niz_ktora.nazwa_pliku()); wynik->wczytaj(wejscie); wejscie.close(); return wynik; }
BoardParser::BoardParser(Board* plansza) { bylBlad = false; this->plansza = plansza; QFile ustawienie(PLIK_USTAWIENIA_PLANSZY); if(!ustawienie.open(QIODevice::ReadOnly)) { trescBledu = QString::fromUtf8("Nie udało się wczytać pliku."); bylBlad = true; return; } QTextStream wejscie(&ustawienie); bylBlad = wczytajWymiary(&wejscie); if(!bylBlad) bylBlad = wczytajLegende(&wejscie); if(!bylBlad) bylBlad = wczytajUstawienie(&wejscie); if(!bylBlad && !nastepny(&wejscie).isEmpty()) { trescBledu = QString::fromUtf8("Plik wejściowy jest za długi."); bylBlad = true; } ustawienie.close(); }
ItemParser::ItemParser(GameMaster *mistrz) { this->mistrzGry = mistrz; aktualnaGrupa = ""; bylBlad = false; QFile plik(PLIK_PRZEDMIOTOW); if(!plik.open(QIODevice::ReadOnly)) { trescBledu = QString::fromUtf8("Nie udało się wczytać pliku"); bylBlad = true; return; } QTextStream wejscie(&plik); bylBlad = wczytajDane(&wejscie); plik.close(); }