[Scummvm-cvs-logs] scummvm master -> 389d1f3fe5d1da0d735eed856510f20e4e46d0b9

sev- sev at scummvm.org
Thu Jan 2 14:22:50 CET 2014


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

Summary:
36b1b40cc7 FULLPIPE: Initial code for scene31
a4ff43d417 FULLPIPE: Plug scene31 in
1d865fd826 FULLPIPE: Implement sceneHandler31()
c2493c0690 FULLPIPE: Implement sceneHandler31_testCactus()
3ccecb9f8e FULLPIPE: Rename vars in scene31
6b87e3b013 FULLPIPE: Enable scene31. This completes the scene
3da549630e FULLPIPE: Initial code for scene30
ff6cbe625b FULLPIPE: Plug scene30 in
b2fe937db5 FULLPIPE: Implement scene30_enablePass()
39b83756b8 FULLPIPE: Implement scene30_updateCursor()
64b001e869 FULLPIPE: Implement sceneHandler30()
8deb6908e2 FULLPIPE: Rename vars in scene30
3f7077a251 FULLPIPE: Enable scene30. This completes the scene
f7235b8a4c FULLPIPE: Initial code for scene36
85420834b5 FULLPIPE: Plug scene36 in
3d949b1bdf FULLPIPE: Implement scene36_updateCursor()
fcae83afad FULLPIPE: Implement sceneHandler36()
b6f4bce10c FULLPIPE: Rename vars in scene36
389d1f3fe5 FULLPIPE: Enable scene36. This completes the scene


Commit: 36b1b40cc7bbba6cd9ff352424d693c8a1356c08
    https://github.com/scummvm/scummvm/commit/36b1b40cc7bbba6cd9ff352424d693c8a1356c08
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:05:34-08:00

Commit Message:
FULLPIPE: Initial code for scene31

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



