aboutsummaryrefslogtreecommitdiff
path: root/saga/sprite.cpp
diff options
context:
space:
mode:
authorAndrew Kurushin2004-12-18 16:08:59 +0000
committerAndrew Kurushin2004-12-18 16:08:59 +0000
commit1724d009628f169ccb9bbfc94bd72e5301169fc8 (patch)
tree7da64f4c668df500a3f26fb663d5376149440cb2 /saga/sprite.cpp
parentc195ae0e74fee2d7e22b8df68eae20073abd139b (diff)
downloadscummvm-rg350-1724d009628f169ccb9bbfc94bd72e5301169fc8.tar.gz
scummvm-rg350-1724d009628f169ccb9bbfc94bd72e5301169fc8.tar.bz2
scummvm-rg350-1724d009628f169ccb9bbfc94bd72e5301169fc8.zip
sprite loading fix in win demo
svn-id: r16119
Diffstat (limited to 'saga/sprite.cpp')
-rw-r--r--saga/sprite.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/saga/sprite.cpp b/saga/sprite.cpp
index 0e0645d2dc..a95e61aaea 100644
--- a/saga/sprite.cpp
+++ b/saga/sprite.cpp
@@ -73,19 +73,22 @@ int Sprite::loadList(int resource_num, SPRITELIST **sprite_list_p) {
uint16 sprite_count;
uint16 i;
- new_slist = (SPRITELIST *)malloc(sizeof *new_slist);
- if (new_slist == NULL) {
- return MEM;
- }
-
if (RSC_LoadResource(_spriteContext, resource_num, &spritelist_data, &spritelist_len) != SUCCESS) {
return FAILURE;
}
+ if (spritelist_len == 0)
+ return FAILURE;
+
MemoryReadStreamEndian readS(spritelist_data, spritelist_len, IS_BIG_ENDIAN);
sprite_count = readS.readUint16();
+ new_slist = (SPRITELIST *)malloc(sizeof *new_slist);
+ if (new_slist == NULL) {
+ return MEM;
+ }
+
new_slist->sprite_count = sprite_count;
new_slist->offset_list = (SPRITELIST_OFFSET *)malloc(sprite_count * sizeof *new_slist->offset_list);