aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/xeen/map.cpp4
-rw-r--r--engines/xeen/music.cpp4
-rw-r--r--engines/xeen/music.h1
3 files changed, 6 insertions, 3 deletions
diff --git a/engines/xeen/map.cpp b/engines/xeen/map.cpp
index ac5b511f22..2b954f5afa 100644
--- a/engines/xeen/map.cpp
+++ b/engines/xeen/map.cpp
@@ -1174,6 +1174,7 @@ void Map::load(int mapId) {
// Handle loading miscellaneous sprites for the map
if (_isOutdoors) {
// Start playing relevant music
+ sound._musicSide = isDarkCc;
Common::String musName;
if (_vm->_files->_isDarkCc) {
@@ -1205,8 +1206,9 @@ void Map::load(int mapId) {
_surfaceSprites[i].load(Res.SURFACE_NAMES[_mazeData[0]._surfaceTypes[i]]);
}
} else {
- if (isDarkCc || mapId == 125 || mapId == 126 || mapId == 127)
+ if (files._isDarkCc && (mapId == 125 || mapId == 126 || mapId == 127))
files.setGameCc(0);
+ sound._musicSide = files._isDarkCc;
// Start playing relevant music
const int MUS_INDEXES[] = { 1, 2, 3, 4, 3, 5 };
diff --git a/engines/xeen/music.cpp b/engines/xeen/music.cpp
index 0ebb8ac02f..1e9f6e2fbc 100644
--- a/engines/xeen/music.cpp
+++ b/engines/xeen/music.cpp
@@ -655,7 +655,7 @@ const uint AdlibMusicDriver::WAVEFORMS[24] = {
/*------------------------------------------------------------------------*/
Music::Music() : _musicDriver(nullptr), _songData(nullptr),
- _effectsData(nullptr), _musicOn(true) {
+ _effectsData(nullptr), _musicOn(true), _musicSide(0) {
_musicDriver = new AdlibMusicDriver();
}
@@ -738,7 +738,7 @@ void Music::playSong(const Common::String &name, int param) {
_priorMusic = _currentMusic;
_currentMusic = name;
- File f(name);
+ File f(name, _musicSide);
playSong(f);
}
diff --git a/engines/xeen/music.h b/engines/xeen/music.h
index 085c85ac7f..126b079677 100644
--- a/engines/xeen/music.h
+++ b/engines/xeen/music.h
@@ -318,6 +318,7 @@ private:
public:
bool _musicOn;
Common::String _currentMusic, _priorMusic;
+ int _musicSide;
public:
Music();
~Music();