aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFlorian Kagerer2009-11-29 12:18:42 +0000
committerFlorian Kagerer2009-11-29 12:18:42 +0000
commit4f841548759e6bd05303225f10ff2a88d661a8eb (patch)
treea7b4d7ba5c015ff1d48b2c9adc08eb1fbf3107f2 /engines
parente3d354f63c31cdb0e45970403877e8b71e6d101c (diff)
downloadscummvm-rg350-4f841548759e6bd05303225f10ff2a88d661a8eb.tar.gz
scummvm-rg350-4f841548759e6bd05303225f10ff2a88d661a8eb.tar.bz2
scummvm-rg350-4f841548759e6bd05303225f10ff2a88d661a8eb.zip
KYRA/PC98: fixed regression
svn-id: r46190
Diffstat (limited to 'engines')
-rw-r--r--engines/kyra/kyra_lok.cpp9
-rw-r--r--engines/kyra/sound.h7
-rw-r--r--engines/kyra/sound_adlib.h1
-rw-r--r--engines/kyra/sound_intern.h7
-rw-r--r--engines/kyra/sound_towns.cpp22
5 files changed, 26 insertions, 20 deletions
diff --git a/engines/kyra/kyra_lok.cpp b/engines/kyra/kyra_lok.cpp
index f578411724..14b18e9c19 100644
--- a/engines/kyra/kyra_lok.cpp
+++ b/engines/kyra/kyra_lok.cpp
@@ -197,10 +197,13 @@ Common::Error KyraEngine_LoK::init() {
if (!_sound->init())
error("Couldn't init sound");
- if (_flags.platform == Common::kPlatformPC98)
- _sound->loadSoundFile(k1PC98IntroSfx);
- else
+ if (_flags.platform == Common::kPlatformPC98) {
+ int sfxSize;
+ const uint8 *sfxData = _staticres->loadRawData(k1PC98IntroSfx, sfxSize);
+ _sound->loadSoundFile(sfxData, sfxSize);
+ } else {
_sound->loadSoundFile(0);
+ }
setupButtonData();
diff --git a/engines/kyra/sound.h b/engines/kyra/sound.h
index f04e96d6c9..98ca71f93d 100644
--- a/engines/kyra/sound.h
+++ b/engines/kyra/sound.h
@@ -108,6 +108,12 @@ public:
virtual void loadSoundFile(Common::String file) = 0;
/**
+ * Load static data for playing sound
+ * effects from.
+ */
+ virtual void loadSoundFile(const uint8 *soundData, int dataSize) = 0;
+
+ /**
* Load a sound file for playing sound
* effects from.
*/
@@ -268,6 +274,7 @@ public:
bool hasSoundFile(uint file) const { return _music->hasSoundFile(file) && _sfx->hasSoundFile(file); }
void loadSoundFile(uint file) { _music->loadSoundFile(file); _sfx->loadSoundFile(file); }
void loadSoundFile(Common::String file) { _music->loadSoundFile(file); _sfx->loadSoundFile(file); }
+ void loadSoundFile(const uint8 *soundData, int dataSize) { _sfx->loadSoundFile(soundData, dataSize); }
void loadSfxFile(Common::String file) { _sfx->loadSoundFile(file); }
diff --git a/engines/kyra/sound_adlib.h b/engines/kyra/sound_adlib.h
index d96eb5ab8f..25ef320dc5 100644
--- a/engines/kyra/sound_adlib.h
+++ b/engines/kyra/sound_adlib.h
@@ -72,6 +72,7 @@ public:
void loadSoundFile(uint file);
void loadSoundFile(Common::String file);
+ void loadSoundFile(const uint8 *soundData, int dataSize) {}
void playTrack(uint8 track);
void haltTrack();
diff --git a/engines/kyra/sound_intern.h b/engines/kyra/sound_intern.h
index f4aab4db29..6ff9fe6ef8 100644
--- a/engines/kyra/sound_intern.h
+++ b/engines/kyra/sound_intern.h
@@ -62,6 +62,7 @@ public:
void loadSoundFile(uint file);
void loadSoundFile(Common::String file);
+ void loadSoundFile(const uint8 *soundData, int dataSize) {}
void loadSfxFile(Common::String file);
void playTrack(uint8 track);
@@ -114,6 +115,7 @@ public:
void loadSoundFile(uint file);
void loadSoundFile(Common::String) {}
+ void loadSoundFile(const uint8 *soundData, int dataSize) {}
void playTrack(uint8 track);
void haltTrack();
@@ -170,8 +172,9 @@ public:
bool init();
void process() {}
- void loadSoundFile(uint file);
+ void loadSoundFile(uint file) {}
void loadSoundFile(Common::String file);
+ void loadSoundFile(const uint8 *soundData, int dataSize);
void playTrack(uint8 track);
void haltTrack();
@@ -199,6 +202,7 @@ public:
void loadSoundFile(uint file) {}
void loadSoundFile(Common::String file);
+ void loadSoundFile(const uint8 *soundData, int dataSize) {}
void playTrack(uint8 track);
void haltTrack();
@@ -306,6 +310,7 @@ public:
void process() {}
void loadSoundFile(uint file);
void loadSoundFile(Common::String) {}
+ void loadSoundFile(const uint8 *soundData, int dataSize) {}
void playTrack(uint8 track);
void haltTrack();
diff --git a/engines/kyra/sound_towns.cpp b/engines/kyra/sound_towns.cpp
index d30098d5f7..93969deaa0 100644
--- a/engines/kyra/sound_towns.cpp
+++ b/engines/kyra/sound_towns.cpp
@@ -4049,27 +4049,17 @@ bool SoundPC98::init() {
return _driver->init();
}
-void SoundPC98::loadSoundFile(uint file) {
- delete[] _sfxTrackData;
-
- int tmpSize;
- const uint8 *tmp = _vm->staticres()->loadRawData((int) file, tmpSize);
-
- if (!tmp) {
- warning("Failed to load static sound data with id %d.", file);
- _sfxTrackData = 0;
- return;
- }
-
- _sfxTrackData = new uint8[tmpSize];
- memcpy(_sfxTrackData, tmp, tmpSize);
-}
-
void SoundPC98::loadSoundFile(Common::String file) {
delete[] _sfxTrackData;
_sfxTrackData = _vm->resource()->fileData(file.c_str(), 0);
}
+void SoundPC98::loadSoundFile(const uint8 *soundData, int dataSize) {
+ delete[] _sfxTrackData;
+ _sfxTrackData = new uint8[dataSize];
+ memcpy(_sfxTrackData, soundData, dataSize);
+}
+
void SoundPC98::playTrack(uint8 track) {
track += extraOffset();