aboutsummaryrefslogtreecommitdiff
path: root/engines/prince/prince.cpp
diff options
context:
space:
mode:
authorlukaslw2014-07-26 16:51:14 +0200
committerlukaslw2014-07-26 16:51:14 +0200
commit7c777e755c7b34e3e5da9f5f28e081a1a478da42 (patch)
tree636c18956e5c5c9f49342e77da9cc7bf05b97785 /engines/prince/prince.cpp
parente08a59ad5361d327f5c04ede44ab8fa3da733915 (diff)
downloadscummvm-rg350-7c777e755c7b34e3e5da9f5f28e081a1a478da42.tar.gz
scummvm-rg350-7c777e755c7b34e3e5da9f5f28e081a1a478da42.tar.bz2
scummvm-rg350-7c777e755c7b34e3e5da9f5f28e081a1a478da42.zip
PRINCE: showNormAnims() fix
Diffstat (limited to 'engines/prince/prince.cpp')
-rw-r--r--engines/prince/prince.cpp36
1 files changed, 17 insertions, 19 deletions
diff --git a/engines/prince/prince.cpp b/engines/prince/prince.cpp
index 5f6630f6a9..d1a142fab4 100644
--- a/engines/prince/prince.cpp
+++ b/engines/prince/prince.cpp
@@ -1412,12 +1412,6 @@ void PrinceEngine::showNormAnims() {
} else {
continue;
}
- } else {
- if (anim._frame >= 1) {
- anim._frame--;
- } else {
- anim._frame = 0;
- }
}
} else {
anim._frame++;
@@ -1522,8 +1516,14 @@ void PrinceEngine::showBackAnims() {
void PrinceEngine::removeSingleBackAnim(int slot) {
if (!_backAnimList[slot].backAnims.empty()) {
for (uint j = 0; j < _backAnimList[slot].backAnims.size(); j++) {
- delete _backAnimList[slot].backAnims[j]._animData;
- delete _backAnimList[slot].backAnims[j]._shadowData;
+ if (_backAnimList[slot].backAnims[j]._animData != nullptr) {
+ delete _backAnimList[slot].backAnims[j]._animData;
+ _backAnimList[slot].backAnims[j]._animData = nullptr;
+ }
+ if (_backAnimList[slot].backAnims[j]._shadowData != nullptr) {
+ delete _backAnimList[slot].backAnims[j]._shadowData;
+ _backAnimList[slot].backAnims[j]._shadowData = nullptr;
+ }
}
_backAnimList[slot].backAnims.clear();
_backAnimList[slot]._seq._currRelative = 0;
@@ -2935,21 +2935,19 @@ void PrinceEngine::doTalkAnim(int animNumber, int slot, AnimType animType) {
void PrinceEngine::freeNormAnim(int slot) {
_normAnimList[slot]._state = 1;
- delete _normAnimList[slot]._animData;
- _normAnimList[slot]._animData = nullptr;
- delete _normAnimList[slot]._shadowData;
- _normAnimList[slot]._shadowData = nullptr;
- _normAnimList[slot]._currFrame = 0;
+ if (_normAnimList[slot]._animData != nullptr) {
+ delete _normAnimList[slot]._animData;
+ _normAnimList[slot]._animData = nullptr;
+ }
+ if (_normAnimList[slot]._shadowData != nullptr) {
+ delete _normAnimList[slot]._shadowData;
+ _normAnimList[slot]._shadowData = nullptr;
+ }
}
void PrinceEngine::freeAllNormAnims() {
for (int i = 0; i < kMaxNormAnims; i++) {
- if (_normAnimList[i]._animData != nullptr) {
- delete _normAnimList[i]._animData;
- }
- if (_normAnimList[i]._shadowData != nullptr) {
- delete _normAnimList[i]._shadowData;
- }
+ freeNormAnim(i);
}
_normAnimList.clear();
}