aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-24 11:25:28 -0800
committerEugene Sandulenko2014-01-24 14:29:23 -0800
commit50bb717bccbf8b6f901f1531e93adf375ea53a5e (patch)
tree383728342903e7e3d5b577aa9dd86b95366bd172 /engines
parent94b2249f6911a3ce283731857ec1eaf740bd5dc4 (diff)
downloadscummvm-rg350-50bb717bccbf8b6f901f1531e93adf375ea53a5e.tar.gz
scummvm-rg350-50bb717bccbf8b6f901f1531e93adf375ea53a5e.tar.bz2
scummvm-rg350-50bb717bccbf8b6f901f1531e93adf375ea53a5e.zip
FULLPIPE: Complete ModalCredits
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/modal.cpp68
-rw-r--r--engines/fullpipe/modal.h13
2 files changed, 76 insertions, 5 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()");
}
diff --git a/engines/fullpipe/modal.h b/engines/fullpipe/modal.h
index e9a8478055..438e341c1c 100644
--- a/engines/fullpipe/modal.h
+++ b/engines/fullpipe/modal.h
@@ -140,15 +140,18 @@ class ModalCredits : public BaseModalObject {
virtual ~ModalCredits();
virtual bool pollEvent() { return true; }
- virtual bool handleMessage(ExCommand *message) { return false; }
- virtual bool init(int counterdiff) { return true; }
- virtual void update() {}
+ virtual bool handleMessage(ExCommand *message);
+ virtual bool init(int counterdiff);
+ virtual void update();
virtual void saveload() {}
};
class ModalMainMenu : public BaseModalObject {
- public:
- ModalMainMenu() {}
+public:
+ int _field_34;
+
+public:
+ ModalMainMenu();
virtual ~ModalMainMenu() {}
virtual bool pollEvent() { return true; }