aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus/surface.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2012-10-16 22:16:32 -0400
committerMatthew Hoops2012-10-16 22:16:32 -0400
commitdc3facfc62ac794510d4c9c752deddd52cd70a8e (patch)
treee757a0b0c7df43c555ce4b713382297f57376f83 /engines/pegasus/surface.cpp
parentc645f7dc9334a34c4b48684297ceb17e3595b827 (diff)
downloadscummvm-rg350-dc3facfc62ac794510d4c9c752deddd52cd70a8e.tar.gz
scummvm-rg350-dc3facfc62ac794510d4c9c752deddd52cd70a8e.tar.bz2
scummvm-rg350-dc3facfc62ac794510d4c9c752deddd52cd70a8e.zip
PEGASUS: Improve error messages when failing to load PICT images
Diffstat (limited to 'engines/pegasus/surface.cpp')
-rw-r--r--engines/pegasus/surface.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/engines/pegasus/surface.cpp b/engines/pegasus/surface.cpp
index e9e0958f9d..cdcb3c6e79 100644
--- a/engines/pegasus/surface.cpp
+++ b/engines/pegasus/surface.cpp
@@ -85,7 +85,8 @@ void Surface::getImageFromPICTFile(const Common::String &fileName) {
if (!pict.open(fileName))
error("Could not open picture '%s'", fileName.c_str());
- getImageFromPICTStream(&pict);
+ if (!getImageFromPICTStream(&pict))
+ error("Failed to load PICT '%s'", fileName.c_str());
}
void Surface::getImageFromPICTResource(Common::MacResManager *resFork, uint16 id) {
@@ -93,19 +94,22 @@ void Surface::getImageFromPICTResource(Common::MacResManager *resFork, uint16 id
if (!res)
error("Could not open PICT resource %d from '%s'", id, resFork->getBaseFileName().c_str());
- getImageFromPICTStream(res);
+ if (!getImageFromPICTStream(res))
+ error("Failed to load PICT resource %d from '%s'", id, resFork->getBaseFileName().c_str());
+
delete res;
}
-void Surface::getImageFromPICTStream(Common::SeekableReadStream *stream) {
+bool Surface::getImageFromPICTStream(Common::SeekableReadStream *stream) {
Graphics::PICTDecoder pict;
if (!pict.loadStream(*stream))
- error("Failed to load PICT image");
+ return false;
_surface = pict.getSurface()->convertTo(g_system->getScreenFormat(), pict.getPalette());
_ownsSurface = true;
_bounds = Common::Rect(0, 0, _surface->w, _surface->h);
+ return true;
}
void Surface::getImageFromMovieFrame(Video::VideoDecoder *video, TimeValue time) {