aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2009-12-25 13:52:40 +0000
committerMartin Kiewitz2009-12-25 13:52:40 +0000
commitc03e7c8586429a8f65cf815c13024a38b1557377 (patch)
tree60de3a5ad5153bd91d71412726fd055f89786169
parentf5567d4605759c06f6ad24b2cc0b53b6d030247c (diff)
downloadscummvm-rg350-c03e7c8586429a8f65cf815c13024a38b1557377.tar.gz
scummvm-rg350-c03e7c8586429a8f65cf815c13024a38b1557377.tar.bz2
scummvm-rg350-c03e7c8586429a8f65cf815c13024a38b1557377.zip
SCI/newmusic: find slot again after destroying it fixes kq6cd, lb2cd, added debug output
svn-id: r46553
-rw-r--r--engines/sci/sfx/soundcmd.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/engines/sci/sfx/soundcmd.cpp b/engines/sci/sfx/soundcmd.cpp
index 61a49ef4d2..9227bb275c 100644
--- a/engines/sci/sfx/soundcmd.cpp
+++ b/engines/sci/sfx/soundcmd.cpp
@@ -399,6 +399,8 @@ void SoundCommandParser::cmdPlayHandle(reg_t obj, int16 value) {
if (_music->_playList[slot]->resnum != number) { // another sound loaded into struct
cmdDisposeHandle(obj, value);
cmdInitHandle(obj, value);
+ // Find slot again :)
+ slot = _music->findListSlot(obj);
}
if (_hasNodePtr) {
@@ -686,6 +688,7 @@ void SoundCommandParser::cmdUpdateCues(reg_t obj, int16 value) {
case SI_ABSOLUTE_CUE:
debugC(2, kDebugLevelSound, "--- [CUE] %04x:%04x Absolute Cue: %d\n",
PRINT_REG(obj), signal);
+ printf("abs-signal %04X\n", signal);
PUT_SEL32V(_segMan, obj, signal, signal);
break;
@@ -697,6 +700,7 @@ void SoundCommandParser::cmdUpdateCues(reg_t obj, int16 value) {
* below, with proper storage of dataInc and
* signal in the iterator code. */
PUT_SEL32V(_segMan, obj, dataInc, signal);
+ printf("rel-signal %04X\n", signal);
if (_soundVersion == SCI_VERSION_1_EARLY)
PUT_SEL32V(_segMan, obj, signal, signal);
else