[Scummvm-cvs-logs] CVS: scummvm/scumm imuse.cpp,1.51,1.52 resource.cpp,1.17,1.18 scumm.h,1.37,1.38 scummvm.cpp,1.53,1.54
Pawe? Ko?odziejski
aquadran at users.sourceforge.net
Fri Oct 11 01:36:03 CEST 2002
Update of /cvsroot/scummvm/scummvm/scumm
In directory usw-pr-cvs1:/tmp/cvs-serv8894
Modified Files:
imuse.cpp resource.cpp scumm.h scummvm.cpp
Log Message:
added FT imuse music
Index: imuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse.cpp,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- imuse.cpp 10 Oct 2002 21:38:20 -0000 1.51
+++ imuse.cpp 11 Oct 2002 08:35:12 -0000 1.52
@@ -5555,7 +5555,7 @@
int32 IMuseDigital::doCommand(int a, int b, int c, int d, int e, int f, int g, int h) {
byte cmd = a & 0xFF;
byte param = a >> 8;
- int32 sample = b;
+ int32 sample = b, r;
byte sub_cmd = c >> 8;
int8 channel = -1, l;
int8 tmp;
@@ -5652,13 +5652,12 @@
switch (cmd) {
case 0: // play music (state)
debug(1, "IMuseDigital::doCommand 0x1000 (%d)", b);
- return 0;
if (_scumm->_gameId == GID_DIG) {
for(l = 0;; l++) {
if (_digStateMusicMap[l].room == -1) {
return 1;
}
- if ((_digStateMusicMap[l].room == b)) {
+ if (_digStateMusicMap[l].room == b) {
int16 music = _digStateMusicMap[l].table_index;
debug(1, "Play imuse music: %s, %s, %s", _digStateMusicTable[music].name, _digStateMusicTable[music].title, _digStateMusicTable[music].filename);
if (_digStateMusicTable[music].filename[0] != 0) {
@@ -5668,6 +5667,22 @@
}
}
} else if (_scumm->_gameId == GID_FT) {
+ for(l = 0;; l++) {
+ if (_ftStateMusicTable[l].index == -1) {
+ return 1;
+ }
+ if (_ftStateMusicTable[l].index == b) {
+ debug(1, "Play imuse music: %s, %s", _ftStateMusicTable[l].name, _ftStateMusicTable[l].audioname);
+ if (_ftStateMusicTable[l].audioname[0] != 0) {
+ for(r = 0; r < _scumm->_numAudioNames; r++) {
+ if (strcmp(_ftStateMusicTable[l].audioname, &_scumm->_audioNames[r * 9]) == 0) {
+ startSound(r);
+ doCommand(12, r, 1536, _ftStateMusicTable[l].volume, 0, 0, 0, 0);
+ }
+ }
+ }
+ }
+ }
}
return 0;
case 1: // play music (seq)
@@ -5686,6 +5701,22 @@
}
}
} else if (_scumm->_gameId == GID_FT) {
+ for(l = 0;; l++) {
+ if (_ftSeqMusicTable[l].index == -1) {
+ return 1;
+ }
+ if (_ftSeqMusicTable[l].index == b) {
+ debug(1, "Play imuse music: %s, %s", _ftSeqMusicTable[l].name, _ftSeqMusicTable[l].audioname);
+ if (_ftSeqMusicTable[l].audioname[0] != 0) {
+ for(r = 0; r < _scumm->_numAudioNames; r++) {
+ if (strcmp(_ftSeqMusicTable[l].audioname, &_scumm->_audioNames[r * 9]) == 0) {
+ startSound(r);
+ doCommand(12, r, 1536, _ftSeqMusicTable[l].volume, 0, 0, 0, 0);
+ }
+ }
+ }
+ }
+ }
}
return 0;
case 2: // dummy in DIG and CMI
Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- resource.cpp 2 Oct 2002 13:25:06 -0000 1.17
+++ resource.cpp 11 Oct 2002 08:35:12 -0000 1.18
@@ -298,8 +298,13 @@
break;
case MKID('RNAM'):
- case MKID('ANAM'):
_fileHandle.seek(itemsize - 8, SEEK_CUR);
+ break;
+
+ case MKID('ANAM'):
+ _numAudioNames = _fileHandle.readWordLE();
+ _audioNames = (char*)malloc(_numAudioNames * 9);
+ _fileHandle.read(_audioNames, _numAudioNames * 9);
break;
case MKID('DROO'):
Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- scumm.h 8 Oct 2002 00:29:32 -0000 1.37
+++ scumm.h 11 Oct 2002 08:35:12 -0000 1.38
@@ -447,6 +447,9 @@
int _numCharsets, _numCostumes, _numNewNames, _numGlobalScripts;
int NUM_ACTORS;
+ char *_audioNames;
+ int32 _numAudioNames;
+
/* Current objects - can go in their respective classes */
byte _curActor;
int _curVerb;
Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -d -r1.53 -r1.54
--- scummvm.cpp 9 Oct 2002 20:29:26 -0000 1.53
+++ scummvm.cpp 11 Oct 2002 08:35:12 -0000 1.54
@@ -163,6 +163,7 @@
_saveLoadCompatible = false;
}
loadLanguageBundle();
+ _audioNames = NULL;
}
Scumm::~Scumm ()
@@ -186,6 +187,8 @@
delete _imuseDigital;
if (_existLanguageFile)
delete _languageBuffer;
+ if (_audioNames)
+ delete _audioNames;
}
void Scumm::scummInit()
More information about the Scummvm-git-logs
mailing list