diff options
Diffstat (limited to 'engines/fullpipe/modal.cpp')
-rw-r--r-- | engines/fullpipe/modal.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/engines/fullpipe/modal.cpp b/engines/fullpipe/modal.cpp index bade31828d..95ad86f695 100644 --- a/engines/fullpipe/modal.cpp +++ b/engines/fullpipe/modal.cpp @@ -180,10 +180,30 @@ bool ModalIntro::init(int counterdiff) { return true; } -bool ModalIntro::update() { - warning("STUB: ModalIntro::update()"); - - return true; +void ModalIntro::update() { + if (g_fullpipe->_currentScene) { + if (_introFlags & 1) { + //sceneFade(virt, g_currentScene, 1); + _needRedraw = 255; + _introFlags &= 0xfe; + + if (_introFlags & 0x20) + g_fullpipe->playSound(SND_INTR_019, 0); + } else if (_introFlags & 2) { + if (g_vars->sceneIntro_needBlackout) { + //vrtRectangle(*(_DWORD *)virt, 0, 0, 0, 800, 600); + g_vars->sceneIntro_needBlackout = 0; + _needRedraw = 0; + _introFlags &= 0xfd; + } else { + //sceneFade(virt, g_currentScene, 0); + _needRedraw = 0; + _introFlags &= 0xfd; + } + } else if (_needRedraw) { + g_fullpipe->_currentScene->draw(); + } + } } void ModalIntro::idle() { |