[Scummvm-cvs-logs] scummvm master -> b4ce81baf9057b2158ef41104d61d1647ab0ee80

sev- sev at scummvm.org
Tue Dec 17 22:34:45 CET 2013


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:
35758d05d4 FULLPIPE: Implement sceneHandler06_throwBall()
17cb840bc2 FULLPIPE: More code to scene06
b4ce81baf9 FULLPIPE: Implement sceneHandler06_sub04()


Commit: 35758d05d4fdfbe04c26419b347c261be6e2b444
    https://github.com/scummvm/scummvm/commit/35758d05d4fdfbe04c26419b347c261be6e2b444
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-17T11:49:32-08:00

Commit Message:
FULLPIPE: Implement sceneHandler06_throwBall()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index ccaea13..fd4f835 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -138,15 +138,15 @@ namespace Fullpipe {
 #define MV_BLK_OPEN 910
 #define MV_EGTR_FATASK 5332
 #define MV_IN1MAN_SLEEP 5111
+#define MV_BDG_OPEN 1379
+#define MV_BTN_CLICK 599
+#define MV_CLK_GO 589
+#define MV_HND_POINT 602
 #define MV_KZW_GOR 564
 #define MV_KZW_JUMP 558
 #define MV_KZW_JUMPROTATE 561
 #define MV_KZW_TOHOLERV 537
 #define MV_KZW_WALKPLANK 500
-#define MV_BDG_OPEN 1379
-#define MV_BTN_CLICK 599
-#define MV_CLK_GO 589
-#define MV_HND_POINT 602
 #define MV_KZW_JUMPHIT 2857
 #define MV_KZW_JUMPOUT 586
 #define MV_KZW_RAISEHEAD 577
@@ -171,6 +171,7 @@ namespace Fullpipe {
 #define MV_MAN_TOLADDER2 2841
 #define MV_MAN_TURN_LU 486
 #define MV_MAN_TURN_SUD 1089
+#define MV_MAN6_THROWBALL 2692
 #define MV_MANHDL_HANDLEDOWN 630
 #define MV_MANHDL_HANDLEUP 631
 #define MV_OTM_BOXHANDLEDOWN 626
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 0753258..65494f4 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -172,8 +172,33 @@ void sceneHandler06_sub02() {
 	warning("STUB: sceneHandler06_sub02()");
 }
 
+void sceneHandler06_sub07() {
+	warning("STUB: sceneHandler06_sub07()");
+}
+
+void sceneHandler06_throwCallback(int *arg) {
+	if (g_vars->scene06_var08) {
+		int dist = (g_fullpipe->_mouseVirtY - g_vars->scene06_sceneClickY)
+			* (g_fullpipe->_mouseVirtY - g_vars->scene06_sceneClickY)
+            + (g_fullpipe->_mouseVirtX - g_vars->scene06_sceneClickX)
+			* (g_fullpipe->_mouseVirtX - g_vars->scene06_sceneClickX);
+
+		*arg = sqrt(dist) * 0.1;
+
+		if (*arg > 8)
+			*arg = 8;
+	} else {
+		*arg = *arg + 1;
+		if (*arg == 12)
+			sceneHandler06_sub07();
+	}
+}
+
 void sceneHandler06_throwBall() {
-	warning("STUB: sceneHandler06_throwBall()");
+	g_fullpipe->_aniMan->_callback2 = sceneHandler06_throwCallback;
+	g_fullpipe->_aniMan->startAnim(MV_MAN6_THROWBALL, 0, -1);
+
+	g_vars->scene06_var08 = 1;
 }
 
 void sceneHandler06_sub03() {
@@ -192,10 +217,6 @@ void sceneHandler06_sub06() {
 	warning("STUB: sceneHandler06_sub06()");
 }
 
-void sceneHandler06_sub07() {
-	warning("STUB: sceneHandler06_sub07()");
-}
-
 void sceneHandler06_sub09() {
 	warning("STUB: sceneHandler06_sub09()");
 }


Commit: 17cb840bc2a405c5b93f046f389481f72d878fdd
    https://github.com/scummvm/scummvm/commit/17cb840bc2a405c5b93f046f389481f72d878fdd
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-17T12:47:56-08:00

Commit Message:
FULLPIPE: More code to scene06

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 38c5b8c..b4a8625 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -121,7 +121,7 @@ Vars::Vars() {
 	scene06_ballDrop = 0;
 	scene06_var07 = 0;
 	scene06_var08 = 0;
-	scene06_var09 = 0;
+	scene06_currentBall = 0;
 	scene06_var10 = 0;
 	scene06_var11 = 0;
 	scene06_numBallsGiven = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 28fc2b7..15f5e7a 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -158,8 +158,8 @@ public:
 	StaticANIObject *scene06_ballDrop;
 	int scene06_var07;
 	int scene06_var08;
-	StaticANIObject *scene06_var09;
-	int scene06_var10;
+	StaticANIObject *scene06_currentBall;
+	StaticANIObject *scene06_var10;
 	StaticANIObject *scene06_var11;
 	Common::Array<StaticANIObject *> scene06_balls;
 	int scene06_numBallsGiven;
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 65494f4..8b9db0f 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -59,7 +59,7 @@ int scene06_updateCursor() {
 
 				return PIC_CSR_ITN;
 			}
-		} else if (g_fullpipe->_objectAtCursor && (StaticANIObject *)g_fullpipe->_objectAtCursor == g_vars->scene06_var09
+		} else if (g_fullpipe->_objectAtCursor && (StaticANIObject *)g_fullpipe->_objectAtCursor == g_vars->scene06_currentBall
 				   && g_fullpipe->_cursorId == PIC_CSR_DEFAULT) {
 			g_fullpipe->_cursorId = PIC_CSR_ITN;
 		}
@@ -127,12 +127,12 @@ void sceneHandler06_buttonPush() {
 
 void sceneHandler06_showNextBall() {
 	if (g_vars->scene06_balls.size()) {
-		g_vars->scene06_var09 = new StaticANIObject(g_vars->scene06_balls.front());
+		g_vars->scene06_currentBall = new StaticANIObject(g_vars->scene06_balls.front());
 		g_vars->scene06_balls.remove_at(0);
 
 		MessageQueue *mq = new MessageQueue(g_fullpipe->_currentScene->getMessageQueueById(QU_SC6_SHOWNEXTBALL), 0, 1);
 
-		mq->replaceKeyCode(-1, g_vars->scene06_var09->_okeyCode);
+		mq->replaceKeyCode(-1, g_vars->scene06_currentBall->_okeyCode);
 		mq->chain(0);
 
 		++g_vars->scene06_numBallsGiven;
@@ -148,7 +148,7 @@ void sceneHandler06_sub08() {
 }
 
 void sceneHandler06_takeBall() {
-	if (g_vars->scene06_var09 && !g_vars->scene06_var09->_movement && g_vars->scene06_var09->_statics->_staticsId == ST_NBL_NORM) {
+	if (g_vars->scene06_currentBall && !g_vars->scene06_currentBall->_movement && g_vars->scene06_currentBall->_statics->_staticsId == ST_NBL_NORM) {
 		if (abs(1158 - g_fullpipe->_aniMan->_ox) > 1
 			|| abs(452 - g_fullpipe->_aniMan->_oy) > 1
 			|| g_fullpipe->_aniMan->_movement
@@ -169,11 +169,32 @@ void sceneHandler06_takeBall() {
 }
 
 void sceneHandler06_sub02() {
-	warning("STUB: sceneHandler06_sub02()");
+	if (g_vars->scene06_var10) {
+		g_vars->scene06_var17 = 4 * g_fullpipe->_aniMan->_movement->_currDynamicPhaseIndex + 16;
+		g_vars->scene06_var18 = 5 * (g_fullpipe->_aniMan->_movement->_currDynamicPhaseIndex + 4);
+
+		if (g_fullpipe->_aniMan->_movement->_currDynamicPhaseIndex < 4) {
+			g_fullpipe->_aniMan->_movement->setDynamicPhaseIndex(11);
+
+			g_vars->scene06_var08 = 0;
+
+			return;
+		}
+
+		g_fullpipe->_aniMan->_movement->setDynamicPhaseIndex(9);
+	}
+
+	g_vars->scene06_var08 = 0;
 }
 
 void sceneHandler06_sub07() {
-	warning("STUB: sceneHandler06_sub07()");
+	if (g_vars->scene06_var10) {
+		g_vars->scene06_var11 = g_vars->scene06_var10;
+		g_vars->scene06_var10 = 0;
+		g_vars->scene06_var11->show1(g_fullpipe->_aniMan->_ox - 60, g_fullpipe->_aniMan->_oy - 60, -1, 0);
+
+		g_vars->scene06_var11->_priority = 27;
+	}
 }
 
 void sceneHandler06_throwCallback(int *arg) {
@@ -234,7 +255,7 @@ void scene06_initScene(Scene *sc) {
 	g_vars->scene06_ballDrop = sc->getStaticANIObject1ById(ANI_BALLDROP, -1);
 	g_vars->scene06_var07 = 0;
 	g_vars->scene06_var08 = 0;
-	g_vars->scene06_var09 = 0;
+	g_vars->scene06_currentBall = 0;
 	g_vars->scene06_var10 = 0;
 	g_vars->scene06_var11 = 0;
 	g_vars->scene06_balls.clear();
@@ -388,7 +409,7 @@ int sceneHandler06(ExCommand *ex) {
 					return 0;
 				}
 
-				if (g_vars->scene06_var09 == st) {
+				if (g_vars->scene06_currentBall == st) {
 					if (g_vars->scene06_numBallsGiven == 1)
 						sceneHandler06_takeBall();
 
@@ -484,7 +505,7 @@ int sceneHandler06(ExCommand *ex) {
 				sceneHandler06_sub04(g_vars->scene06_var17);
 			}
 			if (g_vars->scene06_var07
-				&& !g_vars->scene06_var09
+				&& !g_vars->scene06_currentBall
 				&& !g_vars->scene06_var10
 				&& !g_vars->scene06_var11
 				&& g_vars->scene06_numBallsGiven >= 15


Commit: b4ce81baf9057b2158ef41104d61d1647ab0ee80
    https://github.com/scummvm/scummvm/commit/b4ce81baf9057b2158ef41104d61d1647ab0ee80
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-12-17T13:32:30-08:00

Commit Message:
FULLPIPE: Implement sceneHandler06_sub04()

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



diff --git a/engines/fullpipe/messages.cpp b/engines/fullpipe/messages.cpp
index e8fcf75..8ea94ff 100644
--- a/engines/fullpipe/messages.cpp
+++ b/engines/fullpipe/messages.cpp
@@ -810,6 +810,25 @@ bool chainQueue(int queueId, int flags) {
 	return true;
 }
 
+bool chainObjQueue(StaticANIObject *obj, int queueId, int flags) {
+	MessageQueue *mq = g_fullpipe->_currentScene->getMessageQueueById(queueId);
+
+	if (!mq)
+		return false;
+
+	MessageQueue *nmq = new MessageQueue(mq, 0, 0);
+
+	nmq->_flags |= flags;
+
+	if (!nmq->chain(obj)) {
+		delete nmq;
+
+		return false;
+	}
+
+	return true;
+}
+
 void postExCommand(int parentId, int keyCode, int x, int y, int f20, int f14) {
 	ExCommand *ex = new ExCommand(parentId, 17, 64, 0, 0, 0, 1, 0, 0, 0);
 
diff --git a/engines/fullpipe/messages.h b/engines/fullpipe/messages.h
index ca61dad..44245bc 100644
--- a/engines/fullpipe/messages.h
+++ b/engines/fullpipe/messages.h
@@ -178,6 +178,7 @@ void updateGlobalMessageQueue(int id, int objid);
 void clearGlobalMessageQueueList1();
 
 bool chainQueue(int queueId, int flags);
+bool chainObjQueue(StaticANIObject *obj, int queueId, int flags);
 void postExCommand(int parentId, int keyCode, int x, int y, int f20, int f16);
 
 } // End of namespace Fullpipe
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 8b9db0f..62360e6 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -226,22 +226,33 @@ void sceneHandler06_sub03() {
 	warning("STUB: sceneHandler06_sub03()");
 }
 
-void sceneHandler06_sub04(int par) {
-	warning("STUB: sceneHandler06_sub04()");
-}
-
 void sceneHandler06_sub05() {
 	warning("STUB: sceneHandler06_sub05()");
 }
 
-void sceneHandler06_sub06() {
-	warning("STUB: sceneHandler06_sub06()");
-}
-
 void sceneHandler06_sub09() {
 	warning("STUB: sceneHandler06_sub09()");
 }
 
+void sceneHandler06_sub04(int par) {
+	int pixel;
+
+	if (g_vars->scene06_var04 <= 475) {
+		if (g_vars->scene06_mumsy->getPixelAtPos(g_vars->scene06_var03, g_vars->scene06_var04, &pixel)) {
+			if (pixel) {
+				chainObjQueue(g_vars->scene06_mumsy, QU_MOM_JUMPBK, 0);
+				sceneHandler06_sub09();
+			}
+		}
+	} else {
+		sceneHandler06_sub05();
+	}
+}
+
+void sceneHandler06_sub06() {
+	warning("STUB: sceneHandler06_sub06()");
+}
+
 void sceneHandler06_sub10() {
 	warning("STUB: sceneHandler06_sub10()");
 }






More information about the Scummvm-git-logs mailing list