SaveGame - Inf512-MotorolaScienceCup/gra-PANG GitHub Wiki

SaveGame

Funkcja służąca do zapisu gry. Uruchamia ona stream, który zostaje przekazany do WriteGameData. Tam z kolei do zapisu wykorzystuje się template Write, który zapisuje do stream’u zmienne oraz struktury. Każdy Sprite posiada funkcję zapisu, która wrzuca wszystkie potrzebne do odtworzenia stanu gry informacje.

bool Game::SaveGame(int fileNum) {
    if (!DirectoryExists("saves")) {
        std::system("mkdir saves");
    }
    std::ofstream saveFile(TextFormat("saves/s%d.psf", fileNum), std::ios_base::binary);
    if (saveFile.is_open()) {
        WriteGameData(saveFile);

        saveFile.close();

        std::cout << "Save file created";
        return true;
    } else {
        std::cout << "Unable to open file";
        return false;
    }
}