From 411fd102b679cc916956d4ac93ae9e87e13082d4 Mon Sep 17 00:00:00 2001 From: Andrew Kurushin Date: Wed, 8 Jun 2005 19:01:19 +0000 Subject: fix animation free bug svn-id: r18367 --- saga/animation.cpp | 18 ++++-------------- 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); -- cgit v1.2.3