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

sev- sev at scummvm.org
Sun Jan 5 16:14:44 CET 2014


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

Summary:
9fad45b7e6 FULLPIPE: Implement sceneHandler25_animateBearders()
f615eb4898 FULLPIPE: Implement sceneHandler25_enterTruba()
634fd658c9 FULLPIPE: Implement sceneHandler25_rowHand()
ee242f3e81 FULLPIPE: Implement sceneHandler25_rowShovel()
f082991c65 FULLPIPE: Implement sceneHandler25_toLadder()
52d9bb8583 FULLPIPE: Implement sceneHandler25_sneeze() and stopBearders()
863a65dfbc FULLPIPE: Implement sceneHandler25_tryRow()
1cf3fdca3c FULLPIPE: Implement sceneHandler25_startBearders()
f2cf16faa2 FULLPIPE: Implement sceneHandler25_sub02()
4d8a50620d FULLPIPE: Implement sceneHandler25_sub01()
4babc0f9f0 FULLPIPE: Implement StaticANIObject::restartMessageQueue()
70bcb0dad3 FULLPIPE: Give proper names to subs in scene25
744e5b7663 FULLPIPE: Enable scene25
9334e4652d FULLPIPE: Some renames in scene25
a4cc260b12 FULLPIPE: Rename remaining vars in scene25. This completes the scene


Commit: 9fad45b7e62cd6c73950e3b15f7c559cea54167b
    https://github.com/scummvm/scummvm/commit/9fad45b7e62cd6c73950e3b15f7c559cea54167b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:31-08:00

