aboutsummaryrefslogtreecommitdiff
path: root/engines/sword2/sprite.cpp
diff options
context:
space:
mode:
authorFabio Battaglia2009-04-18 08:37:22 +0000
committerFabio Battaglia2009-04-18 08:37:22 +0000
commit0b2e06e4a4225a6ede1be4e9f6c09fe2cd4caf16 (patch)
treeb75afb3e841b313515da7497ef35f7b4564caea7 /engines/sword2/sprite.cpp
parent5cd22613822797a7405ae60c35a7ccae4196b9b1 (diff)
downloadscummvm-rg350-0b2e06e4a4225a6ede1be4e9f6c09fe2cd4caf16.tar.gz
scummvm-rg350-0b2e06e4a4225a6ede1be4e9f6c09fe2cd4caf16.tar.bz2
scummvm-rg350-0b2e06e4a4225a6ede1be4e9f6c09fe2cd4caf16.zip
sword2: add support for BS2 PSX demo
svn-id: r39977
Diffstat (limited to 'engines/sword2/sprite.cpp')
-rw-r--r--engines/sword2/sprite.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/sword2/sprite.cpp b/engines/sword2/sprite.cpp
index 52ed0efbd0..2474293500 100644
--- a/engines/sword2/sprite.cpp
+++ b/engines/sword2/sprite.cpp
@@ -527,6 +527,10 @@ int32 Screen::drawSprite(SpriteInfo *s) {
decompData = decompressHIF(s->data, tempBuf);
+ // Check that we correctly decompressed data
+ if(!decompData)
+ return RDERR_DECOMPRESSION;
+
s->w = (decompData / (s->h / 2)) * 2;
byte *tempBuf2 = (byte *)malloc(s->w * s->h * 10);
memset(tempBuf2, 0, s->w * s->h * 2);
@@ -562,6 +566,11 @@ int32 Screen::drawSprite(SpriteInfo *s) {
} else {
byte *tempBuf = (byte *)malloc(s->w * s->h);
uint32 decompData = decompressHIF(s->data, tempBuf);
+
+ // Check that we correctly decompressed data
+ if(!decompData)
+ return RDERR_DECOMPRESSION;
+
s->w = (decompData / (s->h / 2));
sprite = (byte *)malloc(s->w * s->h);