diff options
| -rw-r--r-- | engines/tony/tony.cpp | 28 | 
1 files changed, 25 insertions, 3 deletions
| diff --git a/engines/tony/tony.cpp b/engines/tony/tony.cpp index 081556572a..ec2ee49ba2 100644 --- a/engines/tony/tony.cpp +++ b/engines/tony/tony.cpp @@ -54,6 +54,7 @@ TonyEngine::TonyEngine(OSystem *syst, const TonyGameDescription *gameDesc) : Eng  	SearchMan.addSubDirectoryMatching(gameDataDir, "Voices");  	SearchMan.addSubDirectoryMatching(gameDataDir, "Roasted");  	SearchMan.addSubDirectoryMatching(gameDataDir, "Music"); +	SearchMan.addSubDirectoryMatching(gameDataDir, "Music/utilsfx");  	// Set up load slot number  	_initialLoadSlotNumber = -1; @@ -355,15 +356,36 @@ FPSfx *TonyEngine::createSFX(Common::SeekableReadStream *stream) {  }  void TonyEngine::preloadUtilSFX(int nChannel, const char *fn) { -	// No preloading is needed in ScummVM +	if (_utilSfx[nChannel] != NULL) { +		_utilSfx[nChannel]->stop(); +		_utilSfx[nChannel]->release(); +		_utilSfx[nChannel] = NULL; +	} + +	_theSound.createSfx(&_utilSfx[nChannel]); + +	_utilSfx[nChannel]->loadFile(fn, FPCODEC_ADPCM); +	_utilSfx[nChannel]->setVolume(63);  }  void TonyEngine::unloadAllSFX() { -	// No preloading is needed in ScummVM +	for (int i = 0; i < MAX_SFX_CHANNELS; i++) { +		if (_sfx[i] != NULL) { +			_sfx[i]->stop(); +			_sfx[i]->release(); +			_sfx[i] = NULL; +		} +	}  }  void TonyEngine::unloadAllUtilSFX() { -	// No preloading is needed in ScummVM +	for (int i = 0; i < MAX_SFX_CHANNELS; i++) { +		if (_utilSfx[i] != NULL) { +			_utilSfx[i]->stop(); +			_utilSfx[i]->release(); +			_utilSfx[i] = NULL; +		} +	}  }  void TonyEngine::initMusic() { | 