Commit Message:
FULLPIPE: Implement sceneHandler25_animateBearders()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 1dfe6ba..aa256a8 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -884,6 +884,9 @@ namespace Fullpipe {
 #define QU_DRP25_TOFLOOR 3502
 #define QU_DRP25_TOWATER 3504
 #define QU_SC25_BACKTOTRUBA 2061
+#define QU_SC25_BEARDED 3425
+#define QU_SC25_BEARDED2 3426
+#define QU_SC25_BEARDED3 3427
 #define QU_SC25_ENTERUP_FLOOR 1904
 #define QU_SC25_ENTERUP_WATER 1895
 #define QU_SC25_LADDERUP 1925
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 7d6b2e2..2213d1d 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -293,8 +293,7 @@ Vars::Vars() {
 	scene25_var07 = 0;
 	scene25_var08 = 0;
 	scene25_var09 = 0;
-	scene25_var10 = 0;
-	scene25_var11 = 0;
+	scene25_var10.clear();
 	scene25_var12 = 0;
 
 	scene30_leg = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index d01fd62..72150fc 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -407,8 +407,7 @@ public:
 	int scene25_var07;
 	int scene25_var08;
 	int scene25_var09;
-	int scene25_var10;
-	int scene25_var11;
+	Common::Array<StaticANIObject *> scene25_var10;
 	int scene25_var12;
 
 	StaticANIObject *scene30_leg;
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 37f837a..db58bff 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -155,7 +155,33 @@ void sceneHandler25_toLadder() {
 }
 
 void sceneHandler25_animateBearders() {
-	warning("STUB: sceneHandler25_animateBearders()");
+	if (g_fp->_rnd->getRandomNumber(32767) < 218) {
+		MessageQueue *mq;
+
+		mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC25_BEARDED), 0, 1);
+
+		mq->replaceKeyCode(-1, g_vars->scene25_var10[0]->_okeyCode);
+		mq->getExCommandByIndex(0)->_x = g_fp->_rnd->getRandomNumber(650) + 100;
+		mq->chain(0);
+
+		g_vars->scene25_var09 = 0;
+
+		if (g_fp->_rnd->getRandomNumber(32767) < 0x1FFF) {
+			mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC25_BEARDED2), 0, 1);
+
+			mq->replaceKeyCode(-1, g_vars->scene25_var10[1]->_okeyCode);
+			mq->getExCommandByIndex(0)->_x = g_fp->_rnd->getRandomNumber(650) + 100;
+			mq->chain(0);
+
+			if (g_fp->_rnd->getRandomNumber(32767) < 8191) {
+				mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC25_BEARDED3), 0, 1);
+
+				mq->replaceKeyCode(-1, g_vars->scene25_var10[2]->_okeyCode);
+				mq->getExCommandByIndex(0)->_x = g_fp->_rnd->getRandomNumber(650) + 100;
+				mq->chain(0);
+			}
+		}
+	}
 }
 
 void sceneHandler25_sneeze() {


Commit: f615eb489847bb376fd6efc8f2bde850871329f7
    https://github.com/scummvm/scummvm/commit/f615eb489847bb376fd6efc8f2bde850871329f7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:31-08:00

Commit Message:
FULLPIPE: Implement sceneHandler25_enterTruba()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index aa256a8..91d73e7 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -890,6 +890,8 @@ namespace Fullpipe {
 #define QU_SC25_ENTERUP_FLOOR 1904
 #define QU_SC25_ENTERUP_WATER 1895
 #define QU_SC25_LADDERUP 1925
+#define QU_SC25_MANTOTRUBA 1905
+#define QU_SC25_MANTOTRUBA_R 4218
 #define QU_SC25_PUTBOARD 1896
 #define QU_SC25_TRYWATER 1906
 #define SND_25_006 4059
@@ -899,6 +901,7 @@ namespace Fullpipe {
 #define SND_25_029 5174
 #define ST_DRP25_EMPTY 3501
 #define ST_MAN_LADDERDOWN_R 3419
+#define ST_MAN25_ONBOARD 1879
 
 // Scene 30
 #define ANI_LEG 2322
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index db58bff..ba84fef 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -147,7 +147,34 @@ void sceneHandler25_enterMan() {
 }
 
 void sceneHandler25_enterTruba() {
-	warning("STUB: sceneHandler25_enterTruba()");
+	PicAniInfo info;
+
+	g_fp->_aniMan->getPicAniInfo(&info);
+	g_fp->_aniMan->_messageQueueId = 0;
+	g_fp->_aniMan->changeStatics2(g_fp->_aniMan->_statics->_staticsId);
+
+	int x = g_fp->_aniMan->_ox;
+	int y = g_fp->_aniMan->_oy;
+
+	g_fp->_aniMan->setPicAniInfo(&info);
+
+	int id = g_fp->_aniMan->_statics->_staticsId;
+	int qid = 0;
+
+	if (id == ST_MAN25_ONBOARD && x == 634 && y == 502) {
+		g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD);
+
+		qid = QU_SC25_MANTOTRUBA;
+	} else if (id == (ST_MAN25_ONBOARD|0x4000) && x == 632 && y == 502) {
+		g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD|0x4000);
+
+		qid = QU_SC25_MANTOTRUBA_R;
+	}
+
+	if (qid)
+		chainQueue(qid, 1);
+
+	g_vars->scene25_var12 = 0;
 }
 
 void sceneHandler25_toLadder() {


Commit: 634fd658c9e547f55449e0f2b40ce899946094b9
    https://github.com/scummvm/scummvm/commit/634fd658c9e547f55449e0f2b40ce899946094b9
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:31-08:00

Commit Message:
FULLPIPE: Implement sceneHandler25_rowHand()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 91d73e7..7b94379 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -893,6 +893,8 @@ namespace Fullpipe {
 #define QU_SC25_MANTOTRUBA 1905
 #define QU_SC25_MANTOTRUBA_R 4218
 #define QU_SC25_PUTBOARD 1896
+#define QU_SC25_TRYROWHAND 3493
+#define QU_SC25_TRYROWHAND_R 3494
 #define QU_SC25_TRYWATER 1906
 #define SND_25_006 4059
 #define SND_25_025 4874
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index ba84fef..10cd18a 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -220,7 +220,34 @@ void sceneHandler25_rowShovel() {
 }
 
 void sceneHandler25_rowHand() {
-	warning("STUB: sceneHandler25_rowHand()");
+	PicAniInfo info;
+
+	g_fp->_aniMan->getPicAniInfo(&info);
+	g_fp->_aniMan->_messageQueueId = 0;
+	g_fp->_aniMan->changeStatics2(g_fp->_aniMan->_statics->_staticsId);
+
+	int x = g_fp->_aniMan->_ox;
+	int y = g_fp->_aniMan->_oy;
+
+	g_fp->_aniMan->setPicAniInfo(&info);
+
+	int id = g_fp->_aniMan->_statics->_staticsId;
+	int qid = 0;
+
+	if (id == ST_MAN25_ONBOARD && x == 370 && y == 502) {
+		g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD);
+
+		qid = QU_SC25_TRYROWHAND;
+	} else if (id == (ST_MAN25_ONBOARD|0x4000) && x == 632 && y == 502) {
+		g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD|0x4000);
+
+		qid = QU_SC25_TRYROWHAND_R;
+	}
+
+	if (qid)
+		chainObjQueue(g_fp->_aniMan, qid, 1);
+
+	g_vars->scene25_var12 = 0;
 }
 
 void sceneHandler25_putBoard() {


Commit: ee242f3e8186c51f7731e948ddd8a21a5a9cf05f
    https://github.com/scummvm/scummvm/commit/ee242f3e8186c51f7731e948ddd8a21a5a9cf05f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:31-08:00

Commit Message:
FULLPIPE: Implement sceneHandler25_rowShovel()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 7b94379..0b1aae7 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -893,6 +893,8 @@ namespace Fullpipe {
 #define QU_SC25_MANTOTRUBA 1905
 #define QU_SC25_MANTOTRUBA_R 4218
 #define QU_SC25_PUTBOARD 1896
+#define QU_SC25_ROWTOLADDER 1910
+#define QU_SC25_ROWTOTRUBA 1897
 #define QU_SC25_TRYROWHAND 3493
 #define QU_SC25_TRYROWHAND_R 3494
 #define QU_SC25_TRYWATER 1906
@@ -901,6 +903,7 @@ namespace Fullpipe {
 #define SND_25_026 4875
 #define SND_25_027 4876
 #define SND_25_029 5174
+#define SND_25_030 5175
 #define ST_DRP25_EMPTY 3501
 #define ST_MAN_LADDERDOWN_R 3419
 #define ST_MAN25_ONBOARD 1879
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 10cd18a..83ff7e5 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -171,10 +171,10 @@ void sceneHandler25_enterTruba() {
 		qid = QU_SC25_MANTOTRUBA_R;
 	}
 
-	if (qid)
+	if (qid) {
 		chainQueue(qid, 1);
-
-	g_vars->scene25_var12 = 0;
+		g_vars->scene25_var12 = 0;
+	}
 }
 
 void sceneHandler25_toLadder() {
@@ -216,7 +216,37 @@ void sceneHandler25_sneeze() {
 }
 
 void sceneHandler25_rowShovel() {
-	warning("STUB: sceneHandler25_rowShovel()");
+	PicAniInfo info;
+
+	g_fp->_aniMan->getPicAniInfo(&info);
+	g_fp->_aniMan->_messageQueueId = 0;
+	g_fp->_aniMan->changeStatics2(g_fp->_aniMan->_statics->_staticsId);
+
+	int x = g_fp->_aniMan->_ox;
+	int y = g_fp->_aniMan->_oy;
+
+	g_fp->_aniMan->setPicAniInfo(&info);
+
+	int id = g_fp->_aniMan->_statics->_staticsId;
+	int qid = 0;
+
+	if (id == ST_MAN25_ONBOARD && x == 370 && y == 502) {
+		g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD);
+
+		qid = QU_SC25_ROWTOTRUBA;
+	} else if (id == (ST_MAN25_ONBOARD|0x4000) && x == 632 && y == 502) {
+		g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD|0x4000);
+
+		qid = QU_SC25_ROWTOLADDER;
+
+		g_fp->playSound(SND_25_030, 0);
+	}
+
+	if (qid) {
+		chainQueue(qid, 1);
+
+		g_vars->scene25_var12 = 0;
+	}
 }
 
 void sceneHandler25_rowHand() {
@@ -244,10 +274,10 @@ void sceneHandler25_rowHand() {
 		qid = QU_SC25_TRYROWHAND_R;
 	}
 
-	if (qid)
+	if (qid) {
 		chainObjQueue(g_fp->_aniMan, qid, 1);
-
-	g_vars->scene25_var12 = 0;
+		g_vars->scene25_var12 = 0;
+	}
 }
 
 void sceneHandler25_putBoard() {


Commit: f082991c65697dd5ff633a5ef0cfd880b71bb267
    https://github.com/scummvm/scummvm/commit/f082991c65697dd5ff633a5ef0cfd880b71bb267
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:31-08:00

Commit Message:
FULLPIPE: Implement sceneHandler25_toLadder()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 0b1aae7..15de01e 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -883,10 +883,12 @@ namespace Fullpipe {
 #define PIC_SC25_RTRUBA 1853
 #define QU_DRP25_TOFLOOR 3502
 #define QU_DRP25_TOWATER 3504
+#define QU_SC25_BACKTOLADDER 1955
 #define QU_SC25_BACKTOTRUBA 2061
 #define QU_SC25_BEARDED 3425
 #define QU_SC25_BEARDED2 3426
 #define QU_SC25_BEARDED3 3427
+#define QU_SC25_BOARDTOLADDER 1911
 #define QU_SC25_ENTERUP_FLOOR 1904
 #define QU_SC25_ENTERUP_WATER 1895
 #define QU_SC25_LADDERUP 1925
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 83ff7e5..ad2ca5a 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -177,8 +177,43 @@ void sceneHandler25_enterTruba() {
 	}
 }
 
+void sceneHandler25_saveEntrance(int value) {
+	g_fp->getGameLoaderGameVar()->getSubVarByName("OBJSTATES")->getSubVarByName("SAVEGAME")->setSubVarAsInt("Entrance", value);
+}
+
 void sceneHandler25_toLadder() {
-	warning("STUB: sceneHandler25_toLadder()");
+	PicAniInfo info;
+
+	g_fp->_aniMan->getPicAniInfo(&info);
+	g_fp->_aniMan->_messageQueueId = 0;
+	g_fp->_aniMan->changeStatics2(g_fp->_aniMan->_statics->_staticsId);
+
+	int x = g_fp->_aniMan->_ox;
+	int y = g_fp->_aniMan->_oy;
+
+	g_fp->_aniMan->setPicAniInfo(&info);
+
+	int id = g_fp->_aniMan->_statics->_staticsId;
+	int qid = 0;
+
+	if (id == ST_MAN25_ONBOARD && x == 307 && y == 502) {
+		g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD);
+
+		qid = QU_SC25_BACKTOLADDER;
+	} else if (id == (ST_MAN25_ONBOARD|0x4000) && x == 192 && y == 502) {
+		g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD|0x4000);
+
+		qid = QU_SC25_BOARDTOLADDER;
+	}
+
+	if (qid) {
+		chainQueue(qid, 1);
+		g_vars->scene25_var05 = 0;
+		g_vars->scene25_var07 = 1;
+		g_vars->scene25_var12 = 0;
+
+		sceneHandler25_saveEntrance(TrubaUp);
+	}
 }
 
 void sceneHandler25_animateBearders() {
@@ -338,10 +373,6 @@ void sceneHandler25_sub03() {
 	warning("STUB: sceneHandler25_sub03()");
 }
 
-void sceneHandler25_sub04(int value) {
-	g_fp->getGameLoaderGameVar()->getSubVarByName("OBJSTATES")->getSubVarByName("SAVEGAME")->setSubVarAsInt("Entrance", value);
-}
-
 int sceneHandler25(ExCommand *cmd) {
 	if (cmd->_messageKind != 17)
 		return 0;


Commit: 52d9bb8583d6001542b67eb1a9e1def44dd7119b
    https://github.com/scummvm/scummvm/commit/52d9bb8583d6001542b67eb1a9e1def44dd7119b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:32-08:00

Commit Message:
FULLPIPE: Implement sceneHandler25_sneeze() and stopBearders()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 15de01e..074721f 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -875,8 +875,12 @@ namespace Fullpipe {
 #define MSG_SC25_STARTBEARDEDS 3423
 #define MSG_SC25_STOPBEARDEDS 3424
 #define MSG_SC25_TOLADDER 4215
+#define MV_MAN25_CHIH 1886
+#define rMV_MAN25_CHIH 3343
 #define MV_BRD25_RIGHT 1899
 #define rMV_BRD25_RIGHT 1903
+#define MV_MAN25_ONBOARD 1885
+#define rMV_MAN25_ONBOARD 1966
 #define MV_WTR25_FLOW 1857
 #define PIC_SC25_LADDERDOWN 1855
 #define PIC_SC25_LADDERUP 1854
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index ad2ca5a..927a6e4 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -129,7 +129,9 @@ void scene25_setupWater(Scene *a1, int entranceId) {
 }
 
 void sceneHandler25_stopBearders() {
-	warning("STUB: sceneHandler25_stopBearders()");
+	g_vars->scene25_var08 = 0;
+
+	g_vars->scene25_var10.clear();
 }
 
 void sceneHandler25_startBearders() {
@@ -247,7 +249,17 @@ void sceneHandler25_animateBearders() {
 }
 
 void sceneHandler25_sneeze() {
-	warning("STUB: sceneHandler25_sneeze()");
+	if (g_fp->_rnd->getRandomNumber(32767) % 10) {
+		if (g_fp->_aniMan->_statics->_staticsId == ST_MAN25_ONBOARD) {
+			g_fp->_aniMan->startAnim(MV_MAN25_ONBOARD, 0, -1);
+		} else if (g_fp->_aniMan->_statics->_staticsId == (ST_MAN25_ONBOARD|0x4000)) {
+			g_fp->_aniMan->startAnim(rMV_MAN25_ONBOARD, 0, -1);
+		}
+	} else if (g_fp->_aniMan->_statics->_staticsId == ST_MAN25_ONBOARD) {
+		g_fp->_aniMan->startAnim(MV_MAN25_CHIH, 0, -1);
+	} else if (g_fp->_aniMan->_statics->_staticsId == (ST_MAN25_ONBOARD|0x4000)) {
+		g_fp->_aniMan->startAnim(rMV_MAN25_CHIH, 0, -1);
+	}
 }
 
 void sceneHandler25_rowShovel() {


Commit: 863a65dfbc178da69215bf2d2e9405f3f3f35202
    https://github.com/scummvm/scummvm/commit/863a65dfbc178da69215bf2d2e9405f3f3f35202
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:32-08:00

Commit Message:
FULLPIPE: Implement sceneHandler25_tryRow()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 074721f..ddb3c89 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -901,15 +901,22 @@ namespace Fullpipe {
 #define QU_SC25_PUTBOARD 1896
 #define QU_SC25_ROWTOLADDER 1910
 #define QU_SC25_ROWTOTRUBA 1897
+#define QU_SC25_TRUBATOBOARD 1909
+#define QU_SC25_TRYBROOM 1912
+#define QU_SC25_TRYHAND 4219
 #define QU_SC25_TRYROWHAND 3493
 #define QU_SC25_TRYROWHAND_R 3494
+#define QU_SC25_TRYSPADE 3498
+#define QU_SC25_TRYSWAB 1913
 #define QU_SC25_TRYWATER 1906
 #define SND_25_006 4059
 #define SND_25_025 4874
 #define SND_25_026 4875
 #define SND_25_027 4876
+#define SND_25_028 5173
 #define SND_25_029 5174
 #define SND_25_030 5175
+#define ST_BRD25_RIGHT2 1902
 #define ST_DRP25_EMPTY 3501
 #define ST_MAN_LADDERDOWN_R 3419
 #define ST_MAN25_ONBOARD 1879
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 927a6e4..ae5cd79 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -350,8 +350,60 @@ void sceneHandler25_tryWater() {
 	}
 }
 
-void sceneHandler25_tryRow(int code) {
-	warning("STUB: sceneHandler25_tryRow()");
+void sceneHandler25_tryRow(int obj) {
+	PicAniInfo info;
+
+	g_fp->_aniMan->getPicAniInfo(&info);
+	g_fp->_aniMan->_messageQueueId = 0;
+	g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+
+	int x = g_fp->_aniMan->_ox;
+	int y = g_fp->_aniMan->_oy;
+
+	g_fp->_aniMan->setPicAniInfo(&info);
+
+	int qid = 0;
+
+	if (x == 788 && y == 468) {
+		if (g_vars->scene25_board->_statics->_staticsId == ST_BRD25_RIGHT2) {
+			if (obj == ANI_INV_BROOM) {
+				g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+
+				qid = QU_SC25_TRYBROOM;
+			}
+			if (obj == ANI_INV_LOPAT) {
+				g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+
+				qid = QU_SC25_TRYSPADE;
+			}
+
+			if (qid) {
+				chainQueue(qid, 1);
+
+				g_fp->playSound(SND_25_028, 0);
+
+				return;
+			}
+
+			if (obj == ANI_INV_SWAB) {
+				g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+
+				chainQueue(QU_SC25_TRYSWAB, 1);
+			} else if (!obj) {
+				g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+
+				chainObjQueue(g_fp->_aniMan, QU_SC25_TRYHAND, 1);
+
+				g_fp->playSound(SND_25_028, 0);
+			}
+		} else if (g_vars->scene25_board->_statics->_staticsId == (ST_MAN_RIGHT|0x4000) && !obj) {
+			g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000);
+
+			chainQueue(QU_SC25_TRUBATOBOARD, 1);
+
+			g_vars->scene25_var05 = 1;
+		}
+	}
 }
 
 void sceneHandler25_ladderUp() {


Commit: 1cf3fdca3cb524f614a1f4df940a07213032c263
    https://github.com/scummvm/scummvm/commit/1cf3fdca3cb524f614a1f4df940a07213032c263
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:32-08:00

Commit Message:
FULLPIPE: Implement sceneHandler25_startBearders()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index ddb3c89..92f2f3c 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -862,6 +862,7 @@ namespace Fullpipe {
 #define ST_WTR24_FLOWLOWER 1843
 
 // Scene 25
+#define ANI_BEARDED_CMN 3420
 #define ANI_BOARD25 1898
 #define ANI_DROP_25 3499
 #define ANI_INV_BOARD 1872
@@ -917,6 +918,7 @@ namespace Fullpipe {
 #define SND_25_029 5174
 #define SND_25_030 5175
 #define ST_BRD25_RIGHT2 1902
+#define ST_BRDCMN_EMPTY 3422
 #define ST_DRP25_EMPTY 3501
 #define ST_MAN_LADDERDOWN_R 3419
 #define ST_MAN25_ONBOARD 1879
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index ae5cd79..6a0b92c 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -135,7 +135,22 @@ void sceneHandler25_stopBearders() {
 }
 
 void sceneHandler25_startBearders() {
-	warning("STUB: sceneHandler25_startBearders()");
+	g_vars->scene25_var10.clear();
+	g_vars->scene25_var09 = 0;
+
+	StaticANIObject *bearded = g_fp->accessScene(SC_COMMON)->getStaticANIObject1ById(ANI_BEARDED_CMN, -1);
+
+	for (int i = 0; i < 3; i++) {
+		StaticANIObject *ani = new StaticANIObject(bearded);
+
+		g_vars->scene25_var10.push_back(ani);
+
+		ani->_statics = ani->getStaticsById(ST_BRDCMN_EMPTY);
+
+		g_fp->_currentScene->addStaticANIObject(ani, 1);
+	}
+
+	g_vars->scene25_var08 = 1;
 }
 
 void sceneHandler25_enterMan() {


Commit: f2cf16faa2c216a631dcfeffa0bbef719abdaba4
    https://github.com/scummvm/scummvm/commit/f2cf16faa2c216a631dcfeffa0bbef719abdaba4
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:32-08:00

Commit Message:
FULLPIPE: Implement sceneHandler25_sub02()

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



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 92f2f3c..3eb6364 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -876,6 +876,7 @@ namespace Fullpipe {
 #define MSG_SC25_STARTBEARDEDS 3423
 #define MSG_SC25_STOPBEARDEDS 3424
 #define MSG_SC25_TOLADDER 4215
+#define MV_MAN_GOLADDERDOWN 455
 #define MV_MAN25_CHIH 1886
 #define rMV_MAN25_CHIH 3343
 #define MV_BRD25_RIGHT 1899
@@ -920,6 +921,7 @@ namespace Fullpipe {
 #define ST_BRD25_RIGHT2 1902
 #define ST_BRDCMN_EMPTY 3422
 #define ST_DRP25_EMPTY 3501
+#define ST_MAN_GOLADDERD 456
 #define ST_MAN_LADDERDOWN_R 3419
 #define ST_MAN25_ONBOARD 1879
 
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 6a0b92c..6e22d5a 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -438,14 +438,33 @@ void sceneHandler25_backToPipe() {
 	}
 }
 
-void sceneHandler25_sub01() {
+void sceneHandler25_sub01(StaticANIObject *ani, Common::Point *pnt, MessageQueue *mq, int flag) {
 	warning("STUB: sceneHandler25_sub01()");
 }
 
 bool sceneHandler25_sub02(ExCommand *cmd) {
-	warning("STUB: sceneHandler25_sub02()");
+	if ((g_fp->_aniMan->_movement && g_fp->_aniMan->_movement->_id == MV_MAN_GOLADDERDOWN)
+		|| g_fp->_aniMan->_statics->_staticsId == ST_MAN_GOLADDERD) {
+		Interaction *inter = getGameLoaderInteractionController()->getInteractionByObjectIds(PIC_SC25_LADDERDOWN, ANI_MAN, cmd->_keyCode);
 
-	return false;
+		if (!inter)
+			return 0;
+
+		MessageQueue *mq = new MessageQueue(inter->_messageQueue, 0, 1);
+		PictureObject *pic = g_fp->_currentScene->getPictureObjectById(PIC_SC25_LADDERDOWN, 0);
+		Common::Point point;
+
+		point.x = inter->_xOffs + pic->_ox;
+		point.y = inter->_yOffs + pic->_oy;
+
+		mq->setFlags(mq->getFlags() | 1);
+
+		sceneHandler25_sub01(g_fp->_aniMan, &point, mq, 0);
+
+		return true;
+	} else {
+		return false;
+	}
 }
 
 void sceneHandler25_sub03() {


Commit: 4d8a50620d1ee34d3c1d1d3d941c6b94dd07b431
    https://github.com/scummvm/scummvm/commit/4d8a50620d1ee34d3c1d1d3d941c6b94dd07b431
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:32-08:00

Commit Message:
FULLPIPE: Implement sceneHandler25_sub01()

Changed paths:
    engines/fullpipe/scenes/scene25.cpp
    engines/fullpipe/statics.cpp
    engines/fullpipe/statics.h



diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 6e22d5a..d5172cb 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -439,7 +439,86 @@ void sceneHandler25_backToPipe() {
 }
 
 void sceneHandler25_sub01(StaticANIObject *ani, Common::Point *pnt, MessageQueue *mq, int flag) {
-	warning("STUB: sceneHandler25_sub01()");
+	int aniY = ani->_oy;
+	int newx, newy;
+	Common::Point point;
+	ExCommand *ex;
+
+	if (flag) {
+		if (ani->_movement) {
+			ani->_movement->calcSomeXY(point, 0);
+			newx = point.x;
+			aniY = ani->_oy - point.y;
+		}
+	}
+
+	int pntx = pnt->x;
+	int pnty = pnt->y;
+	int numObsolete = -1;
+	int minDistance = 20000;
+	ExCommand *lastEx = 0;
+
+	for (int i = 0; i < mq->getCount(); i++) {
+		int curDistance = abs(pnty - aniY);
+
+		ex = mq->getExCommandByIndex(i);
+
+		if (ex->_messageKind == 1 && ani->_id == ex->_parentId) {
+			if (ex->_excFlags & 0x10000) {
+				if (ex->_messageNum == MV_MAN_TOLADDER)
+					ex->_messageNum = MV_MAN_TOLADDER2;
+				if (ex->_messageNum == MV_MAN_STARTLADDER)
+					ex->_messageNum = MV_MAN_STARTLADDER2;
+				if (ex->_messageNum == MV_MAN_GOLADDER)
+					ex->_messageNum = MV_MAN_GOLADDER2;
+				if (ex->_messageNum == MV_MAN_STOPLADDER)
+					ex->_messageNum = MV_MAN_STOPLADDER2;
+			}
+
+			if (curDistance < minDistance || numObsolete < 0) {
+				numObsolete = i;
+				minDistance = curDistance;
+				lastEx = ex;
+				newx = pntx;
+				newy = pnty;
+			}
+
+			ani->getMovementById(ex->_messageNum)->calcSomeXY(point, 0);
+			pntx += point.x;
+			pnty += point.y;
+		}
+	}
+
+	for (int i = 0; i < numObsolete; i++)
+		mq->deleteExCommandByIndex(0, 1);
+
+    ex = new ExCommand(ani->_id, 34, 256, 0, 0, 0, 1, 0, 0, 0);
+
+	ex->_field_14 = 256;
+	ex->_messageNum = 0;
+	ex->_excFlags |= 3;
+
+	mq->addExCommandToEnd(ex);
+
+	if (flag && ani->_movement && ani->_movement->_id == mq->getExCommandByIndex(0)->_messageNum) {
+		mq->deleteExCommandByIndex(0, 1);
+
+		int movId = ani->_movement->_id;
+		int idx = ani->_movement->_currDynamicPhaseIndex;
+
+		ani->changeStatics2(ani->_movement->_staticsObj1->_staticsId);
+		ani->setOXY(newx, newy);
+
+		ani->startAnim(movId, mq->_id, -1);
+
+		ani->_movement->setDynamicPhaseIndex(idx);
+	} else {
+		ani->changeStatics2(ani->getMovementById(lastEx->_messageNum)->_staticsObj1->_staticsId);
+		ani->setOXY(newx, newy);
+		ani->restartMessageQueue(mq);
+	}
+
+	ani->_flags |= 1;
 }
 
 bool sceneHandler25_sub02(ExCommand *cmd) {
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index fbf1970..56698bf 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -281,6 +281,10 @@ void StaticANIObject::queueMessageQueue(MessageQueue *mq) {
 	}
 }
 
+void StaticANIObject::restartMessageQueue(MessageQueue *mq) {
+	warning("STUB: StaticANIObject::restartMessageQueue()");
+}
+
 MessageQueue *StaticANIObject::getMessageQueue() {
 	if (this->_messageQueueId <= 0)
 		return 0;
diff --git a/engines/fullpipe/statics.h b/engines/fullpipe/statics.h
index 9faf684..258752e 100644
--- a/engines/fullpipe/statics.h
+++ b/engines/fullpipe/statics.h
@@ -213,6 +213,7 @@ class StaticANIObject : public GameObject {
 
 	void deleteFromGlobalMessageQueue();
 	void queueMessageQueue(MessageQueue *msg);
+	void restartMessageQueue(MessageQueue *msg);
 	MessageQueue *getMessageQueue();
 	bool trySetMessageQueue(int msgNum, int qId);
 	void startMQIfIdle(int qId, int flag);


Commit: 4babc0f9f01bf132564d1ed8ed115e3d6869d6c4
    https://github.com/scummvm/scummvm/commit/4babc0f9f01bf132564d1ed8ed115e3d6869d6c4
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:32-08:00

Commit Message:
FULLPIPE: Implement StaticANIObject::restartMessageQueue()

Changed paths:
    engines/fullpipe/statics.cpp



diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index 56698bf..c6edce9 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -282,7 +282,26 @@ void StaticANIObject::queueMessageQueue(MessageQueue *mq) {
 }
 
 void StaticANIObject::restartMessageQueue(MessageQueue *mq) {
-	warning("STUB: StaticANIObject::restartMessageQueue()");
+	ExCommand *ex = mq->getExCommandByIndex(0);
+	if (ex) {
+		while (ex->_messageKind != 1 || ex->_parentId != _id) {
+			ex->_parId = 0;
+			ex->_excFlags |= 2;
+			ex->handleMessage();
+
+			mq->deleteExCommandByIndex(0, 0);
+
+			ex = mq->getExCommandByIndex(0);
+
+			if (!ex)
+				return;
+		}
+
+		if (ex) {
+			startAnim(ex->_messageNum, mq->_id, -1);
+			mq->deleteExCommandByIndex(0, 1);
+		}
+	}
 }
 
 MessageQueue *StaticANIObject::getMessageQueue() {


Commit: 70bcb0dad327b0d3ac8ba8ab8081016ccbaa49a7
    https://github.com/scummvm/scummvm/commit/70bcb0dad327b0d3ac8ba8ab8081016ccbaa49a7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:32-08:00

Commit Message:
FULLPIPE: Give proper names to subs in scene25

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



diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index d5172cb..3e8a6fe 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -438,7 +438,7 @@ void sceneHandler25_backToPipe() {
 	}
 }
 
-void sceneHandler25_sub01(StaticANIObject *ani, Common::Point *pnt, MessageQueue *mq, int flag) {
+void sceneHandler25_walkOnLadder(StaticANIObject *ani, Common::Point *pnt, MessageQueue *mq, int flag) {
 	int aniY = ani->_oy;
 	int newx, newy;
 	Common::Point point;
@@ -521,7 +521,7 @@ void sceneHandler25_sub01(StaticANIObject *ani, Common::Point *pnt, MessageQueue
 	ani->_flags |= 1;
 }
 
-bool sceneHandler25_sub02(ExCommand *cmd) {
+bool sceneHandler25_isOnLadder(ExCommand *cmd) {
 	if ((g_fp->_aniMan->_movement && g_fp->_aniMan->_movement->_id == MV_MAN_GOLADDERDOWN)
 		|| g_fp->_aniMan->_statics->_staticsId == ST_MAN_GOLADDERD) {
 		Interaction *inter = getGameLoaderInteractionController()->getInteractionByObjectIds(PIC_SC25_LADDERDOWN, ANI_MAN, cmd->_keyCode);
@@ -538,7 +538,7 @@ bool sceneHandler25_sub02(ExCommand *cmd) {
 
 		mq->setFlags(mq->getFlags() | 1);
 
-		sceneHandler25_sub01(g_fp->_aniMan, &point, mq, 0);
+		sceneHandler25_walkOnLadder(g_fp->_aniMan, &point, mq, 0);
 
 		return true;
 	} else {
@@ -644,7 +644,7 @@ int sceneHandler25(ExCommand *cmd) {
 			int picId = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
 
 			if (!g_vars->scene25_var06) {
-				if ((picId == PIC_SC25_LADDERUP || picId == PIC_SC25_LADDERDOWN) && sceneHandler25_sub02(cmd))
+				if ((picId == PIC_SC25_LADDERUP || picId == PIC_SC25_LADDERDOWN) && sceneHandler25_isOnLadder(cmd))
 					cmd->_messageKind = 0;
 
 				break;
@@ -680,7 +680,7 @@ int sceneHandler25(ExCommand *cmd) {
 				}
 			}
 
-			if (picId == PIC_SC25_LADDERUP && sceneHandler25_sub02(cmd))
+			if (picId == PIC_SC25_LADDERUP && sceneHandler25_isOnLadder(cmd))
 				cmd->_messageKind = 0;
 
 			if (!g_fp->_aniMan->isIdle() || (g_fp->_aniMan->_flags & 0x100))


Commit: 744e5b7663253c39d7d0d7695f23984899dacaba
    https://github.com/scummvm/scummvm/commit/744e5b7663253c39d7d0d7695f23984899dacaba
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:32-08:00

Commit Message:
FULLPIPE: Enable scene25

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 2213d1d..589a390 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -743,19 +743,19 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		_updateCursorCallback = defaultUpdateCursor;
 		break;
 
-#if 0
 	case SC_25:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_25");
 		scene->preloadMovements(sceneVar);
-		scene25_initScene(scene, entrance->field_4);
+		scene25_initScene(scene, entrance->_field_4);
 		_behaviorManager->initBehavior(scene, sceneVar);
 		scene->initObjectCursors("SC_25");
 		setSceneMusicParameters(sceneVar);
 		addMessageHandler(sceneHandler25, 2);
-		scene25_sub_4253B0(scene, entrance->field_4);
+		scene25_setupWater(scene, entrance->_field_4);
 		_updateCursorCallback = scene25_updateCursor;
 		break;
 
+#if 0
 	case SC_26:
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_26");
 		scene->preloadMovements(sceneVar);
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 72150fc..7f3918b 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -122,8 +122,13 @@ void scene24_initScene(Scene *sc);
 void scene24_setPoolState();
 int sceneHandler24(ExCommand *cmd);
 
+void scene25_initScene(Scene *sc, int entrance);
+void scene25_setupWater(Scene *sc, int entrance);
+int sceneHandler25(ExCommand *cmd);
+int scene25_updateCursor();
+
 int scene30_updateCursor();
- void scene30_initScene(Scene *sc, int flag);
+void scene30_initScene(Scene *sc, int flag);
 int sceneHandler30(ExCommand *cmd);
 
 void scene31_initScene(Scene *sc);


Commit: 9334e4652d7c37cf863cc1bea748acb37625d49d
    https://github.com/scummvm/scummvm/commit/9334e4652d7c37cf863cc1bea748acb37625d49d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:33-08:00

Commit Message:
FULLPIPE: Some renames in scene25

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 589a390..06ffddc 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -281,20 +281,16 @@ Vars::Vars() {
 	scene24_jet = 0;
 	scene24_drop = 0;
 
-	scene25_var01 = 0;
-	scene25_var02 = 0;
-	scene25_var03 = 0;
-	scene25_var04 = 0;
 	scene25_water = 0;
 	scene25_board = 0;
 	scene25_drop = 0;
-	scene25_var05 = 0;
-	scene25_var06 = 0;
-	scene25_var07 = 0;
-	scene25_var08 = 0;
-	scene25_var09 = 0;
-	scene25_var10.clear();
-	scene25_var12 = 0;
+	scene25_var05 = false;
+	scene25_var06 = false;
+	scene25_var07 = false;
+	scene25_var08 = false;
+	scene25_beardersCounter = 0;
+	scene25_bearders.clear();
+	scene25_sneezeFlipper = false;
 
 	scene30_leg = 0;
 	scene30_liftFlag = 1;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 7f3918b..a8d0843 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -400,20 +400,16 @@ public:
 	StaticANIObject *scene24_jet;
 	StaticANIObject *scene24_drop;
 
-	int scene25_var01;
-	int scene25_var02;
-	int scene25_var03;
-	int scene25_var04;
 	StaticANIObject *scene25_water;
 	StaticANIObject *scene25_board;
 	StaticANIObject *scene25_drop;
-	int scene25_var05;
-	int scene25_var06;
-	int scene25_var07;
-	int scene25_var08;
-	int scene25_var09;
-	Common::Array<StaticANIObject *> scene25_var10;
-	int scene25_var12;
+	bool scene25_var05;
+	bool scene25_var06;
+	bool scene25_var07;
+	bool scene25_var08;
+	int scene25_beardersCounter;
+	Common::Array<StaticANIObject *> scene25_bearders;
+	bool scene25_sneezeFlipper;
 
 	StaticANIObject *scene30_leg;
 	int scene30_liftFlag;
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 3e8a6fe..d641aa9 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -47,23 +47,19 @@ void scene25_showBoardOnRightClose() {
 }
 
 void scene25_initScene(Scene *sc, int entranceId) {
-	g_vars->scene25_var01 = 200;
-	g_vars->scene25_var02 = 200;
-	g_vars->scene25_var03 = 300;
-	g_vars->scene25_var04 = 300;
 	g_vars->scene25_water = sc->getStaticANIObject1ById(ANI_WATER25, -1);
 	g_vars->scene25_board = sc->getStaticANIObject1ById(ANI_BOARD25, -1);
 	g_vars->scene25_drop = sc->getStaticANIObject1ById(ANI_DROP_25, -1);
 	g_vars->scene25_water->setAlpha(0xa0);
 	g_vars->scene25_drop->setAlpha(0xa0);
-	g_vars->scene25_var05 = 0;
+	g_vars->scene25_var05 = false;
 
 	if (g_fp->getObjectState(sO_Pool) < g_fp->getObjectEnumState(sO_Pool, sO_HalfFull)) {
-		g_vars->scene25_var06 = 0;
+		g_vars->scene25_var06 = false;
 
 		g_vars->scene25_water->hide();
 	} else {
-		g_vars->scene25_var06 = 1;
+		g_vars->scene25_var06 = true;
 
 		g_fp->playSound(SND_25_006, 1);
 	}
@@ -76,12 +72,12 @@ void scene25_initScene(Scene *sc, int entranceId) {
 
 			g_fp->playSound(SND_25_029, 0);
 
-			g_vars->scene25_var07 = 0;
+			g_vars->scene25_var07 = false;
 		} else {
 			if (boardState == g_fp->getObjectEnumState(sO_Board_25, sO_Nearby)
 				|| boardState == g_fp->getObjectEnumState(sO_Board_25, sO_WithDudeOnRight))
 				scene25_showBoardOnRightClose();
-			g_vars->scene25_var07 = 0;
+			g_vars->scene25_var07 = false;
 		}
 	} else {
 		if (boardState == g_fp->getObjectEnumState(sO_Board_25, sO_WithDudeOnLeft)) {
@@ -90,12 +86,12 @@ void scene25_initScene(Scene *sc, int entranceId) {
 				getGameLoaderInventory()->rebuildItemRects();
 			}
 		} else {
-			g_vars->scene25_var07 = 1;
+			g_vars->scene25_var07 = true;
 		}
 	}
 
-	g_vars->scene25_var08 = 0;
-	g_vars->scene25_var09 = 0;
+	g_vars->scene25_var08 = false;
+	g_vars->scene25_beardersCounter = 0;
 }
 
 int scene25_updateCursor() {
@@ -129,28 +125,28 @@ void scene25_setupWater(Scene *a1, int entranceId) {
 }
 
 void sceneHandler25_stopBearders() {
-	g_vars->scene25_var08 = 0;
+	g_vars->scene25_var08 = false;
 
-	g_vars->scene25_var10.clear();
+	g_vars->scene25_bearders.clear();
 }
 
 void sceneHandler25_startBearders() {
-	g_vars->scene25_var10.clear();
-	g_vars->scene25_var09 = 0;
+	g_vars->scene25_bearders.clear();
+	g_vars->scene25_beardersCounter = 0;
 
 	StaticANIObject *bearded = g_fp->accessScene(SC_COMMON)->getStaticANIObject1ById(ANI_BEARDED_CMN, -1);
 
 	for (int i = 0; i < 3; i++) {
 		StaticANIObject *ani = new StaticANIObject(bearded);
 
-		g_vars->scene25_var10.push_back(ani);
+		g_vars->scene25_bearders.push_back(ani);
 
 		ani->_statics = ani->getStaticsById(ST_BRDCMN_EMPTY);
 
 		g_fp->_currentScene->addStaticANIObject(ani, 1);
 	}
 
-	g_vars->scene25_var08 = 1;
+	g_vars->scene25_var08 = true;
 }
 
 void sceneHandler25_enterMan() {
@@ -190,7 +186,7 @@ void sceneHandler25_enterTruba() {
 
 	if (qid) {
 		chainQueue(qid, 1);
-		g_vars->scene25_var12 = 0;
+		g_vars->scene25_sneezeFlipper = false;
 	}
 }
 
@@ -225,9 +221,9 @@ void sceneHandler25_toLadder() {
 
 	if (qid) {
 		chainQueue(qid, 1);
-		g_vars->scene25_var05 = 0;
-		g_vars->scene25_var07 = 1;
-		g_vars->scene25_var12 = 0;
+		g_vars->scene25_var05 = false;
+		g_vars->scene25_var07 = true;
+		g_vars->scene25_sneezeFlipper = false;
 
 		sceneHandler25_saveEntrance(TrubaUp);
 	}
@@ -239,23 +235,23 @@ void sceneHandler25_animateBearders() {
 
 		mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC25_BEARDED), 0, 1);
 
-		mq->replaceKeyCode(-1, g_vars->scene25_var10[0]->_okeyCode);
+		mq->replaceKeyCode(-1, g_vars->scene25_bearders[0]->_okeyCode);
 		mq->getExCommandByIndex(0)->_x = g_fp->_rnd->getRandomNumber(650) + 100;
 		mq->chain(0);
 
-		g_vars->scene25_var09 = 0;
+		g_vars->scene25_beardersCounter = 0;
 
 		if (g_fp->_rnd->getRandomNumber(32767) < 0x1FFF) {
 			mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC25_BEARDED2), 0, 1);
 
-			mq->replaceKeyCode(-1, g_vars->scene25_var10[1]->_okeyCode);
+			mq->replaceKeyCode(-1, g_vars->scene25_bearders[1]->_okeyCode);
 			mq->getExCommandByIndex(0)->_x = g_fp->_rnd->getRandomNumber(650) + 100;
 			mq->chain(0);
 
 			if (g_fp->_rnd->getRandomNumber(32767) < 8191) {
 				mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC25_BEARDED3), 0, 1);
 
-				mq->replaceKeyCode(-1, g_vars->scene25_var10[2]->_okeyCode);
+				mq->replaceKeyCode(-1, g_vars->scene25_bearders[2]->_okeyCode);
 				mq->getExCommandByIndex(0)->_x = g_fp->_rnd->getRandomNumber(650) + 100;
 				mq->chain(0);
 			}
@@ -307,7 +303,7 @@ void sceneHandler25_rowShovel() {
 	if (qid) {
 		chainQueue(qid, 1);
 
-		g_vars->scene25_var12 = 0;
+		g_vars->scene25_sneezeFlipper = false;
 	}
 }
 
@@ -338,7 +334,7 @@ void sceneHandler25_rowHand() {
 
 	if (qid) {
 		chainObjQueue(g_fp->_aniMan, qid, 1);
-		g_vars->scene25_var12 = 0;
+		g_vars->scene25_sneezeFlipper = false;
 	}
 }
 
@@ -350,9 +346,9 @@ void sceneHandler25_putBoard() {
 
 		chainQueue(QU_SC25_PUTBOARD, 1);
 
-		g_vars->scene25_var05 = 1;
-		g_vars->scene25_var12 = 0;
-		g_vars->scene25_var07 = 0;
+		g_vars->scene25_var05 = true;
+		g_vars->scene25_sneezeFlipper = false;
+		g_vars->scene25_var07 = false;
 	}
 }
 
@@ -416,7 +412,7 @@ void sceneHandler25_tryRow(int obj) {
 
 			chainQueue(QU_SC25_TRUBATOBOARD, 1);
 
-			g_vars->scene25_var05 = 1;
+			g_vars->scene25_var05 = true;
 		}
 	}
 }
@@ -596,25 +592,25 @@ int sceneHandler25(ExCommand *cmd) {
 			int x = g_fp->_aniMan2->_ox;
 			int y = g_fp->_aniMan2->_oy;
 
-			if (x < g_fp->_sceneRect.left + g_vars->scene25_var01)
-				g_fp->_currentScene->_x = x - g_vars->scene25_var03 - g_fp->_sceneRect.left;
+			if (x < g_fp->_sceneRect.left + 200)
+				g_fp->_currentScene->_x = x - 300 - g_fp->_sceneRect.left;
 
-			if (x > g_fp->_sceneRect.right - g_vars->scene25_var01)
-				g_fp->_currentScene->_x = x + g_vars->scene25_var03 - g_fp->_sceneRect.right;
+			if (x > g_fp->_sceneRect.right - 200)
+				g_fp->_currentScene->_x = x + 300 - g_fp->_sceneRect.right;
 
 			if (!g_vars->scene25_var06) {
-				if (y < g_fp->_sceneRect.top + g_vars->scene25_var02)
-					g_fp->_currentScene->_y = y - g_vars->scene25_var04 - g_fp->_sceneRect.top;
+				if (y < g_fp->_sceneRect.top + 200)
+					g_fp->_currentScene->_y = y - 300 - g_fp->_sceneRect.top;
 
-				if (y > g_fp->_sceneRect.bottom - g_vars->scene25_var02)
-					g_fp->_currentScene->_y = y + g_vars->scene25_var04 - g_fp->_sceneRect.bottom;
+				if (y > g_fp->_sceneRect.bottom - 200)
+					g_fp->_currentScene->_y = y + 300 - g_fp->_sceneRect.bottom;
 			}
         }
 
         if (g_vars->scene25_var08) {
-			g_vars->scene25_var09++;
+			g_vars->scene25_beardersCounter++;
 
-			if (g_vars->scene25_var09 >= 120)
+			if (g_vars->scene25_beardersCounter >= 120)
 				sceneHandler25_animateBearders();
         }
 
@@ -624,10 +620,10 @@ int sceneHandler25(ExCommand *cmd) {
         if (g_vars->scene25_var06 && !g_vars->scene25_water->_movement)
 			g_vars->scene25_water->startAnim(MV_WTR25_FLOW, 0, -1);
 
-        if (g_vars->scene25_var05 && !g_fp->_aniMan->_movement && g_vars->scene25_var12)
+        if (g_vars->scene25_var05 && !g_fp->_aniMan->_movement && g_vars->scene25_sneezeFlipper)
 			sceneHandler25_sneeze();
 
-        g_vars->scene25_var12 = 1;
+        g_vars->scene25_sneezeFlipper = true;
 
         if (g_vars->scene25_board->_flags & 4) {
 			if (!g_vars->scene25_board->_movement) {


Commit: a4cc260b121b7e3fcecea0c72dca81a1fc0e2208
    https://github.com/scummvm/scummvm/commit/a4cc260b121b7e3fcecea0c72dca81a1fc0e2208
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-05T07:13:33-08:00

Commit Message:
FULLPIPE: Rename remaining vars in scene25. This completes the scene

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



diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 06ffddc..8f42419 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -284,10 +284,10 @@ Vars::Vars() {
 	scene25_water = 0;
 	scene25_board = 0;
 	scene25_drop = 0;
-	scene25_var05 = false;
-	scene25_var06 = false;
-	scene25_var07 = false;
-	scene25_var08 = false;
+	scene25_dudeIsOnBoard = false;
+	scene25_waterIsPresent = false;
+	scene25_boardIsSelectable = false;
+	scene25_beardersAreThere = false;
 	scene25_beardersCounter = 0;
 	scene25_bearders.clear();
 	scene25_sneezeFlipper = false;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index a8d0843..9b1e4fa 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -403,10 +403,10 @@ public:
 	StaticANIObject *scene25_water;
 	StaticANIObject *scene25_board;
 	StaticANIObject *scene25_drop;
-	bool scene25_var05;
-	bool scene25_var06;
-	bool scene25_var07;
-	bool scene25_var08;
+	bool scene25_dudeIsOnBoard;
+	bool scene25_waterIsPresent;
+	bool scene25_boardIsSelectable;
+	bool scene25_beardersAreThere;
 	int scene25_beardersCounter;
 	Common::Array<StaticANIObject *> scene25_bearders;
 	bool scene25_sneezeFlipper;
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index d641aa9..efa8111 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -52,14 +52,14 @@ void scene25_initScene(Scene *sc, int entranceId) {
 	g_vars->scene25_drop = sc->getStaticANIObject1ById(ANI_DROP_25, -1);
 	g_vars->scene25_water->setAlpha(0xa0);
 	g_vars->scene25_drop->setAlpha(0xa0);
-	g_vars->scene25_var05 = false;
+	g_vars->scene25_dudeIsOnBoard = false;
 
 	if (g_fp->getObjectState(sO_Pool) < g_fp->getObjectEnumState(sO_Pool, sO_HalfFull)) {
-		g_vars->scene25_var06 = false;
+		g_vars->scene25_waterIsPresent = false;
 
 		g_vars->scene25_water->hide();
 	} else {
-		g_vars->scene25_var06 = true;
+		g_vars->scene25_waterIsPresent = true;
 
 		g_fp->playSound(SND_25_006, 1);
 	}
@@ -72,12 +72,12 @@ void scene25_initScene(Scene *sc, int entranceId) {
 
 			g_fp->playSound(SND_25_029, 0);
 
-			g_vars->scene25_var07 = false;
+			g_vars->scene25_boardIsSelectable = false;
 		} else {
 			if (boardState == g_fp->getObjectEnumState(sO_Board_25, sO_Nearby)
 				|| boardState == g_fp->getObjectEnumState(sO_Board_25, sO_WithDudeOnRight))
 				scene25_showBoardOnRightClose();
-			g_vars->scene25_var07 = false;
+			g_vars->scene25_boardIsSelectable = false;
 		}
 	} else {
 		if (boardState == g_fp->getObjectEnumState(sO_Board_25, sO_WithDudeOnLeft)) {
@@ -86,22 +86,22 @@ void scene25_initScene(Scene *sc, int entranceId) {
 				getGameLoaderInventory()->rebuildItemRects();
 			}
 		} else {
-			g_vars->scene25_var07 = true;
+			g_vars->scene25_boardIsSelectable = true;
 		}
 	}
 
-	g_vars->scene25_var08 = false;
+	g_vars->scene25_beardersAreThere = false;
 	g_vars->scene25_beardersCounter = 0;
 }
 
 int scene25_updateCursor() {
 	g_fp->updateCursorCommon();
 
-	if (g_vars->scene25_var06) {
+	if (g_vars->scene25_waterIsPresent) {
 		int inv = getGameLoaderInventory()->getSelectedItemId();
 
 		if (g_fp->_objectIdAtCursor == ANI_WATER25) {
-			if ((g_vars->scene25_var07 && (!inv || inv == ANI_INV_BOARD)) || (g_vars->scene25_var05 && (inv == ANI_INV_LOPAT || !inv)))
+			if ((g_vars->scene25_boardIsSelectable && (!inv || inv == ANI_INV_BOARD)) || (g_vars->scene25_dudeIsOnBoard && (inv == ANI_INV_LOPAT || !inv)))
 				g_fp->_cursorId = (g_fp->_cursorId != PIC_CSR_DEFAULT) ? PIC_CSR_ITN : PIC_CSR_ITN_INV; // FIXME check
 		} else if (g_fp->_objectIdAtCursor == ANI_BOARD25 && (!inv || inv == ANI_INV_SWAB || inv == ANI_INV_BROOM || inv == ANI_INV_LOPAT)) {
 			g_fp->_cursorId = (g_fp->_cursorId != PIC_CSR_DEFAULT) ? PIC_CSR_ITN : PIC_CSR_ITN_INV;
@@ -112,7 +112,7 @@ int scene25_updateCursor() {
 }
 
 void scene25_setupWater(Scene *a1, int entranceId) {
-	if (g_vars->scene25_var06) {
+	if (g_vars->scene25_waterIsPresent) {
 		g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene25_drop, ST_DRP25_EMPTY, QU_DRP25_TOFLOOR, 0);
 		g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene25_drop, ST_DRP25_EMPTY, QU_DRP25_TOWATER, 1);
 
@@ -125,7 +125,7 @@ void scene25_setupWater(Scene *a1, int entranceId) {
 }
 
 void sceneHandler25_stopBearders() {
-	g_vars->scene25_var08 = false;
+	g_vars->scene25_beardersAreThere = false;
 
 	g_vars->scene25_bearders.clear();
 }
@@ -146,11 +146,11 @@ void sceneHandler25_startBearders() {
 		g_fp->_currentScene->addStaticANIObject(ani, 1);
 	}
 
-	g_vars->scene25_var08 = true;
+	g_vars->scene25_beardersAreThere = true;
 }
 
 void sceneHandler25_enterMan() {
-	if (g_vars->scene25_var06) {
+	if (g_vars->scene25_waterIsPresent) {
 		chainQueue(QU_SC25_ENTERUP_WATER, 1);
 
 		getCurrSceneSc2MotionController()->clearEnabled();
@@ -221,8 +221,8 @@ void sceneHandler25_toLadder() {
 
 	if (qid) {
 		chainQueue(qid, 1);
-		g_vars->scene25_var05 = false;
-		g_vars->scene25_var07 = true;
+		g_vars->scene25_dudeIsOnBoard = false;
+		g_vars->scene25_boardIsSelectable = true;
 		g_vars->scene25_sneezeFlipper = false;
 
 		sceneHandler25_saveEntrance(TrubaUp);
@@ -346,9 +346,9 @@ void sceneHandler25_putBoard() {
 
 		chainQueue(QU_SC25_PUTBOARD, 1);
 
-		g_vars->scene25_var05 = true;
+		g_vars->scene25_dudeIsOnBoard = true;
 		g_vars->scene25_sneezeFlipper = false;
-		g_vars->scene25_var07 = false;
+		g_vars->scene25_boardIsSelectable = false;
 	}
 }
 
@@ -412,7 +412,7 @@ void sceneHandler25_tryRow(int obj) {
 
 			chainQueue(QU_SC25_TRUBATOBOARD, 1);
 
-			g_vars->scene25_var05 = true;
+			g_vars->scene25_dudeIsOnBoard = true;
 		}
 	}
 }
@@ -598,7 +598,7 @@ int sceneHandler25(ExCommand *cmd) {
 			if (x > g_fp->_sceneRect.right - 200)
 				g_fp->_currentScene->_x = x + 300 - g_fp->_sceneRect.right;
 
-			if (!g_vars->scene25_var06) {
+			if (!g_vars->scene25_waterIsPresent) {
 				if (y < g_fp->_sceneRect.top + 200)
 					g_fp->_currentScene->_y = y - 300 - g_fp->_sceneRect.top;
 
@@ -607,7 +607,7 @@ int sceneHandler25(ExCommand *cmd) {
 			}
         }
 
-        if (g_vars->scene25_var08) {
+        if (g_vars->scene25_beardersAreThere) {
 			g_vars->scene25_beardersCounter++;
 
 			if (g_vars->scene25_beardersCounter >= 120)
@@ -617,10 +617,10 @@ int sceneHandler25(ExCommand *cmd) {
         g_fp->_behaviorManager->updateBehaviors();
         g_fp->startSceneTrack();
 
-        if (g_vars->scene25_var06 && !g_vars->scene25_water->_movement)
+        if (g_vars->scene25_waterIsPresent && !g_vars->scene25_water->_movement)
 			g_vars->scene25_water->startAnim(MV_WTR25_FLOW, 0, -1);
 
-        if (g_vars->scene25_var05 && !g_fp->_aniMan->_movement && g_vars->scene25_sneezeFlipper)
+        if (g_vars->scene25_dudeIsOnBoard && !g_fp->_aniMan->_movement && g_vars->scene25_sneezeFlipper)
 			sceneHandler25_sneeze();
 
         g_vars->scene25_sneezeFlipper = true;
@@ -639,7 +639,7 @@ int sceneHandler25(ExCommand *cmd) {
 		{
 			int picId = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
 
-			if (!g_vars->scene25_var06) {
+			if (!g_vars->scene25_waterIsPresent) {
 				if ((picId == PIC_SC25_LADDERUP || picId == PIC_SC25_LADDERDOWN) && sceneHandler25_isOnLadder(cmd))
 					cmd->_messageKind = 0;
 
@@ -653,7 +653,7 @@ int sceneHandler25(ExCommand *cmd) {
 					if (g_fp->_aniMan->isIdle()) {
 						if (!(g_fp->_aniMan->_flags & 0x100)) {
 							if (ani->_id == ANI_WATER25) {
-								if (g_vars->scene25_var05) {
+								if (g_vars->scene25_dudeIsOnBoard) {
 									if (cmd->_keyCode == ANI_INV_LOPAT)
 										sceneHandler25_rowShovel();
 
@@ -682,7 +682,7 @@ int sceneHandler25(ExCommand *cmd) {
 			if (!g_fp->_aniMan->isIdle() || (g_fp->_aniMan->_flags & 0x100))
 				break;
 
-			if (g_vars->scene25_var05) {
+			if (g_vars->scene25_dudeIsOnBoard) {
 				if (picId == PIC_SC25_RTRUBA && !cmd->_keyCode) {
 					sceneHandler25_enterTruba();
 					break;
@@ -699,7 +699,7 @@ int sceneHandler25(ExCommand *cmd) {
 					break;
 				}
 			}
-			if (g_vars->scene25_var05) {
+			if (g_vars->scene25_dudeIsOnBoard) {
 				if (picId != PIC_SC25_LADDERUP || cmd->_keyCode)
 					break;
 






More information about the Scummvm-git-logs mailing list