diff options
| author | Travis Howell | 2003-07-24 14:21:56 +0000 | 
|---|---|---|
| committer | Travis Howell | 2003-07-24 14:21:56 +0000 | 
| commit | 635fea9b178825a404cb6aec5a389ed3d66afc8f (patch) | |
| tree | e301d6b4f030a3ca7c72e822f99237d8b7580c28 | |
| parent | 55c71f65c0794acb45acd4ac07854bd5b53e4429 (diff) | |
| download | scummvm-rg350-635fea9b178825a404cb6aec5a389ed3d66afc8f.tar.gz scummvm-rg350-635fea9b178825a404cb6aec5a389ed3d66afc8f.tar.bz2 scummvm-rg350-635fea9b178825a404cb6aec5a389ed3d66afc8f.zip  | |
Simon games shold only play one voice at a time.
Fixes many voice overlaps
Fixes subtitles been ot of sync with voice, with simon 1 versions that had combi
ned speech/subtitles.
svn-id: r9167
| -rw-r--r-- | simon/simon.cpp | 5 | ||||
| -rw-r--r-- | simon/sound.cpp | 3 | 
2 files changed, 4 insertions, 4 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp index 7bc8ef60e2..7ed2014afb 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -2389,8 +2389,7 @@ void SimonEngine::expire_vga_timers() {  		_vga_tick_counter++;  		while (vte->delay) { -			// not quite ok, good enough -			if ((int16)(vte->delay -= 5) <= 0) { +			if (!--vte->delay) {  				uint16 cur_file = vte->cur_vga_file;  				uint16 cur_unk = vte->sprite_id;  				byte *script_ptr = vte->script_pointer; @@ -2399,8 +2398,6 @@ void SimonEngine::expire_vga_timers() {  				delete_vga_timer(vte);  				if (script_ptr == NULL) { -					// special scroll timer -					scroll_timeout();  				} else {  					vc_resume_sprite(script_ptr, cur_file, cur_unk);  				} diff --git a/simon/sound.cpp b/simon/sound.cpp index 9276e3a40e..18b84e86a5 100644 --- a/simon/sound.cpp +++ b/simon/sound.cpp @@ -450,6 +450,9 @@ void SimonSound::playVoice(uint sound) {  	if (!_voice)  		return; +	if (_voice) +		_mixer->stop(_voice_index); +  	if (_game == GAME_SIMON1CD32)  		_voice_index = _voice->playSound(sound, &_voice_handle, FLAG_SIGNED);  	else	  | 
