diff options
Diffstat (limited to 'engines/sci/engine/savegame.cpp')
-rw-r--r-- | engines/sci/engine/savegame.cpp | 11 |
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; |