aboutsummaryrefslogtreecommitdiff
path: root/engines/prince/hero.cpp
diff options
context:
space:
mode:
authorlukaslw2014-08-04 21:31:19 +0200
committerlukaslw2014-08-04 21:31:19 +0200
commit2bed872498c22fc21b2a993656802f0c81da2936 (patch)
tree866b936c73dd758518fb9c7def40540be1dc5dbc /engines/prince/hero.cpp
parentf36fbcb97fb012ae4baf99b2de1c9d8ce9ae048f (diff)
downloadscummvm-rg350-2bed872498c22fc21b2a993656802f0c81da2936.tar.gz
scummvm-rg350-2bed872498c22fc21b2a993656802f0c81da2936.tar.bz2
scummvm-rg350-2bed872498c22fc21b2a993656802f0c81da2936.zip
PRINCE: showHero() - special animations fix
Diffstat (limited to 'engines/prince/hero.cpp')
-rw-r--r--engines/prince/hero.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/engines/prince/hero.cpp b/engines/prince/hero.cpp
index e3493c4966..7bbd6c6599 100644
--- a/engines/prince/hero.cpp
+++ b/engines/prince/hero.cpp
@@ -200,6 +200,7 @@ void Hero::countDrawPosition() {
}
int phaseFrameIndex = heroAnim->getPhaseFrameIndex(_phase);
Graphics::Surface *heroSurface = heroAnim->getFrame(phaseFrameIndex);
+
_frameXSize = heroSurface->w;
_frameYSize = heroSurface->h;
_scaledFrameXSize = getScaledValue(_frameXSize);
@@ -647,17 +648,18 @@ void Hero::showHero() {
if (_phase < _specAnim->getPhaseCount() - 1) {
_phase++;
} else {
- _phase = 0;
- freeHeroAnim();
if (!_talkTime) {
_state = kHeroStateStay;
} else {
_state = kHeroStateTalk;
}
+ return;
}
} else {
_state = kHeroStateStay;
}
+ } else {
+ freeHeroAnim();
}
if (_state == kHeroStateTalk) {