diff options
author | lukaslw | 2014-07-26 16:51:14 +0200 |
---|---|---|
committer | lukaslw | 2014-07-26 16:51:14 +0200 |
commit | 7c777e755c7b34e3e5da9f5f28e081a1a478da42 (patch) | |
tree | 636c18956e5c5c9f49342e77da9cc7bf05b97785 /engines/prince | |
parent | e08a59ad5361d327f5c04ede44ab8fa3da733915 (diff) | |
download | scummvm-rg350-7c777e755c7b34e3e5da9f5f28e081a1a478da42.tar.gz scummvm-rg350-7c777e755c7b34e3e5da9f5f28e081a1a478da42.tar.bz2 scummvm-rg350-7c777e755c7b34e3e5da9f5f28e081a1a478da42.zip |
PRINCE: showNormAnims() fix
Diffstat (limited to 'engines/prince')
-rw-r--r-- | engines/prince/prince.cpp | 36 |
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(); } |