diff options
author | Andrew Kurushin | 2004-12-18 16:08:59 +0000 |
---|---|---|
committer | Andrew Kurushin | 2004-12-18 16:08:59 +0000 |
commit | 1724d009628f169ccb9bbfc94bd72e5301169fc8 (patch) | |
tree | 7da64f4c668df500a3f26fb663d5376149440cb2 /saga/sprite.cpp | |
parent | c195ae0e74fee2d7e22b8df68eae20073abd139b (diff) | |
download | scummvm-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.cpp | 13 |
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); |