aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/savegame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/engine/savegame.cpp')
-rw-r--r--engines/sci/engine/savegame.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index b93a4e652a..8e3b8a5304 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -408,14 +408,14 @@ static void sync_songlib_t(Common::Serializer &s, SongLibrary &obj) {
s.syncAsUint32LE(songcount);
if (s.isLoading()) {
- obj.initSounds();
+ obj._lib = 0;
while (songcount--) {
Song *newsong = (Song *)calloc(1, sizeof(Song));
sync_song_t(s, *newsong);
obj.addSong(newsong);
}
} else {
- Song *seeker = *(obj._lib);
+ Song *seeker = obj._lib;
while (seeker) {
seeker->_restoreTime = seeker->_it->getTimepos();
sync_song_t(s, *seeker);
@@ -695,12 +695,7 @@ static void reconstruct_sounds(EngineState *s) {
Song *seeker;
SongIteratorType it_type = s->resmgr->_sciVersion >= SCI_VERSION_01 ? SCI_SONG_ITERATOR_TYPE_SCI1 : SCI_SONG_ITERATOR_TYPE_SCI0;
- if (s->_sound._songlib._lib)
- seeker = *(s->_sound._songlib._lib);
- else {
- s->_sound._songlib.initSounds();
- seeker = NULL;
- }
+ seeker = s->_sound._songlib._lib;
while (seeker) {
SongIterator *base, *ff;