diff options
author | Andrew Kurushin | 2005-06-08 19:01:19 +0000 |
---|---|---|
committer | Andrew Kurushin | 2005-06-08 19:01:19 +0000 |
commit | 411fd102b679cc916956d4ac93ae9e87e13082d4 (patch) | |
tree | aac78d0ddcc3babfe601c396c376a88db09a762d /saga | |
parent | 8c82d94c4072b76b48cd5ec08aefddc7e2fce702 (diff) | |
download | scummvm-rg350-411fd102b679cc916956d4ac93ae9e87e13082d4.tar.gz scummvm-rg350-411fd102b679cc916956d4ac93ae9e87e13082d4.tar.bz2 scummvm-rg350-411fd102b679cc916956d4ac93ae9e87e13082d4.zip |
fix animation free bug
svn-id: r18367
Diffstat (limited to 'saga')
-rw-r--r-- | saga/animation.cpp | 18 | ||||
-rw-r--r-- | saga/animation.h | 2 |
2 files changed, 5 insertions, 15 deletions
diff --git a/saga/animation.cpp b/saga/animation.cpp index 963bb11faa..6bc97b5be7 100644 --- a/saga/animation.cpp +++ b/saga/animation.cpp @@ -333,12 +333,9 @@ int Anim::reset() { uint16 i; for (i = 0; i < MAX_ANIMATIONS; i++) { - freeId(i); } - _anim_count = 0; - return SUCCESS; } @@ -402,28 +399,21 @@ int16 Anim::getCurrentFrame(uint16 animId) { return _anim_tbl[animId]->current_frame; } -int Anim::freeId(uint16 anim_id) { +void Anim::freeId(uint16 animId) { ANIMATION *anim; - if (anim_id > _anim_count) { - return FAILURE; - } - - anim = _anim_tbl[anim_id]; + anim = _anim_tbl[animId]; if (anim == NULL) { - return FAILURE; + return; } if (_vm->getGameType() == GType_ITE) { free(anim->frame_offsets); - anim->frame_offsets = NULL; } free(anim); - _anim_tbl[anim_id] = NULL; + _anim_tbl[animId] = NULL; _anim_count--; - - return SUCCESS; } void Anim::readAnimHeader(MemoryReadStreamEndian &readS, ANIMATION_HEADER &ah) { diff --git a/saga/animation.h b/saga/animation.h index 5f990545b1..2c8b0abc6d 100644 --- a/saga/animation.h +++ b/saga/animation.h @@ -108,7 +108,7 @@ public: ~Anim(void); int load(const byte *anim_resdata, size_t anim_resdata_len, uint16 *anim_id_p); - int freeId(uint16 anim_id); + void freeId(uint16 animId); int play(uint16 anim_id, int vector_time, bool playing = true); int link(int16 anim_id1, int16 anim_id2); int setFlag(uint16 anim_id, uint16 flag); |