[Scummvm-cvs-logs] scummvm master -> 2b40502503bc5e6a99b53cd45d4eeeccc43dc718

eriktorbjorn eriktorbjorn at telia.com
Thu Feb 13 00:40:15 CET 2014


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
2b40502503 HOPKINS: Fix bug that could cause the music to stop prematurely


Commit: 2b40502503bc5e6a99b53cd45d4eeeccc43dc718
    https://github.com/scummvm/scummvm/commit/2b40502503bc5e6a99b53cd45d4eeeccc43dc718
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2014-02-12T15:38:04-08:00

Commit Message:
HOPKINS: Fix bug that could cause the music to stop prematurely

The SoundManager filled the sound handles with zeroes, which made
the mixer confuse them with active sound handle zero. In my case,
this happened to be the intro music, and the music was stopped when
playWavSample() wrongly thought its sound handle was in use.

Changed paths:
    NEWS
    engines/hopkins/sound.cpp
    engines/hopkins/sound.h



diff --git a/NEWS b/NEWS
index 8821dfe..2399654 100644
--- a/NEWS
+++ b/NEWS
@@ -27,6 +27,7 @@ For a more comprehensive changelog of the latest experimental code, see:
 
  Hopkins:
    - Added an option to toggle Gore Mode from the ScummVM GUI.
+   - Fixed bug that could cause the music to stop prematurely.
 
  SCI:
    - Added support for the more detailed RAVE lip syncing data in the Windows
diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp
index 92c5f51..704ebe3 100644
--- a/engines/hopkins/sound.cpp
+++ b/engines/hopkins/sound.cpp
@@ -200,14 +200,6 @@ SoundManager::SoundManager(HopkinsEngine *vm) {
 	_currentSoundIndex = 0;
 	_oldSoundNumber = 0;
 	_modPlayingFl = false;
-
-	for (int i = 0; i < VOICE_COUNT; ++i)
-		Common::fill((byte *)&_voice[i], (byte *)&_voice[i] + sizeof(VoiceItem), 0);
-	for (int i = 0; i < SWAV_COUNT; ++i)
-		Common::fill((byte *)&_sWav[i], (byte *)&_sWav[i] + sizeof(SwavItem), 0);
-	for (int i = 0; i < SOUND_COUNT; ++i)
-		Common::fill((byte *)&_sound[i], (byte *)&_sound[i] + sizeof(SoundItem), 0);
-	Common::fill((byte *)&_music, (byte *)&_music + sizeof(MusicItem), 0);
 }
 
 SoundManager::~SoundManager() {
diff --git a/engines/hopkins/sound.h b/engines/hopkins/sound.h
index f1d047a..6ebb6fd 100644
--- a/engines/hopkins/sound.h
+++ b/engines/hopkins/sound.h
@@ -33,12 +33,16 @@ namespace Hopkins {
 
 class VoiceItem {
 public:
+	VoiceItem() : _status(false), _wavIndex(0) {}
+
 	bool _status;
 	int _wavIndex;
 };
 
 class SwavItem {
 public:
+	SwavItem() : _active(false), _audioStream(NULL), _freeSampleFl(false) {}
+
 	bool _active;
 	Audio::RewindableAudioStream *_audioStream;
 	Audio::SoundHandle _soundHandle;
@@ -47,11 +51,15 @@ public:
 
 class MusicItem {
 public:
+	MusicItem() : _active(false) {}
+
 	bool _active;
 };
 
 class SoundItem {
 public:
+	SoundItem() : _active(false) {}
+
 	bool _active;
 };
 






More information about the Scummvm-git-logs mailing list