aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-05 01:06:42 +0200
committerEugene Sandulenko2014-01-05 01:30:11 +0200
commite601797377cea6a5af5006d6861696831704df67 (patch)
tree21588e279090e6aa0f95e8f8b9de08e5fa95700f
parent9fdb5b45208565c1750ad1bfb2089dbadf4f4660 (diff)
downloadscummvm-rg350-e601797377cea6a5af5006d6861696831704df67.tar.gz
scummvm-rg350-e601797377cea6a5af5006d6861696831704df67.tar.bz2
scummvm-rg350-e601797377cea6a5af5006d6861696831704df67.zip
FULLPIPE: More code to scene23
-rw-r--r--engines/fullpipe/constants.h3
-rw-r--r--engines/fullpipe/scenes/scene23.cpp18
-rw-r--r--engines/fullpipe/statics.cpp4
-rw-r--r--engines/fullpipe/statics.h1
4 files changed, 23 insertions, 3 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 8d2941e738..2e2d216858 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -805,6 +805,9 @@ namespace Fullpipe {
#define PIC_SC23_LADDERU 3411
#define QU_GRFU_TURN_UD 1664
#define QU_GRFU_TURN_UL 1662
+#define QU_SC23_FROMCALENDAREXIT 1735
+#define QU_SC23_SHOWSTOOL 3335
+#define QU_SC23_STARTKISS 1822
#define ST_CND_5 1713
#define ST_GRFG_BALD 1675
#define ST_GRFG_EMPTY 1674
diff --git a/engines/fullpipe/scenes/scene23.cpp b/engines/fullpipe/scenes/scene23.cpp
index 161b38b2e4..29680d40e7 100644
--- a/engines/fullpipe/scenes/scene23.cpp
+++ b/engines/fullpipe/scenes/scene23.cpp
@@ -160,7 +160,7 @@ int scene23_updateCursor() {
}
void sceneHandler23_showStool() {
- warning("STUB: sceneHandler23_showStool()");
+ chainQueue(QU_SC23_SHOWSTOOL, 0);
}
void sceneHandler23_hideStool() {
@@ -191,12 +191,24 @@ void sceneHandler23_sendClick(StaticANIObject *ani) {
warning("STUB: sceneHandler23_sendClick(ani)");
}
+void sceneHandler23_startKiss() {
+ g_vars->scene23_giraffeTop->changeStatics2(ST_GRFU_UP);
+ g_vars->scene23_giraffeTop->startMQIfIdle(QU_SC23_STARTKISS, 0);
+}
void sceneHandler23_checkReachingTop() {
- warning("STUB: sceneHandler23_checkReachingTop()");
+ if (g_fp->_aniMan->_movement || g_fp->_aniMan->_statics->_staticsId != ST_MAN_STANDLADDER
+ || g_fp->_aniMan->_ox != 405 || g_fp->_aniMan->_oy != 220)
+ g_vars->scene23_var05 = 0;
+ else
+ g_vars->scene23_var05 = 1;
}
void sceneHandler23_exitCalendar() {
- warning("STUB: sceneHandler23_exitCalendar()");
+ if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER
+ && !g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100) ) {
+ chainQueue(QU_SC23_FROMCALENDAREXIT, 1);
+ g_vars->scene23_var07 = 2;
+ }
}
void sceneHandler23_lowerFromCalendar(ExCommand *cmd) {
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index d7340324ef..fbf1970ec2 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -302,6 +302,10 @@ bool StaticANIObject::trySetMessageQueue(int msgNum, int qId) {
return true;
}
+void StaticANIObject::startMQIfIdle(int qId, int flag) {
+ warning("STUB: StaticANIObject::startMQIfIdle()");
+}
+
bool StaticANIObject::isIdle() {
if (_messageQueueId) {
MessageQueue *m = g_fp->_globalMessageQueueList->getMessageQueueById(_messageQueueId);
diff --git a/engines/fullpipe/statics.h b/engines/fullpipe/statics.h
index 0e2e6db1b2..9faf684251 100644
--- a/engines/fullpipe/statics.h
+++ b/engines/fullpipe/statics.h
@@ -215,6 +215,7 @@ class StaticANIObject : public GameObject {
void queueMessageQueue(MessageQueue *msg);
MessageQueue *getMessageQueue();
bool trySetMessageQueue(int msgNum, int qId);
+ void startMQIfIdle(int qId, int flag);
void initMovements();
void loadMovementsPixelData();