[Scummvm-cvs-logs] scummvm master -> 048e04a072a34b19cf4e8d7cb3c1b245e1afc969
sev-
sev at scummvm.org
Thu Jan 9 23:44:07 CET 2014
This automated email contains information about 14 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
709428dead FULLPIPE: Initial code for scene33
e1b95be2c1 FULLPIPE: Plug scene33 in
cb1150c32d FULLPIPE: Add another destructor stub
c02beb4aa5 FULLPIPE: Implement scene33_updateCursor() and setupMusic()
3731aff7bb FULLPIPE: Implement sceneHandler33()
a5b4db8352 FULLPIPE: Enable scene33
919aca7f9b FULLPIPE: Implement sceneHandler33_clickZones()
10c1707754 FULLPIPE: Implement sceneHandler33_zoneClickProcess()
4d99ced17b FULLPIPE: Implement sceneHandler33_switchVent()
9cddc195ce FULLPIPE: More code to scene33
5114398e97 FULLPIPE: Implement sceneHandler33_pour()
692b199923 FULLPIPE: Implement sceneHandler33_processJettie()
81be0e77dd FULLPIPE: Implement sceneHandler33_processVents()
048e04a072 FULLPIPE: Rename vars in scene33. This completes the scene
Commit: 709428dead9fc1417ab37aae3b8f956e797e3130
https://github.com/scummvm/scummvm/commit/709428dead9fc1417ab37aae3b8f956e797e3130
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:19-08:00
Commit Message:
FULLPIPE: Initial code for scene33
Changed paths:
A engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
new file mode 100644
index 0000000..734b5ee
--- /dev/null
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -0,0 +1,66 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "fullpipe/fullpipe.h"
+
+#include "fullpipe/objectnames.h"
+#include "fullpipe/constants.h"
+
+#include "fullpipe/gameloader.h"
+#include "fullpipe/motion.h"
+#include "fullpipe/scenes.h"
+#include "fullpipe/statics.h"
+
+#include "fullpipe/interaction.h"
+#include "fullpipe/behavior.h"
+
+
+namespace Fullpipe {
+
+void scene33_initScene(Scene *sc) {
+ g_vars->scene33_var01 = 200;
+ g_vars->scene33_var02 = 200;
+ g_vars->scene33_var03 = 300;
+ g_vars->scene33_var04 = 300;
+ g_vars->scene33_mug = Scene_getStaticANIObject1ById(sc, ANI_MUG_33, -1);
+
+ memcpy(g_vars->scene33_ventsState, g_vars->scene33_var06, 36u);
+
+ g_vars->scene33_jettie = Scene_getStaticANIObject1ById(sc, ANI_JETTIE_FLOW, -1);
+ g_vars->scene33_var07 = 0;
+ g_vars->scene33_var08 = -1;
+ g_vars->scene33_var09 = 0;
+
+ if (getObjectState("Кубик") == getObjectEnumState("Кубик", "В_33")) {
+ MessageQueue *mq = new MessageQueue(sc->getMessageQueueById(QU_KBK33_START), 0, 0);
+
+ mq->sendNextCommand();
+ }
+
+
+ for (i = 0; i < 9; i++)
+ g_vars->scene33_ventsX[i] = sc->getStaticANIObject1ById(sc, ANI_VENT_33, i)->_ox;
+
+ initArcadeKeys("SC_33");
+}
+
+} // End of namespace Fullpipe
Commit: e1b95be2c1a44de33a11f8e3703482d26901a871
https://github.com/scummvm/scummvm/commit/e1b95be2c1a44de33a11f8e3703482d26901a871
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:20-08:00
Commit Message:
FULLPIPE: Plug scene33 in
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/module.mk
engines/fullpipe/scenes.cpp
engines/fullpipe/scenes.h
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index aba3c61..fe54a18 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1106,7 +1106,11 @@ namespace Fullpipe {
#define ST_MAN32_SIT 2277
// Scene 33
+#define ANI_JETTIE_FLOW 2627
+#define ANI_MUG_33 2623
+#define ANI_VENT_33 2637
#define MSG_SC33_TRYKUBIK 4980
+#define QU_KBK33_START 4983
// Scene 36
#define ANI_SCISSORS_36 2647
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index a81ee36..e90283a 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -52,6 +52,7 @@ MODULE_OBJS = \
scenes/scene30.o \
scenes/scene31.o \
scenes/scene32.o \
+ scenes/scene33.o \
scenes/scene36.o \
scenes/sceneDbg.o
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 08b3a0e..0a727df 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -326,6 +326,21 @@ Vars::Vars() {
scene32_massGreen = 0;
scene32_button = 0;
+ scene33_var01 = 0;
+ scene33_var02 = 0;
+ scene33_var03 = 0;
+ scene33_var04 = 0;
+ scene33_mug = 0;
+ scene33_jettie = 0;
+ scene33_var07 = 0;
+ scene33_var08 = -1;
+ scene33_var09 = 0;
+
+ for (int i = 0; i < 9; i++) {
+ scene33_ventsX[i] = 0;
+ scene33_ventsState[i] = 0;
+ }
+
scene36_rotohrust = 0;
scene36_scissors = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index ec3602e..acdcc36 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -459,6 +459,18 @@ public:
StaticANIObject *scene32_massGreen;
StaticANIObject *scene32_button;
+ int scene33_var01;
+ int scene33_var02;
+ int scene33_var03;
+ int scene33_var04;
+ StaticANIObject *scene33_mug;
+ StaticANIObject *scene33_jettie;
+ int scene33_var07;
+ int scene33_var08;
+ int scene33_var09;
+ int scene33_ventsX[9];
+ int scene33_ventsState[9];
+
StaticANIObject *scene36_rotohrust;
StaticANIObject *scene36_scissors;
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 734b5ee..1adf39f 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -36,31 +36,33 @@
namespace Fullpipe {
+const int ventsInit[9] = { 0, 0, 1, 0, 0, 1, 0, 0, 1 };
+
void scene33_initScene(Scene *sc) {
g_vars->scene33_var01 = 200;
g_vars->scene33_var02 = 200;
g_vars->scene33_var03 = 300;
g_vars->scene33_var04 = 300;
- g_vars->scene33_mug = Scene_getStaticANIObject1ById(sc, ANI_MUG_33, -1);
-
- memcpy(g_vars->scene33_ventsState, g_vars->scene33_var06, 36u);
-
- g_vars->scene33_jettie = Scene_getStaticANIObject1ById(sc, ANI_JETTIE_FLOW, -1);
+ g_vars->scene33_mug = sc->getStaticANIObject1ById(ANI_MUG_33, -1);
+ g_vars->scene33_jettie = sc->getStaticANIObject1ById(ANI_JETTIE_FLOW, -1);
g_vars->scene33_var07 = 0;
g_vars->scene33_var08 = -1;
g_vars->scene33_var09 = 0;
- if (getObjectState("Кубик") == getObjectEnumState("Кубик", "В_33")) {
+ if (g_fp->getObjectState(sO_Cube) == g_fp->getObjectEnumState(sO_Cube, sO_In_33)) {
MessageQueue *mq = new MessageQueue(sc->getMessageQueueById(QU_KBK33_START), 0, 0);
mq->sendNextCommand();
}
- for (i = 0; i < 9; i++)
- g_vars->scene33_ventsX[i] = sc->getStaticANIObject1ById(sc, ANI_VENT_33, i)->_ox;
+ for (int i = 0; i < 9; i++) {
+ g_vars->scene33_ventsX[i] = sc->getStaticANIObject1ById(ANI_VENT_33, i)->_ox;
+
+ g_vars->scene33_ventsState[i] = ventsInit[i];
+ }
- initArcadeKeys("SC_33");
+ g_fp->initArcadeKeys("SC_33");
}
} // End of namespace Fullpipe
Commit: cb1150c32d92d6a61b8e3eff3a154588a8ad53d9
https://github.com/scummvm/scummvm/commit/cb1150c32d92d6a61b8e3eff3a154588a8ad53d9
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:20-08:00
Commit Message:
FULLPIPE: Add another destructor stub
Changed paths:
engines/fullpipe/motion.cpp
engines/fullpipe/motion.h
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index c855e99..32f01ac 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -1991,6 +1991,11 @@ MovGraphLink::MovGraphLink() {
_objtype = kObjTypeMovGraphLink;
}
+MovGraphLink::~MovGraphLink() {
+ warning("STUB: MovGraphLink::~MovGraphLink()");
+}
+
+
bool MovGraphLink::load(MfcArchive &file) {
debug(5, "MovGraphLink::load()");
diff --git a/engines/fullpipe/motion.h b/engines/fullpipe/motion.h
index dc0e8e7..6ad46e7 100644
--- a/engines/fullpipe/motion.h
+++ b/engines/fullpipe/motion.h
@@ -289,6 +289,8 @@ class MovGraphLink : public CObject {
public:
MovGraphLink();
+ virtual ~MovGraphLink();
+
virtual bool load(MfcArchive &file);
void calcNodeDistanceAndAngle();
Commit: c02beb4aa56a6a4d22c848265e55d375b60cc59f
https://github.com/scummvm/scummvm/commit/c02beb4aa56a6a4d22c848265e55d375b60cc59f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:20-08:00
Commit Message:
FULLPIPE: Implement scene33_updateCursor() and setupMusic()
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index fe54a18..26cc43a 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1110,6 +1110,7 @@ namespace Fullpipe {
#define ANI_MUG_33 2623
#define ANI_VENT_33 2637
#define MSG_SC33_TRYKUBIK 4980
+#define PIC_SC33_ZONES 5298
#define QU_KBK33_START 4983
// Scene 36
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 1adf39f..084ee09 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -65,4 +65,18 @@ void scene33_initScene(Scene *sc) {
g_fp->initArcadeKeys("SC_33");
}
+void scene33_setupMusic() {
+ if (g_fp->lift_checkButton(sO_Level6))
+ g_fp->playTrack(g_fp->getGameLoaderGameVar()->getSubVarByName("SC_33"), "MUSIC2", 1);
+}
+
+int scene33_updateCursor() {
+ g_fp->updateCursorCommon();
+
+ if (g_fp->_objectIdAtCursor == PIC_SC33_ZONES && g_fp->_cursorId == PIC_CSR_DEFAULT)
+ g_fp->_cursorId = PIC_CSR_ITN;
+
+ return g_fp->_cursorId;
+}
+
} // End of namespace Fullpipe
Commit: 3731aff7bbf6f46f57545aac5b5f1ce324a9f5d6
https://github.com/scummvm/scummvm/commit/3731aff7bbf6f46f57545aac5b5f1ce324a9f5d6
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:20-08:00
Commit Message:
FULLPIPE: Implement sceneHandler33()
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/scenes.h
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 26cc43a..16dbe34 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1106,10 +1106,16 @@ namespace Fullpipe {
#define ST_MAN32_SIT 2277
// Scene 33
+#define ANI_KUBIK 4963
#define ANI_JETTIE_FLOW 2627
#define ANI_MUG_33 2623
#define ANI_VENT_33 2637
+#define MSG_SC33_HANDLEDOWN 2643
+#define MSG_SC33_POUR 2645
+#define MSG_SC33_TESTMUG 5185
#define MSG_SC33_TRYKUBIK 4980
+#define MSG_SC33_UPDATEKUBIK 5346
+#define PIC_SC33_LTRUBA 2618
#define PIC_SC33_ZONES 5298
#define QU_KBK33_START 4983
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index acdcc36..45c8ddc 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -465,7 +465,7 @@ public:
int scene33_var04;
StaticANIObject *scene33_mug;
StaticANIObject *scene33_jettie;
- int scene33_var07;
+ StaticANIObject *scene33_var07;
int scene33_var08;
int scene33_var09;
int scene33_ventsX[9];
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 084ee09..838cb52 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -79,4 +79,114 @@ int scene33_updateCursor() {
return g_fp->_cursorId;
}
+void sceneHandler33_processJettie(ExCommand *cmd) {
+ warning("STUB: sceneHandler33_processJettie(cmd");
+}
+
+void sceneHandler33_processVents() {
+ warning("STUB: sceneHandler33_processVents(");
+}
+
+void sceneHandler33_switchVent() {
+ warning("STUB: sceneHandler33_switchVent(");
+}
+
+void sceneHandler33_tryCube() {
+ warning("STUB: sceneHandler33_tryCube(");
+}
+
+void sceneHandler33_pour() {
+ warning("STUB: sceneHandler33_pour(");
+}
+
+void sceneHandler33_handleDown() {
+ warning("STUB: sceneHandler33_handleDown(");
+}
+
+void sceneHandler33_clickZones(ExCommand *cmd) {
+ warning("STUB: sceneHandler33_clickZones(cmd)");
+}
+
+int sceneHandler33(ExCommand *cmd) {
+ if (cmd->_messageKind != 17)
+ return 0;
+
+ switch (cmd->_messageNum) {
+ case MSG_SC32_TRUBATOFRONT:
+ g_fp->_currentScene->getPictureObjectById(PIC_SC33_LTRUBA, 0)->_priority = 0;
+ break;
+
+ case MSG_SC32_TRUBATOBACK:
+ g_fp->_currentScene->getPictureObjectById(PIC_SC33_LTRUBA, 0)->_priority = 20;
+ break;
+
+ case MSG_SC33_TESTMUG:
+ sceneHandler33_processJettie(cmd);
+ break;
+
+ case MSG_SC33_UPDATEKUBIK:
+ g_vars->scene33_var07 = g_fp->_currentScene->getStaticANIObject1ById(ANI_KUBIK, -1);
+
+ if (g_vars->scene33_var07)
+ g_vars->scene33_var08 = g_vars->scene33_var07->_ox;
+
+ break;
+
+ case MSG_SC33_TRYKUBIK:
+ sceneHandler33_tryCube();
+ break;
+
+ case MSG_SC33_POUR:
+ sceneHandler33_pour();
+ break;
+
+ case MSG_SC33_HANDLEDOWN:
+ sceneHandler33_handleDown();
+ break;
+
+ case 29:
+ {
+ StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(g_fp->_sceneRect.left + cmd->_x, g_fp->_sceneRect.top + cmd->_y);
+
+ if (!ani || !canInteractAny(g_fp->_aniMan, ani, cmd->_keyCode)) {
+ int picId = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
+ PictureObject *pic = g_fp->_currentScene->getPictureObjectById(picId, 0);
+
+ if (pic && pic->_id == PIC_SC33_ZONES) {
+ sceneHandler33_clickZones(cmd);
+ break;
+ }
+
+ if (!pic || !canInteractAny(g_fp->_aniMan, pic, cmd->_keyCode)) {
+ if ((g_fp->_sceneRect.right - cmd->_sceneClickX < 47 && g_fp->_sceneRect.right < g_fp->_sceneWidth - 1) || (cmd->_sceneClickX - g_fp->_sceneRect.left < 47 && g_fp->_sceneRect.left > 0))
+ g_fp->processArcade(cmd);
+ }
+ }
+ break;
+ }
+
+ case 33:
+ if (g_fp->_aniMan2) {
+ int x = g_fp->_aniMan2->_ox;
+
+ if (x < g_fp->_sceneRect.left + g_vars->scene33_var01)
+ g_fp->_currentScene->_x = x - g_vars->scene33_var03 - g_fp->_sceneRect.left;
+
+ if (x > g_fp->_sceneRect.right - g_vars->scene33_var01)
+ g_fp->_currentScene->_x = x + g_vars->scene33_var03 - g_fp->_sceneRect.right;
+ }
+
+ if (g_vars->scene33_var07)
+ sceneHandler33_processVents();
+
+ g_fp->_behaviorManager->updateBehaviors();
+
+ g_fp->startSceneTrack();
+
+ break;
+ }
+
+ return 0;
+}
+
} // End of namespace Fullpipe
Commit: a5b4db83522b6267dbd806f696bcde02eed03605
https://github.com/scummvm/scummvm/commit/a5b4db83522b6267dbd806f696bcde02eed03605
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:20-08:00
Commit Message:
FULLPIPE: Enable scene33
Changed paths:
engines/fullpipe/scenes.cpp
engines/fullpipe/scenes.h
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 0a727df..67e51cc 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -876,7 +876,6 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
_updateCursorCallback = scene32_updateCursor;
break;
-#if 0
case SC_33:
sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_33");
scene->preloadMovements(sceneVar);
@@ -885,10 +884,11 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
scene->initObjectCursors("SC_33");
setSceneMusicParameters(sceneVar);
insertMessageHandler(sceneHandler33, 2, 2);
- scene33_sub_42CEF0();
+ scene33_setupMusic();
_updateCursorCallback = scene33_updateCursor;
break;
+#if 0
case SC_34:
sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_34");
scene->preloadMovements(sceneVar);
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 45c8ddc..d32af4a 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -148,6 +148,11 @@ void scene32_setupMusic();
int sceneHandler32(ExCommand *cmd);
int scene32_updateCursor();
+void scene33_initScene(Scene *sc);
+void scene33_setupMusic();
+int sceneHandler33(ExCommand *cmd);
+int scene33_updateCursor();
+
int scene36_updateCursor();
void scene36_initScene(Scene *sc);
int sceneHandler36(ExCommand *cmd);
Commit: 919aca7f9be168fb7ba39ed76ec0d3b7fd51577e
https://github.com/scummvm/scummvm/commit/919aca7f9be168fb7ba39ed76ec0d3b7fd51577e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:20-08:00
Commit Message:
FULLPIPE: Implement sceneHandler33_clickZones()
Changed paths:
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 838cb52..35446f8 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -103,8 +103,31 @@ void sceneHandler33_handleDown() {
warning("STUB: sceneHandler33_handleDown(");
}
+void sceneHandler33_zoneClickProcess(StaticANIObject *ani) {
+ warning("STUB: sceneHandler33_zoneClickProcess()");
+}
+
void sceneHandler33_clickZones(ExCommand *cmd) {
- warning("STUB: sceneHandler33_clickZones(cmd)");
+ StaticANIObject *closest = 0;
+ double mindist = 1e10;
+
+ for (uint i = 0; i < g_fp->_currentScene->_staticANIObjectList1.size(); i++) {
+ StaticANIObject *ani = (StaticANIObject *)g_fp->_currentScene->_staticANIObjectList1[i];
+
+ if (ani->_id == ANI_VENT_33) {
+ int dx = ani->_ox - cmd->_sceneClickX;
+ int dy = ani->_oy - cmd->_sceneClickY;
+ double dist = sqrt((double)(dx * dx + dy * dy));
+
+ if (dist < mindist) {
+ mindist = dist;
+ closest = ani;
+ }
+ }
+ }
+
+ if (closest)
+ sceneHandler33_zoneClickProcess(closest);
}
int sceneHandler33(ExCommand *cmd) {
Commit: 10c17077542138830d903fb39733b515d57aa384
https://github.com/scummvm/scummvm/commit/10c17077542138830d903fb39733b515d57aa384
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:20-08:00
Commit Message:
FULLPIPE: Implement sceneHandler33_zoneClickProcess()
Changed paths:
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 35446f8..75192c4 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -87,7 +87,7 @@ void sceneHandler33_processVents() {
warning("STUB: sceneHandler33_processVents(");
}
-void sceneHandler33_switchVent() {
+void sceneHandler33_switchVent(StaticANIObject *ani) {
warning("STUB: sceneHandler33_switchVent(");
}
@@ -104,7 +104,47 @@ void sceneHandler33_handleDown() {
}
void sceneHandler33_zoneClickProcess(StaticANIObject *ani) {
- warning("STUB: sceneHandler33_zoneClickProcess()");
+ if (!ani->_movement) {
+ sceneHandler33_switchVent(ani);
+
+ StaticANIObject *vent1 = 0;
+ StaticANIObject *vent2 = 0;
+
+ switch (ani->_okeyCode) {
+ case 0:
+ vent1 = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, 2);
+ vent2 = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, 3);
+ break;
+
+ case 1:
+ vent1 = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, 3);
+ vent2 = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, 4);
+ break;
+
+ case 2:
+ vent1 = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, 4);
+ vent2 = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, 0);
+ break;
+
+ case 3:
+ vent1 = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, 0);
+ vent2 = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, 1);
+ break;
+
+ case 4:
+ vent1 = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, 1);
+ vent2 = g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, 2);
+ break;
+
+ default:
+ return;
+ }
+
+ if (vent1) {
+ sceneHandler33_switchVent(vent1);
+ sceneHandler33_switchVent(vent2);
+ }
+ }
}
void sceneHandler33_clickZones(ExCommand *cmd) {
Commit: 4d99ced17b21f14c7a76f29b5f6942108709fdc8
https://github.com/scummvm/scummvm/commit/4d99ced17b21f14c7a76f29b5f6942108709fdc8
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:21-08:00
Commit Message:
FULLPIPE: Implement sceneHandler33_switchVent()
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 16dbe34..5f2b8fe 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1115,9 +1115,13 @@ namespace Fullpipe {
#define MSG_SC33_TESTMUG 5185
#define MSG_SC33_TRYKUBIK 4980
#define MSG_SC33_UPDATEKUBIK 5346
+#define MV_VNT33_TURND 2638
+#define MV_VNT33_TURNR 2641
#define PIC_SC33_LTRUBA 2618
#define PIC_SC33_ZONES 5298
#define QU_KBK33_START 4983
+#define ST_VNT33_DOWN 2640
+#define ST_VNT33_RIGHT 2639
// Scene 36
#define ANI_SCISSORS_36 2647
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 75192c4..a5f2ea1 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -88,7 +88,18 @@ void sceneHandler33_processVents() {
}
void sceneHandler33_switchVent(StaticANIObject *ani) {
- warning("STUB: sceneHandler33_switchVent(");
+ int mv = 0;
+
+ if (ani->_statics->_staticsId == ST_VNT33_DOWN)
+ mv = MV_VNT33_TURNR;
+
+ if (ani->_statics->_staticsId == ST_VNT33_RIGHT)
+ mv = MV_VNT33_TURND;
+
+ if (mv)
+ ani->startAnim(mv, 0, -1);
+
+ g_vars->scene33_ventsState[ani->_okeyCode] = !g_vars->scene33_ventsState[ani->_okeyCode];
}
void sceneHandler33_tryCube() {
Commit: 9cddc195ce10eecbc45f7041897412450b1631f1
https://github.com/scummvm/scummvm/commit/9cddc195ce10eecbc45f7041897412450b1631f1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:21-08:00
Commit Message:
FULLPIPE: More code to scene33
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 5f2b8fe..5381d0a 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1119,7 +1119,9 @@ namespace Fullpipe {
#define MV_VNT33_TURNR 2641
#define PIC_SC33_LTRUBA 2618
#define PIC_SC33_ZONES 5298
+#define QU_KBK33_GO 4978
#define QU_KBK33_START 4983
+#define QU_SC33_STARTWATER 2644
#define ST_VNT33_DOWN 2640
#define ST_VNT33_RIGHT 2639
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index a5f2ea1..e6b526e 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -103,7 +103,8 @@ void sceneHandler33_switchVent(StaticANIObject *ani) {
}
void sceneHandler33_tryCube() {
- warning("STUB: sceneHandler33_tryCube(");
+ if (g_fp->getObjectState(sO_Cube) == g_fp->getObjectEnumState(sO_Cube, sO_In_32))
+ chainQueue(QU_KBK33_GO, 0);
}
void sceneHandler33_pour() {
@@ -111,7 +112,11 @@ void sceneHandler33_pour() {
}
void sceneHandler33_handleDown() {
- warning("STUB: sceneHandler33_handleDown(");
+ if (!g_vars->scene33_var09 && !g_vars->scene33_jettie->_movement && !g_vars->scene33_jettie->getMessageQueue() ) {
+ chainQueue(QU_SC33_STARTWATER, 0);
+
+ g_vars->scene33_var09 = 1;
+ }
}
void sceneHandler33_zoneClickProcess(StaticANIObject *ani) {
Commit: 5114398e979bdb7145932be854eb770c66bd1dd7
https://github.com/scummvm/scummvm/commit/5114398e979bdb7145932be854eb770c66bd1dd7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:21-08:00
Commit Message:
FULLPIPE: Implement sceneHandler33_pour()
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/scenes.cpp
engines/fullpipe/scenes.h
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 5381d0a..93d8fda 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1115,6 +1115,9 @@ namespace Fullpipe {
#define MSG_SC33_TESTMUG 5185
#define MSG_SC33_TRYKUBIK 4980
#define MSG_SC33_UPDATEKUBIK 5346
+#define MV_JTI33_FLOW 2628
+#define MV_JTI33_POUR 2630
+#define MV_JTI33_POURFULL 4455
#define MV_VNT33_TURND 2638
#define MV_VNT33_TURNR 2641
#define PIC_SC33_LTRUBA 2618
@@ -1122,6 +1125,8 @@ namespace Fullpipe {
#define QU_KBK33_GO 4978
#define QU_KBK33_START 4983
#define QU_SC33_STARTWATER 2644
+#define ST_MUG33_EMPTY 2625
+#define ST_MUG33_FULL 2626
#define ST_VNT33_DOWN 2640
#define ST_VNT33_RIGHT 2639
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 67e51cc..db43909 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -337,6 +337,7 @@ Vars::Vars() {
scene33_var09 = 0;
for (int i = 0; i < 9; i++) {
+ scene33_var06[i] = 0;
scene33_ventsX[i] = 0;
scene33_ventsState[i] = 0;
}
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index d32af4a..7ed5338 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -471,6 +471,7 @@ public:
StaticANIObject *scene33_mug;
StaticANIObject *scene33_jettie;
StaticANIObject *scene33_var07;
+ int scene33_var06[9];
int scene33_var08;
int scene33_var09;
int scene33_ventsX[9];
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index e6b526e..ed9d9c6 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -108,7 +108,33 @@ void sceneHandler33_tryCube() {
}
void sceneHandler33_pour() {
- warning("STUB: sceneHandler33_pour(");
+ bool solved = true;
+
+ for (int i = 0; i < 9; i++)
+ if (g_vars->scene33_ventsState[i] != g_vars->scene33_var06[i])
+ solved = false;
+
+ if (solved) {
+ if ((g_vars->scene33_mug->_flags & 4) && g_vars->scene33_mug->_statics->_staticsId == ST_MUG33_EMPTY) {
+ g_vars->scene33_jettie->startAnim(MV_JTI33_POUR, 0, -1);
+
+ g_vars->scene33_var09 = 0;
+
+ return;
+ }
+
+ if ((g_vars->scene33_mug->_flags & 4) && g_vars->scene33_mug->_statics->_staticsId == ST_MUG33_FULL) {
+ g_vars->scene33_jettie->startAnim(MV_JTI33_POURFULL, 0, -1);
+
+ g_vars->scene33_var09 = 0;
+
+ return;
+ }
+
+ g_vars->scene33_jettie->startAnim(MV_JTI33_FLOW, 0, -1);
+ }
+
+ g_vars->scene33_var09 = 0;
}
void sceneHandler33_handleDown() {
Commit: 692b19992358378684d6b2a7548c80a17445b1f2
https://github.com/scummvm/scummvm/commit/692b19992358378684d6b2a7548c80a17445b1f2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:21-08:00
Commit Message:
FULLPIPE: Implement sceneHandler33_processJettie()
Changed paths:
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index ed9d9c6..9fe3810 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -80,7 +80,23 @@ int scene33_updateCursor() {
}
void sceneHandler33_processJettie(ExCommand *cmd) {
- warning("STUB: sceneHandler33_processJettie(cmd");
+ MessageQueue *mq = g_fp->_globalMessageQueueList->getMessageQueueById(cmd->_parId);
+
+ if (mq && g_vars->scene33_jettie->_movement) {
+ ExCommand *ex = mq->getExCommandByIndex(0);
+
+ if (ex) {
+ ex->_messageKind = 0;
+ ex->_excFlags |= 1;
+ }
+
+ ex = mq->getExCommandByIndex(1);
+
+ if (ex) {
+ ex->_messageKind = 0;
+ ex->_excFlags |= 1;
+ }
+ }
}
void sceneHandler33_processVents() {
Commit: 81be0e77dd359c62282cf5a7de2a6fb3d2e856e2
https://github.com/scummvm/scummvm/commit/81be0e77dd359c62282cf5a7de2a6fb3d2e856e2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:21-08:00
Commit Message:
FULLPIPE: Implement sceneHandler33_processVents()
Changed paths:
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 9fe3810..3efe8cc 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -99,10 +99,6 @@ void sceneHandler33_processJettie(ExCommand *cmd) {
}
}
-void sceneHandler33_processVents() {
- warning("STUB: sceneHandler33_processVents(");
-}
-
void sceneHandler33_switchVent(StaticANIObject *ani) {
int mv = 0;
@@ -118,6 +114,15 @@ void sceneHandler33_switchVent(StaticANIObject *ani) {
g_vars->scene33_ventsState[ani->_okeyCode] = !g_vars->scene33_ventsState[ani->_okeyCode];
}
+void sceneHandler33_processVents() {
+ for (int i = 0; i < 9; i++)
+ if ((g_vars->scene33_var08 - g_vars->scene33_ventsX[i] < 0 != g_vars->scene33_var07->_ox - g_vars->scene33_ventsX[i] < 0)
+ && g_vars->scene33_ventsState[i] != g_vars->scene33_var06[i])
+ sceneHandler33_switchVent(g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, i));
+
+ g_vars->scene33_var08 = g_vars->scene33_var07->_ox;
+}
+
void sceneHandler33_tryCube() {
if (g_fp->getObjectState(sO_Cube) == g_fp->getObjectEnumState(sO_Cube, sO_In_32))
chainQueue(QU_KBK33_GO, 0);
Commit: 048e04a072a34b19cf4e8d7cb3c1b245e1afc969
https://github.com/scummvm/scummvm/commit/048e04a072a34b19cf4e8d7cb3c1b245e1afc969
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-09T14:42:21-08:00
Commit Message:
FULLPIPE: Rename vars in scene33. This completes the scene
Changed paths:
engines/fullpipe/scenes.cpp
engines/fullpipe/scenes.h
engines/fullpipe/scenes/scene33.cpp
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index db43909..a1696c4 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -326,18 +326,13 @@ Vars::Vars() {
scene32_massGreen = 0;
scene32_button = 0;
- scene33_var01 = 0;
- scene33_var02 = 0;
- scene33_var03 = 0;
- scene33_var04 = 0;
scene33_mug = 0;
scene33_jettie = 0;
- scene33_var07 = 0;
- scene33_var08 = -1;
- scene33_var09 = 0;
+ scene33_cube = 0;
+ scene33_cubeX = -1;
+ scene33_handleIsDown = false;
for (int i = 0; i < 9; i++) {
- scene33_var06[i] = 0;
scene33_ventsX[i] = 0;
scene33_ventsState[i] = 0;
}
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 7ed5338..edc5d13 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -464,16 +464,11 @@ public:
StaticANIObject *scene32_massGreen;
StaticANIObject *scene32_button;
- int scene33_var01;
- int scene33_var02;
- int scene33_var03;
- int scene33_var04;
StaticANIObject *scene33_mug;
StaticANIObject *scene33_jettie;
- StaticANIObject *scene33_var07;
- int scene33_var06[9];
- int scene33_var08;
- int scene33_var09;
+ StaticANIObject *scene33_cube;
+ int scene33_cubeX;
+ bool scene33_handleIsDown;
int scene33_ventsX[9];
int scene33_ventsState[9];
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 3efe8cc..37edace 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -39,15 +39,11 @@ namespace Fullpipe {
const int ventsInit[9] = { 0, 0, 1, 0, 0, 1, 0, 0, 1 };
void scene33_initScene(Scene *sc) {
- g_vars->scene33_var01 = 200;
- g_vars->scene33_var02 = 200;
- g_vars->scene33_var03 = 300;
- g_vars->scene33_var04 = 300;
g_vars->scene33_mug = sc->getStaticANIObject1ById(ANI_MUG_33, -1);
g_vars->scene33_jettie = sc->getStaticANIObject1ById(ANI_JETTIE_FLOW, -1);
- g_vars->scene33_var07 = 0;
- g_vars->scene33_var08 = -1;
- g_vars->scene33_var09 = 0;
+ g_vars->scene33_cube = 0;
+ g_vars->scene33_cubeX = -1;
+ g_vars->scene33_handleIsDown = false;
if (g_fp->getObjectState(sO_Cube) == g_fp->getObjectEnumState(sO_Cube, sO_In_33)) {
MessageQueue *mq = new MessageQueue(sc->getMessageQueueById(QU_KBK33_START), 0, 0);
@@ -116,11 +112,11 @@ void sceneHandler33_switchVent(StaticANIObject *ani) {
void sceneHandler33_processVents() {
for (int i = 0; i < 9; i++)
- if ((g_vars->scene33_var08 - g_vars->scene33_ventsX[i] < 0 != g_vars->scene33_var07->_ox - g_vars->scene33_ventsX[i] < 0)
- && g_vars->scene33_ventsState[i] != g_vars->scene33_var06[i])
+ if ((g_vars->scene33_cubeX - g_vars->scene33_ventsX[i] < 0 != g_vars->scene33_cube->_ox - g_vars->scene33_ventsX[i] < 0)
+ && g_vars->scene33_ventsState[i] != ventsInit[i])
sceneHandler33_switchVent(g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, i));
- g_vars->scene33_var08 = g_vars->scene33_var07->_ox;
+ g_vars->scene33_cubeX = g_vars->scene33_cube->_ox;
}
void sceneHandler33_tryCube() {
@@ -132,14 +128,14 @@ void sceneHandler33_pour() {
bool solved = true;
for (int i = 0; i < 9; i++)
- if (g_vars->scene33_ventsState[i] != g_vars->scene33_var06[i])
+ if (g_vars->scene33_ventsState[i] != ventsInit[i])
solved = false;
if (solved) {
if ((g_vars->scene33_mug->_flags & 4) && g_vars->scene33_mug->_statics->_staticsId == ST_MUG33_EMPTY) {
g_vars->scene33_jettie->startAnim(MV_JTI33_POUR, 0, -1);
- g_vars->scene33_var09 = 0;
+ g_vars->scene33_handleIsDown = false;
return;
}
@@ -147,7 +143,7 @@ void sceneHandler33_pour() {
if ((g_vars->scene33_mug->_flags & 4) && g_vars->scene33_mug->_statics->_staticsId == ST_MUG33_FULL) {
g_vars->scene33_jettie->startAnim(MV_JTI33_POURFULL, 0, -1);
- g_vars->scene33_var09 = 0;
+ g_vars->scene33_handleIsDown = false;
return;
}
@@ -155,14 +151,14 @@ void sceneHandler33_pour() {
g_vars->scene33_jettie->startAnim(MV_JTI33_FLOW, 0, -1);
}
- g_vars->scene33_var09 = 0;
+ g_vars->scene33_handleIsDown = false;
}
void sceneHandler33_handleDown() {
- if (!g_vars->scene33_var09 && !g_vars->scene33_jettie->_movement && !g_vars->scene33_jettie->getMessageQueue() ) {
+ if (!g_vars->scene33_handleIsDown && !g_vars->scene33_jettie->_movement && !g_vars->scene33_jettie->getMessageQueue() ) {
chainQueue(QU_SC33_STARTWATER, 0);
- g_vars->scene33_var09 = 1;
+ g_vars->scene33_handleIsDown = true;
}
}
@@ -251,10 +247,10 @@ int sceneHandler33(ExCommand *cmd) {
break;
case MSG_SC33_UPDATEKUBIK:
- g_vars->scene33_var07 = g_fp->_currentScene->getStaticANIObject1ById(ANI_KUBIK, -1);
+ g_vars->scene33_cube = g_fp->_currentScene->getStaticANIObject1ById(ANI_KUBIK, -1);
- if (g_vars->scene33_var07)
- g_vars->scene33_var08 = g_vars->scene33_var07->_ox;
+ if (g_vars->scene33_cube)
+ g_vars->scene33_cubeX = g_vars->scene33_cube->_ox;
break;
@@ -295,14 +291,14 @@ int sceneHandler33(ExCommand *cmd) {
if (g_fp->_aniMan2) {
int x = g_fp->_aniMan2->_ox;
- if (x < g_fp->_sceneRect.left + g_vars->scene33_var01)
- g_fp->_currentScene->_x = x - g_vars->scene33_var03 - g_fp->_sceneRect.left;
+ if (x < g_fp->_sceneRect.left + 200)
+ g_fp->_currentScene->_x = x - 300 - g_fp->_sceneRect.left;
- if (x > g_fp->_sceneRect.right - g_vars->scene33_var01)
- g_fp->_currentScene->_x = x + g_vars->scene33_var03 - g_fp->_sceneRect.right;
+ if (x > g_fp->_sceneRect.right - 200)
+ g_fp->_currentScene->_x = x + 300 - g_fp->_sceneRect.right;
}
- if (g_vars->scene33_var07)
+ if (g_vars->scene33_cube)
sceneHandler33_processVents();
g_fp->_behaviorManager->updateBehaviors();
More information about the Scummvm-git-logs
mailing list