[Scummvm-cvs-logs] scummvm master -> 485807a4da1f8c2b04a75fac5d48ce39617eea85

sev- sev at scummvm.org
Wed Jan 1 22:48:27 CET 2014


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
4b507b2878 FULLPIPE: Initial code for scene17.cpp
065118d8b6 FULLPIPE: Plug scene17 in
485807a4da FULLPIPE: Implement sceneHandler17()


Commit: 4b507b2878a27f91fe172ca5b494c71ff98c30fd
    https://github.com/scummvm/scummvm/commit/4b507b2878a27f91fe172ca5b494c71ff98c30fd
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T13:08:15-08:00

Commit Message:
FULLPIPE: Initial code for scene17.cpp

Changed paths:
  A engines/fullpipe/scenes/scene17.cpp



diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
new file mode 100644
index 0000000..7251aae
--- /dev/null
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -0,0 +1,51 @@
+/* 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 scene17_initScene(Scene *sc) {
+  g_vars->scene17_var01 = 200;
+  g_vars->scene17_var02 = 200;
+  g_vars->scene17_var03 = 300;
+  g_vars->scene17_var04 = 300;
+  g_vars->scene17_var05 = 1;
+  g_vars->scene17_var06 = 0;
+  g_vars->scene17_var07 = 0;
+  g_vars->scene17_var08 = 0;
+  g_vars->scene17_hand = sc->getStaticANIObject1ById(ANI_HAND17, -1);
+}
+
+} // End of namespace Fullpipe


Commit: 065118d8b67b9bbc19b0bedb54a46ef27db89520
    https://github.com/scummvm/scummvm/commit/065118d8b67b9bbc19b0bedb54a46ef27db89520
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T13:08:15-08:00

Commit Message:
FULLPIPE: Plug scene17 in

Changed paths:
    engines/fullpipe/constants.h
    engines/fullpipe/module.mk
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene17.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 07b761b..013e920 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -688,6 +688,9 @@ namespace Fullpipe {
 #define ST_MUG_EMPTY 1298
 #define ST_MUG_FULL 1360
 
+// Scene 17
+#define ANI_HAND17 1446
+
 // Scene 24
 #define ANI_DROP_24 3505
 #define ANI_JET24 1837
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index b9a82fa..ea83767 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -39,6 +39,7 @@ MODULE_OBJS = \
 	scenes/scene14.o \
 	scenes/scene15.o \
 	scenes/scene16.o \
+	scenes/scene17.o \
 	scenes/scene24.o \
 	scenes/sceneDbg.o \
 	scenes/sceneIntro.o
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index e5e5f94..ed3e696 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -239,6 +239,16 @@ Vars::Vars() {
 	scene16_sound = 0;
 	scene16_placeIsOccupied = false;
 
+	scene17_var01 = 0;
+	scene17_var02 = 0;
+	scene17_var03 = 0;
+	scene17_var04 = 0;
+	scene17_var05 = 0;
+	scene17_var06 = 0;
+	scene17_var07 = 0;
+	scene17_var08 = 0;
+	scene17_hand = 0;
+
 	scene24_jetIsOn = false;
 	scene24_flowIsLow = false;
 	scene24_waterIsOn = false;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 4ad961b..d055b25 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -320,6 +320,16 @@ public:
 	int scene16_sound;
 	bool scene16_placeIsOccupied;
 
+	int scene17_var01;
+	int scene17_var02;
+	int scene17_var03;
+	int scene17_var04;
+	int scene17_var05;
+	int scene17_var06;
+	int scene17_var07;
+	int scene17_var08;
+	StaticANIObject *scene17_hand;
+
 	bool scene24_jetIsOn;
 	bool scene24_flowIsLow;
 	bool scene24_waterIsOn;
diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index 7251aae..3a2c725 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -37,15 +37,15 @@
 namespace Fullpipe {
 
 void scene17_initScene(Scene *sc) {
-  g_vars->scene17_var01 = 200;
-  g_vars->scene17_var02 = 200;
-  g_vars->scene17_var03 = 300;
-  g_vars->scene17_var04 = 300;
-  g_vars->scene17_var05 = 1;
-  g_vars->scene17_var06 = 0;
-  g_vars->scene17_var07 = 0;
-  g_vars->scene17_var08 = 0;
-  g_vars->scene17_hand = sc->getStaticANIObject1ById(ANI_HAND17, -1);
+	g_vars->scene17_var01 = 200;
+	g_vars->scene17_var02 = 200;
+	g_vars->scene17_var03 = 300;
+	g_vars->scene17_var04 = 300;
+	g_vars->scene17_var05 = 1;
+	g_vars->scene17_var06 = 0;
+	g_vars->scene17_var07 = 0;
+	g_vars->scene17_var08 = 0;
+	g_vars->scene17_hand = sc->getStaticANIObject1ById(ANI_HAND17, -1);
 }
 
 } // End of namespace Fullpipe


Commit: 485807a4da1f8c2b04a75fac5d48ce39617eea85
    https://github.com/scummvm/scummvm/commit/485807a4da1f8c2b04a75fac5d48ce39617eea85
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T13:47:46-08:00

Commit Message:
FULLPIPE: Implement sceneHandler17()

Changed paths:
    engines/fullpipe/constants.h
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene17.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 013e920..a292be0 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -690,9 +690,23 @@ namespace Fullpipe {
 
 // Scene 17
 #define ANI_HAND17 1446
+#define MSG_SC17_DROP 3414
+#define MSG_SC17_FILLBOTTLE 1436
+#define MSG_SC17_HIDESUGAR 1417
+#define MSG_SC17_SHOWBOTTLE 1432
+#define MSG_SC17_SHOWSUGAR 1416
+#define MSG_SC17_TESTTRUBA 1458
+#define MSG_SC17_UPDATEHAND 1560
+#define PIC_SC17_RTRUBA 1323
+#define PIC_SC17_RTRUBA2 5297
+#define QU_HND17_ASK 1456
+#define QU_HND17_ATTRACT 1455
+#define QU_HND17_TOCYCLE 1454
+#define ST_HND17_EMPTY 1448
 
 // Scene 24
 #define ANI_DROP_24 3505
+#define ANI_INV_HAMMER 884
 #define ANI_JET24 1837
 #define ANI_WATER24 1834
 #define MV_MAN_TURN_RL 332
@@ -705,6 +719,7 @@ namespace Fullpipe {
 #define SND_24_006 4041
 #define SND_24_007 4042
 #define ST_DRP24_EMPTY 3507
+#define ST_HND17_ATTRACT 1451
 #define ST_WTR24_FLOWLOWER 1843
 
 // Debug scene
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index ed3e696..5a21543 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -248,6 +248,8 @@ Vars::Vars() {
 	scene17_var07 = 0;
 	scene17_var08 = 0;
 	scene17_hand = 0;
+	scene17_var09 = 0;
+	scene17_var10 = 0;
 
 	scene24_jetIsOn = false;
 	scene24_flowIsLow = false;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index d055b25..012cd20 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -329,6 +329,8 @@ public:
 	int scene17_var07;
 	int scene17_var08;
 	StaticANIObject *scene17_hand;
+	int scene17_var09;
+	int scene17_var10;
 
 	bool scene24_jetIsOn;
 	bool scene24_flowIsLow;
diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index 3a2c725..e08299b 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -32,7 +32,7 @@
 
 #include "fullpipe/interaction.h"
 #include "fullpipe/behavior.h"
-
+#include "fullpipe/floaters.h"
 
 namespace Fullpipe {
 
@@ -48,4 +48,156 @@ void scene17_initScene(Scene *sc) {
 	g_vars->scene17_hand = sc->getStaticANIObject1ById(ANI_HAND17, -1);
 }
 
+void sceneHandler17_drop() {
+	warning("STUB: sceneHandler17_drop()");
+}
+
+void sceneHandler17_fillBottle() {
+	warning("STUB: sceneHandler17_fillBottle()");
+}
+
+void sceneHandler17_testTruba() {
+	warning("STUB: sceneHandler17_testTruba()");
+}
+
+void sceneHandler17_showBottle() {
+	warning("STUB: sceneHandler17_showBottle()");
+}
+
+void sceneHandler17_hideSugar() {
+	warning("STUB: sceneHandler17_hideSugar()");
+}
+
+void sceneHandler17_showSugar() {
+	warning("STUB: sceneHandler17_showSugar()");
+}
+
+void sceneHandler17_moonshineFill() {
+	warning("STUB: sceneHandler17_moonshineFill()");
+}
+
+void sceneHandler17_updateFlies() {
+	warning("STUB: sceneHandler17_updateFlies()");
+}
+
+
+int sceneHandler17(ExCommand *cmd) {
+	if (cmd->_messageKind != 17)
+		return 0;
+
+	switch (cmd->_messageNum) {
+	case MSG_SC17_DROP:
+		sceneHandler17_drop();
+		break;
+
+	case MSG_SC17_UPDATEHAND:
+		if (g_fp->getObjectState(sO_UsherHand) == g_fp->getObjectEnumState(sO_UsherHand, sO_WithCoin)) {
+			g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_ASK, 0);
+			g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 0);
+
+			g_vars->scene17_var09 = 0;
+		} else {
+			g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_ASK, 0);
+			g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 1);
+
+			g_vars->scene17_var09 = 1;
+		}
+        break;
+
+	case MSG_SC17_FILLBOTTLE:
+		sceneHandler17_fillBottle();
+		break;
+
+	case MSG_SC17_TESTTRUBA:
+		sceneHandler17_testTruba();
+		break;
+
+	case MSG_SC17_SHOWBOTTLE:
+		sceneHandler17_showBottle();
+		break;
+
+	case MSG_SC17_HIDESUGAR:
+		sceneHandler17_hideSugar();
+		break;
+
+	case MSG_SC17_SHOWSUGAR:
+		sceneHandler17_showSugar();
+		break;
+
+	case 29:
+		{
+			int pic = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
+
+			if (pic == PIC_SC17_RTRUBA2 || pic == PIC_SC17_RTRUBA) {
+				if (cmd->_keyCode == ANI_INV_COIN || cmd->_keyCode == ANI_INV_BOOT || cmd->_keyCode == ANI_INV_HAMMER) {
+					if (g_vars->scene17_var09) {
+						if (g_fp->_aniMan->isIdle()) {
+							if (!(g_fp->_aniMan->_flags & 0x100)) {
+								handleObjectInteraction(g_fp->_aniMan, g_vars->scene17_hand, cmd->_keyCode);
+								break;
+							}
+						}
+					}
+				}
+			}
+		}
+		break;
+
+	case 33:
+		{
+			int x = g_vars->scene17_var10;
+			g_vars->scene17_var07 = g_vars->scene17_var10;
+
+			if (g_fp->_aniMan2) {
+				x = g_fp->_aniMan2->_ox;
+
+				g_vars->scene17_var10 = x;
+
+				if (x < g_fp->_sceneRect.left + g_vars->scene17_var01) {
+					g_fp->_currentScene->_x = x - g_vars->scene17_var03 - g_fp->_sceneRect.left;
+
+					x = g_vars->scene17_var10;
+				}
+
+				if (x > g_fp->_sceneRect.right - g_vars->scene17_var01) {
+					g_fp->_currentScene->_x = x + g_vars->scene17_var03 - g_fp->_sceneRect.right;
+					x = g_vars->scene17_var10;
+				}
+			}
+
+			if (g_vars->scene17_var06) {
+				sceneHandler17_moonshineFill();
+				x = g_vars->scene17_var10;
+			}
+
+			if (g_vars->scene17_var09) {
+				if (g_vars->scene17_var07 < 410 && x >= 410) {
+					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 0);
+					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_ATTRACT, QU_HND17_ATTRACT, 0);
+					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_ASK, 1);
+				} else if (g_vars->scene17_var07 > 410 && x <= 410) {
+					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 1);
+					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_ATTRACT, QU_HND17_ATTRACT, 1);
+					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_ASK, 0);
+				}
+			}
+
+			--g_vars->scene17_var08;
+
+			if (!g_vars->scene17_var08)
+				sceneHandler17_updateFlies();
+
+			g_fp->_floaters->update();
+
+			g_fp->_behaviorManager->updateBehaviors();
+
+			g_fp->startSceneTrack();
+
+			break;
+		}
+	}
+
+	return 0;
+}
+
 } // End of namespace Fullpipe






More information about the Scummvm-git-logs mailing list