[Scummvm-cvs-logs] scummvm master -> 73b01f20af4100d10b459c2589e3188cec7deb1f

Strangerke Strangerke at scummvm.org
Wed Mar 20 08:11:32 CET 2013


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:
73b01f20af HOPKINS: Remove setParent() from TalkManager


Commit: 73b01f20af4100d10b459c2589e3188cec7deb1f
    https://github.com/scummvm/scummvm/commit/73b01f20af4100d10b459c2589e3188cec7deb1f
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-03-20T00:10:28-07:00

Commit Message:
HOPKINS: Remove setParent() from TalkManager

Changed paths:
    engines/hopkins/anim.cpp
    engines/hopkins/computer.cpp
    engines/hopkins/dialogs.cpp
    engines/hopkins/events.cpp
    engines/hopkins/hopkins.cpp
    engines/hopkins/hopkins.h
    engines/hopkins/menu.cpp
    engines/hopkins/objects.cpp
    engines/hopkins/script.cpp
    engines/hopkins/sound.cpp
    engines/hopkins/sound.h
    engines/hopkins/talk.cpp



diff --git a/engines/hopkins/anim.cpp b/engines/hopkins/anim.cpp
index 7fc62f5..99648a1 100644
--- a/engines/hopkins/anim.cpp
+++ b/engines/hopkins/anim.cpp
@@ -107,7 +107,7 @@ void AnimationManager::playAnim(const Common::String &filename, uint32 rate1, ui
 	}
 	_vm->_eventsManager->_rateCounter = 0;
 	_vm->_eventsManager->_escKeyFl = false;
-	_vm->_soundManager.loadAnimSound();
+	_vm->_soundManager->loadAnimSound();
 
 	if (_vm->_globals->iRegul == 1) {
 		// Do pre-animation delay
@@ -124,7 +124,7 @@ void AnimationManager::playAnim(const Common::String &filename, uint32 rate1, ui
 		int frameNumber = 0;
 		while (!_vm->shouldQuit()) {
 			++frameNumber;
-			_vm->_soundManager.playAnimSound(frameNumber);
+			_vm->_soundManager->playAnimSound(frameNumber);
 
 			byte imageStr[17];
 			// Read frame header
@@ -142,7 +142,7 @@ void AnimationManager::playAnim(const Common::String &filename, uint32 rate1, ui
 						break;
 
 					_vm->_eventsManager->refreshEvents();
-					_vm->_soundManager.checkSoundEnd();
+					_vm->_soundManager->checkSoundEnd();
 				} while (!_vm->shouldQuit() && _vm->_eventsManager->_rateCounter < rate2);
 			}
 
@@ -161,7 +161,7 @@ void AnimationManager::playAnim(const Common::String &filename, uint32 rate1, ui
 
 				_vm->_graphicsManager->addRefreshRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
 				_vm->_graphicsManager->updateScreen();
-				_vm->_soundManager.checkSoundEnd();
+				_vm->_soundManager->checkSoundEnd();
 			}
 		}
 	}
