aboutsummaryrefslogtreecommitdiff
path: root/engines/toon/drew.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/toon/drew.cpp')
-rw-r--r--engines/toon/drew.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/engines/toon/drew.cpp b/engines/toon/drew.cpp
index 36ca17dd70..eefb4b8efa 100644
--- a/engines/toon/drew.cpp
+++ b/engines/toon/drew.cpp
@@ -33,6 +33,7 @@ CharacterDrew::CharacterDrew(ToonEngine *vm) : Character(vm) {
_animationInstance = vm->getAnimationManager()->createNewInstance(kAnimationCharacter);
_animationInstance->setUseMask(true);
vm->getAnimationManager()->addInstance(_animationInstance);
+ _currentScale = 1024;
}
CharacterDrew::~CharacterDrew() {
@@ -104,6 +105,15 @@ void CharacterDrew::playWalkAnim(int32 start, int32 end) {
void CharacterDrew::update(int32 timeIncrement) {
debugC(5, kDebugCharacter, "update(%d)", timeIncrement);
Character::update(timeIncrement);
+ if (_currentScale > _scale) {
+ _scale += timeIncrement * 2;
+ if (_scale > _currentScale)
+ _scale = _currentScale;
+ } else if (_currentScale < _scale) {
+ _scale -= timeIncrement * 2;
+ if (_scale < _currentScale)
+ _scale = _currentScale;
+ }
setPosition(_x, _y);
}
@@ -114,5 +124,11 @@ int32 CharacterDrew::getRandomIdleAnim() {
static const int32 idle[] = { 6, 9, 10, 11, 12 };
return idle[_vm->randRange(0, 4)];
}
+
+void CharacterDrew::resetScale()
+{
+ _scale = _currentScale;
+ setPosition(_x, _y);
+}
} // End of namespace Toon