[Scummvm-cvs-logs] SF.net SVN: scummvm: [32155] scummvm/trunk/engines/kyra

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Sat May 17 19:44:24 CEST 2008


Revision: 32155
          http://scummvm.svn.sourceforge.net/scummvm/?rev=32155&view=rev
Author:   athrxx
Date:     2008-05-17 10:44:23 -0700 (Sat, 17 May 2008)

Log Message:
-----------
- fixes bug #1962601 at least for intro and outro
- add a mutex lock in sound_towns

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/sequences_hof.cpp
    scummvm/trunk/engines/kyra/sound_towns.cpp

Modified: scummvm/trunk/engines/kyra/sequences_hof.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sequences_hof.cpp	2008-05-17 16:45:28 UTC (rev 32154)
+++ scummvm/trunk/engines/kyra/sequences_hof.cpp	2008-05-17 17:44:23 UTC (rev 32155)
@@ -855,8 +855,8 @@
 		seq_printCreditsString(81, 240, 70, _seqTextColorMap, 252);
 		seq_printCreditsString(82, 240, 90, _seqTextColorMap, _seqTextColor[0]);
 		_screen->copyPage(2, 12);
+		seq_playTalkText(_flags.isTalkie ? 28 : 24);
 		delay(endtime - _system->getMillis());
-		seq_playTalkText(_flags.isTalkie ? 28 : 24);
 		_seqTextColor[0] = 1;
 
 		if (_flags.isTalkie) {
@@ -2337,8 +2337,11 @@
 	uint32 chatTimeout = _system->getMillis() + dur * _tickLength;
 	int curframe = firstframe;
 
-	if (vocIndex && speechEnabled())
+	if (vocIndex && speechEnabled()) {
+		while (_sound->voiceIsPlaying() && !skipFlag())
+			delay(4);
 		seq_playTalkText(vocIndex);
+	}
 
 	while (_system->getMillis() < chatTimeout && !(_abortIntroFlag || skipFlag())) {
 		if (lastframe < 0) {
@@ -2377,11 +2380,8 @@
 	if (_abortIntroFlag || skipFlag())
 		_sound->voiceStop();
 
-	if (lastframe < 0) {
-		int t = ABS(lastframe);
-		if (t < curframe)
-			curframe = t;
-	}
+	if (ABS(lastframe) < curframe)
+		curframe = ABS(lastframe);
 
 	if (curframe == firstframe)
 		curframe++;

Modified: scummvm/trunk/engines/kyra/sound_towns.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sound_towns.cpp	2008-05-17 16:45:28 UTC (rev 32154)
+++ scummvm/trunk/engines/kyra/sound_towns.cpp	2008-05-17 17:44:23 UTC (rev 32155)
@@ -1301,6 +1301,7 @@
 
 void SoundTowns::playEuphonyTrack(uint32 offset, int loop) {
 	uint8 * twm = _vm->resource()->fileData("twmusic.pak", 0);
+	Common::StackLock lock(_mutex);
 
 	if (!_parser) {
 		_parser = new MidiParser_EuD(_driver->queue());


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list