Skip to content
This repository has been archived by the owner on Nov 15, 2022. It is now read-only.

LoadGame

Antek Bizon edited this page Mar 5, 2022 · 1 revision

LoadGame

Funkcja służąca do odczytu zapisanego stanu gry. Podobnie jak przy zapisie wykorzystujemy stream. Właściwy odczyt następuje w ReadGameData, który korzysta z template’a Read. Odczytuje wszystkie potrzebne dane i wrzuca do odpowiednich zmiennych. Tworzy także Sprite’y na podstawie wcześniej zapisanego typu. Korzysta wtedy z konstruktora wykorzystującego stream jako argument. Dzięki temu podczas tworzenia obiektu jesteśmy w stanie przywrócić wszystkie dane.

void Game::LoadGame(int fileNum) {
    if (!DirectoryExists("saves")) {
        std::cout << "No saves";
    } else {
        std::ifstream loadFile(TextFormat("saves/s%d.psf", fileNum), std::ios_base::binary);
        if (loadFile.is_open()) {
            ReadGameData(loadFile);

            loadFile.close();
            std::cout << "Load complete\n";
            PlaySound(audio[LEVEL_START]);
            if (backMusic != NUM_MUSIC)
                PlayMusicStream(music[backMusic]);
        } else {
            std::cout << "Unable to open file";
        }
    }
}
Clone this wiki locally