diff options
-rw-r--r-- | saga/music.h | 3 | ||||
-rw-r--r-- | saga/saveload.cpp | 16 |
2 files changed, 14 insertions, 5 deletions
diff --git a/saga/music.h b/saga/music.h index 98f6de7aa4..bb7d1f6d7e 100644 --- a/saga/music.h +++ b/saga/music.h @@ -111,7 +111,8 @@ public: void resume(void); void stop(void); - void setVolume(int volume, int time); + void setVolume(int volume, int time = 1); + int getVolume() { return _currentVolume; } private: SagaEngine *_vm; diff --git a/saga/saveload.cpp b/saga/saveload.cpp index 62e4172e24..4086e07c26 100644 --- a/saga/saveload.cpp +++ b/saga/saveload.cpp @@ -30,13 +30,14 @@ #include "saga/saga.h" #include "saga/actor.h" +#include "saga/events.h" +#include "saga/interface.h" #include "saga/isomap.h" +#include "saga/music.h" +#include "saga/render.h" #include "saga/resnames.h" -#include "saga/script.h" -#include "saga/interface.h" #include "saga/scene.h" -#include "saga/render.h" -#include "saga/events.h" +#include "saga/script.h" #define CURRENT_SAGA_VER 3 @@ -225,10 +226,15 @@ void SagaEngine::load(const char *fileName) { delete in; + // Mute volume to prevent outScene music play + int volume = _music->getVolume(); + _music->setVolume(0); + _isoMap->setMapPosition(mapx, mapy); _scene->clearSceneQueue(); _scene->changeScene(sceneNumber, ACTOR_NO_ENTRANCE, kTransitionNoFade); + _events->handleEvents(0); //dissolve back grounds if (insetSceneNumber != sceneNumber) { @@ -238,6 +244,8 @@ void SagaEngine::load(const char *fileName) { _scene->changeScene(insetSceneNumber, ACTOR_NO_ENTRANCE, kTransitionNoFade); } + _music->setVolume(volume); + _interface->draw(); } |