diff options
author | Florian Kagerer | 2009-09-13 21:41:29 +0000 |
---|---|---|
committer | Florian Kagerer | 2009-09-13 21:41:29 +0000 |
commit | b73f9ab41ecada2a9971834e1ef1bb4c106cbec3 (patch) | |
tree | c138df774a5e83ed8a539161da5eccbc18cde8ad /engines/kyra/sound_towns.cpp | |
parent | 9cc0dc3d9126245afda5e3e3605ecdae18c84767 (diff) | |
download | scummvm-rg350-b73f9ab41ecada2a9971834e1ef1bb4c106cbec3.tar.gz scummvm-rg350-b73f9ab41ecada2a9971834e1ef1bb4c106cbec3.tar.bz2 scummvm-rg350-b73f9ab41ecada2a9971834e1ef1bb4c106cbec3.zip |
KYRA: - add sfx support for PC98-Version
svn-id: r44074
Diffstat (limited to 'engines/kyra/sound_towns.cpp')
-rw-r--r-- | engines/kyra/sound_towns.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/engines/kyra/sound_towns.cpp b/engines/kyra/sound_towns.cpp index fe0a44c052..0c67b1e83a 100644 --- a/engines/kyra/sound_towns.cpp +++ b/engines/kyra/sound_towns.cpp @@ -4069,12 +4069,25 @@ SoundPC98::~SoundPC98() { bool SoundPC98::init() { _driver = new TownsPC98_OpnDriver(_mixer, TownsPC98_OpnDriver::OD_TYPE26); - _sfxTrackData = _vm->resource()->fileData("se.dat", 0); - if (!_sfxTrackData) - return false; + return _driver->init(); } +void SoundPC98::loadSoundFile(Common::String file) { + if (_sfxTrackData) + delete _sfxTrackData; + + _sfxTrackData = _vm->resource()->fileData(file.c_str(), 0); +} + +void SoundPC98::loadSoundFile(const uint8 *data, int len) { + if (_sfxTrackData) + delete _sfxTrackData; + + _sfxTrackData = new uint8[len]; + memcpy(_sfxTrackData, data, len); +} + void SoundPC98::playTrack(uint8 track) { track += extraOffset(); @@ -4119,9 +4132,6 @@ void SoundPC98::playSoundEffect(uint8 track) { if (!_sfxTrackData) return; - // This has been disabled for now since I don't know - // how to make up the correct track number. It probably - // needs a map. _driver->loadSoundEffectData(_sfxTrackData, track); } |