[Scummvm-cvs-logs] scummvm master -> 5ccec11d5263ef0596126ff6168e0263e6c8816e

sev- sev at scummvm.org
Thu Jan 16 22:39:58 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:
ad33e9c026 FULLPIPE: Implement sceneHandler35()
0bb98d6876 FULLPIPE: Implement sceneHandler35_stopFlow() and _shrink()
5ccec11d52 FULLPIPE: Implement sceneHandler35_startFlow()


Commit: ad33e9c026e77ab6c5fe330a1b53ccc039fc788a
    https://github.com/scummvm/scummvm/commit/ad33e9c026e77ab6c5fe330a1b53ccc039fc788a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-16T13:39:06-08:00

Commit Message:
FULLPIPE: Implement sceneHandler35()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index af7dc45..fc845e3 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1260,6 +1260,12 @@ namespace Fullpipe {
 // Scene 35
 #define ANI_HOSE 2424
 #define ANI_PUZODUV 2418
+#define MSG_SC35_CHECKPIPESOUND 4761
+#define MSG_SC35_PLUGHOSE 2524
+#define MSG_SC35_SHRINK 2570
+#define MSG_SC35_STARTFLOW 2523
+#define MSG_SC35_STOPFLOW 4864
+#define MSG_SC35_TRYFLY 4985
 #define QU_SC35_ENTERLIFT 2815
 #define QU_SC35_EXITLIFT 2816
 #define SND_35_011 4509
diff --git a/engines/fullpipe/scenes/scene35.cpp b/engines/fullpipe/scenes/scene35.cpp
index 5698cbc..5677125 100644
--- a/engines/fullpipe/scenes/scene35.cpp
+++ b/engines/fullpipe/scenes/scene35.cpp
@@ -75,4 +75,131 @@ void scene35_initScene(Scene *sc) {
 	g_fp->_floaters->init(g_fp->getGameLoaderGameVar()->getSubVarByName("SC_35"));
 }
 
+void sceneHandler35_stopFlow() {
+	warning("STUB: sceneHandler35_stopFlow()");
+}
+
+void sceneHandler35_shrink() {
+	warning("STUB: sceneHandler35_shrink()");
+}
+
+void sceneHandler35_startFlow() {
+	warning("STUB: sceneHandler35_startFlow()");
+}
+
+void sceneHandler35_genFlies() {
+	warning("STUB: sceneHandler35_genFlies()");
+}
+
+int sceneHandler35(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_SC35_STOPFLOW:
+		sceneHandler35_stopFlow();
+		break;
+
+	case MSG_SC35_CHECKPIPESOUND:
+		if (g_fp->getObjectState(sO_Valve_35) == g_fp->getObjectEnumState(sO_Valve_35, sO_TurnedOn)) {
+			g_fp->stopAllSoundInstances(SND_35_011);
+			g_fp->playSound(SND_35_012, 1);
+
+			g_vars->scene35_var05 = 0;
+			break;
+		}
+		break;
+
+	case MSG_SC35_SHRINK:
+		sceneHandler35_shrink();
+		break;
+
+	case MSG_LIFT_GO:
+		g_fp->lift_goAnimation();
+		break;
+
+	case MSG_SC35_STARTFLOW:
+	case MSG_SC35_PLUGHOSE:
+		sceneHandler35_startFlow();
+		break;
+
+	case 64:
+		g_fp->lift_sub05(cmd);
+		break;
+
+	case 29:
+		{
+			StaticANIObject *ani = g_fp->_currentScene->getStaticANIObjectAtPos(g_fp->_sceneRect.left + cmd->_x, g_fp->_sceneRect.top + cmd->_y);
+
+			if (ani)
+				if (ani->_id == ANI_LIFTBUTTON) {
+					g_fp->lift_sub1(ani);
+					cmd->_messageKind = 0;
+					break;
+				}
+
+			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 || !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;
+					}
+				}
+			}
+			break;
+		}
+
+	case 33:
+		if (g_fp->_aniMan2) {
+			int x = g_fp->_aniMan2->_ox;
+
+			if (x < g_fp->_sceneRect.left + g_vars->scene35_var01)
+				g_fp->_currentScene->_x = x - g_vars->scene35_var03 - g_fp->_sceneRect.left;
+
+			if (x > g_fp->_sceneRect.right - g_vars->scene35_var01)
+				g_fp->_currentScene->_x = x + g_vars->scene35_var03 - g_fp->_sceneRect.right;
+		}
+
+		if (g_vars->scene35_var05 > 0) {
+			--g_vars->scene35_var05;
+
+			if (!g_vars->scene35_var05)
+				sceneHandler35_stopFlow();
+		}
+
+		g_vars->scene35_var06++;
+
+		if (g_vars->scene35_var06 >= 160)
+			sceneHandler35_genFlies();
+
+		g_fp->_floaters->update();
+
+		g_fp->_behaviorManager->updateBehaviors();
+		g_fp->startSceneTrack();
+
+		break;
+	}
+
+	return 0;
+}
+
 } // End of namespace Fullpipe


