diff options
author | lukaslw | 2014-08-04 12:02:00 +0200 |
---|---|---|
committer | lukaslw | 2014-08-04 12:02:00 +0200 |
commit | c3a3bdebd729be66210e7099fa696676139188e0 (patch) | |
tree | c8ff6abd6039b26a4c4a3f1a0a041f9d2b289ad3 | |
parent | 85f4c2ccd2079b75c3c2d18b5b6ced7c37b14746 (diff) | |
download | scummvm-rg350-c3a3bdebd729be66210e7099fa696676139188e0.tar.gz scummvm-rg350-c3a3bdebd729be66210e7099fa696676139188e0.tar.bz2 scummvm-rg350-c3a3bdebd729be66210e7099fa696676139188e0.zip |
PRINCE: showHero() update
-rw-r--r-- | engines/prince/hero.cpp | 33 | ||||
-rw-r--r-- | engines/prince/hero.h | 1 |
2 files changed, 12 insertions, 22 deletions
diff --git a/engines/prince/hero.cpp b/engines/prince/hero.cpp index 993665d833..e3493c4966 100644 --- a/engines/prince/hero.cpp +++ b/engines/prince/hero.cpp @@ -42,7 +42,7 @@ Hero::Hero(PrinceEngine *vm, GraphicsMan *graph) : _vm(vm), _graph(graph), _shadZoomFactor(0), _shadScaleValue(0), _shadLineLen(0), _shadDrawX(0), _shadDrawY(0), _frameXSize(0), _frameYSize(0), _scaledFrameXSize(0), _scaledFrameYSize(0), _color(0), _coords(nullptr), _dirTab(nullptr), _currCoords(nullptr), _currDirTab(nullptr), _step(0), - _maxBoredom(200), _turnAnim(0), _leftRightMainDir(0), _upDownMainDir(0), _animSetNr(0) + _maxBoredom(200), _leftRightMainDir(0), _upDownMainDir(0), _animSetNr(0) { _shadowLine = (byte *)malloc(kShadowLineArraySize); } @@ -737,7 +737,7 @@ void Hero::showHero() { int rotateDir = rotateHero(_lastDirection, _destDirection); _lastDirection = _destDirection; if (rotateDir) { - _turnAnim = rotateDir; + _moveSetType = rotateDir; _state = kHeroStateTran; } else { _state = kHeroStateStay; @@ -750,9 +750,8 @@ void Hero::showHero() { } if (_state == kHeroStateTran) { - if (_moveSet[_turnAnim] != nullptr) { + if (_moveSet[_moveSetType] != nullptr) { // only in bear form - _moveSetType = _turnAnim; if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 2) { _phase += 2; } else { @@ -766,9 +765,8 @@ void Hero::showHero() { } if (_state == kHeroStateMvan) { - if (_moveSet[_turnAnim] != nullptr) { + if (_moveSet[_moveSetType] != nullptr) { // only in bear form - _moveSetType = _turnAnim; if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 2) { _phase += 2; } else { @@ -802,26 +800,19 @@ void Hero::showHero() { _phase = 0; int rotateDir = rotateHero(_lastDirection, dir); _lastDirection = dir; - if (!rotateDir) { - continue; - } else { - _turnAnim = rotateDir; + if (_moveSet[rotateDir] != nullptr) { + // only in bear form _state = kHeroStateMvan; - if (_moveSet[_turnAnim] != nullptr) { - // only in bear form - _moveSetType = _turnAnim; - if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 2) { - _phase += 2; - break; - } else { - _turnAnim = 0; - _state = kHeroStateMove; - continue; - } + _moveSetType = rotateDir; + if (_phase < _moveSet[_moveSetType]->getPhaseCount() - 2) { + _phase += 2; + break; } else { _state = kHeroStateMove; continue; } + } else { + continue; } } //no_need_direction_change diff --git a/engines/prince/hero.h b/engines/prince/hero.h index 2e838cc9b3..743e09ac8d 100644 --- a/engines/prince/hero.h +++ b/engines/prince/hero.h @@ -180,7 +180,6 @@ public: int _color; // subtitles color uint32 _animSetNr; // number of animation set Common::Array<Animation *> _moveSet; // MoveAnims MoveSet - int16 _turnAnim; byte *_shadowLine; uint32 _moveDelay; |