Small fix for MP3 CD music (successful cast sound, and a little bit more synchronized in cutscenes)

svn-id: r3884
This commit is contained in:
Nicolas Bacca 2002-04-07 00:47:55 +00:00
parent d5d4c8d178
commit 37116811cc
2 changed files with 11 additions and 3 deletions

View File

@ -2479,8 +2479,15 @@ void Scumm::decodeParseString() {
string[textSlot].overhead = true;
break;
case 8: { /* play loom talkie sound - use in other games ? */
int offset = (int)(getVarOrDirectWord(0x80) * 7.5 - 22650);
int delay = (int)(getVarOrDirectWord(0x40) * 7.5) + 10;
int x = getVarOrDirectWord(0x80);
int offset;
int delay;
if (x != 0)
offset = (int)((x & 0xffff) * 7.5 - 22650);
else
offset = 0;
delay = (int)((getVarOrDirectWord(0x40) & 0xffff) * 7.5);
if (_gameId == GID_LOOM256)
cd_play(this, 1, 0, offset, delay);

View File

@ -679,6 +679,8 @@ static Uint32 cd_end_time, cd_stop_time, cd_next_second;
void cd_play(Scumm *s, int track, int num_loops, int start_frame, int end_frame) {
scumm->_vars[14] = 0;
#ifdef COMPRESSED_SOUND_FILE
if (mp3_cd_play(s, track, num_loops, start_frame, end_frame))
@ -689,7 +691,6 @@ void cd_play(Scumm *s, int track, int num_loops, int start_frame, int end_frame)
// warning("cd_play(%d,%d,%d,%d)", track, num_loops, start_frame, end_frame);
if (!cdrom) return;
scumm->_vars[14] = 0;
cd_track = track;
cd_num_loops = num_loops;
cd_start_frame = start_frame;