aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche/ghostroom.cpp
diff options
context:
space:
mode:
authoruruk2014-02-08 18:07:51 +0100
committeruruk2014-02-08 18:07:51 +0100
commit5c9029c7319f3e5bbffb0aba51b6d1e7a739df09 (patch)
treee5626b50aa2e1710a751b42f7f807810b1b3f622 /engines/avalanche/ghostroom.cpp
parentbb596a5b1b6ee4737ac7161657f044a567fa620d (diff)
downloadscummvm-rg350-5c9029c7319f3e5bbffb0aba51b6d1e7a739df09.tar.gz
scummvm-rg350-5c9029c7319f3e5bbffb0aba51b6d1e7a739df09.tar.bz2
scummvm-rg350-5c9029c7319f3e5bbffb0aba51b6d1e7a739df09.zip
AVALANCHE: Finish GhostRoom's implementation.
Diffstat (limited to 'engines/avalanche/ghostroom.cpp')
-rw-r--r--engines/avalanche/ghostroom.cpp30
1 files changed, 26 insertions, 4 deletions
diff --git a/engines/avalanche/ghostroom.cpp b/engines/avalanche/ghostroom.cpp
index dc75fff3e9..a6d84df2ef 100644
--- a/engines/avalanche/ghostroom.cpp
+++ b/engines/avalanche/ghostroom.cpp
@@ -28,12 +28,14 @@
#include "avalanche/avalanche.h"
#include "avalanche/ghostroom.h"
+#include "common/random.h"
+
namespace Avalanche {
const int8 GhostRoom::kAdjustment[5] = { 7, 0, 7, 7, 7 };
const byte GhostRoom::kWaveOrder[5] = { 4, 0, 1, 2, 3 };
const byte GhostRoom::kGlerkFade[26] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1, 0 };
-const byte GhostRoom::kGreldetFade[18] = { 1, 2, 3, 4, 5, 6, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1 };
+const byte GhostRoom::kGreldetFade[18] = { 0, 1, 2, 3, 4, 5, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0 };
GhostRoom::GhostRoom(AvalancheEngine *vm) {
_vm = vm;
@@ -287,7 +289,7 @@ void GhostRoom::run() {
_vm->_graphics->refreshScreen();
// Avvy hurries back:
- _glerkStage = 1;
+ _glerkStage = 0;
_greldetCount = 18;
_redGreldet = false;
@@ -306,14 +308,34 @@ void GhostRoom::run() {
_vm->_graphics->drawDot(x + 22, 136, kColorBlack); // Eyes would leave a trail 1 pixel high behind them.
}
+ // Plot the Green Eyes:
+ if ((x % 53) == 5) {
+ bigGreenEyes(_glerkStage);
+ _glerkStage++;
+ }
+
+ // Plot the Greldet:
+
+ if (_greldetCount == 18) {
+ _greldetX = _vm->_rnd->getRandomNumber(599);
+ _greldetY = _vm->_rnd->getRandomNumber(79);
+ _greldetCount = 0;
+ _redGreldet = !_redGreldet;
+ }
+
+ _vm->_graphics->ghostDrawPicture(_greldet[kGreldetFade[_greldetCount]][_redGreldet], _greldetX, _greldetY);
+ _greldetCount++;
+
_vm->_graphics->refreshScreen();
wait(10);
}
- warning("STUB: run()");
-
CursorMan.showMouse(true);
+ _vm->_graphics->restoreScreen();
+ _vm->_graphics->removeBackup();
+ _vm->fadeOut();
+ _vm->fadeIn();
}
} // End of namespace Avalanche