[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.h,1.39,1.40 dimuse_music.cpp,1.28,1.29 dimuse_script.cpp,1.2,1.3 dimuse_sndmgr.cpp,1.29,1.30
Pawel Kolodziejski
aquadran at users.sourceforge.net
Thu Apr 8 22:57:02 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5333/imuse_digi
Modified Files:
dimuse.h dimuse_music.cpp dimuse_script.cpp dimuse_sndmgr.cpp
Log Message:
back refreshScript only for DIG, add stopping music while changing bundle
Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- dimuse.h 9 Apr 2004 04:56:18 -0000 1.39
+++ dimuse.h 9 Apr 2004 05:43:24 -0000 1.40
@@ -146,6 +146,7 @@
void stopAllSounds(bool waitForStop);
void pause(bool pause);
void parseScriptCmds(int a, int b, int c, int d, int e, int f, int g, int h);
+ void refreshScripts();
int getSoundStatus(int sound) const;
int32 getCurMusicPosInMs();
int32 getCurVoiceLipSyncWidth();
Index: dimuse_script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_script.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- dimuse_script.cpp 9 Apr 2004 04:56:18 -0000 1.2
+++ dimuse_script.cpp 9 Apr 2004 05:43:24 -0000 1.3
@@ -159,6 +159,20 @@
}
}
+void IMuseDigital::refreshScripts() {
+ Common::StackLock lock(_mutex, "IMuseDigital::refreshScripts()");
+ bool found = false;
+ for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
+ if ((_track[l].used) && (_track[l].volGroupId == IMUSE_VOLGRP_MUSIC) && (!_track[l].volFadeUsed)) {
+ found = true;
+ }
+ }
+
+ if ((!found) && (_curMusicSeq != 0)) {
+ parseScriptCmds(0x2000, 0, 0, 0, 0, 0, 0, 0);
+ }
+}
+
void IMuseDigital::startVoice(int soundId, AudioStream *input) {
debug(5, "startVoiceStream(%d)", soundId);
startSound(soundId, NULL, 0, IMUSE_VOLGRP_VOICE, input, 0, 127, 127);
Index: dimuse_sndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_sndmgr.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- dimuse_sndmgr.cpp 8 Apr 2004 21:13:25 -0000 1.29
+++ dimuse_sndmgr.cpp 9 Apr 2004 05:43:24 -0000 1.30
@@ -23,6 +23,7 @@
#include "common/util.h"
#include "sound/voc.h"
#include "scumm/scumm.h"
+#include "scumm/imuse_digi/dimuse.h"
#include "scumm/imuse_digi/dimuse_sndmgr.h"
#include "scumm/imuse_digi/dimuse_bndmgr.h"
@@ -221,8 +222,12 @@
} else {
char musicfile[20];
sprintf(musicfile, "musdisk%d.bun", _vm->VAR(_vm->VAR_CURRENTDISK));
- if (_disk != _vm->VAR(_vm->VAR_CURRENTDISK))
+ if (_disk != _vm->VAR(_vm->VAR_CURRENTDISK)) {
+ _vm->_imuseDigital->parseScriptCmds(0x1000, 0, 0, 0, 0, 0, 0, 0);
+ _vm->_imuseDigital->parseScriptCmds(0x2000, 0, 0, 0, 0, 0, 0, 0);
+ _vm->_imuseDigital->stopAllSounds(true);
_sounds[slot].bundle->closeFile();
+ }
result = _sounds[slot].bundle->openFile(musicfile, _vm->getGameDataPath());
@@ -248,8 +253,12 @@
} else {
char voxfile[20];
sprintf(voxfile, "voxdisk%d.bun", _vm->VAR(_vm->VAR_CURRENTDISK));
- if (_disk != _vm->VAR(_vm->VAR_CURRENTDISK))
+ if (_disk != _vm->VAR(_vm->VAR_CURRENTDISK)) {
+ _vm->_imuseDigital->parseScriptCmds(0x1000, 0, 0, 0, 0, 0, 0, 0);
+ _vm->_imuseDigital->parseScriptCmds(0x2000, 0, 0, 0, 0, 0, 0, 0);
+ _vm->_imuseDigital->stopAllSounds(true);
_sounds[slot].bundle->closeFile();
+ }
result = _sounds[slot].bundle->openFile(voxfile, _vm->getGameDataPath());
More information about the Scummvm-git-logs
mailing list