[Scummvm-cvs-logs] scummvm master -> 9694cbbaafcd7d043edb5755df5cc5dda18a5d16
wjp
wjp at usecode.org
Sat Apr 20 16:19:39 CEST 2013
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
09fc458f15 SCI: Report sound stream loading errors
9694cbbaaf SCI: Fix resource type range checks
Commit: 09fc458f15bdd320cb8d112ac1fd23a45156bd1d
https://github.com/scummvm/scummvm/commit/09fc458f15bdd320cb8d112ac1fd23a45156bd1d
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2013-04-20T07:13:41-07:00
Commit Message:
SCI: Report sound stream loading errors
Changed paths:
engines/sci/sound/audio.cpp
diff --git a/engines/sci/sound/audio.cpp b/engines/sci/sound/audio.cpp
index 528bb51..8f405b0 100644
--- a/engines/sci/sound/audio.cpp
+++ b/engines/sci/sound/audio.cpp
@@ -324,7 +324,10 @@ Audio::RewindableAudioStream *AudioPlayer::getAudioStream(uint32 number, uint32
// Calculate samplelen from WAVE header
int waveSize = 0, waveRate = 0;
byte waveFlags = 0;
- Audio::loadWAVFromStream(*waveStream, waveSize, waveRate, waveFlags);
+ bool ret = Audio::loadWAVFromStream(*waveStream, waveSize, waveRate, waveFlags);
+ if (!ret)
+ error("Failed to load WAV from stream");
+
*sampleLen = (waveFlags & Audio::FLAG_16BITS ? waveSize >> 1 : waveSize) * 60 / waveRate;
waveStream->seek(0, SEEK_SET);
@@ -336,7 +339,10 @@ Audio::RewindableAudioStream *AudioPlayer::getAudioStream(uint32 number, uint32
// Calculate samplelen from AIFF header
int waveSize = 0, waveRate = 0;
byte waveFlags = 0;
- Audio::loadAIFFFromStream(*waveStream, waveSize, waveRate, waveFlags);
+ bool ret = Audio::loadAIFFFromStream(*waveStream, waveSize, waveRate, waveFlags);
+ if (!ret)
+ error("Failed to load AIFF from stream");
+
*sampleLen = (waveFlags & Audio::FLAG_16BITS ? waveSize >> 1 : waveSize) * 60 / waveRate;
waveStream->seek(0, SEEK_SET);
@@ -347,6 +353,9 @@ Audio::RewindableAudioStream *AudioPlayer::getAudioStream(uint32 number, uint32
Common::SeekableReadStream *sndStream = new Common::MemoryReadStream(audioRes->data, audioRes->size, DisposeAfterUse::NO);
audioSeekStream = Audio::makeMacSndStream(sndStream, DisposeAfterUse::YES);
+ if (!audioSeekStream)
+ error("Failed to load Mac sound stream");
+
} else {
// SCI1 raw audio
size = audioRes->size;
Commit: 9694cbbaafcd7d043edb5755df5cc5dda18a5d16
https://github.com/scummvm/scummvm/commit/9694cbbaafcd7d043edb5755df5cc5dda18a5d16
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2013-04-20T07:17:49-07:00
Commit Message:
SCI: Fix resource type range checks
Changed paths:
engines/sci/resource.cpp
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index 1da0c5d..d14c965 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -158,24 +158,24 @@ static const ResourceType s_resTypeMapSci21[] = {
ResourceType ResourceManager::convertResType(byte type) {
type &= 0x7f;
- if (_mapVersion < kResVersionSci2) {
+ bool forceSci0 = false;
+
+ // LSL6 hires doesn't have the chunk resource type, to match
+ // the resource types of the lowres version, thus we use the
+ // older resource types here.
+ // PQ4 CD and QFG4 CD are SCI2.1, but use the resource types of the
+ // corresponding SCI2 floppy disk versions.
+ if (g_sci && (g_sci->getGameId() == GID_LSL6HIRES ||
+ g_sci->getGameId() == GID_QFG4 || g_sci->getGameId() == GID_PQ4))
+ forceSci0 = true;
+
+ if (_mapVersion < kResVersionSci2 || forceSci0) {
// SCI0 - SCI2
if (type < ARRAYSIZE(s_resTypeMapSci0))
return s_resTypeMapSci0[type];
} else {
- // SCI2.1+
- if (type < ARRAYSIZE(s_resTypeMapSci21)) {
- // LSL6 hires doesn't have the chunk resource type, to match
- // the resource types of the lowres version, thus we use the
- // older resource types here.
- // PQ4 CD and QFG4 CD are SCI2.1, but use the resource types of the
- // corresponding SCI2 floppy disk versions.
- if (g_sci && (g_sci->getGameId() == GID_LSL6HIRES ||
- g_sci->getGameId() == GID_QFG4 || g_sci->getGameId() == GID_PQ4))
- return s_resTypeMapSci0[type];
- else
- return s_resTypeMapSci21[type];
- }
+ if (type < ARRAYSIZE(s_resTypeMapSci21))
+ return s_resTypeMapSci21[type];
}
return kResourceTypeInvalid;
More information about the Scummvm-git-logs
mailing list