Commit: 0bb98d68767fd0d1f480ea820eed07b02fd5d04c
    https://github.com/scummvm/scummvm/commit/0bb98d68767fd0d1f480ea820eed07b02fd5d04c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-16T13:39:06-08:00

Commit Message:
FULLPIPE: Implement sceneHandler35_stopFlow() and _shrink()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index fc845e3..b82813b 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1270,6 +1270,7 @@ namespace Fullpipe {
 #define QU_SC35_EXITLIFT 2816
 #define SND_35_011 4509
 #define SND_35_012 4510
+#define SND_35_026 4863
 #define ST_HZE_NORM 2426
 #define ST_PDV_LARGE 2421
 #define ST_PDV_SMALL 2420
diff --git a/engines/fullpipe/scenes/scene35.cpp b/engines/fullpipe/scenes/scene35.cpp
index 5677125..b6453fa 100644
--- a/engines/fullpipe/scenes/scene35.cpp
+++ b/engines/fullpipe/scenes/scene35.cpp
@@ -76,11 +76,13 @@ void scene35_initScene(Scene *sc) {
 }
 
 void sceneHandler35_stopFlow() {
-	warning("STUB: sceneHandler35_stopFlow()");
+	g_fp->setObjectState(sO_Valve_35, g_fp->getObjectEnumState(sO_Valve_35, sO_TurnedOff));
+	g_fp->stopAllSoundInstances(SND_35_011);
+	g_fp->playSound(SND_35_026, 0);
 }
 
 void sceneHandler35_shrink() {
-	warning("STUB: sceneHandler35_shrink()");
+	getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing, 0);
 }
 
 void sceneHandler35_startFlow() {


Commit: 5ccec11d5263ef0596126ff6168e0263e6c8816e
    https://github.com/scummvm/scummvm/commit/5ccec11d5263ef0596126ff6168e0263e6c8816e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-16T13:39:06-08:00

Commit Message:
FULLPIPE: Implement sceneHandler35_startFlow()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index b82813b..b3e06bb 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1266,6 +1266,9 @@ namespace Fullpipe {
 #define MSG_SC35_STARTFLOW 2523
 #define MSG_SC35_STOPFLOW 4864
 #define MSG_SC35_TRYFLY 4985
+#define QU_PDV_SML_BLINK 2553
+#define QU_PDV_SML_TRY 2554
+#define QU_SC35_EATHOZE 2540
 #define QU_SC35_ENTERLIFT 2815
 #define QU_SC35_EXITLIFT 2816
 #define SND_35_011 4509
diff --git a/engines/fullpipe/scenes/scene35.cpp b/engines/fullpipe/scenes/scene35.cpp
index b6453fa..4cf7fb4 100644
--- a/engines/fullpipe/scenes/scene35.cpp
+++ b/engines/fullpipe/scenes/scene35.cpp
@@ -86,7 +86,41 @@ void sceneHandler35_shrink() {
 }
 
 void sceneHandler35_startFlow() {
-	warning("STUB: sceneHandler35_startFlow()");
+	if (g_fp->getObjectState(sO_Valve_35) == g_fp->getObjectEnumState(sO_Valve_35, sO_TurnedOn)) {
+		if ((g_vars->scene35_hose->_flags & 4) && g_vars->scene35_hose->_statics->_staticsId == ST_HZE_NORM) {
+			g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene35_bellyInflater, ST_PDV_SMALL, QU_PDV_SML_BLINK, 0);
+			g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene35_bellyInflater, ST_PDV_SMALL, QU_PDV_SML_TRY, 0);
+
+			g_vars->scene35_bellyInflater->changeStatics2(ST_PDV_SMALL);
+			g_vars->scene35_bellyInflater->_flags &= 0xFEFF;
+
+			MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC35_EATHOZE), 0, 0);
+
+			mq->setFlags(mq->getFlags() | 1);
+
+			ExCommand *cmd = new ExCommand(g_vars->scene35_bellyInflater->_id, 34, 256, 0, 0, 0, 1, 0, 0, 0);
+
+			cmd->_excFlags |= 3;
+			cmd->_field_14 = 256;
+			cmd->_messageNum = 0;
+
+			mq->addExCommandToEnd(cmd);
+
+			if (!mq->chain(g_vars->scene35_bellyInflater))
+				delete mq;
+
+			g_vars->scene35_bellyInflater->_flags |= 1;
+
+			getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing, 1);
+
+			g_fp->playSound(SND_35_012, 1);
+		} else {
+			if (!g_vars->scene35_var05)
+				g_vars->scene35_var05 = 98;
+
+			g_fp->playSound(SND_35_011, 1);
+		}
+	}
 }
 
 void sceneHandler35_genFlies() {






More information about the Scummvm-git-logs mailing list