[Scummvm-cvs-logs] scummvm master -> 7cd0da64f5eede4296655164f4db7e74230e7441

sev- sev at scummvm.org
Sun Dec 15 15:37:03 CET 2013


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

Summary:
c61db56a48 FULLPIPE: Implement void sceneHandler05_handleUp() and void sceneHandler05_handleDown()
7cd0da64f5 FULLPIPE: Implement sceneHandler05_testHatch()


Commit: c61db56a48ad44b0aca8ad83b61013c25c4ab468
    https://github.com/scummvm/scummvm/commit/c61db56a48ad44b0aca8ad83b61013c25c4ab468
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-15T06:36:17-08:00

Commit Message:
FULLPIPE: Implement void sceneHandler05_handleUp() and void sceneHandler05_handleDown()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index d2e295f..be47e0d 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -117,6 +117,8 @@ namespace Fullpipe {
 #define MSG_TAKEKOZAW 611
 #define MSG_TESTPLANK 538
 #define MSG_UPDATEBOTTLE 613
+#define MV_BLK_CLOSE 911
+#define MV_BLK_OPEN 910
 #define MV_EGTR_FATASK 5332
 #define MV_IN1MAN_SLEEP 5111
 #define MV_KZW_GOR 564
diff --git a/engines/fullpipe/scenes/scene05.cpp b/engines/fullpipe/scenes/scene05.cpp
index 4b61f5b..cbeb6c4 100644
--- a/engines/fullpipe/scenes/scene05.cpp
+++ b/engines/fullpipe/scenes/scene05.cpp
@@ -121,12 +121,30 @@ void sceneHandler05_makeWackoFeedback() {
 	}
 }
 