@@ -173,13 +173,13 @@ void AnimationManager::playAnim(const Common::String &filename, uint32 rate1, ui
 				break;
 
 			_vm->_eventsManager->refreshEvents();
-			_vm->_soundManager.checkSoundEnd();
+			_vm->_soundManager->checkSoundEnd();
 		} while (_vm->_eventsManager->_rateCounter < rate3);
 	}
 
 	if (!_vm->_eventsManager->_escKeyFl) {
 		_vm->_eventsManager->_rateCounter = 0;
-		_vm->_soundManager.checkSoundEnd();
+		_vm->_soundManager->checkSoundEnd();
 	}
 
 	if (_vm->_graphicsManager->FADE_LINUX == 2 && !hasScreenCopy) {
@@ -294,7 +294,7 @@ void AnimationManager::playAnim2(const Common::String &filename, uint32 rate1, u
 		}
 		_vm->_eventsManager->_rateCounter = 0;
 		_vm->_eventsManager->_escKeyFl = false;
-		_vm->_soundManager.loadAnimSound();
+		_vm->_soundManager->loadAnimSound();
 		if (_vm->_globals->iRegul == 1) {
 			while (!_vm->_eventsManager->_escKeyFl && _vm->_eventsManager->_rateCounter < rate1) {
 				_vm->_eventsManager->refreshEvents();
@@ -310,7 +310,7 @@ void AnimationManager::playAnim2(const Common::String &filename, uint32 rate1, u
 			if (_vm->_eventsManager->_escKeyFl)
 				break;
 			++frameNumber;
-			_vm->_soundManager.playAnimSound(frameNumber);
+			_vm->_soundManager->playAnimSound(frameNumber);
 			byte imageStr[17];
 			if (f.read(imageStr, 16) != 16)
 				break;
@@ -323,7 +323,7 @@ void AnimationManager::playAnim2(const Common::String &filename, uint32 rate1, u
 			if (_vm->_globals->iRegul == 1) {
 				while (!_vm->_eventsManager->_escKeyFl && _vm->_eventsManager->_rateCounter < rate2) {
 					_vm->_eventsManager->refreshEvents();
-					_vm->_soundManager.checkSoundEnd();
+					_vm->_soundManager->checkSoundEnd();
 				}
 			}
 
@@ -341,13 +341,13 @@ void AnimationManager::playAnim2(const Common::String &filename, uint32 rate1, u
 
 			_vm->_graphicsManager->addRefreshRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
 			_vm->_graphicsManager->updateScreen();
-			_vm->_soundManager.checkSoundEnd();
+			_vm->_soundManager->checkSoundEnd();
 		}
 
 		if (_vm->_globals->iRegul == 1) {
 			while (!_vm->_eventsManager->_escKeyFl && _vm->_eventsManager->_rateCounter < rate3) {
 				_vm->_eventsManager->refreshEvents();
-				_vm->_soundManager.checkSoundEnd();
+				_vm->_soundManager->checkSoundEnd();
 			}
 		}
 	}
@@ -670,7 +670,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
 	if (_vm->getIsDemo()) {
 		_vm->_eventsManager->_rateCounter = 0;
 		_vm->_eventsManager->_escKeyFl = false;
-		_vm->_soundManager.loadAnimSound();
+		_vm->_soundManager->loadAnimSound();
 		if (_vm->_globals->iRegul == 1) {
 			do {
 				if (_vm->shouldQuit() || (_vm->_eventsManager->_escKeyFl && !skipEscFl)) {
@@ -680,7 +680,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
 
 				_vm->_eventsManager->_escKeyFl = false;
 				_vm->_eventsManager->refreshEvents();
-				_vm->_soundManager.checkSoundEnd();
+				_vm->_soundManager->checkSoundEnd();
 			} while (_vm->_eventsManager->_rateCounter < rate1);
 		}
 	} else {
@@ -688,7 +688,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
 			_vm->_graphicsManager->fadeInDefaultLength(screenP);
 		_vm->_eventsManager->_rateCounter = 0;
 		_vm->_eventsManager->_escKeyFl = false;
-		_vm->_soundManager.loadAnimSound();
+		_vm->_soundManager->loadAnimSound();
 		if (_vm->_globals->iRegul == 1) {
 			do {
 				if (_vm->shouldQuit() || (_vm->_eventsManager->_escKeyFl && !skipEscFl)) {
@@ -698,7 +698,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
 
 				_vm->_eventsManager->_escKeyFl = false;
 				_vm->_eventsManager->refreshEvents();
-				_vm->_soundManager.checkSoundEnd();
+				_vm->_soundManager->checkSoundEnd();
 			} while (_vm->_eventsManager->_rateCounter < rate1);
 		}
 	}
@@ -707,7 +707,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
 		int soundNumber = 0;
 		for (;;) {
 			++soundNumber;
-			_vm->_soundManager.playAnimSound(soundNumber);
+			_vm->_soundManager->playAnimSound(soundNumber);
 			byte imageStr[17];
 			if (f.read(imageStr, 16) != 16)
 				break;
@@ -726,7 +726,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
 
 					_vm->_eventsManager->_escKeyFl = false;
 					_vm->_eventsManager->refreshEvents();
-					_vm->_soundManager.checkSoundEnd();
+					_vm->_soundManager->checkSoundEnd();
 				} while (_vm->_eventsManager->_rateCounter < rate2);
 			}
 
@@ -747,7 +747,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
 
 			_vm->_graphicsManager->addRefreshRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
 			_vm->_graphicsManager->updateScreen();
-			_vm->_soundManager.checkSoundEnd();
+			_vm->_soundManager->checkSoundEnd();
 		}
 	}
 
@@ -760,7 +760,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
 
 			_vm->_eventsManager->_escKeyFl = false;
 			_vm->_eventsManager->refreshEvents();
-			_vm->_soundManager.checkSoundEnd();
+			_vm->_soundManager->checkSoundEnd();
 		} while (_vm->_eventsManager->_rateCounter < rate3);
 	}
 
@@ -832,11 +832,11 @@ void AnimationManager::playSequence2(const Common::String &file, uint32 rate1, u
 		}
 		_vm->_eventsManager->_rateCounter = 0;
 		_vm->_eventsManager->_escKeyFl = false;
-		_vm->_soundManager.loadAnimSound();
+		_vm->_soundManager->loadAnimSound();
 		if (_vm->_globals->iRegul == 1) {
 			do {
 				_vm->_eventsManager->refreshEvents();
-				_vm->_soundManager.checkSoundEnd();
+				_vm->_soundManager->checkSoundEnd();
 			} while (!_vm->shouldQuit() && !_vm->_eventsManager->_escKeyFl && _vm->_eventsManager->_rateCounter < rate1);
 		}
 		break;
@@ -846,7 +846,7 @@ void AnimationManager::playSequence2(const Common::String &file, uint32 rate1, u
 		_vm->_eventsManager->_rateCounter = 0;
 		frameNumber = 0;
 		while (!_vm->shouldQuit()) {
-			_vm->_soundManager.playAnimSound(frameNumber++);
+			_vm->_soundManager->playAnimSound(frameNumber++);
 
 			byte imageStr[17];
 			if (f.read(imageStr, 16) != 16)
@@ -877,7 +877,7 @@ void AnimationManager::playSequence2(const Common::String &file, uint32 rate1, u
 
 			_vm->_graphicsManager->addRefreshRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
 			_vm->_graphicsManager->updateScreen();
-			_vm->_soundManager.checkSoundEnd();
+			_vm->_soundManager->checkSoundEnd();
 		}
 	}
 
@@ -885,7 +885,7 @@ void AnimationManager::playSequence2(const Common::String &file, uint32 rate1, u
 		// Wait for third rate delay
 		do {
 			_vm->_eventsManager->refreshEvents();
-			_vm->_soundManager.checkSoundEnd();
+			_vm->_soundManager->checkSoundEnd();
 		} while (!_vm->shouldQuit() && !_vm->_eventsManager->_escKeyFl && _vm->_eventsManager->_rateCounter < rate3);
 	}
 
diff --git a/engines/hopkins/computer.cpp b/engines/hopkins/computer.cpp
index 3e9c881..e73625b 100644
--- a/engines/hopkins/computer.cpp
+++ b/engines/hopkins/computer.cpp
@@ -548,9 +548,9 @@ void ComputerManager::displayGamesSubMenu() {
 	_vm->_graphicsManager->_minY = 0;
 	_vm->_graphicsManager->_maxX = 320;
 	_vm->_graphicsManager->_maxY = 200;
-	_vm->_soundManager.loadSample(1, "SOUND37.WAV");
-	_vm->_soundManager.loadSample(2, "SOUND38.WAV");
-	_vm->_soundManager.loadSample(3, "SOUND39.WAV");
+	_vm->_soundManager->loadSample(1, "SOUND37.WAV");
+	_vm->_soundManager->loadSample(2, "SOUND38.WAV");
+	_vm->_soundManager->loadSample(3, "SOUND39.WAV");
 	_breakoutSpr = _vm->_fileManager->loadFile("CASSE.SPR");
 	loadHiscore();
 	setModeVGA256();
@@ -564,9 +564,9 @@ void ComputerManager::displayGamesSubMenu() {
 	_breakoutLevel = (int16 *)_vm->_globals->freeMemory((byte *)_breakoutLevel);
 	_vm->_objectsManager->_sprite[0]._spriteData = oldSpriteData;
 
-	_vm->_soundManager.removeSample(1);
-	_vm->_soundManager.removeSample(2);
-	_vm->_soundManager.removeSample(3);
+	_vm->_soundManager->removeSample(1);
+	_vm->_soundManager->removeSample(2);
+	_vm->_soundManager->removeSample(3);
 	_vm->_globals->_speed = oldSpeed;
 	_vm->_eventsManager->_breakoutFl = false;
 	setVideoMode();
@@ -652,7 +652,7 @@ void ComputerManager::newLevel() {
 	_vm->_objectsManager->animateSprite(1);
  
 	_vm->_eventsManager->mouseOn();
-	_vm->_soundManager.playSample(3, 5);
+	_vm->_soundManager->playSample(3, 5);
 }
 
 /**
@@ -754,7 +754,7 @@ void ComputerManager::playBreakout() {
 
 			// Play loop
 			do {
-				_vm->_soundManager.checkSounds();
+				_vm->_soundManager->checkSounds();
 
 				_padPositionX = _vm->_eventsManager->getMouseX();
 				if (_vm->_eventsManager->_mousePos.x <= 4)
@@ -1055,21 +1055,21 @@ int ComputerManager::moveBall() {
 
 	_lastBreakoutMoveSpeed = moveSpeed;
 	if (_ballPosition.x <= 6) {
-		_vm->_soundManager.playSample(2, 6);
+		_vm->_soundManager->playSample(2, 6);
 		_ballPosition.x = randVal + 6;
 		_ballRightFl = !_ballRightFl;
 	} else if (_ballPosition.x > 307) {
-		_vm->_soundManager.playSample(2, 6);
+		_vm->_soundManager->playSample(2, 6);
 		_ballPosition.x = 307 - randVal;
 		_ballRightFl = !_ballRightFl;
 	}
 
 	if (_ballPosition.y <= 6) {
-		_vm->_soundManager.playSample(2, 6);
+		_vm->_soundManager->playSample(2, 6);
 		_ballPosition.y = randVal + 7;
 		_ballUpFl = !_ballUpFl;
 	} else if (_ballPosition.y >= 186 && _ballPosition.y <= 194) {
-		_vm->_soundManager.playSample(2, 6);
+		_vm->_soundManager->playSample(2, 6);
 		int ballPosXRight = _ballPosition.x + 6;
 		if ((_ballPosition.x > _padPositionX - 2) && (ballPosXRight < _padPositionX + 36)) {
 			_ballUpFl = false;
@@ -1180,9 +1180,9 @@ void ComputerManager::checkBallCollisions() {
 			}
 			if (collisionFl) {
 				if (cellType == 31) {
-					_vm->_soundManager.playSample(2, 6);
+					_vm->_soundManager->playSample(2, 6);
 				} else {
-					_vm->_soundManager.playSample(1, 5);
+					_vm->_soundManager->playSample(1, 5);
 					_vm->_graphicsManager->AFFICHE_SPEEDVGA(_breakoutSpr, cellLeft, cellUp, 16);
 					switch (cellType) {
 					case 1:
diff --git a/engines/hopkins/dialogs.cpp b/engines/hopkins/dialogs.cpp
index e588b4d..869207d 100644
--- a/engines/hopkins/dialogs.cpp
+++ b/engines/hopkins/dialogs.cpp
@@ -80,110 +80,110 @@ void DialogsManager::showOptionsDialog() {
 			mousePos.x = _vm->_eventsManager->getMouseX();
 			mousePos.y = _vm->_eventsManager->getMouseY();
 
-			if (!_vm->_soundManager._musicOffFl) {
+			if (!_vm->_soundManager->_musicOffFl) {
 				if (mousePos.x >= scrollOffset + 300 && mousePos.y > 113 && mousePos.x <= scrollOffset + 327 && mousePos.y <= 138) {
 					// Change the music volume
-					++_vm->_soundManager._musicVolume;
+					++_vm->_soundManager->_musicVolume;
 
-					if (_vm->_soundManager._musicVolume <= 12)
-						_vm->_soundManager.playSoundFile("bruit2.wav");
+					if (_vm->_soundManager->_musicVolume <= 12)
+						_vm->_soundManager->playSoundFile("bruit2.wav");
 					else
-						_vm->_soundManager._musicVolume = 12;
-					_vm->_soundManager.setMODMusicVolume(_vm->_soundManager._musicVolume);
+						_vm->_soundManager->_musicVolume = 12;
+					_vm->_soundManager->setMODMusicVolume(_vm->_soundManager->_musicVolume);
 
-					_vm->_soundManager.updateScummVMSoundSettings();
+					_vm->_soundManager->updateScummVMSoundSettings();
 				}
 
-				if (!_vm->_soundManager._musicOffFl && mousePos.x >= scrollOffset + 331 && mousePos.y > 113 && mousePos.x <= scrollOffset + 358 && mousePos.y <= 138) {
-					--_vm->_soundManager._musicVolume;
-					if (_vm->_soundManager._musicVolume >= 0)
-						_vm->_soundManager.playSoundFile("bruit2.wav");
+				if (!_vm->_soundManager->_musicOffFl && mousePos.x >= scrollOffset + 331 && mousePos.y > 113 && mousePos.x <= scrollOffset + 358 && mousePos.y <= 138) {
+					--_vm->_soundManager->_musicVolume;
+					if (_vm->_soundManager->_musicVolume >= 0)
+						_vm->_soundManager->playSoundFile("bruit2.wav");
 					else
-						_vm->_soundManager._musicVolume = 0;
+						_vm->_soundManager->_musicVolume = 0;
 
-					_vm->_soundManager.setMODMusicVolume(_vm->_soundManager._musicVolume);
+					_vm->_soundManager->setMODMusicVolume(_vm->_soundManager->_musicVolume);
 
-					_vm->_soundManager.updateScummVMSoundSettings();
+					_vm->_soundManager->updateScummVMSoundSettings();
 				}
 			}
-			if (!_vm->_soundManager._soundOffFl) {
+			if (!_vm->_soundManager->_soundOffFl) {
 				// increase volume
 				if (mousePos.x >= scrollOffset + 300 && mousePos.y > 140 && mousePos.x <= scrollOffset + 327 && mousePos.y <= 165) {
-					++_vm->_soundManager._soundVolume;
-					if (_vm->_soundManager._soundVolume <= 16)
-						_vm->_soundManager.playSoundFile("bruit2.wav");
+					++_vm->_soundManager->_soundVolume;
+					if (_vm->_soundManager->_soundVolume <= 16)
+						_vm->_soundManager->playSoundFile("bruit2.wav");
 					else
-						_vm->_soundManager._soundVolume = 16;
-					_vm->_soundManager.setMODSampleVolume();
+						_vm->_soundManager->_soundVolume = 16;
+					_vm->_soundManager->setMODSampleVolume();
 
-					_vm->_soundManager.updateScummVMSoundSettings();
+					_vm->_soundManager->updateScummVMSoundSettings();
 				}
 
 				// Decrease volume
-				if (!_vm->_soundManager._soundOffFl && mousePos.x >= scrollOffset + 331 && mousePos.y > 140 && mousePos.x <= scrollOffset + 358 && mousePos.y <= 165) {
-					--_vm->_soundManager._soundVolume;
-					if (_vm->_soundManager._soundVolume >= 0)
-						_vm->_soundManager.playSoundFile("bruit2.wav");
+				if (!_vm->_soundManager->_soundOffFl && mousePos.x >= scrollOffset + 331 && mousePos.y > 140 && mousePos.x <= scrollOffset + 358 && mousePos.y <= 165) {
+					--_vm->_soundManager->_soundVolume;
+					if (_vm->_soundManager->_soundVolume >= 0)
+						_vm->_soundManager->playSoundFile("bruit2.wav");
 					else
-						_vm->_soundManager._soundVolume = 0;
-					_vm->_soundManager.setMODSampleVolume();
+						_vm->_soundManager->_soundVolume = 0;
+					_vm->_soundManager->setMODSampleVolume();
 
-					_vm->_soundManager.updateScummVMSoundSettings();
+					_vm->_soundManager->updateScummVMSoundSettings();
 				}
 			}
 
-			if (!_vm->_soundManager._voiceOffFl) {
+			if (!_vm->_soundManager->_voiceOffFl) {
 				if (mousePos.x >= scrollOffset + 300 && mousePos.y > 167 && mousePos.x <= scrollOffset + 327 && mousePos.y <= 192) {
-					++_vm->_soundManager._voiceVolume;
+					++_vm->_soundManager->_voiceVolume;
 
-					if (_vm->_soundManager._voiceVolume <= 16)
-						_vm->_soundManager.playSoundFile("bruit2.wav");
+					if (_vm->_soundManager->_voiceVolume <= 16)
+						_vm->_soundManager->playSoundFile("bruit2.wav");
 					else
-						_vm->_soundManager._voiceVolume = 16;
-					_vm->_soundManager.setMODVoiceVolume();
+						_vm->_soundManager->_voiceVolume = 16;
+					_vm->_soundManager->setMODVoiceVolume();
 
-					_vm->_soundManager.updateScummVMSoundSettings();
+					_vm->_soundManager->updateScummVMSoundSettings();
 				}
 
-				if (!_vm->_soundManager._voiceOffFl && mousePos.x >= scrollOffset + 331 && mousePos.y > 167 && mousePos.x <= scrollOffset + 358 && mousePos.y <= 192) {
-					--_vm->_soundManager._voiceVolume;
-					if (_vm->_soundManager._voiceVolume >= 0)
-						_vm->_soundManager.playSoundFile("bruit2.wav");
+				if (!_vm->_soundManager->_voiceOffFl && mousePos.x >= scrollOffset + 331 && mousePos.y > 167 && mousePos.x <= scrollOffset + 358 && mousePos.y <= 192) {
+					--_vm->_soundManager->_voiceVolume;
+					if (_vm->_soundManager->_voiceVolume >= 0)
+						_vm->_soundManager->playSoundFile("bruit2.wav");
 					else
-						_vm->_soundManager._voiceVolume = 0;
-					_vm->_soundManager.setMODVoiceVolume();
+						_vm->_soundManager->_voiceVolume = 0;
+					_vm->_soundManager->setMODVoiceVolume();
 
-					_vm->_soundManager.updateScummVMSoundSettings();
+					_vm->_soundManager->updateScummVMSoundSettings();
 				}
 			}
 
 			if (mousePos.x >= scrollOffset + 431) {
 				if (mousePos.y > 194 && mousePos.x <= scrollOffset + 489 && mousePos.y <= 219)
-					_vm->_soundManager._textOffFl = !_vm->_soundManager._textOffFl;
+					_vm->_soundManager->_textOffFl = !_vm->_soundManager->_textOffFl;
 
 				if (mousePos.x >= scrollOffset + 431) {
 					if (mousePos.y > 167 && mousePos.x <= scrollOffset + 489 && mousePos.y <= 192) {
-						_vm->_soundManager._voiceOffFl = !_vm->_soundManager._voiceOffFl;
+						_vm->_soundManager->_voiceOffFl = !_vm->_soundManager->_voiceOffFl;
 
-						_vm->_soundManager.updateScummVMSoundSettings();
+						_vm->_soundManager->updateScummVMSoundSettings();
 					}
 					if (mousePos.x >= scrollOffset + 431) {
 						if (mousePos.y > 113 && mousePos.x <= scrollOffset + 489 && mousePos.y <= 138) {
-							if (_vm->_soundManager._musicOffFl) {
-								_vm->_soundManager._musicOffFl = false;
-								_vm->_soundManager.setMODMusicVolume(_vm->_soundManager._musicVolume);
+							if (_vm->_soundManager->_musicOffFl) {
+								_vm->_soundManager->_musicOffFl = false;
+								_vm->_soundManager->setMODMusicVolume(_vm->_soundManager->_musicVolume);
 							} else {
-								_vm->_soundManager._musicOffFl = true;
-								_vm->_soundManager.setMODMusicVolume(0);
+								_vm->_soundManager->_musicOffFl = true;
+								_vm->_soundManager->setMODMusicVolume(0);
 							}
 
-							_vm->_soundManager.updateScummVMSoundSettings();
+							_vm->_soundManager->updateScummVMSoundSettings();
 						}
 
 						if (mousePos.x >= scrollOffset + 431 && mousePos.y > 140 && mousePos.x <= scrollOffset + 489 && mousePos.y <= 165) {
-							_vm->_soundManager._soundOffFl = !_vm->_soundManager._soundOffFl;
+							_vm->_soundManager->_soundOffFl = !_vm->_soundManager->_soundOffFl;
 
-							_vm->_soundManager.updateScummVMSoundSettings();
+							_vm->_soundManager->updateScummVMSoundSettings();
 						}
 					}
 				}
@@ -249,10 +249,10 @@ void DialogsManager::showOptionsDialog() {
 		else if (_vm->_globals->_speed == 3)
 			_vm->_globals->_menuSpeed = 4;
 
-		_vm->_globals->_menuTextOff = !_vm->_soundManager._textOffFl ? 7 : 8;
-		_vm->_globals->_menuVoiceOff = !_vm->_soundManager._voiceOffFl ? 7 : 8;
-		_vm->_globals->_menuSoundOff = !_vm->_soundManager._soundOffFl ? 7 : 8;
-		_vm->_globals->_menuMusicOff = !_vm->_soundManager._musicOffFl ? 7 : 8;
+		_vm->_globals->_menuTextOff = !_vm->_soundManager->_textOffFl ? 7 : 8;
+		_vm->_globals->_menuVoiceOff = !_vm->_soundManager->_voiceOffFl ? 7 : 8;
+		_vm->_globals->_menuSoundOff = !_vm->_soundManager->_soundOffFl ? 7 : 8;
+		_vm->_globals->_menuMusicOff = !_vm->_soundManager->_musicOffFl ? 7 : 8;
 
 		_vm->_globals->_menuDisplayType = 9;
 
@@ -418,7 +418,7 @@ void DialogsManager::showInventory() {
 				_vm->_objectsManager->OPTI_OBJET();
 				_vm->_scriptManager->_tempObjectFl = false;
 
-				if (_vm->_soundManager._voiceOffFl) {
+				if (_vm->_soundManager->_voiceOffFl) {
 					do
 						_vm->_eventsManager->refreshScreenAndEvents();
 					while (!_vm->_globals->_exitId && _vm->_eventsManager->getMouseButton() != 1);
diff --git a/engines/hopkins/events.cpp b/engines/hopkins/events.cpp
index 7b256cd..50b2850 100644
--- a/engines/hopkins/events.cpp
+++ b/engines/hopkins/events.cpp
@@ -202,7 +202,7 @@ void EventsManager::changeMouseCursor(int id) {
  * Check Events
  */
 void EventsManager::refreshEvents() {
-	_vm->_soundManager.checkSounds();
+	_vm->_soundManager->checkSounds();
 
 	pollEvents();
 }
@@ -478,7 +478,7 @@ void EventsManager::refreshScreenAndEvents() {
 	}
 	_curMouseButton = _mouseButton;
 	_mouseButton = 0;
-	_vm->_soundManager.checkSoundEnd();
+	_vm->_soundManager->checkSoundEnd();
 	refreshEvents();
 }
 
diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp
index 8b044ec..fee7b2a 100644
--- a/engines/hopkins/hopkins.cpp
+++ b/engines/hopkins/hopkins.cpp
@@ -54,12 +54,13 @@ HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDe
 	_objectsManager = new ObjectsManager(this);
 	_saveLoadManager = new SaveLoadManager(this);
 	_scriptManager = new ScriptManager(this);
+	_soundManager = new SoundManager(this);
 
-	_soundManager.setParent(this);
 	_talkManager.setParent(this);
 }
 
 HopkinsEngine::~HopkinsEngine() {
+	delete _soundManager;
 	delete _scriptManager;
 	delete _saveLoadManager;
 	delete _objectsManager;
@@ -199,7 +200,7 @@ bool HopkinsEngine::runWin95Demo() {
 
 		case 3:
 			if (!_globals->_saveData->_data[svBankAttackAnimPlayedFl]) {
-				_soundManager.playSound(3);
+				_soundManager->playSound(3);
 				if (getPlatform() == Common::kPlatformOS2 || getPlatform() == Common::kPlatformBeOS)
 					_graphicsManager->loadImage("fond");
 				else {
@@ -214,7 +215,7 @@ bool HopkinsEngine::runWin95Demo() {
 				_eventsManager->delay(500);
 				_graphicsManager->fadeOutLong();
 				_globals->iRegul = 1;
-				_soundManager._specialSoundNum = 2;
+				_soundManager->_specialSoundNum = 2;
 				_graphicsManager->lockScreen();
 				_graphicsManager->clearScreen();
 				_graphicsManager->unlockScreen();
@@ -223,11 +224,11 @@ bool HopkinsEngine::runWin95Demo() {
 					_animationManager->playAnim("BANQUE.ANM", 200, 28, 200);
 				else
 					_animationManager->playAnim("BANKUK.ANM", 200, 28, 200);
-				_soundManager._specialSoundNum = 0;
-				_soundManager.removeSample(1);
-				_soundManager.removeSample(2);
-				_soundManager.removeSample(3);
-				_soundManager.removeSample(4);
+				_soundManager->_specialSoundNum = 0;
+				_soundManager->removeSample(1);
+				_soundManager->removeSample(2);
+				_soundManager->removeSample(3);
+				_soundManager->removeSample(4);
 				_graphicsManager->fadeOutLong();
 				_globals->_saveData->_data[svBankAttackAnimPlayedFl] = 1;
 			}
@@ -386,7 +387,7 @@ bool HopkinsEngine::runWin95Demo() {
 			break;
 
 		case 150:
-			_soundManager.playSound(28);
+			_soundManager->playSound(28);
 			_globals->iRegul = 4; // CHECKME!
 			_graphicsManager->lockScreen();
 			_graphicsManager->clearScreen();
@@ -398,7 +399,7 @@ bool HopkinsEngine::runWin95Demo() {
 			break;
 
 		case 151:
-			_soundManager.playSound(28);
+			_soundManager->playSound(28);
 			_globals->iRegul = 4; // CHECKME!
 			_graphicsManager->lockScreen();
 			_graphicsManager->clearScreen();
@@ -413,7 +414,7 @@ bool HopkinsEngine::runWin95Demo() {
 			break;
 
 		case 152:
-			_soundManager.playSound(28);
+			_soundManager->playSound(28);
 			_globals->iRegul = 4; // CHECKME!
 			_graphicsManager->lockScreen();
 			_graphicsManager->clearScreen();
@@ -504,7 +505,7 @@ bool HopkinsEngine::runLinuxDemo() {
 
 		case 3:
 			if (!_globals->_saveData->_data[svBankAttackAnimPlayedFl]) {
-				_soundManager.playSound(3);
+				_soundManager->playSound(3);
 				if (getPlatform() == Common::kPlatformOS2 || getPlatform() == Common::kPlatformBeOS)
 					_graphicsManager->loadImage("fond");
 				else {
@@ -519,7 +520,7 @@ bool HopkinsEngine::runLinuxDemo() {
 				_eventsManager->delay(500);
 				_graphicsManager->fadeOutLong();
 				_globals->iRegul = 1;
-				_soundManager._specialSoundNum = 2;
+				_soundManager->_specialSoundNum = 2;
 
 				_graphicsManager->lockScreen();
 				_graphicsManager->clearScreen();
@@ -531,11 +532,11 @@ bool HopkinsEngine::runLinuxDemo() {
 					_animationManager->playAnim("BANQUE.ANM", 200, 28, 200);
 				else
 					_animationManager->playAnim("BANKUK.ANM", 200, 28, 200);
-				_soundManager._specialSoundNum = 0;
-				_soundManager.removeSample(1);
-				_soundManager.removeSample(2);
-				_soundManager.removeSample(3);
-				_soundManager.removeSample(4);
+				_soundManager->_specialSoundNum = 0;
+				_soundManager->removeSample(1);
+				_soundManager->removeSample(2);
+				_soundManager->removeSample(3);
+				_soundManager->removeSample(4);
 				_globals->_saveData->_data[svBankAttackAnimPlayedFl] = 1;
 			}
 
@@ -704,7 +705,7 @@ bool HopkinsEngine::runLinuxDemo() {
 			break;
 
 		case 150:
-			_soundManager.playSound(16);
+			_soundManager->playSound(16);
 			_globals->iRegul = 1;
 
 			_graphicsManager->lockScreen();
@@ -718,7 +719,7 @@ bool HopkinsEngine::runLinuxDemo() {
 			break;
 
 		case 151:
-			_soundManager.playSound(16);
+			_soundManager->playSound(16);
 			_globals->iRegul = 1;
 
 			_graphicsManager->lockScreen();
@@ -732,7 +733,7 @@ bool HopkinsEngine::runLinuxDemo() {
 			break;
 
 		case 152:
-			_soundManager.playSound(16);
+			_soundManager->playSound(16);
 			_globals->iRegul = 1;
 
 			_graphicsManager->lockScreen();
@@ -751,7 +752,7 @@ bool HopkinsEngine::runLinuxDemo() {
 
 bool HopkinsEngine::runFull() {
 	if (getPlatform() == Common::kPlatformLinux)
-		_soundManager.playSound(16);
+		_soundManager->playSound(16);
 
 	_globals->loadObjects();
 	_objectsManager->changeObject(14);
@@ -850,7 +851,7 @@ bool HopkinsEngine::runFull() {
 		case 3:
 			if (!_globals->_saveData->_data[svBankAttackAnimPlayedFl]) {
 				// Play the bank attack animation
-				_soundManager.playSound(3);
+				_soundManager->playSound(3);
 				if (getPlatform() == Common::kPlatformOS2 || getPlatform() == Common::kPlatformBeOS)
 					_graphicsManager->loadImage("fond");
 				else {
@@ -865,7 +866,7 @@ bool HopkinsEngine::runFull() {
 				_eventsManager->delay(500);
 				_graphicsManager->fadeOutLong();
 				_globals->iRegul = 1;
-				_soundManager._specialSoundNum = 2;
+				_soundManager->_specialSoundNum = 2;
 				_graphicsManager->lockScreen();
 				_graphicsManager->clearScreen();
 				_graphicsManager->unlockScreen();
@@ -882,11 +883,11 @@ bool HopkinsEngine::runFull() {
 					_animationManager->playAnim("BANQUE.ANM", 200, 28, 200);
 				}
 
-				_soundManager._specialSoundNum = 0;
-				_soundManager.removeSample(1);
-				_soundManager.removeSample(2);
-				_soundManager.removeSample(3);
-				_soundManager.removeSample(4);
+				_soundManager->_specialSoundNum = 0;
+				_soundManager->removeSample(1);
+				_soundManager->removeSample(2);
+				_soundManager->removeSample(3);
+				_soundManager->removeSample(4);
 
 				if (getPlatform() != Common::kPlatformLinux) {
 					// Copy the end of the animation into the secondary buffer and fade out the screen
@@ -1005,17 +1006,17 @@ bool HopkinsEngine::runFull() {
 				_graphicsManager->clearScreen();
 				_graphicsManager->unlockScreen();
 				_graphicsManager->clearPalette();
-				_soundManager.stopSound();
+				_soundManager->stopSound();
 				if (getPlatform() == Common::kPlatformLinux) {
-					_soundManager.playSound(29);
+					_soundManager->playSound(29);
 					_graphicsManager->FADE_LINUX = 2;
 					_animationManager->playAnim("PURG1A.ANM", 12, 18, 50);
 				} else if (getPlatform() == Common::kPlatformWindows) {
-					_soundManager.playSound(29);
+					_soundManager->playSound(29);
 					_animationManager->playAnim("PURG1A.ANM", 12, 18, 50);
 					_graphicsManager->fadeOutShort();
 				} else {
-					_soundManager.playSound(6);
+					_soundManager->playSound(6);
 					_animationManager->playAnim("PURG1A.ANM", 12, 18, 50);
 					_graphicsManager->fadeOutShort();
 				}
@@ -1047,12 +1048,12 @@ bool HopkinsEngine::runFull() {
 			_objectsManager->PERSONAGE2("IM20", "IM20", "ANIM20", "IM20", 6, true);
 			if (_globals->_exitId == 17) {
 				_globals->iRegul = 1;
-				_soundManager.stopSound();
+				_soundManager->stopSound();
 				_graphicsManager->lockScreen();
 				_graphicsManager->clearScreen();
 				_graphicsManager->unlockScreen();
 				_graphicsManager->clearPalette();
-				_soundManager.playSound(6);
+				_soundManager->playSound(6);
 				if (getPlatform() == Common::kPlatformLinux)
 					_graphicsManager->FADE_LINUX = 2;
 				_animationManager->playAnim("PURG2A.ANM", 12, 18, 50);
@@ -1161,16 +1162,16 @@ bool HopkinsEngine::runFull() {
 			_globals->_disableInventFl = false;
 			_objectsManager->_forestFl = true;
 			Common::String im = Common::String::format("IM%d", _globals->_exitId);
-			_soundManager.playSound(13);
+			_soundManager->playSound(13);
 			if (_objectsManager->_forestSprite == g_PTRNUL) {
 				_objectsManager->_forestSprite = _objectsManager->loadSprite("HOPDEG.SPR");
-				_soundManager.loadSample(1, "SOUND41.WAV");
+				_soundManager->loadSample(1, "SOUND41.WAV");
 			}
 			_objectsManager->PERSONAGE2(im, im, "BANDIT", im, 13, false);
 			if (_globals->_exitId < 35 || _globals->_exitId > 49) {
 				_objectsManager->_forestSprite = _globals->freeMemory(_objectsManager->_forestSprite);
 				_objectsManager->_forestFl = false;
-				_soundManager.removeSample(1);
+				_soundManager->removeSample(1);
 			}
 			break;
 			}
@@ -1413,12 +1414,12 @@ bool HopkinsEngine::runFull() {
 			_objectsManager->PERSONAGE2("IM97", "IM97", "ANIM97", "IM97", 19, false);
 			if (_globals->_exitId == 18) {
 				_globals->iRegul = 1;
-				_soundManager.stopSound();
+				_soundManager->stopSound();
 				_graphicsManager->lockScreen();
 				_graphicsManager->clearScreen();
 				_graphicsManager->unlockScreen();
 				_graphicsManager->clearPalette();
-				_soundManager.playSound(6);
+				_soundManager->playSound(6);
 				_animationManager->playAnim("PURG1A.ANM", 12, 18, 50);
 				_graphicsManager->fadeOutShort();
 				_globals->iRegul = 0;
@@ -1491,7 +1492,7 @@ bool HopkinsEngine::runFull() {
 			break;
 
 		case 150:
-			_soundManager.playSound(16);
+			_soundManager->playSound(16);
 			_globals->iRegul = 1;
 			_graphicsManager->lockScreen();
 			_graphicsManager->clearScreen();
@@ -1505,7 +1506,7 @@ bool HopkinsEngine::runFull() {
 			break;
 
 		case 151:
-			_soundManager.playSound(16);
+			_soundManager->playSound(16);
 			_globals->iRegul = 1;
 			_graphicsManager->lockScreen();
 			_graphicsManager->clearScreen();
@@ -1519,7 +1520,7 @@ bool HopkinsEngine::runFull() {
 			break;
 
 		case 152:
-			_soundManager.playSound(16);
+			_soundManager->playSound(16);
 			_globals->iRegul = 1;
 			_graphicsManager->lockScreen();
 			_graphicsManager->clearScreen();
@@ -1540,11 +1541,11 @@ bool HopkinsEngine::runFull() {
 		case 199:
 			_globals->PERSO = _globals->freeMemory(_globals->PERSO);
 			_globals->iRegul = 1;
-			_soundManager.stopSound();
-			_soundManager.playSound(23);
+			_soundManager->stopSound();
+			_soundManager->playSound(23);
 			_globals->_exitId = handleBaseMap();	// Handles the base map (non-Windows)
 			//_globals->_exitId = WBASE();	// Handles the 3D Doom level (Windows)
-			_soundManager.stopSound();
+			_soundManager->stopSound();
 			_globals->PERSO = _fileManager->loadFile("PERSO.SPR");
 			_globals->_characterType = 0;
 			_globals->iRegul = 0;
@@ -1570,7 +1571,7 @@ void HopkinsEngine::initializeSystem() {
 	_graphicsManager->setGraphicalMode(SCREEN_WIDTH, SCREEN_HEIGHT);
 
 	// Synchronize the sound settings from ScummVM
-	_soundManager.syncSoundSettings();
+	_soundManager->syncSoundSettings();
 
 	const Common::FSNode gameDataDir(ConfMan.get("path"));
 	SearchMan.addSubDirectoryMatching(gameDataDir, "SYSTEM");
@@ -1620,31 +1621,31 @@ void HopkinsEngine::playIntro() {
 	_eventsManager->_mouseFl = false;
 	_globals->iRegul = 1;
 	_eventsManager->refreshScreenAndEvents();
-	_soundManager.playSound(16);
+	_soundManager->playSound(16);
 	_animationManager->_clearAnimationFl = true;
 	_animationManager->playAnim("J1.anm", 12, 12, 50);
 	if (shouldQuit() || _eventsManager->_escKeyFl)
 		return;
 
-	_soundManager.mixVoice(1, 3);
+	_soundManager->mixVoice(1, 3);
 	_animationManager->playAnim("J2.anm", 12, 12, 50);
 
 	if (shouldQuit() || _eventsManager->_escKeyFl)
 		return;
 
-	_soundManager.mixVoice(2, 3);
+	_soundManager->mixVoice(2, 3);
 	_animationManager->playAnim("J3.anm", 12, 12, 50);
 
 	if (shouldQuit() || _eventsManager->_escKeyFl)
 		return;
 
-	_soundManager.mixVoice(3, 3);
+	_soundManager->mixVoice(3, 3);
 	_graphicsManager->lockScreen();
 	_graphicsManager->clearScreen();
 	_graphicsManager->unlockScreen();
 	_graphicsManager->clearPalette();
 	_graphicsManager->updateScreen();
-	_soundManager.playSound(11);
+	_soundManager->playSound(11);
 	_graphicsManager->loadImage("intro1");
 	_graphicsManager->scrollScreen(0);
 	_graphicsManager->_scrollOffset = 0;
@@ -1681,14 +1682,14 @@ void HopkinsEngine::playIntro() {
 			return;
 	}
 
-	_soundManager.mixVoice(4, 3);
+	_soundManager->mixVoice(4, 3);
 	_graphicsManager->fadeOutLong();
 	_graphicsManager->_scrollStatus = 0;
 	_graphicsManager->loadImage("intro2");
 	_graphicsManager->scrollScreen(0);
 	_animationManager->loadAnim("INTRO2");
 	_graphicsManager->displayAllBob();
-	_soundManager.playSound(23);
+	_soundManager->playSound(23);
 	_objectsManager->stopBobAnimation(3);
 	_objectsManager->stopBobAnimation(5);
 	_graphicsManager->_scrollOffset = 0;
@@ -1706,7 +1707,7 @@ void HopkinsEngine::playIntro() {
 		_eventsManager->refreshScreenAndEvents();
 
 	_objectsManager->setBobAnimation(3);
-	_soundManager.mixVoice(5, 3);
+	_soundManager->mixVoice(5, 3);
 	_objectsManager->stopBobAnimation(3);
 	_eventsManager->refreshScreenAndEvents();
 	memcpy(&paletteData2, _graphicsManager->_palette, 796);
@@ -1717,10 +1718,10 @@ void HopkinsEngine::playIntro() {
 	if (shouldQuit() || _eventsManager->_escKeyFl)
 		return;
 
-	_soundManager._specialSoundNum = 5;
+	_soundManager->_specialSoundNum = 5;
 	_graphicsManager->FADE_LINUX = 2;
 	_animationManager->playAnim("ELEC.ANM", 10, 26, 200);
-	_soundManager._specialSoundNum = 0;
+	_soundManager->_specialSoundNum = 0;
 
 	if (shouldQuit() || _eventsManager->_escKeyFl)
 		return;
@@ -1729,7 +1730,7 @@ void HopkinsEngine::playIntro() {
 	_graphicsManager->scrollScreen(0);
 	_animationManager->loadAnim("INTRO2");
 	_graphicsManager->displayAllBob();
-	_soundManager.playSound(23);
+	_soundManager->playSound(23);
 	_objectsManager->stopBobAnimation(3);
 	_objectsManager->stopBobAnimation(5);
 	_objectsManager->stopBobAnimation(1);
@@ -1750,7 +1751,7 @@ void HopkinsEngine::playIntro() {
 		if (introIndex == 12) {
 			_objectsManager->setBobAnimation(3);
 			_eventsManager->refreshScreenAndEvents();
-			_soundManager.mixVoice(6, 3);
+			_soundManager->mixVoice(6, 3);
 			_eventsManager->refreshScreenAndEvents();
 			_objectsManager->stopBobAnimation(3);
 		}
@@ -1779,7 +1780,7 @@ void HopkinsEngine::playIntro() {
 				_eventsManager->refreshScreenAndEvents();
 
 			_objectsManager->setBobAnimation(3);
-			_soundManager.mixVoice(7, 3);
+			_soundManager->mixVoice(7, 3);
 			_objectsManager->stopBobAnimation(3);
 
 			for (uint k = 1; k < 60 / _globals->_speed; ++k)
@@ -1794,7 +1795,7 @@ void HopkinsEngine::playIntro() {
 			for (uint m = 0; m < 50 / _globals->_speed; ++m) {
 				if (m == 30 / _globals->_speed) {
 					_objectsManager->setBobAnimation(3);
-					_soundManager.mixVoice(8, 3);
+					_soundManager->mixVoice(8, 3);
 					_objectsManager->stopBobAnimation(3);
 				}
 
@@ -1804,10 +1805,10 @@ void HopkinsEngine::playIntro() {
 			_graphicsManager->fadeOutLong();
 			_graphicsManager->endDisplayBob();
 			_animationManager->_clearAnimationFl = true;
-			_soundManager.playSound(3);
-			_soundManager._specialSoundNum = 1;
+			_soundManager->playSound(3);
+			_soundManager->_specialSoundNum = 1;
 			_animationManager->playAnim("INTRO1.anm", 10, 24, 18);
-			_soundManager._specialSoundNum = 0;
+			_soundManager->_specialSoundNum = 0;
 			if (shouldQuit() || _eventsManager->_escKeyFl)
 				return;
 
@@ -1842,10 +1843,10 @@ void HopkinsEngine::displayNotAvailable() {
 		_graphicsManager->loadImage("nduk");
 
 	_graphicsManager->fadeInLong();
-	if (_soundManager._voiceOffFl)
+	if (_soundManager->_voiceOffFl)
 		_eventsManager->delay(500);
 	else
-		_soundManager.mixVoice(628, 4);
+		_soundManager->mixVoice(628, 4);
 
 	_graphicsManager->fadeOutLong();
 	_globals->_exitId = 4;
@@ -1859,7 +1860,7 @@ void HopkinsEngine::handleNotAvailable(int sortie) {
 }
 
 void HopkinsEngine::displayEndDemo() {
-	_soundManager.playSound(28);
+	_soundManager->playSound(28);
 	if (_globals->_language == LANG_FR)
 		_graphicsManager->loadImage("endfr");
 	else
@@ -1880,10 +1881,10 @@ void HopkinsEngine::bombExplosion() {
 	_graphicsManager->clearPalette();
 
 	_globals->iRegul = 1;
-	_soundManager._specialSoundNum = 199;
+	_soundManager->_specialSoundNum = 199;
 	_graphicsManager->FADE_LINUX = 2;
 	_animationManager->playAnim("BOMBE2A.ANM", 50, 14, 500);
-	_soundManager._specialSoundNum = 0;
+	_soundManager->_specialSoundNum = 0;
 	_graphicsManager->loadImage("IM15");
 	_animationManager->loadAnim("ANIM15");
 	_graphicsManager->displayAllBob();
@@ -1927,7 +1928,7 @@ void HopkinsEngine::endLinuxDemo() {
 	_eventsManager->_breakoutFl = false;
 	_globals->_disableInventFl = true;
 	_graphicsManager->loadImage("BOX");
-	_soundManager.playSound(28);
+	_soundManager->playSound(28);
 	_graphicsManager->fadeInLong();
 	_eventsManager->mouseOn();
 	_eventsManager->changeMouseCursor(0);
@@ -1990,7 +1991,7 @@ void HopkinsEngine::playSubmarineCutscene() {
 	_graphicsManager->unlockScreen();
 	_graphicsManager->clearPalette();
 	_animationManager->_clearAnimationFl = true;
-	_soundManager.playSound(25);
+	_soundManager->playSound(25);
 	_animationManager->playAnim("base00a.anm", 10, 18, 18);
 	if (!_eventsManager->_escKeyFl)
 		_animationManager->playAnim("base05a.anm", 10, 18, 18);
@@ -2029,7 +2030,7 @@ void HopkinsEngine::playUnderwaterBaseCutscene() {
 	_graphicsManager->unlockScreen();
 	_graphicsManager->clearPalette();
 	_animationManager->NO_SEQ = false;
-	_soundManager.playSound(26);
+	_soundManager->playSound(26);
 	_globals->iRegul = 1;
 	_globals->_disableInventFl = true;
 	_animationManager->NO_COUL = true;
@@ -2066,11 +2067,11 @@ void HopkinsEngine::playEnding() {
 	_graphicsManager->_scrollOffset = 0;
 	_globals->_cityMapEnabledFl = false;
 	_globals->iRegul = 1;
-	_soundManager.playSound(26);
+	_soundManager->playSound(26);
 	_linesManager->_route = (RouteItem *)g_PTRNUL;
 	_globals->_freezeCharacterFl = true;
 	_globals->_exitId = 0;
-	_soundManager.loadSample(1, "SOUND90.WAV");
+	_soundManager->loadSample(1, "SOUND90.WAV");
 	_graphicsManager->loadImage("IM100");
 	_animationManager->loadAnim("ANIM100");
 	_graphicsManager->displayAllBob();
@@ -2106,7 +2107,7 @@ void HopkinsEngine::playEnding() {
 		_eventsManager->refreshScreenAndEvents();
 	while (_objectsManager->getBobAnimDataIdx(7) != 54);
 
-	_soundManager.playSample(1);
+	_soundManager->playSample(1);
 
 	do
 		_eventsManager->refreshScreenAndEvents();
@@ -2137,12 +2138,12 @@ void HopkinsEngine::playEnding() {
 
 	_objectsManager->stopBobAnimation(7);
 	if (_globals->_saveData->_data[svGameWonFl] == 1) {
-		_soundManager._specialSoundNum = 200;
-		_soundManager._skipRefreshFl = true;
+		_soundManager->_specialSoundNum = 200;
+		_soundManager->_skipRefreshFl = true;
 		_graphicsManager->FADE_LINUX = 2;
 		_animationManager->playAnim("BERM.ANM", 100, 24, 300);
 		_graphicsManager->endDisplayBob();
-		_soundManager.removeSample(1);
+		_soundManager->removeSample(1);
 		_graphicsManager->loadImage("PLAN3");
 		_graphicsManager->fadeInLong();
 
@@ -2155,10 +2156,10 @@ void HopkinsEngine::playEnding() {
 		_eventsManager->_escKeyFl = false;
 		_graphicsManager->fadeOutLong();
 		_globals->iRegul = 1;
-		_soundManager._specialSoundNum = 0;
+		_soundManager->_specialSoundNum = 0;
 		_graphicsManager->FADE_LINUX = 2;
 		_animationManager->playAnim("JOUR2A.anm", 12, 12, 1000);
-		_soundManager.playSound(11);
+		_soundManager->playSound(11);
 		_graphicsManager->lockScreen();
 		_graphicsManager->clearScreen();
 		_graphicsManager->unlockScreen();
@@ -2174,8 +2175,8 @@ void HopkinsEngine::playEnding() {
 		_dialogsManager->_removeInventFl = false;
 		_globals->_disableInventFl = false;
 	} else {
-		_soundManager._specialSoundNum = 200;
-		_soundManager._skipRefreshFl = true;
+		_soundManager->_specialSoundNum = 200;
+		_soundManager->_skipRefreshFl = true;
 		_animationManager->playAnim2("BERM.ANM", 100, 24, 300);
 		_objectsManager->stopBobAnimation(7);
 		_objectsManager->setBobAnimation(8);
@@ -2187,7 +2188,7 @@ void HopkinsEngine::playEnding() {
 			_eventsManager->refreshScreenAndEvents();
 		while (_objectsManager->getBobAnimDataIdx(8) != 5);
 
-		_soundManager.directPlayWav("SOUND41.WAV");
+		_soundManager->directPlayWav("SOUND41.WAV");
 
 		do
 			_eventsManager->refreshScreenAndEvents();
@@ -2195,10 +2196,10 @@ void HopkinsEngine::playEnding() {
 
 		_graphicsManager->fadeOutLong();
 		_graphicsManager->endDisplayBob();
-		_soundManager.removeSample(1);
-		_soundManager.playSound(16);
+		_soundManager->removeSample(1);
+		_soundManager->playSound(16);
 		_globals->iRegul = 1;
-		_soundManager._specialSoundNum = 0;
+		_soundManager->_specialSoundNum = 0;
 		_dialogsManager->_removeInventFl = false;
 		_globals->_disableInventFl = false;
 		_animationManager->playAnim("JOUR4A.anm", 12, 12, 1000);
@@ -2211,7 +2212,7 @@ void HopkinsEngine::playEnding() {
 }
 
 void HopkinsEngine::playPlaneCutscene() {
-	_soundManager.playSound(28);
+	_soundManager->playSound(28);
 	_globals->iRegul = 1;
 	_graphicsManager->lockScreen();
 	_graphicsManager->clearScreen();
@@ -2483,7 +2484,7 @@ void HopkinsEngine::displayCredits() {
 	_globals->_creditsPosY = 436;
 	_graphicsManager->loadImage("GENERIC");
 	_graphicsManager->fadeInLong();
-	_soundManager.playSound(28);
+	_soundManager->playSound(28);
 	_eventsManager->_mouseFl = false;
 	_globals->iRegul = 3;
 	_globals->_creditsStartX = _globals->_creditsEndX = _globals->_creditsStartY = _globals->_creditsEndY = -1;
@@ -2528,7 +2529,7 @@ void HopkinsEngine::displayCredits() {
 			++soundId;
 			if (soundId > 31)
 				soundId = 28;
-			_soundManager.playSound(soundId);
+			_soundManager->playSound(soundId);
 		}
 		_globals->_creditsStartX = -1;
 		_globals->_creditsEndX = -1;
@@ -2758,7 +2759,7 @@ void HopkinsEngine::handleOceanMaze(int16 curExitId, Common::String backgroundFi
 	_globals->_freezeCharacterFl = false;
 	_globals->_exitId = 0;
 	_globals->_disableInventFl = true;
-	_soundManager.playSound(soundId);
+	_soundManager->playSound(soundId);
 	_globals->PERSO = _fileManager->loadFile("VAISSEAU.SPR");
 	if (backgroundFilename.size())
 		_graphicsManager->loadImage(backgroundFilename);
@@ -2853,7 +2854,7 @@ void HopkinsEngine::handleOceanMaze(int16 curExitId, Common::String backgroundFi
 void HopkinsEngine::syncSoundSettings() {
 	Engine::syncSoundSettings();
 
-	_soundManager.syncSoundSettings();
+	_soundManager->syncSoundSettings();
 }
 
 bool HopkinsEngine::displayAdultDisclaimer() {
diff --git a/engines/hopkins/hopkins.h b/engines/hopkins/hopkins.h
index 19f25d7..e4ebb96 100644
--- a/engines/hopkins/hopkins.h
+++ b/engines/hopkins/hopkins.h
@@ -156,8 +156,8 @@ public:
 	ObjectsManager *_objectsManager;
 	SaveLoadManager *_saveLoadManager;
 	ScriptManager *_scriptManager;
+	SoundManager *_soundManager;
 
-	SoundManager _soundManager;
 	TalkManager _talkManager;
 
 public:
diff --git a/engines/hopkins/menu.cpp b/engines/hopkins/menu.cpp
index 0801085..8a4c9c4 100644
--- a/engines/hopkins/menu.cpp
+++ b/engines/hopkins/menu.cpp
@@ -92,7 +92,7 @@ int MenuManager::menu() {
 		_vm->_eventsManager->_mouseCursorId = 0;
 		_vm->_eventsManager->_mouseSpriteId = 0;
 
-		_vm->_soundManager.playSound(28);
+		_vm->_soundManager->playSound(28);
 
 		// Loop to make menu selection
 		bool selectionMade = false;
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index f8c5f05..ecbad01 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -1725,7 +1725,7 @@ void ObjectsManager::handleCityMap() {
 	_spritePtr = g_PTRNUL;
 	_vm->_globals->_exitId = 0;
 	_vm->_globals->_checkDistanceFl = true;
-	_vm->_soundManager.playSound(31);
+	_vm->_soundManager->playSound(31);
 	_vm->_globals->iRegul = 1;
 	_vm->_graphicsManager->loadImage("PLAN");
 	_vm->_linesManager->loadLines("PLAN.OB2");
@@ -2585,13 +2585,13 @@ void ObjectsManager::handleSpecialGames() {
 		if (!_vm->_graphicsManager->_lineNbr)
 			_vm->_graphicsManager->_scrollOffset = 0;
 		_vm->_graphicsManager->NB_SCREEN(true);
-		_vm->_soundManager._specialSoundNum = 198;
+		_vm->_soundManager->_specialSoundNum = 198;
 		PERSO_ON = true;
 		_vm->_animationManager->NO_SEQ = true;
 		_vm->_animationManager->_clearAnimationFl = false;
 		_vm->_animationManager->playAnim("otage.ANM", 1, 24, 500);
 		_vm->_animationManager->NO_SEQ = false;
-		_vm->_soundManager._specialSoundNum = 0;
+		_vm->_soundManager->_specialSoundNum = 0;
 		_vm->_graphicsManager->NB_SCREEN(false);
 
 		_vm->_saveLoadManager->load("TEMP1.SCR", _vm->_graphicsManager->_vesaScreen);
@@ -2662,7 +2662,7 @@ void ObjectsManager::handleSpecialGames() {
 			setBobAnimation(6);
 			_vm->_globals->_saveData->_data[svField261] = 2;
 			_vm->_linesManager->disableZone(15);
-			_vm->_soundManager.playSoundFile("SOUND75.WAV");
+			_vm->_soundManager->playSoundFile("SOUND75.WAV");
 		}
 		if (_vm->_globals->_saveData->_data[svField261] == 2 && getBobAnimDataIdx(6) == 6) {
 			stopBobAnimation(6);
@@ -3214,17 +3214,17 @@ void ObjectsManager::sceneSpecialIni() {
 			VBOB(_vm->_globals->SPRITE_ECRAN, 5, 15, 28, 1);
 			_vm->_fontManager->hideText(9);
 			bool displayedTxtFl = false;
-			if (!_vm->_soundManager._textOffFl) {
+			if (!_vm->_soundManager->_textOffFl) {
 				_vm->_fontManager->initTextBuffers(9, 383, _vm->_globals->_textFilename, 220, 72, 6, 36, 253);
 				_vm->_fontManager->showText(9);
 				displayedTxtFl = true;
 			}
-			if (!_vm->_soundManager._voiceOffFl)
-				_vm->_soundManager.mixVoice(383, 4, displayedTxtFl);
+			if (!_vm->_soundManager->_voiceOffFl)
+				_vm->_soundManager->mixVoice(383, 4, displayedTxtFl);
 			_vm->_globals->_saveData->_data[svField270] = 1;
 			_vm->_globals->_saveData->_data[svField300] = 1;
 			_vm->_globals->_saveData->_data[svField320] = 1;
-			if (_vm->_soundManager._voiceOffFl) {
+			if (_vm->_soundManager->_voiceOffFl) {
 				for (int i = 0; i <= 199; i++)
 					_vm->_eventsManager->refreshScreenAndEvents();
 			}
@@ -3621,7 +3621,7 @@ void ObjectsManager::handleForest(int screenId, int minX, int maxX, int minY, in
 		if (_vm->_globals->_saveData->_data[savegameIdx] == 1) {
 			if (((idx == 1 || idx == 2) && getBobAnimDataIdx(idx) == 26) || ((idx == 3 || idx == 4) && getBobAnimDataIdx(idx) == 27)) {
 				_vm->_dialogsManager->_removeInventFl = true;
-				_vm->_soundManager.playSample(1);
+				_vm->_soundManager->playSample(1);
 				_vm->_globals->_saveData->_data[savegameIdx] = 4;
 			}
 		}
@@ -3665,7 +3665,7 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo
 	_vm->_graphicsManager->_scrollOffset = 0;
 	_vm->_globals->_cityMapEnabledFl = false;
 	_vm->_globals->iRegul = 1;
-	_vm->_soundManager.playSound(soundNum);
+	_vm->_soundManager->playSound(soundNum);
 	_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
 	_vm->_globals->_freezeCharacterFl = true;
 	_vm->_globals->_exitId = 0;
@@ -3757,7 +3757,7 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
 	_vm->_globals->_freezeCharacterFl = false;
 	_vm->_globals->_exitId = 0;
 	_vm->_globals->_checkDistanceFl = true;
-	_vm->_soundManager.playSound(soundNum);
+	_vm->_soundManager->playSound(soundNum);
 	_vm->_globals->iRegul = 1;
 	if (!backgroundFile.empty())
 		_vm->_graphicsManager->loadImage(backgroundFile);
diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp
index b883616..6e1e4eb 100644
--- a/engines/hopkins/script.cpp
+++ b/engines/hopkins/script.cpp
@@ -122,52 +122,52 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				if (mesgId == 363)
 					mesgId = 636;
 			}
-			if (!_vm->_soundManager._soundOffFl && _vm->_soundManager._soundFl) {
+			if (!_vm->_soundManager->_soundOffFl && _vm->_soundManager->_soundFl) {
 				do {
 					if (_vm->shouldQuit())
 						return -1; // Exiting game
 					_vm->_eventsManager->refreshScreenAndEvents();
-				} while (_vm->_soundManager._soundFl);
+				} while (_vm->_soundManager->_soundFl);
 			}
 			bool displayedTxtFl = false;
-			if (!_vm->_soundManager._textOffFl) {
+			if (!_vm->_soundManager->_textOffFl) {
 				int textPosX = READ_LE_INT16(dataP + 9);
 				int textPosY = READ_LE_INT16(dataP + 11);
 				_vm->_fontManager->initTextBuffers(9, mesgId, _vm->_globals->_textFilename, 2 * textPosX, 2 * textPosY + 40, 6, dataP[7], 253);
 				_vm->_fontManager->showText(9);
 				displayedTxtFl = true;
 			}
-			if (!_vm->_soundManager._voiceOffFl)
-				_vm->_soundManager.mixVoice(mesgId, 4, displayedTxtFl);
+			if (!_vm->_soundManager->_voiceOffFl)
+				_vm->_soundManager->mixVoice(mesgId, 4, displayedTxtFl);
 		} else { // if (_tempObjectFl)
 			if (_vm->_globals->_saveData->_data[svField356]) {
 				_vm->_fontManager->initTextBuffers(9, 635, _vm->_globals->_textFilename, 55, 20, dataP[8], 35, 253);
 				bool displayedTxtFl = false;
-				if (!_vm->_soundManager._textOffFl) {
+				if (!_vm->_soundManager->_textOffFl) {
 					_vm->_fontManager->showText(9);
 					displayedTxtFl = true;
 				}
 
-				if (!_vm->_soundManager._voiceOffFl)
-					_vm->_soundManager.mixVoice(635, 4, displayedTxtFl);
+				if (!_vm->_soundManager->_voiceOffFl)
+					_vm->_soundManager->mixVoice(635, 4, displayedTxtFl);
 			} else {
 				int textPosX = READ_LE_INT16(dataP + 9);
-				if (_vm->_globals->_language == LANG_FR && !_vm->_soundManager._textOffFl)
+				if (_vm->_globals->_language == LANG_FR && !_vm->_soundManager->_textOffFl)
 					_vm->_fontManager->initTextBuffers(9, mesgId, "OBJET1.TXT", 2 * textPosX, 60, 6, dataP[7], 253);
-				else if (_vm->_globals->_language == LANG_EN && !_vm->_soundManager._textOffFl)
+				else if (_vm->_globals->_language == LANG_EN && !_vm->_soundManager->_textOffFl)
 					_vm->_fontManager->initTextBuffers(9, mesgId, "OBJETAN.TXT", 2 * textPosX, 60, 6, dataP[7], 253);
-				else if (_vm->_globals->_language == LANG_SP && !_vm->_soundManager._textOffFl) {
+				else if (_vm->_globals->_language == LANG_SP && !_vm->_soundManager->_textOffFl) {
 					_vm->_fontManager->initTextBuffers(9, mesgId, "OBJETES.TXT", 2 * textPosX, 60, 6, dataP[7], 253);
 				}
 
 				bool displayedTxtFl = false;
-				if (!_vm->_soundManager._textOffFl) {
+				if (!_vm->_soundManager->_textOffFl) {
 					_vm->_fontManager->showText(9);
 					displayedTxtFl = true;
 				}
 
-				if (!_vm->_soundManager._voiceOffFl)
-					_vm->_soundManager.mixVoice(mesgId, 5, displayedTxtFl);
+				if (!_vm->_soundManager->_voiceOffFl)
+					_vm->_soundManager->mixVoice(mesgId, 5, displayedTxtFl);
 			}
 		}
 		break;
@@ -554,7 +554,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			if ((_vm->getPlatform() == Common::kPlatformWindows) && _vm->getIsDemo()) {
 				_vm->_graphicsManager->fadeOutLong();
 			} else {
-				_vm->_soundManager.playSoundFile("SOUND17.WAV");
+				_vm->_soundManager->playSoundFile("SOUND17.WAV");
 				_vm->_graphicsManager->FADE_LINUX = 2;
 				_vm->_animationManager->playSequence2("HELICO.SEQ", 10, 4, 10);
 			}
@@ -583,10 +583,10 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 			// If uncensored, rip the throat of the hostage
 			if (!_vm->_globals->_censorshipFl) {
-				_vm->_soundManager._specialSoundNum = 16;
+				_vm->_soundManager->_specialSoundNum = 16;
 				_vm->_graphicsManager->FADE_LINUX = 2;
 				_vm->_animationManager->playAnim("EGORGE.ANM", 50, 28, 500);
-				_vm->_soundManager._specialSoundNum = 0;
+				_vm->_soundManager->_specialSoundNum = 0;
 			}
 			_vm->_animationManager->loadAnim("ASCEN");
 			_vm->_eventsManager->mouseOff();
@@ -607,12 +607,12 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_graphicsManager->endDisplayBob();
 
 			if ((_vm->getPlatform() == Common::kPlatformWindows) && _vm->getIsDemo())
-				_vm->_soundManager.playSoundFile("SOUND17.WAV");
+				_vm->_soundManager->playSoundFile("SOUND17.WAV");
 
-			_vm->_soundManager._specialSoundNum = 14;
+			_vm->_soundManager->_specialSoundNum = 14;
 			_vm->_graphicsManager->FADE_LINUX = 2;
 			_vm->_animationManager->playSequence2("ASSOM.SEQ", 10, 4, 500);
-			_vm->_soundManager._specialSoundNum = 0;
+			_vm->_soundManager->_specialSoundNum = 0;
 
 			if ((_vm->getPlatform() == Common::kPlatformWindows) && _vm->getIsDemo())
 				_vm->_graphicsManager->fadeOutLong();
@@ -675,13 +675,13 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 35:
-			if (!_vm->_soundManager._soundOffFl) {
+			if (!_vm->_soundManager->_soundOffFl) {
 				do {
 					if (_vm->shouldQuit())
 						return -1; // Exiting game
 
 					_vm->_eventsManager->refreshScreenAndEvents();
-				} while (_vm->_soundManager._soundFl);
+				} while (_vm->_soundManager->_soundFl);
 			}
 			_vm->_talkManager.startAnimatedCharacterDialogue("PTLAB.pe2");
 			break;
@@ -710,17 +710,17 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 38:
-			_vm->_soundManager.loadSample(1, "SOUND44.WAV");
-			_vm->_soundManager.loadSample(2, "SOUND42.WAV");
-			_vm->_soundManager.loadSample(3, "SOUND41.WAV");
-			_vm->_soundManager._specialSoundNum = 17;
+			_vm->_soundManager->loadSample(1, "SOUND44.WAV");
+			_vm->_soundManager->loadSample(2, "SOUND42.WAV");
+			_vm->_soundManager->loadSample(3, "SOUND41.WAV");
+			_vm->_soundManager->_specialSoundNum = 17;
 			_vm->_animationManager->playSequence("grenade.SEQ", 1, 32, 100);
-			_vm->_soundManager._specialSoundNum = 0;
+			_vm->_soundManager->_specialSoundNum = 0;
 			_vm->_graphicsManager->FADE_LINUX = 2;
 			_vm->_animationManager->playAnim("CREVE17.ANM", 24, 24, 200);
-			_vm->_soundManager.removeSample(1);
-			_vm->_soundManager.removeSample(2);
-			_vm->_soundManager.removeSample(3);
+			_vm->_soundManager->removeSample(1);
+			_vm->_soundManager->removeSample(2);
+			_vm->_soundManager->removeSample(3);
 			_vm->_graphicsManager->_noFadingFl = true;
 			break;
 
@@ -762,8 +762,8 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			} while (_vm->_linesManager->_route != (RouteItem *)g_PTRNUL);
 			_vm->_objectsManager->removeSprite(0);
 			_vm->_globals->_checkDistanceFl = true;
-			_vm->_soundManager.loadSample(1, "SOUND44.WAV");
-			_vm->_soundManager.loadSample(2, "SOUND45.WAV");
+			_vm->_soundManager->loadSample(1, "SOUND44.WAV");
+			_vm->_soundManager->loadSample(2, "SOUND45.WAV");
 			_vm->_objectsManager->OPTI_BOBON(9, 10, -1, 0, 0, 0);
 			bool playFl = false;
 			for (;;) {
@@ -775,7 +775,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				case 16:
 				case 28:
 					if (!playFl) {
-						_vm->_soundManager.playSample(1);
+						_vm->_soundManager->playSample(1);
 						playFl = true;
 					}
 					break;
@@ -791,7 +791,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				case 22:
 				case 33:
 					if (!playFl) {
-						_vm->_soundManager.playSample(2);
+						_vm->_soundManager->playSample(2);
 						playFl = true;
 					}
 					break;
@@ -817,8 +817,8 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->animateSprite(0);
 			_vm->_objectsManager->stopBobAnimation(9);
 			_vm->_objectsManager->stopBobAnimation(10);
-			_vm->_soundManager.removeSample(1);
-			_vm->_soundManager.removeSample(2);
+			_vm->_soundManager->removeSample(1);
+			_vm->_soundManager->removeSample(2);
 			break;
 			}
 
@@ -849,7 +849,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				case 4:
 				case 18:
 					if (!playFl) {
-						_vm->_soundManager.directPlayWav("SOUND44.WAV");
+						_vm->_soundManager->directPlayWav("SOUND44.WAV");
 						playFl = true;
 					}
 					break;
@@ -862,7 +862,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				switch (_vm->_objectsManager->getBobAnimDataIdx(10)) {
 				case 11:
 					if (!playFl) {
-						_vm->_soundManager.directPlayWav("SOUND45.WAV");
+						_vm->_soundManager->directPlayWav("SOUND45.WAV");
 						playFl = true;
 					}
 					break;
@@ -884,7 +884,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			}
 
 		case 50:
-			_vm->_soundManager.playSoundFile("SOUND46.WAv");
+			_vm->_soundManager->playSoundFile("SOUND46.WAv");
 			_vm->_objectsManager->OPTI_ONE(11, 0, 23, 0);
 			break;
 
@@ -900,14 +900,14 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_graphicsManager->displayAllBob();
 			_vm->_eventsManager->mouseOff();
 			_vm->_graphicsManager->fadeInLong();
-			_vm->_soundManager.loadWav("SOUND46.WAV", 1);
+			_vm->_soundManager->loadWav("SOUND46.WAV", 1);
 			bool playFl = false;
 			for (;;) {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
 
 				if (_vm->_objectsManager->getBobAnimDataIdx(12) == 5 && !playFl) {
-					_vm->_soundManager.playWav(1);
+					_vm->_soundManager->playWav(1);
 					playFl = true;
 				}
 				_vm->_eventsManager->refreshScreenAndEvents();
@@ -991,7 +991,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->setBobAnimation(7);
 			_vm->_objectsManager->setBobAnimDataIdx(7, 0);
 			bool playFl = false;
-			_vm->_soundManager.loadSample(1, "SOUND40.WAV");
+			_vm->_soundManager->loadSample(1, "SOUND40.WAV");
 			for (;;) {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
@@ -1000,7 +1000,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				case 10:
 				case 18:
 					if (!playFl) {
-						_vm->_soundManager.playSample(1);
+						_vm->_soundManager->playSample(1);
 						playFl = true;
 					}
 					break;
@@ -1016,7 +1016,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				if (_vm->_objectsManager->getBobAnimDataIdx(3) == 48)
 					break;
 			}
-			_vm->_soundManager.removeSample(1);
+			_vm->_soundManager->removeSample(1);
 			_vm->_objectsManager->setSpriteIndex(0, 62);
 			_vm->_objectsManager->animateSprite(0);
 			_vm->_objectsManager->setBobAnimation(6);
@@ -1039,8 +1039,8 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->setBobAnimation(13);
 			_vm->_objectsManager->setBobAnimDataIdx(12, 0);
 			_vm->_objectsManager->setBobAnimDataIdx(13, 0);
-			_vm->_soundManager.loadWav("SOUND44.WAV", 1);
-			_vm->_soundManager.loadWav("SOUND71.WAV", 2);
+			_vm->_soundManager->loadWav("SOUND44.WAV", 1);
+			_vm->_soundManager->loadWav("SOUND71.WAV", 2);
 			bool playFl = false;
 			for (;;) {
 				if (_vm->shouldQuit())
@@ -1049,7 +1049,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				switch (_vm->_objectsManager->getBobAnimDataIdx(12)) {
 				case 4:
 					if (!playFl) {
-						_vm->_soundManager.playWav(1);
+						_vm->_soundManager->playWav(1);
 						playFl = true;
 					}
 					break;
@@ -1061,7 +1061,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				switch (_vm->_objectsManager->getBobAnimDataIdx(4)) {
 				case 5:
 					if (!playFl) {
-						_vm->_soundManager.playWav(2);
+						_vm->_soundManager->playWav(2);
 						playFl = true;
 					}
 				case 6:
@@ -1110,9 +1110,9 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->setBobAnimation(8);
 			_vm->_objectsManager->setBobAnimDataIdx(11, 0);
 			_vm->_objectsManager->setBobAnimDataIdx(8, 0);
-			_vm->_soundManager.loadWav("SOUND44.WAV", 1);
-			_vm->_soundManager.loadWav("SOUND48.WAV", 2);
-			_vm->_soundManager.loadWav("SOUND49.WAV", 3);
+			_vm->_soundManager->loadWav("SOUND44.WAV", 1);
+			_vm->_soundManager->loadWav("SOUND48.WAV", 2);
+			_vm->_soundManager->loadWav("SOUND49.WAV", 3);
 			bool playFl = false;
 			for (;;) {
 				if (_vm->shouldQuit())
@@ -1121,7 +1121,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				switch (_vm->_objectsManager->getBobAnimDataIdx(11)) {
 				case 4:
 					if (!playFl) {
-						_vm->_soundManager.playWav(1);
+						_vm->_soundManager->playWav(1);
 						playFl = true;
 					}
 					break;
@@ -1133,7 +1133,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				switch (_vm->_objectsManager->getBobAnimDataIdx(8)) {
 				case 11:
 					if (!playFl) {
-						_vm->_soundManager.playWav(2);
+						_vm->_soundManager->playWav(2);
 						playFl = true;
 					}
 					break;
@@ -1154,7 +1154,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->setBobAnimation(6);
 			_vm->_objectsManager->setBobAnimDataIdx(5, 0);
 			_vm->_objectsManager->setBobAnimDataIdx(6, 0);
-			_vm->_soundManager.playWav(3);
+			_vm->_soundManager->playWav(3);
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
@@ -1218,7 +1218,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				_vm->_objectsManager->setBobAnimDataIdx(2, 0);
 				_vm->_objectsManager->setBobAnimation(1);
 				_vm->_objectsManager->setBobAnimation(2);
-				_vm->_soundManager.loadSample(1, "SOUND40.WAV");
+				_vm->_soundManager->loadSample(1, "SOUND40.WAV");
 				bool playFl = false;
 				for (;;) {
 					if (_vm->shouldQuit())
@@ -1230,7 +1230,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 					case 5:
 					case 7:
 						if (!playFl) {
-							_vm->_soundManager.playSample(1);
+							_vm->_soundManager->playSample(1);
 							playFl = true;
 						}
 						break;
@@ -1248,14 +1248,14 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				_vm->_objectsManager->stopBobAnimation(1);
 				_vm->_objectsManager->stopBobAnimation(2);
 				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 283, 160, 6);
-				_vm->_soundManager.removeSample(1);
+				_vm->_soundManager->removeSample(1);
 			}
 			if (_vm->_globals->_saveData->_data[svField183] == 2) {
 				_vm->_objectsManager->setBobAnimDataIdx(1, 0);
 				_vm->_objectsManager->setBobAnimDataIdx(3, 0);
 				_vm->_objectsManager->setBobAnimation(1);
 				_vm->_objectsManager->setBobAnimation(3);
-				_vm->_soundManager.loadSample(1, "SOUND40.WAV");
+				_vm->_soundManager->loadSample(1, "SOUND40.WAV");
 				bool playFl = false;
 				for (;;) {
 					if (_vm->shouldQuit())
@@ -1267,7 +1267,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 					case 5:
 					case 7:
 						if (!playFl) {
-							_vm->_soundManager.playSample(1);
+							_vm->_soundManager->playSample(1);
 							playFl = true;
 						}
 						break;
@@ -1285,12 +1285,12 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				_vm->_objectsManager->stopBobAnimation(1);
 				_vm->_objectsManager->stopBobAnimation(3);
 				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 283, 161, 8);
-				_vm->_soundManager.removeSample(1);
+				_vm->_soundManager->removeSample(1);
 			}
 			break;
 
 		case 90:
-			_vm->_soundManager.playSoundFile("SOUND52.WAV");
+			_vm->_soundManager->playSoundFile("SOUND52.WAV");
 			if (!_vm->_globals->_saveData->_data[svField186]) {
 				_vm->_animationManager->playSequence("CIB5A.SEQ", 1, 12, 1);
 				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 0);
@@ -1303,7 +1303,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 91:
-			_vm->_soundManager.playSoundFile("SOUND52.WAV");
+			_vm->_soundManager->playSoundFile("SOUND52.WAV");
 			if (!_vm->_globals->_saveData->_data[svField186]) {
 				_vm->_animationManager->playSequence("CIB5B.SEQ", 1, 12, 1);
 				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 5);
@@ -1316,7 +1316,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 92:
-			_vm->_soundManager.playSoundFile("SOUND52.WAV");
+			_vm->_soundManager->playSoundFile("SOUND52.WAV");
 			if (!_vm->_globals->_saveData->_data[svField184]) {
 				_vm->_animationManager->playSequence("CIB6A.SEQ", 1, 12, 1);
 				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 0);
@@ -1329,7 +1329,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 93:
-			_vm->_soundManager.playSoundFile("SOUND52.WAV");
+			_vm->_soundManager->playSoundFile("SOUND52.WAV");
 			if (!_vm->_globals->_saveData->_data[svField184]) {
 				_vm->_animationManager->playSequence("CIB6B.SEQ", 1, 12, 1);
 				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 5);
@@ -1364,7 +1364,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			} while (_vm->_objectsManager->getBobAnimDataIdx(9) != 15);
 			_vm->_objectsManager->stopBobAnimation(9);
 			_vm->_objectsManager->animateSprite(0);
-			_vm->_soundManager.playSoundFile("SOUND50.WAV");
+			_vm->_soundManager->playSoundFile("SOUND50.WAV");
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
@@ -1436,7 +1436,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			} while (_vm->_linesManager->_route != (RouteItem *)g_PTRNUL);
 			_vm->_objectsManager->removeSprite(0);
 			_vm->_objectsManager->setSpriteIndex(0, 60);
-			_vm->_soundManager.loadSample(1, "SOUND63.WAV");
+			_vm->_soundManager->loadSample(1, "SOUND63.WAV");
 			if (_vm->_globals->_saveData->_data[svField253] > 2) {
 				_vm->_objectsManager->setBobAnimation(4);
 				bool playFl = false;
@@ -1449,7 +1449,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 					case 32:
 					case 55:
 						if (!playFl) {
-							_vm->_soundManager.playSample(1);
+							_vm->_soundManager->playSample(1);
 							playFl = true;
 						}
 						break;
@@ -1477,7 +1477,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 					case 32:
 					case 55:
 						if (!playFl) {
-							_vm->_soundManager.playSample(1);
+							_vm->_soundManager->playSample(1);
 							playFl = true;
 						}
 						break;
@@ -1505,7 +1505,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 					case 32:
 					case 55:
 						if (!playFl) {
-							_vm->_soundManager.playSample(1);
+							_vm->_soundManager->playSample(1);
 							playFl = true;
 						}
 						break;
@@ -1523,37 +1523,37 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			}
 			_vm->_objectsManager->animateSprite(0);
 			_vm->_objectsManager->doActionBack(1);
-			_vm->_soundManager.removeSample(1);
+			_vm->_soundManager->removeSample(1);
 			break;
 
 		case 106:
 			_vm->_objectsManager->removeSprite(0);
 			_vm->_objectsManager->setBobAnimation(4);
 			_vm->_objectsManager->setBobAnimDataIdx(4, 0);
-			_vm->_soundManager.loadWav("SOUND61.WAV", 1);
-			_vm->_soundManager.loadWav("SOUND62.WAV", 2);
-			_vm->_soundManager.loadWav("SOUND61.WAV", 3);
+			_vm->_soundManager->loadWav("SOUND61.WAV", 1);
+			_vm->_soundManager->loadWav("SOUND62.WAV", 2);
+			_vm->_soundManager->loadWav("SOUND61.WAV", 3);
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
 
 				_vm->_eventsManager->refreshScreenAndEvents();
 			} while (_vm->_objectsManager->getBobAnimDataIdx(4) != 10);
-			_vm->_soundManager.playWav(1);
+			_vm->_soundManager->playWav(1);
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
 
 				_vm->_eventsManager->refreshScreenAndEvents();
 			} while (_vm->_objectsManager->getBobAnimDataIdx(4) != 18);
-			_vm->_soundManager.playWav(2);
+			_vm->_soundManager->playWav(2);
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
 
 				_vm->_eventsManager->refreshScreenAndEvents();
 			} while (_vm->_objectsManager->getBobAnimDataIdx(4) != 62);
-			_vm->_soundManager.playWav(3);
+			_vm->_soundManager->playWav(3);
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
@@ -1568,30 +1568,30 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->removeSprite(0);
 			_vm->_objectsManager->setBobAnimation(5);
 			_vm->_objectsManager->setBobAnimDataIdx(5, 0);
-			_vm->_soundManager.loadWav("SOUND61.WAV", 1);
-			_vm->_soundManager.loadWav("SOUND62.WAV", 2);
-			_vm->_soundManager.loadWav("SOUND61.WAV", 3);
+			_vm->_soundManager->loadWav("SOUND61.WAV", 1);
+			_vm->_soundManager->loadWav("SOUND62.WAV", 2);
+			_vm->_soundManager->loadWav("SOUND61.WAV", 3);
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
 
 				_vm->_eventsManager->refreshScreenAndEvents();
 			} while (_vm->_objectsManager->getBobAnimDataIdx(5) != 10);
-			_vm->_soundManager.playWav(1);
+			_vm->_soundManager->playWav(1);
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
 
 				_vm->_eventsManager->refreshScreenAndEvents();
 			} while (_vm->_objectsManager->getBobAnimDataIdx(5) != 18);
-			_vm->_soundManager.playWav(2);
+			_vm->_soundManager->playWav(2);
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
 
 				_vm->_eventsManager->refreshScreenAndEvents();
 			} while (_vm->_objectsManager->getBobAnimDataIdx(5) != 38);
-			_vm->_soundManager.playWav(3);
+			_vm->_soundManager->playWav(3);
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
@@ -1714,7 +1714,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->setBobAnimation(9);
 			_vm->_objectsManager->setBobAnimation(10);
 			_vm->_objectsManager->setBobOffset(10, 300);
-			_vm->_soundManager.playSoundFile("SOUND44.WAV");
+			_vm->_soundManager->playSoundFile("SOUND44.WAV");
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
@@ -1729,7 +1729,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 				_vm->_eventsManager->refreshScreenAndEvents();
 			} while (_vm->_objectsManager->getBobAnimDataIdx(6) != 10);
-			_vm->_soundManager.playSoundFile("SOUND71.WAV");
+			_vm->_soundManager->playSoundFile("SOUND71.WAV");
 			_vm->_objectsManager->setBobAnimation(7);
 			_vm->_objectsManager->stopBobAnimation(4);
 			do {
@@ -1740,7 +1740,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			} while (_vm->_objectsManager->getBobAnimDataIdx(7) != 15);
 			_vm->_objectsManager->stopBobAnimation(5);
 			_vm->_objectsManager->setBobAnimation(8);
-			_vm->_soundManager.playSoundFile("SOUND70.WAV");
+			_vm->_soundManager->playSoundFile("SOUND70.WAV");
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
@@ -1809,7 +1809,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 		case 204: {
 			_vm->_objectsManager->removeSprite(0);
 			_vm->_objectsManager->setBobAnimation(3);
-			_vm->_soundManager.loadWav("SOUND67.WAV", 1);
+			_vm->_soundManager->loadWav("SOUND67.WAV", 1);
 			bool playFl = false;
 			for (;;) {
 				if (_vm->shouldQuit())
@@ -1818,7 +1818,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				switch (_vm->_objectsManager->getBobAnimDataIdx(3)) {
 				case 10:
 					if (!playFl) {
-						_vm->_soundManager.playWav(1);
+						_vm->_soundManager->playWav(1);
 						playFl = true;
 					}
 					break;
@@ -1838,7 +1838,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 		case 205: {
 			_vm->_objectsManager->removeSprite(0);
 			_vm->_objectsManager->setBobAnimation(4);
-			_vm->_soundManager.loadWav("SOUND69.WAV", 1);
+			_vm->_soundManager->loadWav("SOUND69.WAV", 1);
 			bool playFl = false;
 			for (;;) {
 				if (_vm->shouldQuit())
@@ -1847,7 +1847,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				switch (_vm->_objectsManager->getBobAnimDataIdx(4)) {
 				case 10:
 					if (!playFl) {
-						_vm->_soundManager.playWav(1);
+						_vm->_soundManager->playWav(1);
 						playFl = true;
 					}
 					break;
@@ -1871,9 +1871,9 @@ int ScriptManager::handleOpcode(byte *dataP) {
 		case 208: {
 			_vm->_globals->_disableInventFl = true;
 			if (_vm->_globals->_saveData->_data[svLastPrevScreenId] != _vm->_globals->_saveData->_data[svField401]) {
-				_vm->_soundManager._specialSoundNum = 208;
+				_vm->_soundManager->_specialSoundNum = 208;
 				_vm->_animationManager->playSequence("SORT.SEQ", 10, 4, 10, true);
-				_vm->_soundManager._specialSoundNum = 0;
+				_vm->_soundManager->_specialSoundNum = 0;
 			}
 			_vm->_globals->_checkDistanceFl = true;
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
@@ -1920,7 +1920,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			} while (_vm->_linesManager->_route != (RouteItem *)g_PTRNUL);
 			_vm->_objectsManager->setSpriteIndex(0, 64);
 			_vm->_objectsManager->setBobAnimation(2);
-			_vm->_soundManager.playSoundFile("SOUND66.WAV");
+			_vm->_soundManager->playSoundFile("SOUND66.WAV");
 			do {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
@@ -1934,9 +1934,9 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 		case 210:
 			_vm->_animationManager->NO_SEQ = true;
-			_vm->_soundManager._specialSoundNum = 210;
+			_vm->_soundManager->_specialSoundNum = 210;
 			_vm->_animationManager->playSequence2("SECRET1.SEQ", 1, 12, 1);
-			_vm->_soundManager._specialSoundNum = 0;
+			_vm->_soundManager->_specialSoundNum = 0;
 			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 192, 152, 0);
 			_vm->_objectsManager->setBobAnimation(9);
 			_vm->_objectsManager->OBSSEUL = true;
@@ -1956,9 +1956,9 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->removeSprite(0);
 			_vm->_globals->disableHiding();
 			_vm->_animationManager->NO_SEQ = true;
-			_vm->_soundManager._specialSoundNum = 211;
+			_vm->_soundManager->_specialSoundNum = 211;
 			_vm->_animationManager->playSequence("SECRET2.SEQ", 1, 12, 100);
-			_vm->_soundManager._specialSoundNum = 0;
+			_vm->_soundManager->_specialSoundNum = 0;
 			_vm->_animationManager->NO_SEQ = false;
 			_vm->_graphicsManager->_noFadingFl = true;
 			_vm->_graphicsManager->fadeOutLong();
@@ -1989,9 +1989,9 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 229:
-			_vm->_soundManager._specialSoundNum = 229;
+			_vm->_soundManager->_specialSoundNum = 229;
 			_vm->_animationManager->playSequence("MUR.SEQ", 1, 12, 1);
-			_vm->_soundManager._specialSoundNum = 0;
+			_vm->_soundManager->_specialSoundNum = 0;
 			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 340, 157, 2);
 			break;
 
@@ -2024,7 +2024,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 				if (_vm->_objectsManager->getBobAnimDataIdx(7) == 9 && !playFl) {
 					playFl = true;
-					_vm->_soundManager.playSoundFile("SOUND81.WAV");
+					_vm->_soundManager->playSoundFile("SOUND81.WAV");
 				}
 				_vm->_eventsManager->refreshScreenAndEvents();
 			} while (_vm->_objectsManager->getBobAnimDataIdx(7) != 15);
@@ -2105,7 +2105,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 					vbobFrameIndex = 4;
 				else if (v47 == 1)
 					vbobFrameIndex = 6;
-				_vm->_soundManager.playSoundFile("SOUND83.WAV");
+				_vm->_soundManager->playSoundFile("SOUND83.WAV");
 				_vm->_objectsManager->OPTI_ONE(vbobFrameIndex, 26, 50, 0);
 				if (_vm->_globals->_saveData->_data[svField341] == 1)
 					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 27, 117, 0);
@@ -2120,7 +2120,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				if (_vm->_globals->_saveData->_data[svField341] == 3)
 					_vm->_globals->_saveData->_data[svField340] = 0;
 			}
-			_vm->_soundManager.playSoundFile("SOUND83.WAV");
+			_vm->_soundManager->playSoundFile("SOUND83.WAV");
 			_vm->_objectsManager->OPTI_ONE(6, 0, 23, 0);
 			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 27, 117, 1);
 			break;
@@ -2140,7 +2140,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			}
 
 			if (_vm->_globals->_saveData->_data[svField341]) {
-				_vm->_soundManager.playSoundFile("SOUND83.WAV");
+				_vm->_soundManager->playSoundFile("SOUND83.WAV");
 				_vm->_objectsManager->OPTI_ONE(vbobFrameIndex, 26, 50, 0);
 				
 				switch (_vm->_globals->_saveData->_data[svField341]) {
@@ -2159,7 +2159,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				}
 			}
 
-			_vm->_soundManager.playSoundFile("SOUND83.WAV");
+			_vm->_soundManager->playSoundFile("SOUND83.WAV");
 			_vm->_objectsManager->OPTI_ONE(5, 0, 23, 0);
 			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 145, 166, 3);
 			break;
@@ -2179,7 +2179,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			}
 
 			if (_vm->_globals->_saveData->_data[svField341]) {
-				_vm->_soundManager.playSoundFile("SOUND83.WAV");
+				_vm->_soundManager->playSoundFile("SOUND83.WAV");
 				_vm->_objectsManager->OPTI_ONE(vbobFrameIndex, 26, 50, 0);
 				switch (_vm->_globals->_saveData->_data[svField341]) {
 				case 1:
@@ -2196,7 +2196,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 					break;
 				}
 			}
-			_vm->_soundManager.playSoundFile("SOUND83.WAV");
+			_vm->_soundManager->playSoundFile("SOUND83.WAV");
 			_vm->_objectsManager->OPTI_ONE(4, 0, 23, 0);
 			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 296, 212, 5);
 			break;
@@ -2204,7 +2204,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 		case 239:
 			_vm->_objectsManager->removeSprite(0);
-			_vm->_soundManager.playSoundFile("SOUND84.WAV");
+			_vm->_soundManager->playSoundFile("SOUND84.WAV");
 			_vm->_objectsManager->OPTI_ONE(16, 0, 10, 0);
 			break;
 
@@ -2217,13 +2217,13 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 				_vm->_eventsManager->refreshScreenAndEvents();
 				if (_vm->_objectsManager->getBobAnimDataIdx(1) == 12 && !soundFlag) {
-					_vm->_soundManager.playSoundFile("SOUND86.WAV");
+					_vm->_soundManager->playSoundFile("SOUND86.WAV");
 					soundFlag = true;
 				}
 				if (_vm->_objectsManager->getBobAnimDataIdx(1) == 13)
 					soundFlag = false;
 				if (_vm->_objectsManager->getBobAnimDataIdx(1) == 25 && !soundFlag) {
-					_vm->_soundManager.playSoundFile("SOUND85.WAV");
+					_vm->_soundManager->playSoundFile("SOUND85.WAV");
 					soundFlag = true;
 				}
 				if (_vm->_objectsManager->getBobAnimDataIdx(1) == 25)
@@ -2233,13 +2233,13 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->setBobAnimation(2);
 			_vm->_fontManager->hideText(9);
 			bool displayedTxtFl = false;
-			if (!_vm->_soundManager._textOffFl) {
+			if (!_vm->_soundManager->_textOffFl) {
 				_vm->_fontManager->initTextBuffers(9, 617, _vm->_globals->_textFilename, 91, 41, 3, 30, 253);
 				_vm->_fontManager->showText(9);
 				displayedTxtFl = true;
 			}
-			if (!_vm->_soundManager._voiceOffFl)
-				_vm->_soundManager.mixVoice(617, 4, displayedTxtFl);
+			if (!_vm->_soundManager->_voiceOffFl)
+				_vm->_soundManager->mixVoice(617, 4, displayedTxtFl);
 			for (int i = 0; i <= 29; i++) {
 				if (_vm->shouldQuit())
 					return -1; // Exiting game
@@ -2264,7 +2264,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 		// Resurrect Samantha's clone
 		case 242: {
-			_vm->_soundManager.playSoundFile("SOUND87.WAV");
+			_vm->_soundManager->playSoundFile("SOUND87.WAV");
 			_vm->_animationManager->NO_SEQ = true;
 			_vm->_animationManager->playSequence("RESUF.SEQ", 1, 24, 1);
 			_vm->_animationManager->NO_SEQ = false;
@@ -2288,7 +2288,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			}
 
 		case 243:
-			_vm->_soundManager.playSoundFile("SOUND88.WAV");
+			_vm->_soundManager->playSoundFile("SOUND88.WAV");
 			if (_vm->_globals->_saveData->_data[svField341] == 2) {
 				_vm->_animationManager->NO_SEQ = true;
 				_vm->_animationManager->playSequence("RESU.SEQ", 2, 24, 2);
@@ -2299,7 +2299,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 245:
-			_vm->_soundManager.playSoundFile("SOUND89.WAV");
+			_vm->_soundManager->playSoundFile("SOUND89.WAV");
 			_vm->_objectsManager->OPTI_ONE(5, 0, 6, 0);
 			_vm->_linesManager->ZONEP[4]._destX = 276;
 			_vm->_objectsManager->enableVerb(4, 19);
@@ -2349,10 +2349,10 @@ int ScriptManager::handleOpcode(byte *dataP) {
 		case 603:
 			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 163, 7, false);
 			_vm->_objectsManager->OPTI_ONE(3, 0, 16, 4);
-			_vm->_soundManager._specialSoundNum = 199;
+			_vm->_soundManager->_specialSoundNum = 199;
 			_vm->_graphicsManager->FADE_LINUX = 2;
 			_vm->_animationManager->playAnim("BOMBE2A.ANM", 50, 14, 500);
-			_vm->_soundManager._specialSoundNum = 0;
+			_vm->_soundManager->_specialSoundNum = 0;
 			memset(_vm->_graphicsManager->_vesaBuffer, 0, 614400);
 			_vm->_graphicsManager->_noFadingFl = true;
 			_vm->_globals->_exitId = 151;
@@ -2361,9 +2361,9 @@ int ScriptManager::handleOpcode(byte *dataP) {
 		case 604:
 			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 163, 7, false);
 			_vm->_objectsManager->OPTI_ONE(1, 0, 16, 4);
-			_vm->_soundManager._specialSoundNum = 199;
+			_vm->_soundManager->_specialSoundNum = 199;
 			_vm->_animationManager->playAnim("BOMBE2A.ANM", 50, 14, 500);
-			_vm->_soundManager._specialSoundNum = 0;
+			_vm->_soundManager->_specialSoundNum = 0;
 			_vm->_graphicsManager->_noFadingFl = true;
 			memset(_vm->_graphicsManager->_vesaBuffer, 0, 614400);
 			_vm->_globals->_exitId = 151;
@@ -2373,10 +2373,10 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 163, 7, false);
 			_vm->_objectsManager->OPTI_ONE(5, 0, 16, 4);
 			_vm->_graphicsManager->fadeOutShort();
-			_vm->_soundManager._specialSoundNum = 199;
+			_vm->_soundManager->_specialSoundNum = 199;
 			_vm->_graphicsManager->FADE_LINUX = 2;
 			_vm->_animationManager->playAnim("BOMBE2A.ANM", 50, 14, 500);
-			_vm->_soundManager._specialSoundNum = 0;
+			_vm->_soundManager->_specialSoundNum = 0;
 			_vm->_graphicsManager->_noFadingFl = true;
 			memset(_vm->_graphicsManager->_vesaBuffer, 0, 614400);
 			_vm->_globals->_exitId = 151;
@@ -2474,7 +2474,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 		int soundNum = READ_LE_INT16(dataP + 5);
 
 		Common::String file = Common::String::format("SOUND%d.WAV", soundNum);
-		_vm->_soundManager.playSoundFile(file);
+		_vm->_soundManager->playSoundFile(file);
 		opcodeType = 1;
 		break;
 		}
diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp
index 600ecba..b64430f 100644
--- a/engines/hopkins/sound.cpp
+++ b/engines/hopkins/sound.cpp
@@ -184,7 +184,9 @@ Audio::AudioStream *makeTwaStream(Common::String name, Common::SeekableReadStrea
 	return new TwaAudioStream(name, stream);
 }
 
-SoundManager::SoundManager() {
+SoundManager::SoundManager(HopkinsEngine *vm) {
+	_vm = vm;
+
 	_specialSoundNum = 0;
 	_soundVolume = 0;
 	_voiceVolume = 0;
@@ -215,11 +217,6 @@ SoundManager::~SoundManager() {
 	_modPlayingFl = false;
 }
 
-void SoundManager::setParent(HopkinsEngine *vm) {
-	_vm = vm;
-	_specialSoundNum = 0;
-}
-
 void SoundManager::checkSoundEnd() {
 	if (!_soundOffFl && _soundFl) {
 		if (!checkVoiceStatus(1)) {
diff --git a/engines/hopkins/sound.h b/engines/hopkins/sound.h
index 1a30602..f1d047a 100644
--- a/engines/hopkins/sound.h
+++ b/engines/hopkins/sound.h
@@ -104,9 +104,8 @@ public:
 	int _voiceVolume;
 	int _specialSoundNum;
 public:
-	SoundManager();
+	SoundManager(HopkinsEngine *vm);
 	~SoundManager();
-	void setParent(HopkinsEngine *vm);
 
 	void loadAnimSound();
 	void playAnimSound(int soundNumber);
diff --git a/engines/hopkins/talk.cpp b/engines/hopkins/talk.cpp
index 6c6c543..785c101 100644
--- a/engines/hopkins/talk.cpp
+++ b/engines/hopkins/talk.cpp
@@ -293,7 +293,7 @@ int TalkManager::dialogQuestion(bool animatedFl) {
 			loopCond = false;
 	} while (!_vm->shouldQuit() && !loopCond);
 
-	_vm->_soundManager.mixVoice(retVal, 1);
+	_vm->_soundManager->mixVoice(retVal, 1);
 	_vm->_fontManager->hideText(5);
 	_vm->_fontManager->hideText(6);
 	_vm->_fontManager->hideText(7);
@@ -379,12 +379,12 @@ int TalkManager::dialogAnswer(int idx, bool animatedFl) {
 	}
 
 	bool displayedTxtFl = false;
-	if (!_vm->_soundManager._textOffFl) {
+	if (!_vm->_soundManager->_textOffFl) {
 		_vm->_fontManager->initTextBuffers(9, mesgId, _answersFilename, mesgPosX, mesgPosY, 5, mesgLength, 252);
 		_vm->_fontManager->showText(9);
 		displayedTxtFl = true;
 	}
-	if (!_vm->_soundManager.mixVoice(mesgId, 1, displayedTxtFl)) {
+	if (!_vm->_soundManager->mixVoice(mesgId, 1, displayedTxtFl)) {
 		_vm->_eventsManager->_curMouseButton = 0;
 		_vm->_eventsManager->_mouseButton = 0;
 
@@ -403,7 +403,7 @@ int TalkManager::dialogAnswer(int idx, bool animatedFl) {
 		}
 	}
 
-	if (!_vm->_soundManager._textOffFl)
+	if (!_vm->_soundManager->_textOffFl)
 		_vm->_fontManager->hideText(9);
 	if (animatedFl) {
 		uint16 *bufPtr = (uint16 *)_characterBuffer + 43;
@@ -879,7 +879,7 @@ void TalkManager::REPONSE2(int zone, int verb) {
 		_vm->_objectsManager->stopBobAnimation(3);
 		_vm->_objectsManager->stopBobAnimation(4);
 		_vm->_objectsManager->setBobAnimation(6);
-		_vm->_soundManager.playSample(1);
+		_vm->_soundManager->playSample(1);
 		_vm->_objectsManager->SPACTION1(_vm->_objectsManager->_forestSprite, "13,14,15,14,13,12,13,14,15,16,-1,", 4);
 		do
 			_vm->_eventsManager->refreshScreenAndEvents();
@@ -927,7 +927,7 @@ void TalkManager::REPONSE2(int zone, int verb) {
 		_vm->_objectsManager->stopBobAnimation(1);
 		_vm->_objectsManager->stopBobAnimation(2);
 		_vm->_objectsManager->setBobAnimation(5);
-		_vm->_soundManager.playSample(1);
+		_vm->_soundManager->playSample(1);
 		_vm->_objectsManager->SPACTION1(_vm->_objectsManager->_forestSprite, "13,14,15,14,13,12,13,14,15,16,-1,", 4);
 		do
 			_vm->_eventsManager->refreshScreenAndEvents();






More information about the Scummvm-git-logs mailing list