[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