+void sceneHandler05_resetTicks() {
+	if (g_fullpipe->_aniMan->_movement && (g_fullpipe->_aniMan->_movement->_id == MV_MANHDL_HANDLEUP 
+										   || g_fullpipe->_aniMan->_movement->_id == MV_MANHDL_HANDLEDOWN))
+		g_vars->scene05_var01 = g_fullpipe->_updateTicks;
+	else
+		g_vars->scene05_var01 = 0;
+}
+
+void sceneHandler05_genFlies() {
+	warning("STUB: sceneHandler05_genFlies()");
+}
+
 void sceneHandler05_showHandle() {
 	g_fullpipe->_currentScene->getStaticANIObject1ById(ANI_HANDLE, -1)->show1(-1, -1, -1, 0);
 }
 
 void sceneHandler05_handleDown() {
-	warning("STUB: sceneHandler05_handleDown()");
+	StaticANIObject *hatch = g_fullpipe->_currentScene->getStaticANIObject1ById(ANI_BIGLUK, -1);
+
+	hatch->changeStatics2(ST_BLK_CLOSED);
+	hatch->startAnim(MV_BLK_OPEN, 0, -1);
+
+	sceneHandler05_resetTicks();
+	sceneHandler05_genFlies();
 }
 
 void sceneHandler05_hideHandle() {
@@ -134,7 +152,12 @@ void sceneHandler05_hideHandle() {
 }
 
 void sceneHandler05_handleUp() {
-	warning("STUB: sceneHandler05_handleUp()");
+	StaticANIObject *hatch = g_fullpipe->_currentScene->getStaticANIObject1ById(ANI_BIGLUK, -1);
+
+	hatch->changeStatics2(ST_BLK_OPEN);
+	hatch->startAnim(MV_BLK_CLOSE, 0, -1);
+
+	sceneHandler05_resetTicks();
 }
 
 void sceneHandler05_testHatch(ExCommand *ex) {


Commit: 7cd0da64f5eede4296655164f4db7e74230e7441
    https://github.com/scummvm/scummvm/commit/7cd0da64f5eede4296655164f4db7e74230e7441
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-15T06:36:17-08:00

Commit Message:
FULLPIPE: Implement sceneHandler05_testHatch()

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



diff --git a/engines/fullpipe/scenes/scene05.cpp b/engines/fullpipe/scenes/scene05.cpp
index cbeb6c4..f050913 100644
--- a/engines/fullpipe/scenes/scene05.cpp
+++ b/engines/fullpipe/scenes/scene05.cpp
@@ -160,8 +160,119 @@ void sceneHandler05_handleUp() {
 	sceneHandler05_resetTicks();
 }
 
-void sceneHandler05_testHatch(ExCommand *ex) {
-	warning("STUB: sceneHandler05_testHatch()");
+void sceneHandler05_testHatch(ExCommand *inex) {
+	ExCommand *ex;
+
+	if (g_fullpipe->_currentScene->getStaticANIObject1ById(ANI_BIGLUK, -1)->_statics->_staticsId == ST_BLK_CLOSED) {
+		ex = new ExCommand(SC_5, 17, 61, 0, 0, 0, 1, 0, 0, 0);
+		ex->_keyCode = TrubaLeft;
+		ex->_excFlags |= 2;
+		ex->postMessage();
+
+		return;
+	}
+
+	StaticANIObject *wacko = g_fullpipe->_currentScene->getStaticANIObject1ById(ANI_OTMOROZ, -1);
+
+	if (wacko->_movement)
+		wacko->changeStatics2(wacko->_movement->_staticsObj2->_staticsId);
+
+	if (g_fullpipe->getObjectState(sO_WeirdWacko) == g_fullpipe->getObjectEnumState(sO_WeirdWacko, sO_InGlasses)) {
+		MessageQueue *mq = g_fullpipe->_globalMessageQueueList->getMessageQueueById(inex->_parId);
+
+		if (mq)
+			mq->deleteExCommandByIndex(mq->getCount() - 1, 1);
+
+		if (wacko->_statics->_staticsId != ST_OTM_GLS_LEFT) {
+			mq = wacko->changeStatics1(ST_OTM_GLS_LEFT);
+
+			if (!mq) {
+				wacko->changeStatics2(ST_OTM_GLS_LEFT);
+				mq = new MessageQueue(g_fullpipe->_globalMessageQueueList->compact());
+			}
+
+			mq->setFlags(mq->getFlags() | 1);
+
+			ex = new ExCommand(ANI_OTMOROZ, 1, MV_OTM_HANDLEUP, 0, 0, 0, 1, 0, 0, 0);
+			ex->_excFlags |= 2u;
+			mq->addExCommandToEnd(ex);
+
+			ex = new ExCommand(SC_5, 17, 61, 0, 0, 0, 1, 0, 0, 0);
+			ex->_keyCode = TrubaLeft;
+			ex->_excFlags |= 2;
+			mq->addExCommandToEnd(ex);
+
+			mq->_isFinished = 0;
+			return;
+		}
+
+		mq = new MessageQueue(g_fullpipe->_globalMessageQueueList->compact());
+		mq->setFlags(mq->getFlags() | 1);
+
+		ex = new ExCommand(ANI_OTMOROZ, 1, MV_OTM_HANDLEUP, 0, 0, 0, 1, 0, 0, 0);
+		ex->_excFlags |= 2;
+		mq->addExCommandToEnd(ex);
+
+		ex = new ExCommand(SC_5, 17, 61, 0, 0, 0, 1, 0, 0, 0);
+		ex->_keyCode = TrubaLeft;
+		ex->_excFlags |= 2;
+		mq->addExCommandToEnd(ex);
+
+		if (!mq->chain(wacko))
+			delete mq;
+	} else if (g_fullpipe->getObjectState(sO_WeirdWacko) == g_fullpipe->getObjectEnumState(sO_WeirdWacko, sO_WithDrawer)) {
+		MessageQueue *mq = g_fullpipe->_globalMessageQueueList->getMessageQueueById(inex->_parId);
+
+		if (mq)
+			mq->deleteExCommandByIndex(mq->getCount() - 1, 1);
+
+		if (wacko->_statics->_staticsId != ST_OTM_BOX_LEFT) {
+			mq = wacko->changeStatics1(ST_OTM_BOX_LEFT);
+			if (!mq) {
+				wacko->changeStatics2(ST_OTM_BOX_LEFT);
+				mq = new MessageQueue(g_fullpipe->_globalMessageQueueList->compact());
+			}
+
+			mq->setFlags(mq->getFlags() | 1);
+
+			ex = new ExCommand(ANI_OTMOROZ, 1, MV_OTM_BOXHANDLEUP, 0, 0, 0, 1, 0, 0, 0);
+			ex->_excFlags |= 2;
+			mq->addExCommandToEnd(ex);
+
+			ex = new ExCommand(SC_5, 17, 61, 0, 0, 0, 1, 0, 0, 0);
+			ex->_keyCode = TrubaLeft;
+			ex->_excFlags |= 2;
+			mq->addExCommandToEnd(ex);
+
+			mq->_isFinished = 0;
+
+			return;
+		}
+
+		mq = new MessageQueue(g_fullpipe->_globalMessageQueueList->compact());
+		mq->setFlags(mq->getFlags() | 1);
+
+		ex = new ExCommand(ANI_OTMOROZ, 1, MV_OTM_BOXHANDLEUP, 0, 0, 0, 1, 0, 0, 0);
+		ex->_excFlags |= 2;
+		mq->addExCommandToEnd(ex);
+
+		ex = new ExCommand(SC_5, 17, 61, 0, 0, 0, 1, 0, 0, 0);
+		ex->_keyCode = TrubaLeft;
+		ex->_excFlags |= 2;
+		mq->addExCommandToEnd(ex);
+
+		if (!mq->chain(wacko))
+			delete mq;
+
+		return;
+	} else {
+		ex = new ExCommand(SC_5, 17, 61, 0, 0, 0, 1, 0, 0, 0);
+		ex->_keyCode = TrubaLeft;
+		ex->_excFlags |= 2;
+		ex->postMessage();
+
+		return;
+	}
 }
 
 
@@ -226,7 +337,7 @@ int sceneHandler05(ExCommand *ex) {
 			}
 
 			if (g_vars->scene05_var01) {
-				if ((g_fullpipe->_updateTicks - g_vars->scene05_var01) > 62 ) {
+				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)






More information about the Scummvm-git-logs mailing list