diff options
author | lukaslw | 2014-07-25 02:03:02 +0200 |
---|---|---|
committer | lukaslw | 2014-07-25 02:03:02 +0200 |
commit | 92647962885ec85919a79cb1b58e01275206b495 (patch) | |
tree | c48b326c481de7a900c9a239d780761e715f7ed4 | |
parent | 09570f8dfa6f1ddbee324bc7a8ca30c4233972c5 (diff) | |
download | scummvm-rg350-92647962885ec85919a79cb1b58e01275206b495.tar.gz scummvm-rg350-92647962885ec85919a79cb1b58e01275206b495.tar.bz2 scummvm-rg350-92647962885ec85919a79cb1b58e01275206b495.zip |
PRINCE: showHero(), heroMoveGotIt() - frames counting fix
-rw-r--r-- | engines/prince/animation.cpp | 2 | ||||
-rw-r--r-- | engines/prince/hero.cpp | 18 |
2 files changed, 12 insertions, 8 deletions
diff --git a/engines/prince/animation.cpp b/engines/prince/animation.cpp index adf96b5f00..ac0d0585e1 100644 --- a/engines/prince/animation.cpp +++ b/engines/prince/animation.cpp @@ -57,7 +57,7 @@ void Animation::clear() { } } -// AH_ID +// AH_ID - TODO - if need this fix endianess bool Animation::testId() const { char id[2]; id[0] = (char)READ_LE_UINT16(_data); diff --git a/engines/prince/hero.cpp b/engines/prince/hero.cpp index 9df795e69c..5edbed5df7 100644 --- a/engines/prince/hero.cpp +++ b/engines/prince/hero.cpp @@ -776,7 +776,7 @@ void Hero::showHero() { if (_moveSet[_turnAnim] != nullptr) { // only in bear form _moveSetType = _turnAnim; - if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 1) { + if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 2) { _phase += 2; } else { _state = STAY; @@ -792,7 +792,7 @@ void Hero::showHero() { if (_moveSet[_turnAnim] != nullptr) { // only in bear form _moveSetType = _turnAnim; - if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 1) { + if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 2) { _phase += 2; } else { _state = MOVE; @@ -833,7 +833,7 @@ void Hero::showHero() { if (_moveSet[_turnAnim] != nullptr) { // only in bear form _moveSetType = _turnAnim; - if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 1) { + if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 2) { _phase += 2; break; } else { @@ -931,14 +931,18 @@ void Hero::heroMoveGotIt(int x, int y, int dir) { break; } - if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 1) { - if (_vm->_flags->getFlagValue(Flags::HEROFAST) || _state == RUN) { + if (_vm->_flags->getFlagValue(Flags::HEROFAST) || _state == RUN) { + if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 2) { _phase += 2; } else { - _phase++; + _phase = 0; } } else { - _phase = 0; + if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 1) { + _phase++; + } else { + _phase = 0; + } } _step = kStepLeftRight; |