diff --git a/engines/fullpipe/scenes/scene31.cpp b/engines/fullpipe/scenes/scene31.cpp
new file mode 100644
index 0000000..b033b88
--- /dev/null
+++ b/engines/fullpipe/scenes/scene31.cpp
@@ -0,0 +1,67 @@
+/* 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 scene31_initScene(Scene *sc) {
+	g_vars->scene31_var01 = 200;
+	g_vars->scene31_var02 = 200;
+	g_vars->scene31_var03 = 300;
+	g_vars->scene31_var04 = 300;
+	g_vars->scene31_var05 = 0;
+	g_vars->scene31_cactus = sc->getStaticANIObject1ById(ANI_CACTUS_31, -1);
+
+	if (g_fp->getObjectState(sO_Cactus) == g_fp->getObjectEnumState(sO_Cactus, sO_HasGrown)) {
+		Scene *oldsc = g_fp->_currentScene;
+		g_fp->_currentScene = sc;
+
+		g_vars->scene31_cactus->changeStatics2(ST_CTS31_GROWN2);
+		g_vars->scene31_cactus->_priority = 22;
+
+		g_fp->_currentScene = oldsc;
+	} else {
+		g_vars->scene31_cactus->hide();
+	}
+
+	g_vars->scene31_plusMinus = sc->getStaticANIObject1ById(ANI_PLUSMINUS, -1);
+
+	if (g_fp->getObjectState(sO_Guard_3) == g_fp->getObjectEnumState(sO_Guard_3, sO_Off))
+		g_vars->scene31_plusMinus->_statics = g_vars->scene31_plusMinus->getStaticsById(ST_PMS_MINUS);
+	else
+		g_vars->scene31_plusMinus->_statics = g_vars->scene31_plusMinus->getStaticsById(ST_PMS_PLUS);
+}
+
+} // End of namespace Fullpipe


Commit: a4ff43d4173dd06fcc8cc4fe034e7d7928ba677e
    https://github.com/scummvm/scummvm/commit/a4ff43d4173dd06fcc8cc4fe034e7d7928ba677e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:07:11-08:00

Commit Message:
FULLPIPE: Plug scene31 in

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index e85ed20..63efe7c 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -747,6 +747,10 @@ namespace Fullpipe {
 #define ST_DRP24_EMPTY 3507
 #define ST_WTR24_FLOWLOWER 1843
 
+// Scene 31
+#define ANI_CACTUS_31 2456
+#define ST_CTS31_GROWN2 2472
+
 // Debug scene
 #define PIC_SCD_1 727
 #define PIC_SCD_2 728
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index 75b34dc..39e20ee 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -42,6 +42,7 @@ MODULE_OBJS = \
 	scenes/scene17.o \
 	scenes/scene21.o \
 	scenes/scene24.o \
+	scenes/scene31.o \
 	scenes/sceneDbg.o \
 	scenes/sceneIntro.o
 
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 104d078..783db9c 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -261,6 +261,14 @@ Vars::Vars() {
 	scene24_jet = 0;
 	scene24_drop = 0;
 
+	scene31_var01 = 0;
+	scene31_var02 = 0;
+	scene31_var03 = 0;
+	scene31_var04 = 0;
+	scene31_var05 = 0;
+	scene31_cactus = 0;
+	scene31_plusMinus = 0;
+
 	selector = 0;
 }
 
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 8b5e6c2..91ea142 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -351,6 +351,14 @@ public:
 	StaticANIObject *scene24_jet;
 	StaticANIObject *scene24_drop;
 
+	int scene31_var01;
+	int scene31_var02;
+	int scene31_var03;
+	int scene31_var04;
+	int scene31_var05;
+	StaticANIObject *scene31_cactus;
+	StaticANIObject *scene31_plusMinus;
+
 	PictureObject *selector;
 };
 


Commit: 1d865fd826339f17ce1f94f33e7f5ee9ac1a3f15
    https://github.com/scummvm/scummvm/commit/1d865fd826339f17ce1f94f33e7f5ee9ac1a3f15
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:15:55-08:00

Commit Message:
FULLPIPE: Implement sceneHandler31()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 63efe7c..44f42ad 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -749,6 +749,9 @@ namespace Fullpipe {
 
 // Scene 31
 #define ANI_CACTUS_31 2456
+#define MSG_SC31_PULL 2944
+#define MSG_SC31_TESTCACTUS 5095
+#define SND_31_001 4377
 #define ST_CTS31_GROWN2 2472
 
 // Debug scene
diff --git a/engines/fullpipe/scenes/scene31.cpp b/engines/fullpipe/scenes/scene31.cpp
index b033b88..30763c0 100644
--- a/engines/fullpipe/scenes/scene31.cpp
+++ b/engines/fullpipe/scenes/scene31.cpp
@@ -64,4 +64,57 @@ void scene31_initScene(Scene *sc) {
 		g_vars->scene31_plusMinus->_statics = g_vars->scene31_plusMinus->getStaticsById(ST_PMS_PLUS);
 }
 
+void sceneHandler31_testCactus(ExCommand *cmd) {
+	warning("STUB: sceneHandler31_testCactus");
+}
+
+int sceneHandler31(ExCommand *cmd) {
+	if (cmd->_messageKind != 17)
+		return 0;
+
+	switch (cmd->_messageNum) {
+	case MSG_SC31_TESTCACTUS:
+		sceneHandler31_testCactus(cmd);
+		break;
+
+	case MSG_SC15_STOPCHANTING:
+		g_fp->stopAllSoundInstances(SND_31_001);
+
+		g_vars->scene31_var05 = 120;
+		break;
+
+	case MSG_SC31_PULL:
+		if ( g_vars->scene31_plusMinus->_statics->_staticsId == ST_PMS_MINUS)
+			g_vars->scene31_plusMinus->_statics = g_vars->scene31_plusMinus->getStaticsById(ST_PMS_PLUS);
+		else
+			g_vars->scene31_plusMinus->_statics = g_vars->scene31_plusMinus->getStaticsById(ST_PMS_MINUS);
+
+		break;
+
+	case 33:
+		if (g_fp->_aniMan2) {
+			int x = g_fp->_aniMan2->_ox;
+
+			if (x < g_fp->_sceneRect.left + g_vars->scene31_var01)
+				g_fp->_currentScene->_x = x - g_vars->scene31_var03 - g_fp->_sceneRect.left;
+
+			if (x > g_fp->_sceneRect.right - g_vars->scene31_var01)
+				g_fp->_currentScene->_x = x + g_vars->scene31_var03 - g_fp->_sceneRect.right;
+		}
+
+		if (g_vars->scene31_var05 > 0) {
+			--g_vars->scene31_var05;
+
+			if (!g_vars->scene31_var05)
+				g_fp->playSound(SND_31_001, 1);
+		}
+
+		g_fp->_behaviorManager->updateBehaviors();
+
+		break;
+	}
+
+	return 0;
+}
+
 } // End of namespace Fullpipe


Commit: c2493c0690b3e3bb9ace7f9bfcdc0a1e8c838053
    https://github.com/scummvm/scummvm/commit/c2493c0690b3e3bb9ace7f9bfcdc0a1e8c838053
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:22:30-08:00

Commit Message:
FULLPIPE: Implement sceneHandler31_testCactus()

Changed paths:
    engines/fullpipe/scenes/scene31.cpp



diff --git a/engines/fullpipe/scenes/scene31.cpp b/engines/fullpipe/scenes/scene31.cpp
index 30763c0..9874772 100644
--- a/engines/fullpipe/scenes/scene31.cpp
+++ b/engines/fullpipe/scenes/scene31.cpp
@@ -65,7 +65,17 @@ void scene31_initScene(Scene *sc) {
 }
 
 void sceneHandler31_testCactus(ExCommand *cmd) {
-	warning("STUB: sceneHandler31_testCactus");
+	if ((g_vars->scene31_cactus->_flags & 4) && g_vars->scene31_cactus->_statics->_staticsId == ST_CTS31_GROWN2) {
+		MessageQueue *mq = g_fp->_globalMessageQueueList->getMessageQueueById(cmd->_parId);
+
+		if (mq) {
+			mq->getExCommandByIndex(0)->_messageKind = 0;
+			mq->getExCommandByIndex(0)->_excFlags |= 1;
+
+			mq->getExCommandByIndex(1)->_messageKind = 0;
+			mq->getExCommandByIndex(1)->_excFlags |= 1;
+		}
+	}
 }
 
 int sceneHandler31(ExCommand *cmd) {


Commit: 3ccecb9f8e4962e7ac17e6cfa85c7841443fd854
    https://github.com/scummvm/scummvm/commit/3ccecb9f8e4962e7ac17e6cfa85c7841443fd854
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:24:30-08:00

Commit Message:
FULLPIPE: Rename vars in scene31

Changed paths:
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene31.cpp



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 783db9c..69986ab 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -261,11 +261,7 @@ Vars::Vars() {
 	scene24_jet = 0;
 	scene24_drop = 0;
 
-	scene31_var01 = 0;
-	scene31_var02 = 0;
-	scene31_var03 = 0;
-	scene31_var04 = 0;
-	scene31_var05 = 0;
+	scene31_chantingCountdown = 0;
 	scene31_cactus = 0;
 	scene31_plusMinus = 0;
 
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 91ea142..66bc0cf 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -351,11 +351,7 @@ public:
 	StaticANIObject *scene24_jet;
 	StaticANIObject *scene24_drop;
 
-	int scene31_var01;
-	int scene31_var02;
-	int scene31_var03;
-	int scene31_var04;
-	int scene31_var05;
+	int scene31_chantingCountdown;
 	StaticANIObject *scene31_cactus;
 	StaticANIObject *scene31_plusMinus;
 
diff --git a/engines/fullpipe/scenes/scene31.cpp b/engines/fullpipe/scenes/scene31.cpp
index 9874772..587fc6a 100644
--- a/engines/fullpipe/scenes/scene31.cpp
+++ b/engines/fullpipe/scenes/scene31.cpp
@@ -37,11 +37,7 @@
 namespace Fullpipe {
 
 void scene31_initScene(Scene *sc) {
-	g_vars->scene31_var01 = 200;
-	g_vars->scene31_var02 = 200;
-	g_vars->scene31_var03 = 300;
-	g_vars->scene31_var04 = 300;
-	g_vars->scene31_var05 = 0;
+	g_vars->scene31_chantingCountdown = 0;
 	g_vars->scene31_cactus = sc->getStaticANIObject1ById(ANI_CACTUS_31, -1);
 
 	if (g_fp->getObjectState(sO_Cactus) == g_fp->getObjectEnumState(sO_Cactus, sO_HasGrown)) {
@@ -90,7 +86,7 @@ int sceneHandler31(ExCommand *cmd) {
 	case MSG_SC15_STOPCHANTING:
 		g_fp->stopAllSoundInstances(SND_31_001);
 
-		g_vars->scene31_var05 = 120;
+		g_vars->scene31_chantingCountdown = 120;
 		break;
 
 	case MSG_SC31_PULL:
@@ -105,17 +101,17 @@ int sceneHandler31(ExCommand *cmd) {
 		if (g_fp->_aniMan2) {
 			int x = g_fp->_aniMan2->_ox;
 
-			if (x < g_fp->_sceneRect.left + g_vars->scene31_var01)
-				g_fp->_currentScene->_x = x - g_vars->scene31_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->scene31_var01)
-				g_fp->_currentScene->_x = x + g_vars->scene31_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->scene31_var05 > 0) {
-			--g_vars->scene31_var05;
+		if (g_vars->scene31_chantingCountdown > 0) {
+			--g_vars->scene31_chantingCountdown;
 
-			if (!g_vars->scene31_var05)
+			if (!g_vars->scene31_chantingCountdown)
 				g_fp->playSound(SND_31_001, 1);
 		}
 


Commit: 6b87e3b01365879673558ace85287fc88d857f34
    https://github.com/scummvm/scummvm/commit/6b87e3b01365879673558ace85287fc88d857f34
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:25:48-08:00

Commit Message:
FULLPIPE: Enable scene31. This completes the scene

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 69986ab..a86e86e 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -772,6 +772,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		addMessageHandler(sceneHandler30, 2);
 		_updateCursorCallback = scene30_updateCursor;
 		break;
+#endif
 
 	case SC_31:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_31");
@@ -784,6 +785,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_updateCursorCallback = defaultUpdateCursor;
 		break;
 
+#if 0
 	case SC_32:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_32");
 		scene->preloadMovements(sceneVar);
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 66bc0cf..a39c1cc 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -109,6 +109,9 @@ void scene24_initScene(Scene *sc);
 void scene24_setPoolState();
 int sceneHandler24(ExCommand *cmd);
 
+void scene31_initScene(Scene *sc);
+int sceneHandler31(ExCommand *ex);
+
 void sceneDbgMenu_initScene(Scene *sc);
 int sceneHandlerDbgMenu(ExCommand *cmd);
 


Commit: 3da549630e0af5f1fbc39654c00b0346d3dc28be
    https://github.com/scummvm/scummvm/commit/3da549630e0af5f1fbc39654c00b0346d3dc28be
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:39:43-08:00

Commit Message:
FULLPIPE: Initial code for scene30

Changed paths:
  A engines/fullpipe/scenes/scene30.cpp
    engines/fullpipe/objectnames.h



diff --git a/engines/fullpipe/objectnames.h b/engines/fullpipe/objectnames.h
index 871ca5d..928fcad 100644
--- a/engines/fullpipe/objectnames.h
+++ b/engines/fullpipe/objectnames.h
@@ -32,7 +32,7 @@ namespace Fullpipe {
 #define sO_Pool "\xc1\xe0\xf1\xf1\xe5\xe9\xed"	// "Бассейн"
 #define sO_TummyTrampie "\xc1\xe0\xf2\xf3\xf2\xe0"	// "Батута"
 #define sO_WithoutBoot "\xc1\xe5\xe7 \xe1\xee\xf2\xe8\xed\xea\xe0"	// "Без ботинка"
-#define sO_WithoutJug "\xc1\xe5\xe7 \xe3\xee\xf0\xf8\xea\xee\xe2"	// "Без горшков"
+#define sO_WithoutJugs "\xc1\xe5\xe7 \xe3\xee\xf0\xf8\xea\xee\xe2"	// "Без горшков"
 #define sO_WithoutCarpet "\xc1\xe5\xe7 \xea\xee\xe2\xf0\xe8\xea\xe0"	// "Без коврика"
 #define sO_WithoutCoin "\xc1\xe5\xe7 \xec\xee\xed\xe5\xf2\xfb"	// "Без монеты"
 #define sO_WithNothing "\xc1\xe5\xe7 \xed\xe8\xf7\xe5\xe3\xee"	// "Без ничего"
@@ -190,7 +190,7 @@ namespace Fullpipe {
 #define sO_WithJug "\xd1 \xe3\xee\xf0\xf8\xea\xee\xec"	// "С горшком"
 #define sO_WithGum "\xd1 \xe6\xe2\xe0\xf7\xea\xee\xe9"	// "С жвачкой"
 #define sO_WithShovel "\xd1 \xeb\xee\xef\xe0\xf2\xee\xe9"	// "С лопатой"
-#define sO_WithTiny "\xd1 \xec\xe0\xeb\xfb\xec"	// "С малым"
+#define sO_WithSmall "\xd1 \xec\xe0\xeb\xfb\xec"	// "С малым"
 #define sO_WithHammer "\xd1 \xec\xee\xeb\xee\xf2\xea\xee\xec"	// "С молотком"
 #define sO_WithCoin "\xd1 \xec\xee\xed\xe5\xf2\xee\xe9"	// "С монетой"
 #define sO_WithSock "\xd1 \xed\xee\xf1\xea\xee\xec"	// "С носком"
@@ -204,7 +204,7 @@ namespace Fullpipe {
 #define sO_IsFree "\xd1\xe2\xee\xe1\xee\xe4\xed\xe0"	// "Свободна"
 #define sO_IsSitting "\xd1\xe8\xe4\xe8\xf2"	// "Сидит"
 #define sO_IsLaughing "\xd1\xec\xe5\xe5\xf2\xf1\xff"	// "Смеется"
-#define sO_WithEveryone "\xd1\xee \xe2\xf1\xe5\xec\xe8"	// "Со всеми"
+#define sO_WithAll "\xd1\xee \xe2\xf1\xe5\xec\xe8"	// "Со всеми"
 #define sO_WithMop "\xd1\xee \xf8\xe2\xe0\xe1\xf0\xee\xe9"	// "Со шваброй"
 #define sO_WithHose "\xd1\xee \xf8\xeb\xe0\xed\xe3\xee\xec"	// "Со шлангом"
 #define sO_WithBrush "\xd1\xee \xf9\xe5\xf2\xea\xee\xe9"	// "Со щеткой"
diff --git a/engines/fullpipe/scenes/scene30.cpp b/engines/fullpipe/scenes/scene30.cpp
new file mode 100644
index 0000000..125f8a9
--- /dev/null
+++ b/engines/fullpipe/scenes/scene30.cpp
@@ -0,0 +1,79 @@
+/* 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 scene30_enablePass(Scene *sc) {
+	warning("STUB: scene30_enablePass()");
+}
+
+void scene30_initScene(Scene *sc, int flag) {
+	g_vars->scene30_var01 = 200;
+	g_vars->scene30_var02 = 200;
+	g_vars->scene30_var03 = 300;
+	g_vars->scene30_var04 = 300;
+
+	Scene *oldsc = g_fp->_currentScene;
+
+	g_vars->scene30_leg = sc->getStaticANIObject1ById(ANI_LEG, -1);
+	g_fp->_currentScene = sc;
+
+	if (g_fp->getObjectState(sO_Leg) == g_fp->getObjectEnumState(sO_Leg, sO_ShowingHeel))
+		g_vars->scene30_leg->changeStatics2(ST_LEG_UP);
+	else if (g_fp->getObjectState(sO_Leg) == g_fp->getObjectEnumState(sO_Leg, sO_WithoutJugs))
+		g_vars->scene30_leg->changeStatics2(ST_LEG_DOWN);
+    else if (g_fp->getObjectState(sO_Leg) == g_fp->getObjectEnumState(sO_Leg, sO_WithBig))
+		g_vars->scene30_leg->changeStatics2(ST_LEG_DOWN1);
+	else if (g_fp->getObjectState(sO_Leg) == g_fp->getObjectEnumState(sO_Leg, sO_WithSmall))
+		g_vars->scene30_leg->changeStatics2(ST_LEG_DOWN2);
+	else if (g_fp->getObjectState(sO_Leg) == g_fp->getObjectEnumState(sO_Leg, sO_WithAll))
+		g_vars->scene30_leg->changeStatics2(ST_LEG_EMPTY);
+
+	g_fp->_currentScene = oldsc;
+
+	scene30_enablePass(sc);
+
+	if (flag == LiftUp || flag == LiftDown)
+		g_vars->scene30_var05 = 0;
+	else
+		g_vars->scene30_var05 = 1;
+
+	g_fp->lift_setButton(sO_Level8, ST_LBN_8N);
+
+	g_fp->lift_sub5(sc, QU_SC30_ENTERLIFT, QU_SC30_EXITLIFT);
+}
+
+} // End of namespace Fullpipe


Commit: ff6cbe625b31c2fee34282dc4f22932cc112b28a
    https://github.com/scummvm/scummvm/commit/ff6cbe625b31c2fee34282dc4f22932cc112b28a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:44:57-08:00

Commit Message:
FULLPIPE: Plug scene30 in

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 44f42ad..28eee39 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -747,7 +747,19 @@ namespace Fullpipe {
 #define ST_DRP24_EMPTY 3507
 #define ST_WTR24_FLOWLOWER 1843
 
+// Scene 30
+#define ANI_LEG 2322
+#define QU_SC30_ENTERLIFT 2823
+#define QU_SC30_EXITLIFT 2824
+#define ST_LEG_DOWN 2325
+#define ST_LEG_DOWN1 2330
+#define ST_LEG_DOWN2 2334
+#define ST_LEG_EMPTY 2338
+#define ST_LEG_UP 2324
+
 // Scene 31
+#define LiftDown 1058
+#define LiftUp 1057
 #define ANI_CACTUS_31 2456
 #define MSG_SC31_PULL 2944
 #define MSG_SC31_TESTCACTUS 5095
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index 39e20ee..aa18924 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -42,6 +42,7 @@ MODULE_OBJS = \
 	scenes/scene17.o \
 	scenes/scene21.o \
 	scenes/scene24.o \
+	scenes/scene30.o \
 	scenes/scene31.o \
 	scenes/sceneDbg.o \
 	scenes/sceneIntro.o
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index a86e86e..0a95b5e 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -261,6 +261,13 @@ Vars::Vars() {
 	scene24_jet = 0;
 	scene24_drop = 0;
 
+	scene30_var01 = 0;
+	scene30_var02 = 0;
+	scene30_var03 = 0;
+	scene30_var04 = 0;
+	scene30_leg = 0;
+	scene30_var05 = 0;
+
 	scene31_chantingCountdown = 0;
 	scene31_cactus = 0;
 	scene31_plusMinus = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index a39c1cc..296e3d1 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -354,6 +354,13 @@ public:
 	StaticANIObject *scene24_jet;
 	StaticANIObject *scene24_drop;
 
+	int scene30_var01;
+	int scene30_var02;
+	int scene30_var03;
+	int scene30_var04;
+	StaticANIObject *scene30_leg;
+	int scene30_var05;
+
 	int scene31_chantingCountdown;
 	StaticANIObject *scene31_cactus;
 	StaticANIObject *scene31_plusMinus;


Commit: b2fe937db5f54499676c860761360ea17df5c8f2
    https://github.com/scummvm/scummvm/commit/b2fe937db5f54499676c860761360ea17df5c8f2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:47:47-08:00

Commit Message:
FULLPIPE: Implement scene30_enablePass()

Changed paths:
    engines/fullpipe/scenes/scene30.cpp



diff --git a/engines/fullpipe/scenes/scene30.cpp b/engines/fullpipe/scenes/scene30.cpp
index 125f8a9..ace3ce0 100644
--- a/engines/fullpipe/scenes/scene30.cpp
+++ b/engines/fullpipe/scenes/scene30.cpp
@@ -37,7 +37,12 @@
 namespace Fullpipe {
 
 void scene30_enablePass(Scene *sc) {
-	warning("STUB: scene30_enablePass()");
+	MovGraphLink *lnk = getSc2MctlCompoundBySceneId(sc->_sceneId)->getLinkByName(sO_WayToPipe);
+
+	if (g_fp->getObjectState(sO_Leg) == g_fp->getObjectEnumState(sO_Leg, sO_WithAll))
+		lnk->_flags &= 0xDFFFFFFF;
+	else
+		lnk->_flags |= 0x20000000;
 }
 
 void scene30_initScene(Scene *sc, int flag) {


Commit: 39b83756b8ecb380c01add00c137ef4765605191
    https://github.com/scummvm/scummvm/commit/39b83756b8ecb380c01add00c137ef4765605191
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:49:35-08:00

Commit Message:
FULLPIPE: Implement scene30_updateCursor()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 28eee39..09fe970 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -749,6 +749,7 @@ namespace Fullpipe {
 
 // Scene 30
 #define ANI_LEG 2322
+#define PIC_SC30_LTRUBA 2354
 #define QU_SC30_ENTERLIFT 2823
 #define QU_SC30_EXITLIFT 2824
 #define ST_LEG_DOWN 2325
diff --git a/engines/fullpipe/scenes/scene30.cpp b/engines/fullpipe/scenes/scene30.cpp
index ace3ce0..51f6866 100644
--- a/engines/fullpipe/scenes/scene30.cpp
+++ b/engines/fullpipe/scenes/scene30.cpp
@@ -81,4 +81,13 @@ void scene30_initScene(Scene *sc, int flag) {
 	g_fp->lift_sub5(sc, QU_SC30_ENTERLIFT, QU_SC30_EXITLIFT);
 }
 
+int scene30_updateCursor() {
+	g_fp->updateCursorCommon();
+
+	if (g_fp->_cursorId == PIC_CSR_ITN && g_fp->_objectIdAtCursor == PIC_SC30_LTRUBA) {
+		g_fp->_cursorId = PIC_CSR_GOL;
+	}
+	return g_fp->_cursorId;
+}
+
 } // End of namespace Fullpipe


Commit: 64b001e8697bcc87d9bdbed6acddabc05277b747
    https://github.com/scummvm/scummvm/commit/64b001e8697bcc87d9bdbed6acddabc05277b747
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T03:59:11-08:00

Commit Message:
FULLPIPE: Implement sceneHandler30()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 09fe970..127c380 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -749,6 +749,7 @@ namespace Fullpipe {
 
 // Scene 30
 #define ANI_LEG 2322
+#define MSG_SC30_UPDATEPATH 2358
 #define PIC_SC30_LTRUBA 2354
 #define QU_SC30_ENTERLIFT 2823
 #define QU_SC30_EXITLIFT 2824
diff --git a/engines/fullpipe/scenes/scene30.cpp b/engines/fullpipe/scenes/scene30.cpp
index 51f6866..13e9477 100644
--- a/engines/fullpipe/scenes/scene30.cpp
+++ b/engines/fullpipe/scenes/scene30.cpp
@@ -90,4 +90,68 @@ int scene30_updateCursor() {
 	return g_fp->_cursorId;
 }
 
+int sceneHandler30(ExCommand *cmd) {
+	if (cmd->_messageKind != 17)
+		return 0;
+
+	switch(cmd->_messageNum) {
+	case MSG_LIFT_CLOSEDOOR:
+		g_fp->lift_closedoorSeq();
+		break;
+
+	case MSG_LIFT_EXITLIFT:
+		g_fp->lift_exitSeq(cmd);
+		break;
+
+	case MSG_LIFT_STARTEXITQUEUE:
+		g_fp->lift_startExitQueue();
+		break;
+
+	case MSG_LIFT_CLICKBUTTON:
+		g_fp->lift_animation3();
+		break;
+
+	case MSG_SC30_UPDATEPATH:
+		scene30_enablePass(g_fp->_currentScene);
+		break;
+
+	case 64:
+		g_fp->lift_sub05(cmd);
+		break;
+
+	case MSG_LIFT_GO:
+		g_fp->lift_goAnimation();
+		break;
+
+	case 29:
+		{
+			StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(g_fp->_sceneRect.left + cmd->_x, g_fp->_sceneRect.top + cmd->_y);
+
+			if (ani && ani->_id == ANI_LIFTBUTTON) {
+				g_fp->lift_sub1(ani);
+
+				cmd->_messageKind = 0;
+			}
+			break;
+		}
+
+	case 33:
+		if (g_fp->_aniMan2) {
+			int x = g_fp->_aniMan2->_ox;
+
+			if (x < g_fp->_sceneRect.left + g_vars->scene30_var01)
+				g_fp->_currentScene->_x = x - g_vars->scene30_var03 - g_fp->_sceneRect.left;
+
+			if (x > g_fp->_sceneRect.right - g_vars->scene30_var01)
+				g_fp->_currentScene->_x = x + g_vars->scene30_var03 - g_fp->_sceneRect.right;
+		}
+
+		g_fp->_behaviorManager->updateBehaviors();
+
+		break;
+	}
+
+	return 0;
+}
+
 } // End of namespace Fullpipe


Commit: 8deb6908e24ba1110be142390d083b1c57385389
    https://github.com/scummvm/scummvm/commit/8deb6908e24ba1110be142390d083b1c57385389
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T04:02:21-08:00

Commit Message:
FULLPIPE: Rename vars in scene30

Changed paths:
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene30.cpp



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 0a95b5e..0330977 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -261,12 +261,8 @@ Vars::Vars() {
 	scene24_jet = 0;
 	scene24_drop = 0;
 
-	scene30_var01 = 0;
-	scene30_var02 = 0;
-	scene30_var03 = 0;
-	scene30_var04 = 0;
 	scene30_leg = 0;
-	scene30_var05 = 0;
+	scene30_liftFlag = 1;
 
 	scene31_chantingCountdown = 0;
 	scene31_cactus = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 296e3d1..d8a1b18 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -354,12 +354,8 @@ public:
 	StaticANIObject *scene24_jet;
 	StaticANIObject *scene24_drop;
 
-	int scene30_var01;
-	int scene30_var02;
-	int scene30_var03;
-	int scene30_var04;
 	StaticANIObject *scene30_leg;
-	int scene30_var05;
+	int scene30_liftFlag;
 
 	int scene31_chantingCountdown;
 	StaticANIObject *scene31_cactus;
diff --git a/engines/fullpipe/scenes/scene30.cpp b/engines/fullpipe/scenes/scene30.cpp
index 13e9477..59cb83e 100644
--- a/engines/fullpipe/scenes/scene30.cpp
+++ b/engines/fullpipe/scenes/scene30.cpp
@@ -46,11 +46,6 @@ void scene30_enablePass(Scene *sc) {
 }
 
 void scene30_initScene(Scene *sc, int flag) {
-	g_vars->scene30_var01 = 200;
-	g_vars->scene30_var02 = 200;
-	g_vars->scene30_var03 = 300;
-	g_vars->scene30_var04 = 300;
-
 	Scene *oldsc = g_fp->_currentScene;
 
 	g_vars->scene30_leg = sc->getStaticANIObject1ById(ANI_LEG, -1);
@@ -72,9 +67,9 @@ void scene30_initScene(Scene *sc, int flag) {
 	scene30_enablePass(sc);
 
 	if (flag == LiftUp || flag == LiftDown)
-		g_vars->scene30_var05 = 0;
+		g_vars->scene30_liftFlag = 0;
 	else
-		g_vars->scene30_var05 = 1;
+		g_vars->scene30_liftFlag = 1;
 
 	g_fp->lift_setButton(sO_Level8, ST_LBN_8N);
 
@@ -139,11 +134,11 @@ int sceneHandler30(ExCommand *cmd) {
 		if (g_fp->_aniMan2) {
 			int x = g_fp->_aniMan2->_ox;
 
-			if (x < g_fp->_sceneRect.left + g_vars->scene30_var01)
-				g_fp->_currentScene->_x = x - g_vars->scene30_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->scene30_var01)
-				g_fp->_currentScene->_x = x + g_vars->scene30_var03 - g_fp->_sceneRect.right;
+			if (x > g_fp->_sceneRect.right - 200)
+				g_fp->_currentScene->_x = x + 300 - g_fp->_sceneRect.right;
 		}
 
 		g_fp->_behaviorManager->updateBehaviors();


Commit: 3f7077a251f2b2d75a269a652a30e08313c061be
    https://github.com/scummvm/scummvm/commit/3f7077a251f2b2d75a269a652a30e08313c061be
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T04:04:05-08:00

Commit Message:
FULLPIPE: Enable scene30. This completes the scene

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 0330977..79b9830 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -764,18 +764,18 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		addMessageHandler(sceneHandler29, 2);
 		_updateCursorCallback = scene29_updateCursor;
 		break;
+#endif
 
 	case SC_30:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_30");
 		scene->preloadMovements(sceneVar);
-		scene30_initScene(scene, entrance->field_4);
+		scene30_initScene(scene, entrance->_field_4);
 		_behaviorManager->initBehavior(scene, sceneVar);
 		scene->initObjectCursors("SC_30");
 		setSceneMusicParameters(sceneVar);
 		addMessageHandler(sceneHandler30, 2);
 		_updateCursorCallback = scene30_updateCursor;
 		break;
-#endif
 
 	case SC_31:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_31");
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index d8a1b18..f15ce00 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -109,6 +109,10 @@ void scene24_initScene(Scene *sc);
 void scene24_setPoolState();
 int sceneHandler24(ExCommand *cmd);
 
+int scene30_updateCursor();
+ void scene30_initScene(Scene *sc, int flag);
+int sceneHandler30(ExCommand *cmd);
+
 void scene31_initScene(Scene *sc);
 int sceneHandler31(ExCommand *ex);
 


Commit: f7235b8a4c7310544acc562ed4a9431ec64b2e3b
    https://github.com/scummvm/scummvm/commit/f7235b8a4c7310544acc562ed4a9431ec64b2e3b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T04:54:25-08:00

Commit Message:
FULLPIPE: Initial code for scene36

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



diff --git a/engines/fullpipe/scenes/scene36.cpp b/engines/fullpipe/scenes/scene36.cpp
new file mode 100644
index 0000000..a979338
--- /dev/null
+++ b/engines/fullpipe/scenes/scene36.cpp
@@ -0,0 +1,48 @@
+/* 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 scene36_initScene(Scene *sc) {
+	g_vars->scene36_var01 = 200;
+	g_vars->scene36_var02 = 200;
+	g_vars->scene36_var03 = 300;
+	g_vars->scene36_var04 = 300;
+	g_vars->scene36_rotohrust = sc->getStaticANIObject1ById(ANI_ROTOHRUST, -1);
+	g_vars->scene36_scissors = sc->getStaticANIObject1ById(ANI_SCISSORS_36, -1);
+}
+
+} // End of namespace Fullpipe


Commit: 85420834b5d7dac9aca0a536fbd682ab65c54b1d
    https://github.com/scummvm/scummvm/commit/85420834b5d7dac9aca0a536fbd682ab65c54b1d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T04:56:54-08:00

Commit Message:
FULLPIPE: Plug scene36 in

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 127c380..4a0a0db 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -768,6 +768,10 @@ namespace Fullpipe {
 #define SND_31_001 4377
 #define ST_CTS31_GROWN2 2472
 
+// Scene 36
+#define ANI_SCISSORS_36 2647
+#define ANI_ROTOHRUST 2360
+
 // Debug scene
 #define PIC_SCD_1 727
 #define PIC_SCD_2 728
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index aa18924..3a0ccc9 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -44,6 +44,7 @@ MODULE_OBJS = \
 	scenes/scene24.o \
 	scenes/scene30.o \
 	scenes/scene31.o \
+	scenes/scene36.o \
 	scenes/sceneDbg.o \
 	scenes/sceneIntro.o
 
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 79b9830..7d02ec4 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -268,6 +268,13 @@ Vars::Vars() {
 	scene31_cactus = 0;
 	scene31_plusMinus = 0;
 
+	scene36_var01 = 0;
+	scene36_var02 = 0;
+	scene36_var03 = 0;
+	scene36_var04 = 0;
+	scene36_rotohrust = 0;
+	scene36_scissors = 0;
+
 	selector = 0;
 }
 
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index f15ce00..f1a10ee 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -365,6 +365,13 @@ public:
 	StaticANIObject *scene31_cactus;
 	StaticANIObject *scene31_plusMinus;
 
+	int scene36_var01;
+	int scene36_var02;
+	int scene36_var03;
+	int scene36_var04;
+	StaticANIObject *scene36_rotohrust;
+	StaticANIObject *scene36_scissors;
+
 	PictureObject *selector;
 };
 


Commit: 3d949b1bdfbef9159188e1632ad63ae9f76c65c8
    https://github.com/scummvm/scummvm/commit/3d949b1bdfbef9159188e1632ad63ae9f76c65c8
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T05:02:33-08:00

Commit Message:
FULLPIPE: Implement scene36_updateCursor()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 4a0a0db..16dac18 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -771,6 +771,8 @@ namespace Fullpipe {
 // Scene 36
 #define ANI_SCISSORS_36 2647
 #define ANI_ROTOHRUST 2360
+#define PIC_SC36_MASK 5221
+#define ST_RHT_OPEN 2362
 
 // Debug scene
 #define PIC_SCD_1 727
diff --git a/engines/fullpipe/scenes/scene36.cpp b/engines/fullpipe/scenes/scene36.cpp
index a979338..744df72 100644
--- a/engines/fullpipe/scenes/scene36.cpp
+++ b/engines/fullpipe/scenes/scene36.cpp
@@ -45,4 +45,16 @@ void scene36_initScene(Scene *sc) {
 	g_vars->scene36_scissors = sc->getStaticANIObject1ById(ANI_SCISSORS_36, -1);
 }
 
+int scene36_updateCursor() {
+	g_fp->updateCursorCommon();
+
+	if (g_fp->_cursorId != PIC_CSR_ITN || g_fp->_objectIdAtCursor != ANI_ROTOHRUST) {
+		if (g_fp->_objectIdAtCursor == PIC_SC36_MASK && g_fp->_cursorId == PIC_CSR_DEFAULT && (g_vars->scene36_scissors->_flags & 4))
+			g_fp->_cursorId = PIC_CSR_ITN;
+	} else if (g_vars->scene36_rotohrust->_statics->_staticsId == ST_RHT_OPEN)
+		g_fp->_cursorId = PIC_CSR_GOL;
+
+	return g_fp->_cursorId;
+}
+
 } // End of namespace Fullpipe


Commit: fcae83afad870dfa0b6986c1b6d2f151675d4218
    https://github.com/scummvm/scummvm/commit/fcae83afad870dfa0b6986c1b6d2f151675d4218
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T05:14:17-08:00

Commit Message:
FULLPIPE: Implement sceneHandler36()

Changed paths:
    engines/fullpipe/scenes/scene36.cpp



diff --git a/engines/fullpipe/scenes/scene36.cpp b/engines/fullpipe/scenes/scene36.cpp
index 744df72..b973ec9 100644
--- a/engines/fullpipe/scenes/scene36.cpp
+++ b/engines/fullpipe/scenes/scene36.cpp
@@ -57,4 +57,42 @@ int scene36_updateCursor() {
 	return g_fp->_cursorId;
 }
 
+int sceneHandler36(ExCommand *cmd) {
+	if (cmd->_messageKind != 17)
+		return 0;
+
+	switch (cmd->_messageNum) {
+	case 29:
+		if (g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY) == PIC_SC36_MASK)
+			if (g_vars->scene36_scissors)
+				if (g_vars->scene36_scissors->_flags & 4)
+					if (g_fp->_aniMan->isIdle())
+						if (!(g_fp->_aniMan->_flags & 0x100) && g_fp->_msgObjectId2 != g_vars->scene36_scissors->_id ) {
+							handleObjectInteraction(g_fp->_aniMan, g_vars->scene36_scissors, cmd->_keyCode);
+
+							cmd->_messageKind = 0;
+						}
+
+		break;
+
+	case 33:
+		if (g_fp->_aniMan2) {
+			int x = g_fp->_aniMan2->_ox;
+
+			if (x < g_fp->_sceneRect.left + g_vars->scene36_var01)
+				g_fp->_currentScene->_x = x - g_vars->scene36_var03 - g_fp->_sceneRect.left;
+
+			if (x > g_fp->_sceneRect.right - g_vars->scene36_var01)
+				g_fp->_currentScene->_x = x + g_vars->scene36_var03 - g_fp->_sceneRect.right;
+		}
+
+		g_fp->_behaviorManager->updateBehaviors();
+		g_fp->startSceneTrack();
+
+		break;
+	}
+
+	return 0;
+}
+
 } // End of namespace Fullpipe


Commit: b6f4bce10c77d893a3c749f08dcc1227ec78a8bb
    https://github.com/scummvm/scummvm/commit/b6f4bce10c77d893a3c749f08dcc1227ec78a8bb
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T05:15:27-08:00

Commit Message:
FULLPIPE: Rename vars in scene36

Changed paths:
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene36.cpp



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 7d02ec4..fa70b0a 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -268,10 +268,6 @@ Vars::Vars() {
 	scene31_cactus = 0;
 	scene31_plusMinus = 0;
 
-	scene36_var01 = 0;
-	scene36_var02 = 0;
-	scene36_var03 = 0;
-	scene36_var04 = 0;
 	scene36_rotohrust = 0;
 	scene36_scissors = 0;
 
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index f1a10ee..fb39949 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -365,10 +365,6 @@ public:
 	StaticANIObject *scene31_cactus;
 	StaticANIObject *scene31_plusMinus;
 
-	int scene36_var01;
-	int scene36_var02;
-	int scene36_var03;
-	int scene36_var04;
 	StaticANIObject *scene36_rotohrust;
 	StaticANIObject *scene36_scissors;
 
diff --git a/engines/fullpipe/scenes/scene36.cpp b/engines/fullpipe/scenes/scene36.cpp
index b973ec9..7d237fd 100644
--- a/engines/fullpipe/scenes/scene36.cpp
+++ b/engines/fullpipe/scenes/scene36.cpp
@@ -37,10 +37,6 @@
 namespace Fullpipe {
 
 void scene36_initScene(Scene *sc) {
-	g_vars->scene36_var01 = 200;
-	g_vars->scene36_var02 = 200;
-	g_vars->scene36_var03 = 300;
-	g_vars->scene36_var04 = 300;
 	g_vars->scene36_rotohrust = sc->getStaticANIObject1ById(ANI_ROTOHRUST, -1);
 	g_vars->scene36_scissors = sc->getStaticANIObject1ById(ANI_SCISSORS_36, -1);
 }
@@ -79,11 +75,11 @@ int sceneHandler36(ExCommand *cmd) {
 		if (g_fp->_aniMan2) {
 			int x = g_fp->_aniMan2->_ox;
 
-			if (x < g_fp->_sceneRect.left + g_vars->scene36_var01)
-				g_fp->_currentScene->_x = x - g_vars->scene36_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->scene36_var01)
-				g_fp->_currentScene->_x = x + g_vars->scene36_var03 - g_fp->_sceneRect.right;
+			if (x > g_fp->_sceneRect.right - 200)
+				g_fp->_currentScene->_x = x + 300 - g_fp->_sceneRect.right;
 		}
 
 		g_fp->_behaviorManager->updateBehaviors();


Commit: 389d1f3fe5d1da0d735eed856510f20e4e46d0b9
    https://github.com/scummvm/scummvm/commit/389d1f3fe5d1da0d735eed856510f20e4e46d0b9
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T05:17:11-08:00

Commit Message:
FULLPIPE: Enable scene36. This completes the scene

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index fa70b0a..16fa78c 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -838,6 +838,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		insertMessageHandler(sceneHandler35, 2, 2);
 		_updateCursorCallback = defaultUpdateCursor;
 		break;
+#endif
 
 	case SC_36:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_36");
@@ -850,6 +851,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_updateCursorCallback = scene36_updateCursor;
 		break;
 
+#if 0
 	case SC_37:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_37");
 		scene->preloadMovements(sceneVar);
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index fb39949..4ff23d2 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -116,6 +116,10 @@ int sceneHandler30(ExCommand *cmd);
 void scene31_initScene(Scene *sc);
 int sceneHandler31(ExCommand *ex);
 
+int scene36_updateCursor();
+void scene36_initScene(Scene *sc);
+int sceneHandler36(ExCommand *cmd);
+
 void sceneDbgMenu_initScene(Scene *sc);
 int sceneHandlerDbgMenu(ExCommand *cmd);
 






More information about the Scummvm-git-logs mailing list