aboutsummaryrefslogtreecommitdiff
path: root/saga
diff options
context:
space:
mode:
authorAndrew Kurushin2005-06-08 19:01:19 +0000
committerAndrew Kurushin2005-06-08 19:01:19 +0000
commit411fd102b679cc916956d4ac93ae9e87e13082d4 (patch)
treeaac78d0ddcc3babfe601c396c376a88db09a762d /saga
parent8c82d94c4072b76b48cd5ec08aefddc7e2fce702 (diff)
downloadscummvm-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.cpp18
-rw-r--r--saga/animation.h2
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);