aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorPaweł Kołodziejski2004-01-15 07:02:29 +0000
committerPaweł Kołodziejski2004-01-15 07:02:29 +0000
commitea69029982551ebfdedb37e91ef57971ada88c01 (patch)
treecba125a20f70b8727376f1ddd9d7476c3ff0bddf /scumm
parentfeb0b79e081f6ba13c31b256f54077925c7081f9 (diff)
downloadscummvm-rg350-ea69029982551ebfdedb37e91ef57971ada88c01.tar.gz
scummvm-rg350-ea69029982551ebfdedb37e91ef57971ada88c01.tar.bz2
scummvm-rg350-ea69029982551ebfdedb37e91ef57971ada88c01.zip
song scene now works better
svn-id: r12405
Diffstat (limited to 'scumm')
-rw-r--r--scumm/imuse_digi/dimuse.cpp34
1 files changed, 29 insertions, 5 deletions
diff --git a/scumm/imuse_digi/dimuse.cpp b/scumm/imuse_digi/dimuse.cpp
index dae8315d9f..beadd7608b 100644
--- a/scumm/imuse_digi/dimuse.cpp
+++ b/scumm/imuse_digi/dimuse.cpp
@@ -639,7 +639,7 @@ int32 IMuseDigital::getCurMusicPosInMs() {
for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
_track[l].locked = true;
- if ((_track[l].used) && (_track[l].soundGroup == IMUSE_MUSIC)) {
+ if ((_track[l].used) && (_track[l].soundGroup == IMUSE_MUSIC) && (!_track[l].volFadeUsed)) {
soundId = _track[l].soundId;
}
_track[l].locked = false;
@@ -653,6 +653,7 @@ int32 IMuseDigital::getCurVoiceLipSyncWidth() {
int32 msPos = getPosInMs(kTalkSoundID) + _vm->VAR(_vm->VAR_SYNC) + 50;
int32 width = 0, height = 0;
+ debug(5, "IMuseDigital::getCurVoiceLipSyncWidth(%d)", kTalkSoundID);
getLipSync(kTalkSoundID, 0, msPos, width, height);
return width;
}
@@ -661,23 +662,46 @@ int32 IMuseDigital::getCurVoiceLipSyncHeight() {
int32 msPos = getPosInMs(kTalkSoundID) + _vm->VAR(_vm->VAR_SYNC) + 50;
int32 width = 0, height = 0;
+ debug(5, "IMuseDigital::getCurVoiceLipSyncHeight(%d)", kTalkSoundID);
getLipSync(kTalkSoundID, 0, msPos, width, height);
return height;
}
int32 IMuseDigital::getCurMusicLipSyncWidth(int syncId) {
- int32 msPos = getPosInMs(_curMusicSoundId) + _vm->VAR(_vm->VAR_SYNC) + 50;
+ int soundId = -1;
+
+ for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
+ _track[l].locked = true;
+ if ((_track[l].used) && (_track[l].soundGroup == IMUSE_MUSIC) && (!_track[l].volFadeUsed)) {
+ soundId = _track[l].soundId;
+ }
+ _track[l].locked = false;
+ }
+
+ int32 msPos = getPosInMs(soundId) + _vm->VAR(_vm->VAR_SYNC) + 50;
int32 width = 0, height = 0;
- getLipSync(_curMusicSoundId, syncId, msPos, width, height);
+ debug(5, "IMuseDigital::getCurVoiceLipSyncWidth(%d)", soundId);
+ getLipSync(soundId, syncId, msPos, width, height);
return width;
}
int32 IMuseDigital::getCurMusicLipSyncHeight(int syncId) {
- int32 msPos = getPosInMs(_curMusicSoundId) + _vm->VAR(_vm->VAR_SYNC) + 50;
+ int soundId = -1;
+
+ for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
+ _track[l].locked = true;
+ if ((_track[l].used) && (_track[l].soundGroup == IMUSE_MUSIC) && (!_track[l].volFadeUsed)) {
+ soundId = _track[l].soundId;
+ }
+ _track[l].locked = false;
+ }
+
+ int32 msPos = getPosInMs(soundId) + _vm->VAR(_vm->VAR_SYNC) + 50;
int32 width = 0, height = 0;
- getLipSync(_curMusicSoundId, syncId, msPos, width, height);
+ debug(5, "IMuseDigital::getCurVoiceLipSyncHeight(%d)", soundId);
+ getLipSync(soundId, syncId, msPos, width, height);
return height;
}