[Scummvm-cvs-logs] scummvm master -> 84bf5238cd69ee6cf2fee11431d7c48b8aba906a

sev- sev at scummvm.org
Sat Dec 14 16:39:57 CET 2013


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

Summary:
84bf5238cd FULLPIPE: Started scene05 code


Commit: 84bf5238cd69ee6cf2fee11431d7c48b8aba906a
    https://github.com/scummvm/scummvm/commit/84bf5238cd69ee6cf2fee11431d7c48b8aba906a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-14T07:39:10-08:00

Commit Message:
FULLPIPE: Started scene05 code

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index b2ebea6..db9b6f6 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -26,6 +26,7 @@
 namespace Fullpipe {
 
 #define ANI_BIGBALL 4923
+#define ANI_BIGLUK 909
 #define ANI_BOOT_1 4231
 #define ANI_BUTTON 598
 #define ANI_CLOCK 588
@@ -33,6 +34,7 @@ namespace Fullpipe {
 #define ANI_DADAYASHIK 306
 #define ANI_EGGEATER 334
 #define ANI_HAND 601
+#define ANI_HANDLE 622
 #define ANI_IN1MAN 5110
 #define ANI_INV_COIN 875
 #define ANI_INV_EGGAPL 1564
@@ -45,6 +47,7 @@ namespace Fullpipe {
 #define ANI_LIFTBUTTON 2751
 #define ANI_MAMASHA_4 660
 #define ANI_MAN 322
+#define ANI_OTMOROZ 419
 #define ANI_PLANK 501
 #define ANI_SC2_BOX 1020
 #define ANI_SC4_BOOT 1035
@@ -96,6 +99,15 @@ namespace Fullpipe {
 #define MSG_SC4_KOZAWFALL 2858
 #define MSG_SC4_MANFROMBOTTLE 2854
 #define MSG_SC4_MANTOBOTTLE 2852
+#define MSG_SC5_BGRSOUNDOFF 5315
+#define MSG_SC5_BGRSOUNDON 5314
+#define MSG_SC5_HANDLEDOWN 916
+#define MSG_SC5_HANDLEUP 915
+#define MSG_SC5_HIDEHANDLE 917
+#define MSG_SC5_MAKEMANFLIGHT 1136
+#define MSG_SC5_MAKEOTMFEEDBACK 1169
+#define MSG_SC5_SHOWHANDLE 918
+#define MSG_SC5_TESTLUK 914
 #define MSG_GOTOLADDER 618
 #define MSG_SHAKEBOTTLE 584
 #define MSG_SHOOTKOZAW 557
@@ -140,6 +152,8 @@ namespace Fullpipe {
 #define MV_MAN_TOLADDER2 2841
 #define MV_MAN_TURN_LU 486
 #define MV_MAN_TURN_SUD 1089
+#define MV_MANHDL_HANDLEDOWN 630
+#define MV_MANHDL_HANDLEUP 631
 #define MV_PNK_WEIGHTLEFT 541
 #define MV_PNK_WEIGHTRIGHT 502
 #define MV_SC4_COIN_default 1029
@@ -275,14 +289,19 @@ namespace Fullpipe {
 #define SND_4_010 3125
 #define SND_4_012 3127
 #define SND_4_033 4990
+#define SND_5_026 5316
 #define SND_CMN_031 3516
 #define SND_CMN_070 5199
 #define SND_INTR_019 5220
+#define ST_BLK_CLOSED 912
 #define ST_CLK_CLOSED 590
 #define ST_DYAS_LIES 318
 #define ST_EGTR_MID1 2863
 #define ST_EGTR_MID2 2869
 #define ST_EGTR_SLIM 336
+#define ST_HDL_BROKEN 3342
+#define ST_HDL_DOWN 625
+#define ST_HDL_UP 624
 #define ST_HND_EMPTY 603
 #define ST_IN1MAN_SLEEP 5112
 #define ST_KZW_EMPTY 498
@@ -319,6 +338,9 @@ namespace Fullpipe {
 #define ST_MAN_SIT 1164
 #define ST_MAN_STANDLADDER 453
 #define ST_MAN_UP 449
+#define ST_OTM_BOX_LEFT 429
+#define ST_OTM_GLS_LEFT 421
+#define ST_OTM_VNT_LEFT 434
 #define ST_PNK_WEIGHTLEFT 503
 #define ST_PNK_WEIGHTRIGHT 504
 #define ST_SPR_UP 544
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index eb502cb..51b9353 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -151,6 +151,7 @@ public:
 	void startSceneTrack();
 	void stopSoundStream2();
 	void stopAllSoundStreams();
+	void stopAllSoundInstances(int id);
 
 	int _sfxVolume;
 
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index bd948b7..1da0c33 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -28,6 +28,7 @@ MODULE_OBJS = \
 	scenes/scene02.o \
 	scenes/scene03.o \
 	scenes/scene04.o \
+	scenes/scene05.o \
 	scenes/sceneDbg.o \
 	scenes/sceneIntro.o
 
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 95ca7c1..a36b30a 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -103,6 +103,13 @@ Vars::Vars() {
 	scene04_bottleY = 0;
 	scene04_ladderOffset = 0;
 
+	scene05_handle = 0;
+	scene05_wacko = 0;
+	scene05_bigHatch = 0;
+	scene05_var01 = 0;
+	scene05_var02 = 0;
+	scene05_var03 = 0;
+
 	selector = 0;
 }
 
@@ -265,7 +272,6 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_updateCursorCallback = scene04_updateCursor;
 		break;
 
-#if 0
 	case SC_5:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_5");
 		scene->preloadMovements(sceneVar);
@@ -277,6 +283,7 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_updateCursorCallback = defaultUpdateCursor;
 		break;
 
+#if 0
 	case SC_6:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_6");
 		scene->preloadMovements(sceneVar);
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 2905c27..4645d8b 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -50,6 +50,9 @@ int scene04_updateCursor();
 void scene04_initScene(Scene *sc);
 int sceneHandler04(ExCommand *cmd);
 
+void scene05_initScene(Scene *sc);
+int sceneHandler05(ExCommand *cmd);
+
 void sceneDbgMenu_initScene(Scene *sc);
 int sceneHandlerDbgMenu(ExCommand *cmd);
 
@@ -131,6 +134,13 @@ public:
 	StaticANIObject *scene04_lastKozyawka;
 	int scene04_springDelay;
 
+	StaticANIObject *scene05_handle;
+	StaticANIObject *scene05_wacko;
+	StaticANIObject *scene05_bigHatch;
+	int scene05_var01;
+	int scene05_var02;
+	int scene05_var03;
+
 	PictureObject *selector;
 };
 
diff --git a/engines/fullpipe/scenes/scene05.cpp b/engines/fullpipe/scenes/scene05.cpp
new file mode 100644
index 0000000..3127105
--- /dev/null
+++ b/engines/fullpipe/scenes/scene05.cpp
@@ -0,0 +1,191 @@
+/* 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/objects.h"
+#include "fullpipe/objectnames.h"
+#include "fullpipe/constants.h"
+#include "fullpipe/statics.h"
+#include "fullpipe/scene.h"
+#include "fullpipe/scenes.h"
+#include "fullpipe/messages.h"
+#include "fullpipe/floaters.h"
+#include "fullpipe/behavior.h"
+
+namespace Fullpipe {
+
+void scene05_initScene(Scene *sc) {
+	g_vars->scene05_handle = sc->getStaticANIObject1ById(ANI_HANDLE, -1);
+	g_vars->scene05_wacko = sc->getStaticANIObject1ById(ANI_OTMOROZ, -1);
+	g_vars->scene05_bigHatch = sc->getStaticANIObject1ById(ANI_BIGLUK, -1);
+
+
+	g_vars->scene05_var01 = 0;
+	g_vars->scene05_var02 = 1;
+	g_vars->scene05_var03 = 1000;
+
+	Scene *oldscene = g_fullpipe->_currentScene;
+
+	g_fullpipe->_currentScene = sc;
+
+	if (g_fullpipe->getObjectState(sO_WeirdWacko) == g_fullpipe->getObjectEnumState(sO_WeirdWacko, sO_InGlasses)) {
+		g_vars->scene05_wacko->changeStatics2(ST_OTM_GLS_LEFT);
+		g_vars->scene05_bigHatch->changeStatics2(ST_BLK_CLOSED);
+
+		g_vars->scene05_handle->changeStatics2(ST_HDL_UP);
+		g_vars->scene05_handle->_flags |= 4;
+	} else if (g_fullpipe->getObjectState(sO_WeirdWacko) == g_fullpipe->getObjectEnumState(sO_WeirdWacko, sO_WithDrawer)) {
+		g_vars->scene05_wacko->changeStatics2(ST_OTM_BOX_LEFT);
+		g_vars->scene05_bigHatch->changeStatics2(ST_BLK_CLOSED);
+		g_vars->scene05_handle->changeStatics2(ST_HDL_UP);
+		g_vars->scene05_handle->_flags |= 4;
+	} else {
+		g_vars->scene05_wacko->changeStatics2(ST_OTM_VNT_LEFT);
+
+		if (g_fullpipe->getObjectState(sO_WeirdWacko) != g_fullpipe->getObjectEnumState(sO_WeirdWacko, sO_WithPlunger)) {
+			g_vars->scene05_handle->changeStatics2(ST_HDL_BROKEN);
+			g_vars->scene05_bigHatch->changeStatics2(ST_BLK_CLOSED);
+		}
+	}
+
+	g_fullpipe->_currentScene = oldscene;
+}
+
+void sceneHandler05_makeManFlight() {
+	warning("STUB: sceneHandler05_makeManFlight()");
+}
+
+void sceneHandler05_makeOtmFeedback() {
+	warning("STUB: sceneHandler05_makeOtmFeedback()");
+}
+
+void sceneHandler05_showHandle() {
+	warning("STUB: sceneHandler05_showHandle()");
+}
+
+void sceneHandler05_handleDown() {
+	warning("STUB: sceneHandler05_handleDown()");
+}
+
+void sceneHandler05_hideHandle() {
+	warning("STUB: sceneHandler05_hideHandle()");
+}
+
+void sceneHandler05_handleUp() {
+	warning("STUB: sceneHandler05_handleUp()");
+}
+
+void sceneHandler05_testHatch(ExCommand *ex) {
+	warning("STUB: sceneHandler05_testHatch()");
+}
+
+
+int sceneHandler05(ExCommand *ex) {
+	if (ex->_messageKind != 17)
+		return 0;
+
+	switch (ex->_messageNum) {
+	case MSG_SC5_BGRSOUNDOFF:
+        g_fullpipe->stopAllSoundInstances(SND_5_026);
+		break;
+
+	case MSG_SC5_BGRSOUNDON:
+        g_fullpipe->playSound(SND_5_026, 1);
+		break;
+
+	case MSG_SC5_MAKEMANFLIGHT:
+        sceneHandler05_makeManFlight();
+		break;
+
+	case MSG_SC5_MAKEOTMFEEDBACK:
+        if (!g_fullpipe->_aniMan->_movement || (g_fullpipe->_aniMan->_movement->_id != MV_MANHDL_HANDLEUP 
+												&& g_fullpipe->_aniMan->_movement->_id != MV_MANHDL_HANDLEDOWN)) {
+			sceneHandler05_makeOtmFeedback();
+			g_vars->scene05_var01 = 0;
+        }
+		break;
+
+	case MSG_SC5_SHOWHANDLE:
+		sceneHandler05_showHandle();
+		break;
+
+	case MSG_SC5_HANDLEDOWN:
+		g_vars->scene05_handle->changeStatics2(ST_HDL_DOWN);
+		sceneHandler05_handleDown();
+		break;
+
+	case MSG_SC5_HIDEHANDLE:
+		sceneHandler05_hideHandle();
+		break;
+
+	case MSG_SC5_HANDLEUP:
+		g_vars->scene05_handle->changeStatics2(ST_HDL_UP);
+		sceneHandler05_handleUp();
+		break;
+
+	case MSG_SC5_TESTLUK:
+		sceneHandler05_testHatch(ex);
+		break;
+
+	case 33: 
+		{
+			int res = 0;
+			if (g_fullpipe->_aniMan2) {
+				if (g_fullpipe->_aniMan2->_ox < g_fullpipe->_sceneRect.left + 200)
+					g_fullpipe->_currentScene->_x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.left - 300;
+
+				if (g_fullpipe->_aniMan2->_ox > g_fullpipe->_sceneRect.right - 200)
+					g_fullpipe->_currentScene->_x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.right + 300;
+
+				res = 1;
+			}
+
+			if (g_vars->scene05_var01) {
+				if ((g_fullpipe->_updateTicks - g_vars->scene05_var01) > 62 ) {
+					if (!g_fullpipe->_aniMan->_movement || (g_fullpipe->_aniMan->_movement->_id != MV_MANHDL_HANDLEUP 
+															&& g_fullpipe->_aniMan->_movement->_id != MV_MANHDL_HANDLEDOWN)) {
+						if (g_vars->scene05_var02 % 2)
+							sceneHandler05_makeOtmFeedback();
+
+						g_vars->scene05_var01 = 0;
+
+						++g_vars->scene05_var02;
+					}
+				}
+			}
+
+			++g_vars->scene05_var03;
+			g_fullpipe->_floaters->update();
+
+			g_fullpipe->_behaviorManager->updateBehaviors();
+
+			g_fullpipe->startSceneTrack();
+
+			return res;
+		}
+	}
+
+	return 0;
+}
+
+} // End of namespace Fullpipe
diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 147d621..36f6030 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -143,5 +143,8 @@ void FullpipeEngine::stopAllSoundStreams() {
 	warning("STUB: FullpipeEngine::stopAllSoundStreams()");
 }
 
+void FullpipeEngine::stopAllSoundInstances(int id) {
+	warning("STUB: FullpipeEngine::stopAllSoundInstances(%d)", id);
+}
 
 } // End of namespace Fullpipe






More information about the Scummvm-git-logs mailing list