aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2005-08-11 22:00:32 +0000
committerEugene Sandulenko2005-08-11 22:00:32 +0000
commit31915362f1abcdbde2f13ebe51b6f9401afc17dc (patch)
treedf0c0223faf900ad583768f3389406ea33b2dbdc
parent828bcebd41170586c485242c3b711896dcfb87a6 (diff)
downloadscummvm-rg350-31915362f1abcdbde2f13ebe51b6f9401afc17dc.tar.gz
scummvm-rg350-31915362f1abcdbde2f13ebe51b6f9401afc17dc.tar.bz2
scummvm-rg350-31915362f1abcdbde2f13ebe51b6f9401afc17dc.zip
Fix bug #1257033 "ITE: Map music briefly plays when loading game at sanctuary"
svn-id: r18668
-rw-r--r--saga/music.h3
-rw-r--r--saga/saveload.cpp16
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();
}