diff options
author | Sven Hesse | 2012-01-28 18:03:00 +0100 |
---|---|---|
committer | Sven Hesse | 2012-01-28 18:03:00 +0100 |
commit | 60306c40ac8ec733fb7ec45ea61f91de245ab02e (patch) | |
tree | c11fbf714bb8da2e96cc29940764383614b1f8fa /engines/gob/minigames/geisha/oko.cpp | |
parent | 7650fca0405f62e62bdf81cb9f2acd8e7f14ca69 (diff) | |
download | scummvm-rg350-60306c40ac8ec733fb7ec45ea61f91de245ab02e.tar.gz scummvm-rg350-60306c40ac8ec733fb7ec45ea61f91de245ab02e.tar.bz2 scummvm-rg350-60306c40ac8ec733fb7ec45ea61f91de245ab02e.zip |
GOB: If there's no air left, Oko dies
Diffstat (limited to 'engines/gob/minigames/geisha/oko.cpp')
-rw-r--r-- | engines/gob/minigames/geisha/oko.cpp | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/engines/gob/minigames/geisha/oko.cpp b/engines/gob/minigames/geisha/oko.cpp index 23f460fdba..c9d4d1f43f 100644 --- a/engines/gob/minigames/geisha/oko.cpp +++ b/engines/gob/minigames/geisha/oko.cpp @@ -29,12 +29,15 @@ namespace Gob { namespace Geisha { enum kOkoAnimation { - kOkoAnimationEnter = 0, - kOkoAnimationSwim = 1, - kOkoAnimationSink = 8, - kOkoAnimationRaise = 7, - kOkoAnimationBreathe = 2, - kOkoAnimationPick = 3 + kOkoAnimationEnter = 0, + kOkoAnimationSwim = 1, + kOkoAnimationSink = 8, + kOkoAnimationRaise = 7, + kOkoAnimationBreathe = 2, + kOkoAnimationPick = 3, + kOkoAnimationDie0 = 17, + kOkoAnimationDie1 = 18, + kOkoAnimationDie2 = 19 }; static const int16 kOkoPositionX = 110; @@ -56,6 +59,11 @@ Oko::~Oko() { void Oko::advance() { bool wasLastFrame = lastFrame(); + if ((_state == kStateDead) && wasLastFrame) { + setPause(true); + return; + } + ANIObject::advance(); switch (_state) { @@ -127,6 +135,14 @@ void Oko::raise() { _level--; } +void Oko::die() { + if (_state != kStateSwim) + return; + + setAnimation(kOkoAnimationDie0 + _level); + _state = kStateDead; +} + Oko::State Oko::getState() const { return _state; } |