diff options
Diffstat (limited to 'engines/fullpipe/modal.cpp')
-rw-r--r-- | engines/fullpipe/modal.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/engines/fullpipe/modal.cpp b/engines/fullpipe/modal.cpp index 043f3b19ff..2c2252811d 100644 --- a/engines/fullpipe/modal.cpp +++ b/engines/fullpipe/modal.cpp @@ -195,6 +195,8 @@ bool ModalIntro::init(int counterdiff) { } void ModalIntro::update() { + warning("STUB: ModalIntro::update()"); + if (g_fp->_currentScene) { if (_introFlags & 1) { //sceneFade(virt, g_currentScene, 1); @@ -687,6 +689,72 @@ ModalCredits::~ModalCredits() { g_fp->_sfxVolume = _sfxVolume; } +bool ModalCredits::handleMessage(ExCommand *cmd) { + if (cmd->_messageKind == 17 && cmd->_messageNum == 36 && cmd->_keyCode == 27) { + _fadeIn = false; + + return true; + } + + return false; +} + +bool ModalCredits::init(int counterdiff) { + if (_fadeIn || _fadeOut) { + _countdown--; + + if (_countdown < 0) + _fadeIn = false; + + _creditsPic->setOXY(_currX, _currY); + + if (_currY > _maxY) + _currY -= 2; + } else { + if (_parentObj) + return 0; + + ModalMainMenu *menu = new ModalMainMenu; + + g_fp->_modalObject = menu; + + menu->_field_34 = 1; + } + + return true; +} + +void ModalCredits::update() { + warning("STUB: ModalCredits::update()"); + + if (_fadeOut) { + if (_fadeIn) { + _sceneTitles->draw(); + + return; + } + } else if (_fadeIn) { + //sceneFade(virt, this->_sceneTitles, 1); // TODO + _fadeOut = 1; + + return; + } + + if (_fadeOut) { + //sceneFade(virt, this->_sceneTitles, 0); // TODO + _fadeOut = 0; + return; + } + + _sceneTitles->draw(); +} + +ModalMainMenu::ModalMainMenu() { + warning("STUB: ModalMainMenu::ModalMainMenu()"); + + _field_34 = 0; +} + void FullpipeEngine::openHelp() { warning("STUB: FullpipeEngine::openHelp()"); } |