aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/sound_towns.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2009-09-13 21:41:29 +0000
committerFlorian Kagerer2009-09-13 21:41:29 +0000
commitb73f9ab41ecada2a9971834e1ef1bb4c106cbec3 (patch)
treec138df774a5e83ed8a539161da5eccbc18cde8ad /engines/kyra/sound_towns.cpp
parent9cc0dc3d9126245afda5e3e3605ecdae18c84767 (diff)
downloadscummvm-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.cpp22
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);
}