aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-07 02:17:49 +0200
committerEugene Sandulenko2014-01-07 02:21:00 +0200
commit01269c241b3ad9ae8742e12c12f64b9bb84669ee (patch)
tree98e196a023fdb4478dbd5831aa2a4bf19abb19b5 /engines
parentd78e0cf98d08361d4a0797777e249a24aec34ca6 (diff)
downloadscummvm-rg350-01269c241b3ad9ae8742e12c12f64b9bb84669ee.tar.gz
scummvm-rg350-01269c241b3ad9ae8742e12c12f64b9bb84669ee.tar.bz2
scummvm-rg350-01269c241b3ad9ae8742e12c12f64b9bb84669ee.zip
FULLPIPE: Implement sceneHandler28_makeFaces()
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/constants.h5
-rw-r--r--engines/fullpipe/scenes/scene28.cpp26
2 files changed, 30 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 50ca12bcdf..6d05ecc352 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1005,6 +1005,11 @@ namespace Fullpipe {
#define MSG_SC28_TURNON_3 4274
#define MSG_SC28_TURNON_4 4281
#define MSG_SC28_TURNON_6 4272
+#define MV_WMN28_IN_1 3443
+#define MV_WMN28_IN_2 3445
+#define MV_WMN28_IN_3 3446
+#define MV_WMN28_IN_4 3447
+#define MV_WMN28_IN_5 3448
#define PIC_SC28_DARK0 4675
#define PIC_SC28_DARK1 4266
#define PIC_SC28_DARK2 4267
diff --git a/engines/fullpipe/scenes/scene28.cpp b/engines/fullpipe/scenes/scene28.cpp
index b6031f2c99..9165953d06 100644
--- a/engines/fullpipe/scenes/scene28.cpp
+++ b/engines/fullpipe/scenes/scene28.cpp
@@ -73,7 +73,31 @@ void sceneHandler28_lift1ShowAfter() {
}
void sceneHandler28_makeFaces(ExCommand *cmd) {
- warning("STUB: sceneHandler28_makeFaces()");
+ g_fp->_currentScene->getPictureObjectById(PIC_SC28_DARK4, 0)->_flags &= 0xFFFB;
+
+ g_vars->scene28_var08 = 0;
+
+ MessageQueue *mq = g_fp->_globalMessageQueueList->getMessageQueueById(cmd->_parId);
+ if (mq) {
+ int frames[5];
+
+ frames[0] = MV_WMN28_IN_1;
+ frames[1] = MV_WMN28_IN_2;
+ frames[2] = MV_WMN28_IN_3;
+ frames[3] = MV_WMN28_IN_4;
+ frames[4] = MV_WMN28_IN_5;
+
+ for (int i = 0; i < 5; i++) {
+ int pos;
+
+ while (frames[pos = g_fp->_rnd->getRandomNumber(4)] == 0)
+ ;
+
+ mq->getExCommandByIndex(i)->_messageNum = frames[pos];
+
+ frames[pos] = 0;
+ }
+ }
}
void sceneHandler28_trySecondaryPers() {