From b73f9ab41ecada2a9971834e1ef1bb4c106cbec3 Mon Sep 17 00:00:00 2001 From: Florian Kagerer Date: Sun, 13 Sep 2009 21:41:29 +0000 Subject: KYRA: - add sfx support for PC98-Version svn-id: r44074 --- engines/kyra/sound_towns.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'engines/kyra/sound_towns.cpp') 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); } -- cgit v1.2.3