[Scummvm-cvs-logs] scummvm master -> 34bd3aa749ad01c1e136805605a113c57f5fd4fa

sev- sev at scummvm.org
Wed Jan 1 23:49:52 CET 2014


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

Summary:
e92dc69117 FULLPIPE: Add more code to scene17
4b91d62d64 FULLPIPE: Implement sceneHandler17_fillBottle()
17d0be2fd1 FULLPIPE: Implement sceneHandler17_testTruba() and sceneHandler17_updateFlies()
0072cf1ce6 FULLPIPE: Rename vars in scene17
6212cc64aa FULLPIPE: More renames in scene17
dd143adbaa FULLPIPE: Implement scene17_restoreState()
7873f59ad5 FULLPIPE: Implement scene17_updateCursor()
34bd3aa749 FULLPIPE: Enable scene17. This completes the scene


Commit: e92dc6911785660a8e0d9e1db407aa52872f9609
    https://github.com/scummvm/scummvm/commit/e92dc6911785660a8e0d9e1db407aa52872f9609
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T14:48:34-08:00

Commit Message:
FULLPIPE: Add more code to scene17

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index a292be0..2ef2b54 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -690,6 +690,9 @@ namespace Fullpipe {
 
 // Scene 17
 #define ANI_HAND17 1446
+#define ANI_INV_SUGAR 1410
+#define ANI_JET_17 2746
+#define ANI_MUG_17 2737
 #define MSG_SC17_DROP 3414
 #define MSG_SC17_FILLBOTTLE 1436
 #define MSG_SC17_HIDESUGAR 1417
@@ -702,7 +705,13 @@ namespace Fullpipe {
 #define QU_HND17_ASK 1456
 #define QU_HND17_ATTRACT 1455
 #define QU_HND17_TOCYCLE 1454
+#define QU_JET17_DROP 3295
+#define QU_SC17_FILLMUG_DROP 3415
+#define QU_SC17_SHOWBOTTLE 1429
+#define QU_SC17_SHOWSUGAR 1415
+#define ST_HND17_ATTRACT 1451
 #define ST_HND17_EMPTY 1448
+#define ST_MUG17_EMPTY 2739
 
 // Scene 24
 #define ANI_DROP_24 3505
@@ -719,7 +728,6 @@ namespace Fullpipe {
 #define SND_24_006 4041
 #define SND_24_007 4042
 #define ST_DRP24_EMPTY 3507
-#define ST_HND17_ATTRACT 1451
 #define ST_WTR24_FLOWLOWER 1843
 
 // Debug scene
diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index e08299b..d7cd25b 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -49,7 +49,16 @@ void scene17_initScene(Scene *sc) {
 }
 
 void sceneHandler17_drop() {
-	warning("STUB: sceneHandler17_drop()");
+	StaticANIObject *mug = g_fp->_currentScene->getStaticANIObject1ById(ANI_MUG_17, -1);
+	StaticANIObject *jet = g_fp->_currentScene->getStaticANIObject1ById(ANI_JET_17, -1);
+
+	if (mug && mug->_flags & 4) {
+		mug->changeStatics2(ST_MUG17_EMPTY);
+		chainQueue(QU_SC17_FILLMUG_DROP, 0);
+	} else if (jet) {
+		jet->queueMessageQueue(0);
+		chainQueue(QU_JET17_DROP, 0);
+	}
 }
 
 void sceneHandler17_fillBottle() {
@@ -61,15 +70,20 @@ void sceneHandler17_testTruba() {
 }
 
 void sceneHandler17_showBottle() {
-	warning("STUB: sceneHandler17_showBottle()");
+	chainQueue(QU_SC17_SHOWBOTTLE, 0);
 }
 
 void sceneHandler17_hideSugar() {
-	warning("STUB: sceneHandler17_hideSugar()");
+	StaticANIObject *sugar = g_fp->_currentScene->getStaticANIObject1ById(ANI_INV_SUGAR, -1);
+
+	if (sugar)
+		sugar->hide();
 }
 
 void sceneHandler17_showSugar() {
-	warning("STUB: sceneHandler17_showSugar()");
+	chainQueue(QU_SC17_SHOWSUGAR, 0);
+
+	g_vars->scene17_var06 = 1;
 }
 
 void sceneHandler17_moonshineFill() {


Commit: 4b91d62d6459173b0d7046bbb7ad1a7106cd852e
    https://github.com/scummvm/scummvm/commit/4b91d62d6459173b0d7046bbb7ad1a7106cd852e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T14:48:34-08:00

Commit Message:
FULLPIPE: Implement sceneHandler17_fillBottle()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 2ef2b54..ef3fa44 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -689,10 +689,13 @@ namespace Fullpipe {
 #define ST_MUG_FULL 1360
 
 // Scene 17
+#define ANI_BOOT_17 4220
 #define ANI_HAND17 1446
+#define ANI_INV_BOTTLE 1418
 #define ANI_INV_SUGAR 1410
 #define ANI_JET_17 2746
 #define ANI_MUG_17 2737
+#define ANI_SAMOGONSHCHIK 1397
 #define MSG_SC17_DROP 3414
 #define MSG_SC17_FILLBOTTLE 1436
 #define MSG_SC17_HIDESUGAR 1417
@@ -706,12 +709,18 @@ namespace Fullpipe {
 #define QU_HND17_ATTRACT 1455
 #define QU_HND17_TOCYCLE 1454
 #define QU_JET17_DROP 3295
+#define QU_JET17_FLOW 3294
+#define QU_SC17_FILLBOOT 4237
+#define QU_SC17_FILLBOTTLE 1437
+#define QU_SC17_FILLMUG 2750
 #define QU_SC17_FILLMUG_DROP 3415
 #define QU_SC17_SHOWBOTTLE 1429
 #define QU_SC17_SHOWSUGAR 1415
+#define QU_SMG_FILLBOTTLE 1433
 #define ST_HND17_ATTRACT 1451
 #define ST_HND17_EMPTY 1448
 #define ST_MUG17_EMPTY 2739
+#define ST_SMG_SIT 1399
 
 // Scene 24
 #define ANI_DROP_24 3505
diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index d7cd25b..2b95c37 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -62,7 +62,18 @@ void sceneHandler17_drop() {
 }
 
 void sceneHandler17_fillBottle() {
-	warning("STUB: sceneHandler17_fillBottle()");
+	StaticANIObject *bottle = g_fp->_currentScene->getStaticANIObject1ById(ANI_INV_BOTTLE, -1);
+	StaticANIObject *mug = g_fp->_currentScene->getStaticANIObject1ById(ANI_MUG_17, -1);
+	StaticANIObject *boot = g_fp->_currentScene->getStaticANIObject1ById(ANI_BOOT_17, -1);
+
+	if (bottle && (bottle->_flags & 4))
+		chainQueue(QU_SC17_FILLBOTTLE, 1);
+	else if (mug && (mug->_flags & 4) && mug->_statics->_staticsId == ST_MUG17_EMPTY)
+		chainQueue(QU_SC17_FILLMUG, 1);
+	else if (boot && (boot->_flags & 4))
+		chainQueue(QU_SC17_FILLBOOT, 1);
+	else
+		chainQueue(QU_JET17_FLOW, 1);
 }
 
 void sceneHandler17_testTruba() {
@@ -87,7 +98,14 @@ void sceneHandler17_showSugar() {
 }
 
 void sceneHandler17_moonshineFill() {
-	warning("STUB: sceneHandler17_moonshineFill()");
+	StaticANIObject *moonshiner = g_fp->_currentScene->getStaticANIObject1ById(ANI_SAMOGONSHCHIK, -1);
+
+	if (!(moonshiner->_flags & 0x80)) {
+		moonshiner->changeStatics2(ST_SMG_SIT);
+		chainObjQueue(moonshiner, QU_SMG_FILLBOTTLE, 1);
+
+		g_vars->scene17_var06 = 0;
+	}
 }
 
 void sceneHandler17_updateFlies() {


Commit: 17d0be2fd1a635ca09b7b4bb7713e19b9c2dc099
    https://github.com/scummvm/scummvm/commit/17d0be2fd1a635ca09b7b4bb7713e19b9c2dc099
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T14:48:34-08:00

Commit Message:
FULLPIPE: Implement sceneHandler17_testTruba() and sceneHandler17_updateFlies()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index ef3fa44..c1a7487 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -703,6 +703,7 @@ namespace Fullpipe {
 #define MSG_SC17_SHOWSUGAR 1416
 #define MSG_SC17_TESTTRUBA 1458
 #define MSG_SC17_UPDATEHAND 1560
+#define MV_HND17_FIGA 1449
 #define PIC_SC17_RTRUBA 1323
 #define PIC_SC17_RTRUBA2 5297
 #define QU_HND17_ASK 1456
diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index 2b95c37..749d0d8 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -77,7 +77,12 @@ void sceneHandler17_fillBottle() {
 }
 
 void sceneHandler17_testTruba() {
-	warning("STUB: sceneHandler17_testTruba()");
+	if (g_vars->scene17_hand->isIdle()) {
+		if (!g_vars->scene17_hand->_movement || g_vars->scene17_hand->_movement->_id != MV_HND17_FIGA) {
+			g_vars->scene17_hand->changeStatics2(ST_HND17_EMPTY);
+			g_vars->scene17_hand->startAnim(MV_HND17_FIGA, 0, -1);
+		}
+	}
 }
 
 void sceneHandler17_showBottle() {
@@ -109,7 +114,11 @@ void sceneHandler17_moonshineFill() {
 }
 
 void sceneHandler17_updateFlies() {
-	warning("STUB: sceneHandler17_updateFlies()");
+	g_fp->_floaters->genFlies(g_fp->_currentScene, 239, -50, 20, 4);
+
+	g_fp->_floaters->_array2[0]->countdown = g_fp->_rnd->getRandomNumber(5) + 6; // FIXME. Check
+	g_fp->_floaters->_array2[0]->val6 = 239;
+	g_fp->_floaters->_array2[0]->val7 = -50;
 }
 
 


Commit: 0072cf1ce61638ea65380fbcb3a513e99f710bbf
    https://github.com/scummvm/scummvm/commit/0072cf1ce61638ea65380fbcb3a513e99f710bbf
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T14:48:34-08:00

Commit Message:
FULLPIPE: Rename vars in scene17

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 5a21543..3d81e1b 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -239,17 +239,13 @@ Vars::Vars() {
 	scene16_sound = 0;
 	scene16_placeIsOccupied = false;
 
-	scene17_var01 = 0;
-	scene17_var02 = 0;
-	scene17_var03 = 0;
-	scene17_var04 = 0;
-	scene17_var05 = 0;
-	scene17_var06 = 0;
+	scene17_flyState = 0;
+	scene17_sugarIsShown = false;
 	scene17_var07 = 0;
-	scene17_var08 = 0;
+	scene17_flyCountdown = 0;
 	scene17_hand = 0;
-	scene17_var09 = 0;
-	scene17_var10 = 0;
+	scene17_handPhase = false;
+	scene17_sceneEdgeX = 0;
 
 	scene24_jetIsOn = false;
 	scene24_flowIsLow = false;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 012cd20..0560813 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -320,17 +320,13 @@ public:
 	int scene16_sound;
 	bool scene16_placeIsOccupied;
 
-	int scene17_var01;
-	int scene17_var02;
-	int scene17_var03;
-	int scene17_var04;
-	int scene17_var05;
-	int scene17_var06;
+	int scene17_flyState;
+	bool scene17_sugarIsShown;
 	int scene17_var07;
-	int scene17_var08;
+	int scene17_flyCountdown;
 	StaticANIObject *scene17_hand;
-	int scene17_var09;
-	int scene17_var10;
+	bool scene17_handPhase;
+	int scene17_sceneEdgeX;
 
 	bool scene24_jetIsOn;
 	bool scene24_flowIsLow;
diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index 749d0d8..11bf7f2 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -37,14 +37,10 @@
 namespace Fullpipe {
 
 void scene17_initScene(Scene *sc) {
-	g_vars->scene17_var01 = 200;
-	g_vars->scene17_var02 = 200;
-	g_vars->scene17_var03 = 300;
-	g_vars->scene17_var04 = 300;
-	g_vars->scene17_var05 = 1;
-	g_vars->scene17_var06 = 0;
+	g_vars->scene17_flyState = 1;
+	g_vars->scene17_sugarIsShown = false;
 	g_vars->scene17_var07 = 0;
-	g_vars->scene17_var08 = 0;
+	g_vars->scene17_flyCountdown = 0;
 	g_vars->scene17_hand = sc->getStaticANIObject1ById(ANI_HAND17, -1);
 }
 
@@ -99,7 +95,7 @@ void sceneHandler17_hideSugar() {
 void sceneHandler17_showSugar() {
 	chainQueue(QU_SC17_SHOWSUGAR, 0);
 
-	g_vars->scene17_var06 = 1;
+	g_vars->scene17_sugarIsShown = true;
 }
 
 void sceneHandler17_moonshineFill() {
@@ -109,7 +105,7 @@ void sceneHandler17_moonshineFill() {
 		moonshiner->changeStatics2(ST_SMG_SIT);
 		chainObjQueue(moonshiner, QU_SMG_FILLBOTTLE, 1);
 
-		g_vars->scene17_var06 = 0;
+		g_vars->scene17_sugarIsShown = false;
 	}
 }
 
@@ -136,12 +132,12 @@ int sceneHandler17(ExCommand *cmd) {
 			g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_ASK, 0);
 			g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 0);
 
-			g_vars->scene17_var09 = 0;
+			g_vars->scene17_handPhase = false;
 		} else {
 			g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_ASK, 0);
 			g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 1);
 
-			g_vars->scene17_var09 = 1;
+			g_vars->scene17_handPhase = true;
 		}
         break;
 
@@ -171,7 +167,7 @@ int sceneHandler17(ExCommand *cmd) {
 
 			if (pic == PIC_SC17_RTRUBA2 || pic == PIC_SC17_RTRUBA) {
 				if (cmd->_keyCode == ANI_INV_COIN || cmd->_keyCode == ANI_INV_BOOT || cmd->_keyCode == ANI_INV_HAMMER) {
-					if (g_vars->scene17_var09) {
+					if (g_vars->scene17_handPhase) {
 						if (g_fp->_aniMan->isIdle()) {
 							if (!(g_fp->_aniMan->_flags & 0x100)) {
 								handleObjectInteraction(g_fp->_aniMan, g_vars->scene17_hand, cmd->_keyCode);
@@ -186,32 +182,32 @@ int sceneHandler17(ExCommand *cmd) {
 
 	case 33:
 		{
-			int x = g_vars->scene17_var10;
-			g_vars->scene17_var07 = g_vars->scene17_var10;
+			int x = g_vars->scene17_sceneEdgeX;
+			g_vars->scene17_var07 = g_vars->scene17_sceneEdgeX;
 
 			if (g_fp->_aniMan2) {
 				x = g_fp->_aniMan2->_ox;
 
-				g_vars->scene17_var10 = x;
+				g_vars->scene17_sceneEdgeX = x;
 
-				if (x < g_fp->_sceneRect.left + g_vars->scene17_var01) {
-					g_fp->_currentScene->_x = x - g_vars->scene17_var03 - g_fp->_sceneRect.left;
+				if (x < g_fp->_sceneRect.left + 200) {
+					g_fp->_currentScene->_x = x - 300 - g_fp->_sceneRect.left;
 
-					x = g_vars->scene17_var10;
+					x = g_vars->scene17_sceneEdgeX;
 				}
 
-				if (x > g_fp->_sceneRect.right - g_vars->scene17_var01) {
-					g_fp->_currentScene->_x = x + g_vars->scene17_var03 - g_fp->_sceneRect.right;
-					x = g_vars->scene17_var10;
+				if (x > g_fp->_sceneRect.right - 200) {
+					g_fp->_currentScene->_x = x + 300 - g_fp->_sceneRect.right;
+					x = g_vars->scene17_sceneEdgeX;
 				}
 			}
 
-			if (g_vars->scene17_var06) {
+			if (g_vars->scene17_sugarIsShown) {
 				sceneHandler17_moonshineFill();
-				x = g_vars->scene17_var10;
+				x = g_vars->scene17_sceneEdgeX;
 			}
 
-			if (g_vars->scene17_var09) {
+			if (g_vars->scene17_handPhase) {
 				if (g_vars->scene17_var07 < 410 && x >= 410) {
 					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 0);
 					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_ATTRACT, QU_HND17_ATTRACT, 0);
@@ -223,9 +219,9 @@ int sceneHandler17(ExCommand *cmd) {
 				}
 			}
 
-			--g_vars->scene17_var08;
+			--g_vars->scene17_flyCountdown;
 
-			if (!g_vars->scene17_var08)
+			if (!g_vars->scene17_flyCountdown)
 				sceneHandler17_updateFlies();
 
 			g_fp->_floaters->update();


Commit: 6212cc64aacb07141a8ba6d0fde747efc73b682e
    https://github.com/scummvm/scummvm/commit/6212cc64aacb07141a8ba6d0fde747efc73b682e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T14:48:34-08:00

Commit Message:
FULLPIPE: More renames in scene17

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 3d81e1b..899d215 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -241,7 +241,7 @@ Vars::Vars() {
 
 	scene17_flyState = 0;
 	scene17_sugarIsShown = false;
-	scene17_var07 = 0;
+	scene17_sceneOldEdgeX = 0;
 	scene17_flyCountdown = 0;
 	scene17_hand = 0;
 	scene17_handPhase = false;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 0560813..b4052f4 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -322,7 +322,7 @@ public:
 
 	int scene17_flyState;
 	bool scene17_sugarIsShown;
-	int scene17_var07;
+	int scene17_sceneOldEdgeX;
 	int scene17_flyCountdown;
 	StaticANIObject *scene17_hand;
 	bool scene17_handPhase;
diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index 11bf7f2..cd2a004 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -39,7 +39,7 @@ namespace Fullpipe {
 void scene17_initScene(Scene *sc) {
 	g_vars->scene17_flyState = 1;
 	g_vars->scene17_sugarIsShown = false;
-	g_vars->scene17_var07 = 0;
+	g_vars->scene17_sceneOldEdgeX = 0;
 	g_vars->scene17_flyCountdown = 0;
 	g_vars->scene17_hand = sc->getStaticANIObject1ById(ANI_HAND17, -1);
 }
@@ -183,7 +183,7 @@ int sceneHandler17(ExCommand *cmd) {
 	case 33:
 		{
 			int x = g_vars->scene17_sceneEdgeX;
-			g_vars->scene17_var07 = g_vars->scene17_sceneEdgeX;
+			g_vars->scene17_sceneOldEdgeX = g_vars->scene17_sceneEdgeX;
 
 			if (g_fp->_aniMan2) {
 				x = g_fp->_aniMan2->_ox;
@@ -208,11 +208,11 @@ int sceneHandler17(ExCommand *cmd) {
 			}
 
 			if (g_vars->scene17_handPhase) {
-				if (g_vars->scene17_var07 < 410 && x >= 410) {
+				if (g_vars->scene17_sceneOldEdgeX < 410 && x >= 410) {
 					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 0);
 					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_ATTRACT, QU_HND17_ATTRACT, 0);
 					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_ASK, 1);
-				} else if (g_vars->scene17_var07 > 410 && x <= 410) {
+				} else if (g_vars->scene17_sceneOldEdgeX > 410 && x <= 410) {
 					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 1);
 					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_ATTRACT, QU_HND17_ATTRACT, 1);
 					g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_ASK, 0);


Commit: dd143adbaaf21dfc19b7ad20a2e6243164ddfc39
    https://github.com/scummvm/scummvm/commit/dd143adbaaf21dfc19b7ad20a2e6243164ddfc39
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T14:48:34-08:00

Commit Message:
FULLPIPE: Implement scene17_restoreState()

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



diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index cd2a004..ef9c0d2 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -44,6 +44,32 @@ void scene17_initScene(Scene *sc) {
 	g_vars->scene17_hand = sc->getStaticANIObject1ById(ANI_HAND17, -1);
 }
 
+void scene17_restoreState() {
+	if (g_fp->getObjectState(sO_UsherHand) == g_fp->getObjectEnumState(sO_UsherHand, sO_WithCoin)) {
+		g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_ASK, 0);
+		g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 0);
+
+		g_vars->scene17_handPhase = false;
+	} else {
+		g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_ASK, 0);
+		g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene17_hand, ST_HND17_EMPTY, QU_HND17_TOCYCLE, 1);
+
+		g_vars->scene17_handPhase = true;
+	}
+
+	g_fp->_floaters->init(g_fp->getGameLoaderGameVar()->getSubVarByName("SC_17"));
+
+	g_vars->scene17_flyState = g_fp->getObjectState(sO_Fly_17);
+
+	if (g_vars->scene17_flyState <= 0 ) {
+		g_vars->scene17_flyCountdown = g_fp->_rnd->getRandomNumber(600) + 600; // FIXME. Check
+
+		g_vars->scene17_flyState = g_fp->_rnd->getRandomNumber(4) + 1; // FIXME. Check
+	}
+
+	g_fp->setObjectState(sO_Fly_17, g_vars->scene17_flyState - 1);
+}
+
 void sceneHandler17_drop() {
 	StaticANIObject *mug = g_fp->_currentScene->getStaticANIObject1ById(ANI_MUG_17, -1);
 	StaticANIObject *jet = g_fp->_currentScene->getStaticANIObject1ById(ANI_JET_17, -1);


Commit: 7873f59ad5d12ca7d127925e4a1173fc473e1793
    https://github.com/scummvm/scummvm/commit/7873f59ad5d12ca7d127925e4a1173fc473e1793
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T14:48:34-08:00

Commit Message:
FULLPIPE: Implement scene17_updateCursor()

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



diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index ef9c0d2..231934d 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -70,6 +70,25 @@ void scene17_restoreState() {
 	g_fp->setObjectState(sO_Fly_17, g_vars->scene17_flyState - 1);
 }
 
+int scene17_updateCursor() {
+	g_fp->updateCursorCommon();
+
+	if (g_fp->_objectIdAtCursor != PIC_SC17_RTRUBA2 && g_fp->_objectIdAtCursor != PIC_SC17_RTRUBA)
+		return g_fp->_cursorId;
+
+	if (!g_vars->scene17_handPhase)
+		return g_fp->_cursorId;
+
+	int item = g_fp->_inventory->getSelectedItemId();
+
+	if ((g_fp->_cursorId != PIC_CSR_DEFAULT_INV || item != ANI_INV_COIN) && item != ANI_INV_BOOT && item != ANI_INV_HAMMER)
+		; // empty
+	else
+		g_fp->_cursorId = PIC_CSR_ITN_INV;
+
+	return g_fp->_cursorId;
+}
+
 void sceneHandler17_drop() {
 	StaticANIObject *mug = g_fp->_currentScene->getStaticANIObject1ById(ANI_MUG_17, -1);
 	StaticANIObject *jet = g_fp->_currentScene->getStaticANIObject1ById(ANI_JET_17, -1);


Commit: 34bd3aa749ad01c1e136805605a113c57f5fd4fa
    https://github.com/scummvm/scummvm/commit/34bd3aa749ad01c1e136805605a113c57f5fd4fa
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T14:48:35-08:00

Commit Message:
FULLPIPE: Enable scene17. 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 899d215..c8ace3c 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -578,7 +578,6 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_updateCursorCallback = scene16_updateCursor;
 		break;
 
-#if 0
 	case SC_17:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_17");
 		scene->preloadMovements(sceneVar);
@@ -587,10 +586,11 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		scene->initObjectCursors("SC_17");
 		setSceneMusicParameters(sceneVar);
 		addMessageHandler(sceneHandler17, 2);
-		scene17_sub_41F060();
+		scene17_restoreState();
 		_updateCursorCallback = scene17_updateCursor;
 		break;
 
+#if 0
 	case SC_18:
 		sub_40E1B0();
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_18");
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index b4052f4..358c6bc 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -96,6 +96,11 @@ void scene16_initScene(Scene *sc);
 int sceneHandler16(ExCommand *cmd);
 int scene16_updateCursor();
 
+void scene17_initScene(Scene *sc);
+void scene17_restoreState();
+int sceneHandler17(ExCommand *cmd);
+int scene17_updateCursor();
+
 void scene24_initScene(Scene *sc);
 void scene24_setPoolState();
 int sceneHandler24(ExCommand *cmd);






More information about the Scummvm-git-logs mailing list