This repository has been archived by the owner on Nov 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
LoadGame
Antek Bizon edited this page Mar 5, 2022
·
1 revision
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";
}
}
}