[Scummvm-cvs-logs] scummvm master -> 70e471acd7edb03c32a9c33038558887d7e1e99d
sev-
sev at scummvm.org
Fri Nov 22 08:46:19 CET 2013
This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
af4d1227b1 FULLPIPE: Started work on sceneSwitcher04
13529e06fd FULLPIPE: Further work on sceneSwitcher04
dc2685ddef FULLPIPE: More work on sceneSwitcher04
8ae2cf1ed4 FULLPIPE: Implement switchScene04
b0ca746a18 FULLPIPE: More work on scene 4
70e471acd7 FULLPIPE: Continued work on scene 4
Commit: af4d1227b183c724c2b8de078abf0c7ca33e00de
https://github.com/scummvm/scummvm/commit/af4d1227b183c724c2b8de078abf0c7ca33e00de
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-11-21T23:45:31-08:00
Commit Message:
FULLPIPE: Started work on sceneSwitcher04
Changed paths:
engines/fullpipe/scenes/scene04.cpp
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 6a2b32a..a8bd75a 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -212,6 +212,264 @@ int scene04_updateCursor() {
}
int sceneHandler04(ExCommand *ex) {
+#if 0
+ v2 = 0;
+ if (ex->msg.messageKind != 17)
+ return v2;
+ v3 = ex->messageNum;
+ if (v3 <= (signed int)MSG_UPDATEBOTTLE) {
+ if (v3 == MSG_UPDATEBOTTLE) {
+ sceneHandler04_msgUpdateBottle();
+ return v2;
+ }
+ if (v3 > (signed int)MSG_CLICKPLANK) {
+ switch (v3) {
+ case MSG_CLICKBOTTLE:
+ sceneHandler04_clickBottle();
+ break;
+ case MSG_SHOOTKOZAW:
+ sceneHandler04_chootKozyawka();
+ break;
+ case MSG_SHAKEBOTTLE:
+ if (!g_vars_scene04_var02)
+ ++g_vars_scene04_var20;
+ break;
+ case MSG_STARTHAND:
+ g_vars_scene04_var09 = 1;
+ g_vars_scene04_coinPut = 0;
+ if (g_vars_scene04_var10)
+ sceneHandler04_sub1(0);
+ sceneHandler04_sub15();
+ sceneHandler04_stopSound();
+ break;
+ case MSG_TAKEKOZAW:
+ sceneHandler04_takeKozyawka();
+ break;
+ case MSG_CLICKBUTTON:
+ sceneHandler04_clickButton();
+ break;
+ default:
+ return v2;
+ }
+ } else {
+ if (v3 == MSG_CLICKPLANK) {
+ sceneHandler04_clickPlank();
+ return v2;
+ }
+ if (v3 > (signed int)MSG_LOWERPLANK) {
+ v17 = v3 - MSG_KOZAWRESTART;
+ if (v17) {
+ if (v17 == 1)
+ sceneHandler04_raisePlank();
+ } else {
+ if (g_vars_scene04_var05) {
+ CObList::AddTail(&g_vars_scene04_kozyawkiObjList, g_vars_scene04_var05);
+ StaticANIObject_hide((StaticANIObject *)g_vars_scene04_var05);
+ g_vars_scene04_var05 = 0;
+ }
+ if (g_vars_scene04_soundPlaying)
+ sceneHandler04_sub3();
+ }
+ } else {
+ if (v3 == MSG_LOWERPLANK) {
+ sceneHandler04_lowerPlank();
+ return v2;
+ }
+ if (v3 != 29) {
+ if (v3 != 33) {
+ if (v3 == MSG_TESTPLANK)
+ sceneHandler04_testPlank((int)ex);
+ return v2;
+ }
+ v4 = g_aniMan;
+ v5 = g_aniMan->GameObject.ox;
+ g_vars_scene04_dudePosX = g_aniMan->GameObject.ox;
+ g_vars_scene04_dudePosY = g_aniMan->GameObject.oy;
+ if (!g_aniMan2)
+ goto LABEL_130;
+ v6 = g_sceneRect.left;
+ if (v5 < g_sceneRect.left + 200) {
+ g_currentScene->bg.x = v5 - g_sceneRect.left - 300;
+ v5 = g_vars_scene04_dudePosX;
+ v4 = g_aniMan;
+ v6 = g_sceneRect.left;
+ }
+ if (v5 > g_sceneRect.right - 200) {
+ g_currentScene->bg.x = v5 - g_sceneRect.right + 300;
+ v4 = g_aniMan;
+ v6 = g_sceneRect.left;
+ }
+ v2 = 1;
+ if (g_aniMan2) {
+ if (g_vars_scene04_soundPlaying) {
+ v8 = v4->movement;
+ if (v8) {
+ if (v8->GameObject.id == MV_MAN_TOLADDER) {
+ g_aniMan2 = 0;
+ if (v6 > 380)
+ g_currentScene->bg.x = 380 - v6;
+ }
+ }
+ }
+ } else {
+ LABEL_130:
+ v7 = v4->movement;
+ if (v7 && v7->GameObject.id == MV_MAN_GOD)
+ g_aniMan2 = v4;
+ }
+ sceneHandler04_sub4();
+ if (g_vars_scene04_var07 && !g_vars_scene04_var09)
+ sceneHandler04_sub5();
+ if (g_vars_scene04_var12)
+ sceneHandler04_sub6();
+ if (g_vars_scene04_var08)
+ sceneHandler04_clickLadder();
+ if (g_vars_scene04_var10 && g_vars_scene04_hand->movement)
+ sceneHandler04_sub1(0);
+ if (g_vars_scene04_coinPut && g_vars_scene04_var18 && !g_vars_scene04_var09 && !g_vars_scene04_soundPlaying)
+ sceneHandler04_sub7();
+ if (g_vars_scene04_var01) {
+ if (!g_vars_scene04_soundPlaying)
+ goto LABEL_46;
+ v11 = __OFSUB__(g_vars_scene04_var14 + 1, 600);
+ v9 = g_vars_scene04_var14 == 599;
+ v10 = g_vars_scene04_var14++ - 599 < 0;
+ if (!((unsigned __int8)(v10 ^ v11) | v9))
+ sceneHandler04_sub17();
+ }
+ if (g_vars_scene04_soundPlaying) {
+ LABEL_47:
+ BehaviorManager_updateBehaviors(&g_behaviorManager);
+ return v2;
+ }
+ LABEL_46:
+ startSceneTrack();
+ goto LABEL_47;
+ }
+ v12 = Scene_getPictureObjectIdAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY);
+ LOWORD(sceneHandler_pic) = v12;
+ if (g_vars_scene04_var10) {
+ sceneHandler04_sub1(ex);
+ return v2;
+ }
+ if (v12 == PIC_SC4_LADDER) {
+ if (!g_vars_scene04_var04) {
+ dword_476CB8 = ex->msg.sceneClickX;
+ dword_476CBC = ex->msg.sceneClickY;
+ sceneHandler04_clickLadder();
+ ex->msg.messageKind = 0;
+ return v2;
+ }
+ goto LABEL_52;
+ }
+ v13 = Scene_getStaticANIObjectAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY);
+ v14 = (GameObject *)v13;
+ if (v13 && v13->GameObject.id == ANI_PLANK
+ || Scene_getPictureObjectIdAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY) == PIC_SC4_PLANK) {
+ sceneHandler04_clickPlank();
+ ex->msg.messageKind = 0;
+ } else if (g_vars_scene04_var01) {
+ sceneHandler04_sub8(ex);
+ } else if (!v14 || !canInteractAny(&g_aniMan->GameObject, v14, LOWORD(ex->msg.keyCode))) {
+ v15 = (GameObject *)Scene_getPictureObjectById(g_currentScene, sceneHandler_pic, 0);
+ if (!v15 || !canInteractAny(&g_aniMan->GameObject, v15, LOWORD(ex->msg.keyCode))) {
+ if ((v16 = ex->msg.sceneClickX, g_sceneRect.right - v16 < 47) && g_sceneRect.right < g_sceneWidth - 1
+ || v16 - g_sceneRect.left < 47 && g_sceneRect.left > 0)
+ sceneHandlers_sub01(ex);
+ }
+ }
+ }
+ }
+ return v2;
+ }
+ if (v3 > (signed int)MSG_SC4_MANFROMBOTTLE) {
+ if (v3 > (signed int)MSG_SC4_HANDOVER) {
+ if (v3 == MSG_SC4_HIDEBOOT) {
+ GameObject_setFlags(&g_vars_scene04_boot->GameObject, g_vars_scene04_boot->GameObject.flags & 0xFFFB);
+ } else if (v3 == MSG_CMN_WINARCADE) {
+ sceneHandler04_winArcade();
+ }
+ return v2;
+ }
+ if (v3 == MSG_SC4_HANDOVER) {
+ g_vars_scene04_var09 = 0;
+ g_vars_scene04_var19 = 1;
+ return v2;
+ }
+ v20 = v3 - MSG_SC4_KOZAWFALL;
+ if (v20) {
+ v21 = v20 - 37;
+ if (v21) {
+ if (v21 == 1) // MSG_SC4_DROPBOTTLE
+ sceneHandler04_dropBottle();
+ } else { // MSG_SC4_COINOUT
+ StaticANIObject_changeStatics2(g_vars_scene04_clock, ST_CLK_CLOSED);
+ g_vars_scene04_coinPut = 0;
+ sceneHandler04_stopSound();
+ if (g_vars_scene04_kozyawkiAni.m_nCount && !g_vars_scene04_var02) {
+ g_vars_scene04_var09 = 1;
+ if (g_vars_scene04_var10)
+ sceneHandler04_sub1(0);
+ sceneHandler04_sub15();
+ }
+ }
+ return v2;
+ }
+ if (g_vars_scene04_var11) {
+ sceneHandler04_sub9((void *)dword_476E54);
+ g_vars_scene04_var11 = 0;
+ v22 = (ExCommand *)operator new(sizeof(ExCommand));
+ if (v22) {
+ v23 = ExCommand_ctor(v22, 0, 35, SND_4_010, 0, 0, 0, 1, 0, 0, 0);
+ LABEL_119:
+ v24 = v23->excFlags | 2;
+ v23->msg.field_14 = 5;
+ v23->excFlags = v24;
+ ExCommand_postMessage(v23);
+ return v2;
+ }
+ } else {
+ v25 = (ExCommand *)operator new(sizeof(ExCommand));
+ if (v25) {
+ v23 = ExCommand_ctor(v25, 0, 35, SND_4_012, 0, 0, 0, 1, 0, 0, 0);
+ goto LABEL_119;
+ }
+ }
+ v23 = 0;
+ goto LABEL_119;
+ }
+ if (v3 == MSG_SC4_MANFROMBOTTLE) {
+ sceneHandler04_manFromBottle();
+ return v2;
+ }
+ if (v3 > (signed int)MSG_SHOWCOIN) {
+ if (v3 == MSG_SC4_CLICKLADDER) {
+ sceneHandler04_clickLadder();
+ } else if (v3 == MSG_SC4_MANTOBOTTLE) {
+ sceneHandler04_manToBottle();
+ }
+ } else {
+ if (v3 == MSG_SHOWCOIN) {
+ sceneHandler04_showCoin();
+ return v2;
+ }
+ v18 = v3 - MSG_TAKEBOTTLE;
+ if (!v18) {
+ sceneHandler04_takeBottle();
+ return v2;
+ }
+ v19 = v18 - 4;
+ if (!v19) { // MSG_GOTOLADDER
+ LABEL_52:
+ sceneHandler04_gotoLadder(0);
+ return v2;
+ }
+ if (v19 == 414) // MSG_SC4_COINPUT
+ g_vars_scene04_coinPut = 1;
+ }
+ return v2;
+
+#endif
warning("STUB: sceneHandler04()");
return 0;
Commit: 13529e06fde001244cc7c20e5b9f630a6ecb0823
https://github.com/scummvm/scummvm/commit/13529e06fde001244cc7c20e5b9f630a6ecb0823
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-11-21T23:45:32-08:00
Commit Message:
FULLPIPE: Further work on sceneSwitcher04
Changed paths:
engines/fullpipe/scenes/scene04.cpp
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index a8bd75a..2d594df 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -214,260 +214,268 @@ int scene04_updateCursor() {
int sceneHandler04(ExCommand *ex) {
#if 0
v2 = 0;
- if (ex->msg.messageKind != 17)
- return v2;
- v3 = ex->messageNum;
- if (v3 <= (signed int)MSG_UPDATEBOTTLE) {
- if (v3 == MSG_UPDATEBOTTLE) {
- sceneHandler04_msgUpdateBottle();
- return v2;
+
+ if (ex->_messageKind != 17)
+ return 0;
+
+ switch (ex->_messageNum) {
+ case MSG_UPDATEBOTTLE:
+ sceneHandler04_msgUpdateBottle();
+ break;
+
+ case MSG_CLICKBOTTLE:
+ sceneHandler04_clickBottle();
+ break;
+
+ case MSG_SHOOTKOZAW:
+ sceneHandler04_chootKozyawka();
+ break;
+
+ case MSG_SHAKEBOTTLE:
+ if (!g_vars->scene04_var02)
+ ++g_vars->scene04_var20;
+ break;
+
+ case MSG_STARTHAND:
+ g_vars->scene04_var09 = 1;
+ g_vars->scene04_coinPut = 0;
+ if (g_vars->scene04_var10)
+ sceneHandler04_sub1(0);
+ sceneHandler04_sub15();
+ sceneHandler04_stopSound();
+ break;
+
+ case MSG_TAKEKOZAW:
+ sceneHandler04_takeKozyawka();
+ break;
+
+ case MSG_CLICKBUTTON:
+ sceneHandler04_clickButton();
+ break;
+
+ case MSG_CLICKPLANK:
+ sceneHandler04_clickPlank();
+ break;
+
+ case MSG_RAISEPLANK:
+ sceneHandler04_raisePlank();
+ break;
+
+ case MSG_KOZAWRESTART:
+ if (g_vars->scene04_var05) {
+ CObList::AddTail(&g_vars->scene04_kozyawkiObjList, g_vars->scene04_var05);
+ StaticANIObject_hide((StaticANIObject *)g_vars->scene04_var05);
+ g_vars->scene04_var05 = 0;
}
- if (v3 > (signed int)MSG_CLICKPLANK) {
- switch (v3) {
- case MSG_CLICKBOTTLE:
- sceneHandler04_clickBottle();
- break;
- case MSG_SHOOTKOZAW:
- sceneHandler04_chootKozyawka();
- break;
- case MSG_SHAKEBOTTLE:
- if (!g_vars_scene04_var02)
- ++g_vars_scene04_var20;
- break;
- case MSG_STARTHAND:
- g_vars_scene04_var09 = 1;
- g_vars_scene04_coinPut = 0;
- if (g_vars_scene04_var10)
- sceneHandler04_sub1(0);
- sceneHandler04_sub15();
- sceneHandler04_stopSound();
- break;
- case MSG_TAKEKOZAW:
- sceneHandler04_takeKozyawka();
- break;
- case MSG_CLICKBUTTON:
- sceneHandler04_clickButton();
- break;
- default:
- return v2;
+ if (g_vars->scene04_soundPlaying)
+ sceneHandler04_sub3();
+
+ break;
+
+ case MSG_LOWERPLANK:
+ sceneHandler04_lowerPlank();
+ break;
+
+ case MSG_TESTPLANK:
+ sceneHandler04_testPlank((int)ex);
+ break;
+
+ case 33:
+ v4 = g_aniMan;
+ v5 = g_aniMan->GameObject.ox;
+ g_vars->scene04_dudePosX = g_aniMan->GameObject.ox;
+ g_vars->scene04_dudePosY = g_aniMan->GameObject.oy;
+
+ int res = 0;
+ if (g_aniMan2) {
+ v6 = g_sceneRect.left;
+ if (v5 < g_sceneRect.left + 200) {
+ g_currentScene->bg.x = v5 - g_sceneRect.left - 300;
+ v5 = g_vars->scene04_dudePosX;
+ v4 = g_aniMan;
+ v6 = g_sceneRect.left;
}
- } else {
- if (v3 == MSG_CLICKPLANK) {
- sceneHandler04_clickPlank();
- return v2;
+ if (v5 > g_sceneRect.right - 200) {
+ g_currentScene->bg.x = v5 - g_sceneRect.right + 300;
+ v4 = g_aniMan;
+ v6 = g_sceneRect.left;
}
- if (v3 > (signed int)MSG_LOWERPLANK) {
- v17 = v3 - MSG_KOZAWRESTART;
- if (v17) {
- if (v17 == 1)
- sceneHandler04_raisePlank();
- } else {
- if (g_vars_scene04_var05) {
- CObList::AddTail(&g_vars_scene04_kozyawkiObjList, g_vars_scene04_var05);
- StaticANIObject_hide((StaticANIObject *)g_vars_scene04_var05);
- g_vars_scene04_var05 = 0;
- }
- if (g_vars_scene04_soundPlaying)
- sceneHandler04_sub3();
- }
- } else {
- if (v3 == MSG_LOWERPLANK) {
- sceneHandler04_lowerPlank();
- return v2;
- }
- if (v3 != 29) {
- if (v3 != 33) {
- if (v3 == MSG_TESTPLANK)
- sceneHandler04_testPlank((int)ex);
- return v2;
- }
- v4 = g_aniMan;
- v5 = g_aniMan->GameObject.ox;
- g_vars_scene04_dudePosX = g_aniMan->GameObject.ox;
- g_vars_scene04_dudePosY = g_aniMan->GameObject.oy;
- if (!g_aniMan2)
- goto LABEL_130;
- v6 = g_sceneRect.left;
- if (v5 < g_sceneRect.left + 200) {
- g_currentScene->bg.x = v5 - g_sceneRect.left - 300;
- v5 = g_vars_scene04_dudePosX;
- v4 = g_aniMan;
- v6 = g_sceneRect.left;
- }
- if (v5 > g_sceneRect.right - 200) {
- g_currentScene->bg.x = v5 - g_sceneRect.right + 300;
- v4 = g_aniMan;
- v6 = g_sceneRect.left;
- }
- v2 = 1;
- if (g_aniMan2) {
- if (g_vars_scene04_soundPlaying) {
- v8 = v4->movement;
- if (v8) {
- if (v8->GameObject.id == MV_MAN_TOLADDER) {
- g_aniMan2 = 0;
- if (v6 > 380)
- g_currentScene->bg.x = 380 - v6;
- }
- }
- }
- } else {
- LABEL_130:
- v7 = v4->movement;
- if (v7 && v7->GameObject.id == MV_MAN_GOD)
- g_aniMan2 = v4;
- }
- sceneHandler04_sub4();
- if (g_vars_scene04_var07 && !g_vars_scene04_var09)
- sceneHandler04_sub5();
- if (g_vars_scene04_var12)
- sceneHandler04_sub6();
- if (g_vars_scene04_var08)
- sceneHandler04_clickLadder();
- if (g_vars_scene04_var10 && g_vars_scene04_hand->movement)
- sceneHandler04_sub1(0);
- if (g_vars_scene04_coinPut && g_vars_scene04_var18 && !g_vars_scene04_var09 && !g_vars_scene04_soundPlaying)
- sceneHandler04_sub7();
- if (g_vars_scene04_var01) {
- if (!g_vars_scene04_soundPlaying)
- goto LABEL_46;
- v11 = __OFSUB__(g_vars_scene04_var14 + 1, 600);
- v9 = g_vars_scene04_var14 == 599;
- v10 = g_vars_scene04_var14++ - 599 < 0;
- if (!((unsigned __int8)(v10 ^ v11) | v9))
- sceneHandler04_sub17();
- }
- if (g_vars_scene04_soundPlaying) {
- LABEL_47:
- BehaviorManager_updateBehaviors(&g_behaviorManager);
- return v2;
- }
- LABEL_46:
- startSceneTrack();
- goto LABEL_47;
- }
- v12 = Scene_getPictureObjectIdAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY);
- LOWORD(sceneHandler_pic) = v12;
- if (g_vars_scene04_var10) {
- sceneHandler04_sub1(ex);
- return v2;
- }
- if (v12 == PIC_SC4_LADDER) {
- if (!g_vars_scene04_var04) {
- dword_476CB8 = ex->msg.sceneClickX;
- dword_476CBC = ex->msg.sceneClickY;
- sceneHandler04_clickLadder();
- ex->msg.messageKind = 0;
- return v2;
- }
- goto LABEL_52;
- }
- v13 = Scene_getStaticANIObjectAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY);
- v14 = (GameObject *)v13;
- if (v13 && v13->GameObject.id == ANI_PLANK
- || Scene_getPictureObjectIdAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY) == PIC_SC4_PLANK) {
- sceneHandler04_clickPlank();
- ex->msg.messageKind = 0;
- } else if (g_vars_scene04_var01) {
- sceneHandler04_sub8(ex);
- } else if (!v14 || !canInteractAny(&g_aniMan->GameObject, v14, LOWORD(ex->msg.keyCode))) {
- v15 = (GameObject *)Scene_getPictureObjectById(g_currentScene, sceneHandler_pic, 0);
- if (!v15 || !canInteractAny(&g_aniMan->GameObject, v15, LOWORD(ex->msg.keyCode))) {
- if ((v16 = ex->msg.sceneClickX, g_sceneRect.right - v16 < 47) && g_sceneRect.right < g_sceneWidth - 1
- || v16 - g_sceneRect.left < 47 && g_sceneRect.left > 0)
- sceneHandlers_sub01(ex);
+ res = 1;
+
+ if (g_vars->scene04_soundPlaying) {
+ v8 = v4->movement;
+ if (v8) {
+ if (v8->GameObject.id == MV_MAN_TOLADDER) {
+ g_aniMan2 = 0;
+ if (v6 > 380)
+ g_currentScene->bg.x = 380 - v6;
}
}
}
+ } else {
+ v7 = v4->movement;
+ if (v7 && v7->GameObject.id == MV_MAN_GOD)
+ g_aniMan2 = v4;
}
- return v2;
- }
- if (v3 > (signed int)MSG_SC4_MANFROMBOTTLE) {
- if (v3 > (signed int)MSG_SC4_HANDOVER) {
- if (v3 == MSG_SC4_HIDEBOOT) {
- GameObject_setFlags(&g_vars_scene04_boot->GameObject, g_vars_scene04_boot->GameObject.flags & 0xFFFB);
- } else if (v3 == MSG_CMN_WINARCADE) {
- sceneHandler04_winArcade();
+
+ sceneHandler04_sub4();
+ if (g_vars->scene04_var07 && !g_vars->scene04_var09)
+ sceneHandler04_sub5();
+ if (g_vars->scene04_var12)
+ sceneHandler04_sub6();
+ if (g_vars->scene04_var08)
+ sceneHandler04_clickLadder();
+ if (g_vars->scene04_var10 && g_vars->scene04_hand->movement)
+ sceneHandler04_sub1(0);
+ if (g_vars->scene04_coinPut && g_vars->scene04_var18 && !g_vars->scene04_var09 && !g_vars->scene04_soundPlaying)
+ sceneHandler04_sub7();
+ if (g_vars->scene04_var01) {
+ if (!g_vars->scene04_soundPlaying) {
+ startSceneTrack();
+
+ BehaviorManager_updateBehaviors(&g_behaviorManager);
+ return res;
}
- return v2;
+ v11 = __OFSUB__(g_vars->scene04_var14 + 1, 600);
+ v9 = g_vars->scene04_var14 == 599;
+ v10 = g_vars->scene04_var14++ - 599 < 0;
+ if (!((unsigned __int8)(v10 ^ v11) | v9))
+ sceneHandler04_sub17();
}
- if (v3 == MSG_SC4_HANDOVER) {
- g_vars_scene04_var09 = 0;
- g_vars_scene04_var19 = 1;
- return v2;
+
+ if (g_vars->scene04_soundPlaying) {
+ BehaviorManager_updateBehaviors(&g_behaviorManager);
+ return res;
}
- v20 = v3 - MSG_SC4_KOZAWFALL;
- if (v20) {
- v21 = v20 - 37;
- if (v21) {
- if (v21 == 1) // MSG_SC4_DROPBOTTLE
- sceneHandler04_dropBottle();
- } else { // MSG_SC4_COINOUT
- StaticANIObject_changeStatics2(g_vars_scene04_clock, ST_CLK_CLOSED);
- g_vars_scene04_coinPut = 0;
- sceneHandler04_stopSound();
- if (g_vars_scene04_kozyawkiAni.m_nCount && !g_vars_scene04_var02) {
- g_vars_scene04_var09 = 1;
- if (g_vars_scene04_var10)
- sceneHandler04_sub1(0);
- sceneHandler04_sub15();
- }
+
+ startSceneTrack();
+
+ BehaviorManager_updateBehaviors(&g_behaviorManager);
+ return res;
+
+ case 29:
+ v12 = Scene_getPictureObjectIdAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY);
+ LOWORD(sceneHandler_pic) = v12;
+ if (g_vars->scene04_var10) {
+ sceneHandler04_sub1(ex);
+ break;
+ }
+
+ if (v12 == PIC_SC4_LADDER) {
+ if (!g_vars->scene04_var04) {
+ dword_476CB8 = ex->msg.sceneClickX;
+ dword_476CBC = ex->msg.sceneClickY;
+ sceneHandler04_clickLadder();
+ ex->msg.messageKind = 0;
+
+ break;
}
- return v2;
+ sceneHandler04_gotoLadder(0);
+
+ break;
}
- if (g_vars_scene04_var11) {
- sceneHandler04_sub9((void *)dword_476E54);
- g_vars_scene04_var11 = 0;
- v22 = (ExCommand *)operator new(sizeof(ExCommand));
- if (v22) {
- v23 = ExCommand_ctor(v22, 0, 35, SND_4_010, 0, 0, 0, 1, 0, 0, 0);
- LABEL_119:
- v24 = v23->excFlags | 2;
- v23->msg.field_14 = 5;
- v23->excFlags = v24;
- ExCommand_postMessage(v23);
- return v2;
+ v13 = Scene_getStaticANIObjectAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY);
+ v14 = (GameObject *)v13;
+ if (v13 && v13->GameObject.id == ANI_PLANK
+ || Scene_getPictureObjectIdAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY) == PIC_SC4_PLANK) {
+ sceneHandler04_clickPlank();
+ ex->msg.messageKind = 0;
+ } else if (g_vars->scene04_var01) {
+ sceneHandler04_sub8(ex);
+ } else if (!v14 || !canInteractAny(&g_aniMan->GameObject, v14, LOWORD(ex->msg.keyCode))) {
+ v15 = (GameObject *)Scene_getPictureObjectById(g_currentScene, sceneHandler_pic, 0);
+ if (!v15 || !canInteractAny(&g_aniMan->GameObject, v15, LOWORD(ex->msg.keyCode))) {
+ if ((v16 = ex->msg.sceneClickX, g_sceneRect.right - v16 < 47) && g_sceneRect.right < g_sceneWidth - 1
+ || v16 - g_sceneRect.left < 47 && g_sceneRect.left > 0)
+ sceneHandlers_sub01(ex);
}
- } else {
- v25 = (ExCommand *)operator new(sizeof(ExCommand));
- if (v25) {
- v23 = ExCommand_ctor(v25, 0, 35, SND_4_012, 0, 0, 0, 1, 0, 0, 0);
- goto LABEL_119;
+ }
+
+ break;
+
+ case MSG_SC4_HIDEBOOT:
+ g_vars->scene04_boot->_flags &= 0xfffb;
+ break;
+
+ case MSG_CMN_WINARCADE:
+ sceneHandler04_winArcade();
+ break;
+
+ case MSG_SC4_HANDOVER:
+ g_vars->scene04_var09 = 0;
+ g_vars->scene04_var19 = 1;
+ break;
+
+ case MSG_SC4_DROPBOTTLE:
+ sceneHandler04_dropBottle();
+ break;
+
+ case MSG_SC4_COINOUT:
+ StaticANIObject_changeStatics2(g_vars->scene04_clock, ST_CLK_CLOSED);
+ g_vars->scene04_coinPut = 0;
+ sceneHandler04_stopSound();
+
+ if (g_vars->scene04_kozyawkiAni.size() && !g_vars->scene04_var02) {
+ g_vars->scene04_var09 = 1;
+
+ if (g_vars->scene04_var10)
+ sceneHandler04_sub1(0);
+
+ sceneHandler04_sub15();
+ }
+
+ break;
+
+ case MSG_SC4_KOZAWFALL:
+ {
+ ExCommand *exnew;
+
+ if (g_vars->scene04_var11) {
+ sceneHandler04_sub9(g_vars->scene04_var24);
+
+ g_vars->scene04_var11 = 0;
+
+ exnew = new ExCommand(0, 35, SND_4_010, 0, 0, 0, 1, 0, 0, 0);
+ } else {
+ exnew = new ExCommand(0, 35, SND_4_012, 0, 0, 0, 1, 0, 0, 0);
}
+
+ exnew->_field_14 = 5;
+ exnew->_excFlags |= 2;
+ exnew->postMessage();
+ break;
}
- v23 = 0;
- goto LABEL_119;
- }
- if (v3 == MSG_SC4_MANFROMBOTTLE) {
+
+ case MSG_SC4_MANFROMBOTTLE:
sceneHandler04_manFromBottle();
return v2;
+
+ case MSG_SC4_CLICKLADDER:
+ sceneHandler04_clickLadder();
+ break;
+
+ case MSG_SC4_MANTOBOTTLE:
+ sceneHandler04_manToBottle();
+ break;
+
+ case MSG_SHOWCOIN:
+ sceneHandler04_showCoin();
+ return v2;
+
+ case MSG_TAKEBOTTLE:
+ sceneHandler04_takeBottle();
+ return v2;
+
+ case MSG_GOTOLADDER:
+ sceneHandler04_gotoLadder(0);
+ break;
+
+ case MSG_SC4_COINPUT:
+ g_vars->scene04_coinPut = 1;
+ break;
}
- if (v3 > (signed int)MSG_SHOWCOIN) {
- if (v3 == MSG_SC4_CLICKLADDER) {
- sceneHandler04_clickLadder();
- } else if (v3 == MSG_SC4_MANTOBOTTLE) {
- sceneHandler04_manToBottle();
- }
- } else {
- if (v3 == MSG_SHOWCOIN) {
- sceneHandler04_showCoin();
- return v2;
- }
- v18 = v3 - MSG_TAKEBOTTLE;
- if (!v18) {
- sceneHandler04_takeBottle();
- return v2;
- }
- v19 = v18 - 4;
- if (!v19) { // MSG_GOTOLADDER
- LABEL_52:
- sceneHandler04_gotoLadder(0);
- return v2;
- }
- if (v19 == 414) // MSG_SC4_COINPUT
- g_vars_scene04_coinPut = 1;
- }
- return v2;
+
+ return 0;
#endif
warning("STUB: sceneHandler04()");
Commit: dc2685ddef6466f462638e8e9d835651d94918d1
https://github.com/scummvm/scummvm/commit/dc2685ddef6466f462638e8e9d835651d94918d1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-11-21T23:45:32-08:00
Commit Message:
FULLPIPE: More work on sceneSwitcher04
Changed paths:
engines/fullpipe/scenes.h
engines/fullpipe/scenes/scene04.cpp
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 741835f..0ed1b82 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -101,7 +101,7 @@ public:
int scene04_var01;
int scene04_var02;
int scene04_var04;
- int scene04_var05;
+ StaticANIObject *scene04_var05;
int scene04_var06;
int scene04_var07;
int scene04_var08;
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 2d594df..c51a6d7 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -213,8 +213,6 @@ int scene04_updateCursor() {
int sceneHandler04(ExCommand *ex) {
#if 0
- v2 = 0;
-
if (ex->_messageKind != 17)
return 0;
@@ -239,8 +237,10 @@ int sceneHandler04(ExCommand *ex) {
case MSG_STARTHAND:
g_vars->scene04_var09 = 1;
g_vars->scene04_coinPut = 0;
+
if (g_vars->scene04_var10)
sceneHandler04_sub1(0);
+
sceneHandler04_sub15();
sceneHandler04_stopSound();
break;
@@ -263,8 +263,8 @@ int sceneHandler04(ExCommand *ex) {
case MSG_KOZAWRESTART:
if (g_vars->scene04_var05) {
- CObList::AddTail(&g_vars->scene04_kozyawkiObjList, g_vars->scene04_var05);
- StaticANIObject_hide((StaticANIObject *)g_vars->scene04_var05);
+ g_vars->scene04_kozyawkiObjList.push_back(g_vars->scene04_var05);
+ g_vars->scene04_var05->hide();
g_vars->scene04_var05 = 0;
}
if (g_vars->scene04_soundPlaying)
@@ -281,61 +281,62 @@ int sceneHandler04(ExCommand *ex) {
break;
case 33:
- v4 = g_aniMan;
- v5 = g_aniMan->GameObject.ox;
- g_vars->scene04_dudePosX = g_aniMan->GameObject.ox;
- g_vars->scene04_dudePosY = g_aniMan->GameObject.oy;
+ g_vars->scene04_dudePosX = g_fullpipe->_aniMan->_ox;
+ g_vars->scene04_dudePosY = g_fullpipe->_aniMan->_oy;
int res = 0;
- if (g_aniMan2) {
- v6 = g_sceneRect.left;
- if (v5 < g_sceneRect.left + 200) {
- g_currentScene->bg.x = v5 - g_sceneRect.left - 300;
- v5 = g_vars->scene04_dudePosX;
- v4 = g_aniMan;
- v6 = g_sceneRect.left;
+
+ if (g_fullpipe->_aniMan2) {
+ if (g_fullpipe->_aniMan->_ox < g_fullpipe->_sceneRect.left + 200) {
+ g_currentScene->_x = g_fullpipe->_aniMan->_ox - g_fullpipe->_sceneRect.left - 300;
+ g_fullpipe->_aniMan->_ox = g_vars->scene04_dudePosX;
}
- if (v5 > g_sceneRect.right - 200) {
- g_currentScene->bg.x = v5 - g_sceneRect.right + 300;
- v4 = g_aniMan;
- v6 = g_sceneRect.left;
+ if (g_fullpipe->_aniMan->_ox > g_fullpipe->_sceneRect.right - 200) {
+ g_currentScene->_x = g_fullpipe->_aniMan->_ox - g_fullpipe->_sceneRect.right + 300;
}
+
res = 1;
if (g_vars->scene04_soundPlaying) {
- v8 = v4->movement;
- if (v8) {
- if (v8->GameObject.id == MV_MAN_TOLADDER) {
- g_aniMan2 = 0;
- if (v6 > 380)
- g_currentScene->bg.x = 380 - v6;
+ if (g_fullpipe->_aniMan->_movement) {
+ if (g_fullpipe->_aniMan->_movement->_id == MV_MAN_TOLADDER) {
+ g_fullpipe->_aniMan2 = 0;
+ if (g_fullpipe->_sceneRect.left > 380)
+ g_currentScene->bg.x = 380 - g_fullpipe->_sceneRect.left;
}
}
}
} else {
- v7 = v4->movement;
- if (v7 && v7->GameObject.id == MV_MAN_GOD)
- g_aniMan2 = v4;
+ v7 = ;
+ if (g_fullpipe->_aniMan->_movement && g_fullpipe->_aniMan->_movement->_id == MV_MAN_GOD)
+ g_fullpipe->_aniMan2 = g_fullpipe->_aniMan;
}
sceneHandler04_sub4();
+
if (g_vars->scene04_var07 && !g_vars->scene04_var09)
sceneHandler04_sub5();
+
if (g_vars->scene04_var12)
sceneHandler04_sub6();
+
if (g_vars->scene04_var08)
sceneHandler04_clickLadder();
- if (g_vars->scene04_var10 && g_vars->scene04_hand->movement)
+
+ if (g_vars->scene04_var10 && g_vars->scene04_hand->_movement)
sceneHandler04_sub1(0);
+
if (g_vars->scene04_coinPut && g_vars->scene04_var18 && !g_vars->scene04_var09 && !g_vars->scene04_soundPlaying)
sceneHandler04_sub7();
+
if (g_vars->scene04_var01) {
if (!g_vars->scene04_soundPlaying) {
startSceneTrack();
- BehaviorManager_updateBehaviors(&g_behaviorManager);
+ g_fullpipe->_behaviorManager->updateBehaviors();
return res;
}
+
v11 = __OFSUB__(g_vars->scene04_var14 + 1, 600);
v9 = g_vars->scene04_var14 == 599;
v10 = g_vars->scene04_var14++ - 599 < 0;
@@ -344,13 +345,15 @@ int sceneHandler04(ExCommand *ex) {
}
if (g_vars->scene04_soundPlaying) {
- BehaviorManager_updateBehaviors(&g_behaviorManager);
+ g_fullpipe->_behaviorManager->updateBehaviors();
+
return res;
}
startSceneTrack();
- BehaviorManager_updateBehaviors(&g_behaviorManager);
+ g_fullpipe->_behaviorManager->updateBehaviors();
+
return res;
case 29:
@@ -382,11 +385,11 @@ int sceneHandler04(ExCommand *ex) {
ex->msg.messageKind = 0;
} else if (g_vars->scene04_var01) {
sceneHandler04_sub8(ex);
- } else if (!v14 || !canInteractAny(&g_aniMan->GameObject, v14, LOWORD(ex->msg.keyCode))) {
+ } else if (!v14 || !canInteractAny(&g_fullpipe->_aniMan->GameObject, v14, LOWORD(ex->msg.keyCode))) {
v15 = (GameObject *)Scene_getPictureObjectById(g_currentScene, sceneHandler_pic, 0);
- if (!v15 || !canInteractAny(&g_aniMan->GameObject, v15, LOWORD(ex->msg.keyCode))) {
- if ((v16 = ex->msg.sceneClickX, g_sceneRect.right - v16 < 47) && g_sceneRect.right < g_sceneWidth - 1
- || v16 - g_sceneRect.left < 47 && g_sceneRect.left > 0)
+ if (!v15 || !canInteractAny(&g_fullpipe->_aniMan->GameObject, v15, LOWORD(ex->msg.keyCode))) {
+ if ((v16 = ex->msg.sceneClickX, g_fullpipe->_sceneRect.right - v16 < 47) && g_fullpipe->_sceneRect.right < g_sceneWidth - 1
+ || v16 - g_fullpipe->_sceneRect.left < 47 && g_fullpipe->_sceneRect.left > 0)
sceneHandlers_sub01(ex);
}
}
Commit: 8ae2cf1ed418cec0cd3dec6758900068ad173c02
https://github.com/scummvm/scummvm/commit/8ae2cf1ed418cec0cd3dec6758900068ad173c02
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-11-21T23:45:32-08:00
Commit Message:
FULLPIPE: Implement switchScene04
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/scenes.cpp
engines/fullpipe/scenes.h
engines/fullpipe/scenes/scene04.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index a2e8121..fd1a011 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -48,6 +48,9 @@ namespace Fullpipe {
#define ANI_SC4_BOOT 1035
#define ANI_SPEAKER_4 3275
#define ANI_SPRING 542
+#define MSG_CLICKBOTTLE 569
+#define MSG_CLICKBUTTON 609
+#define MSG_CLICKPLANK 549
#define MSG_CMN_WINARCADE 4778
#define MSG_DISABLESAVES 5201
#define MSG_ENABLESAVES 5202
@@ -57,13 +60,16 @@ namespace Fullpipe {
#define MSG_INTR_GETUPMAN 5135
#define MSG_INTR_SWITCHTO1 5145
#define MSG_INTR_SWITCHTO2 5134
+#define MSG_KOZAWRESTART 546
#define MSG_LIFT_CLICKBUTTON 2780
#define MSG_LIFT_CLOSEDOOR 5194
#define MSG_LIFT_EXITLIFT 5187
#define MSG_LIFT_GO 1065
#define MSG_LIFT_STARTEXITQUEUE 5186
+#define MSG_LOWERPLANK 540
#define MSG_MANSHADOWSOFF 5196
#define MSG_MANSHADOWSON 5197
+#define MSG_RAISEPLANK 547
#define MSG_RESTARTGAME 4767
#define MSG_SC1_SHOWOSK 1019
#define MSG_SC1_SHOWOSK2 468
@@ -78,10 +84,30 @@ namespace Fullpipe {
#define MSG_SC3_TAKEEGG 1583
#define MSG_SC3_TESTFAT 1582
#define MSG_SC3_UTRUBACLICK 1103
+#define MSG_SC4_COINOUT 2895
+#define MSG_SC4_COINPUT 1032
+#define MSG_SC4_CLICKLADDER 1439
+#define MSG_SC4_DROPBOTTLE 2896
+#define MSG_SC4_HANDOVER 2960
+#define MSG_SC4_HIDEBOOT 4563
+#define MSG_SC4_KOZAWFALL 2858
+#define MSG_SC4_MANFROMBOTTLE 2854
+#define MSG_SC4_MANTOBOTTLE 2852
+#define PIC_SC4_LADDER 1438
+#define MSG_GOTOLADDER 618
+#define MSG_SHAKEBOTTLE 584
+#define MSG_SHOOTKOZAW 557
+#define MSG_SHOWCOIN 1033
+#define MSG_STARTHAND 612
+#define MSG_TAKEBOTTLE 614
+#define MSG_TAKEKOZAW 611
+#define MSG_TESTPLANK 538
+#define MSG_UPDATEBOTTLE 613
#define MV_EGTR_FATASK 5332
#define MV_IN1MAN_SLEEP 5111
#define MV_KZW_JUMP 558
#define MV_KZW_JUMPROTATE 561
+#define MV_MAN_GOD 481
#define MV_MAN_GOLADDER 451
#define MV_MAN_GOLADDER2 2844
#define MV_MAN_LOOKUP 4773
@@ -142,6 +168,7 @@ namespace Fullpipe {
#define PIC_SC4_BOTTLE 568
#define PIC_SC4_BOTTLE2 2936
#define PIC_SC4_DOWNTRUBA 619
+#define PIC_SC4_LADDER 1438
#define PIC_SC4_LRTRUBA 616
#define PIC_SC4_MASK 585
#define PIC_SC4_PLANK 5183
@@ -207,9 +234,12 @@ namespace Fullpipe {
#define SC_MAP 5222
#define SC_TEST 903
#define SC_TITLES 5166
+#define SND_4_010 3125
+#define SND_4_012 3127
#define SND_CMN_031 3516
#define SND_CMN_070 5199
#define SND_INTR_019 5220
+#define ST_CLK_CLOSED 590
#define ST_DYAS_LIES 318
#define ST_EGTR_MID1 2863
#define ST_EGTR_MID2 2869
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 801734e..6771fe8 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -73,6 +73,9 @@ Vars::Vars() {
scene04_soundPlaying = false;
scene04_dynamicPhaseIndex = 0;
+ scene04_sceneClickX = 0;
+ scene04_sceneClickY = 0;
+
scene04_var01 = 0;
scene04_var02 = 0;
scene04_var04 = 0;
@@ -91,6 +94,8 @@ Vars::Vars() {
scene04_var17 = 0;
scene04_var18 = 0;
scene04_var19 = 0;
+ scene04_var20 = 0;
+ scene04_var24 = 0;
selector = 0;
}
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 0ed1b82..4131fbb 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -97,6 +97,10 @@ public:
bool scene04_coinPut;
bool scene04_soundPlaying;
int scene04_dynamicPhaseIndex;
+ int scene04_sceneClickX;
+ int scene04_sceneClickY;
+ int scene04_dudePosX;
+ int scene04_dudePosY;
int scene04_var01;
int scene04_var02;
@@ -116,6 +120,8 @@ public:
int scene04_var17;
int scene04_var18;
int scene04_var19;
+ int scene04_var20;
+ StaticANIObject *scene04_var24;
PictureObject *selector;
};
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index c51a6d7..119fed5 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -32,6 +32,7 @@
#include "fullpipe/scene.h"
#include "fullpipe/interaction.h"
#include "fullpipe/gameloader.h"
+#include "fullpipe/behavior.h"
namespace Fullpipe {
@@ -211,14 +212,129 @@ int scene04_updateCursor() {
return g_fullpipe->_cursorId;
}
+void sceneHandlers_sub01(ExCommand *ex) {
+ warning("sceneHandlers_sub01()");
+}
+
+void sceneHandler04_clickBottle() {
+ warning("sceneHandler04_clickBottle()");
+}
+
+void sceneHandler04_clickButton() {
+ warning("sceneHandler04_clickButton()");
+}
+
+void sceneHandler04_clickLadder() {
+ warning("sceneHandler04_clickLadder()");
+}
+
+void sceneHandler04_clickPlank() {
+ warning("sceneHandler04_clickPlank()");
+}
+
+void sceneHandler04_dropBottle() {
+ warning("sceneHandler04_dropBottle()");
+}
+
+void sceneHandler04_gotoLadder(int par) {
+ warning("sceneHandler04_gotoLadder()");
+}
+
+void sceneHandler04_lowerPlank() {
+ warning("sceneHandler04_lowerPlank()");
+}
+
+void sceneHandler04_manFromBottle() {
+ warning("sceneHandler04_manFromBottle()");
+}
+
+void sceneHandler04_manToBottle() {
+ warning("sceneHandler04_manToBottle()");
+}
+
+void sceneHandler04_raisePlank() {
+ warning("sceneHandler04_raisePlank()");
+}
+
+void sceneHandler04_shootKozyawka() {
+ warning("sceneHandler04_shootKozyawka()");
+}
+
+void sceneHandler04_showCoin() {
+ warning("sceneHandler04_showCoin()");
+}
+
+void sceneHandler04_stopSound() {
+ warning("sceneHandler04_stopSound()");
+}
+
+void sceneHandler04_sub1(ExCommand *ex) {
+ warning("sceneHandler04_sub1()");
+}
+
+void sceneHandler04_sub3() {
+ warning("sceneHandler04_sub3()");
+}
+
+void sceneHandler04_sub4() {
+ warning("sceneHandler04_sub4()");
+}
+
+void sceneHandler04_sub5() {
+ warning("sceneHandler04_sub5()");
+}
+
+void sceneHandler04_sub6() {
+ warning("sceneHandler04_sub6()");
+}
+
+void sceneHandler04_sub7() {
+ warning("sceneHandler04_sub7()");
+}
+
+void sceneHandler04_sub8(ExCommand *ex) {
+ warning("sceneHandler04_sub8()");
+}
+
+void sceneHandler04_sub9(StaticANIObject *ani) {
+ warning("sceneHandler04_sub9()");
+}
+
+void sceneHandler04_sub15() {
+ warning("sceneHandler04_sub15()");
+}
+
+void sceneHandler04_sub17() {
+ warning("sceneHandler04_sub17()");
+}
+
+void sceneHandler04_takeBottle() {
+ warning("sceneHandler04_takeBottle()");
+}
+
+void sceneHandler04_takeKozyawka() {
+ warning("sceneHandler04_takeKozyawka()");
+}
+
+void sceneHandler04_testPlank(ExCommand *ex) {
+ warning("sceneHandler04_testPlank()");
+}
+
+void sceneHandler04_updateBottle() {
+ warning("sceneHandler04_updateBottle()");
+}
+
+void sceneHandler04_winArcade() {
+ warning("sceneHandler04_winArcade()");
+}
+
int sceneHandler04(ExCommand *ex) {
-#if 0
if (ex->_messageKind != 17)
return 0;
switch (ex->_messageNum) {
case MSG_UPDATEBOTTLE:
- sceneHandler04_msgUpdateBottle();
+ sceneHandler04_updateBottle();
break;
case MSG_CLICKBOTTLE:
@@ -226,7 +342,7 @@ int sceneHandler04(ExCommand *ex) {
break;
case MSG_SHOOTKOZAW:
- sceneHandler04_chootKozyawka();
+ sceneHandler04_shootKozyawka();
break;
case MSG_SHAKEBOTTLE:
@@ -277,120 +393,129 @@ int sceneHandler04(ExCommand *ex) {
break;
case MSG_TESTPLANK:
- sceneHandler04_testPlank((int)ex);
+ sceneHandler04_testPlank(ex);
break;
case 33:
- g_vars->scene04_dudePosX = g_fullpipe->_aniMan->_ox;
- g_vars->scene04_dudePosY = g_fullpipe->_aniMan->_oy;
+ {
+ g_vars->scene04_dudePosX = g_fullpipe->_aniMan->_ox;
+ g_vars->scene04_dudePosY = g_fullpipe->_aniMan->_oy;
- int res = 0;
+ int res = 0;
- if (g_fullpipe->_aniMan2) {
- if (g_fullpipe->_aniMan->_ox < g_fullpipe->_sceneRect.left + 200) {
- g_currentScene->_x = g_fullpipe->_aniMan->_ox - g_fullpipe->_sceneRect.left - 300;
- g_fullpipe->_aniMan->_ox = g_vars->scene04_dudePosX;
- }
- if (g_fullpipe->_aniMan->_ox > g_fullpipe->_sceneRect.right - 200) {
- g_currentScene->_x = g_fullpipe->_aniMan->_ox - g_fullpipe->_sceneRect.right + 300;
- }
+ if (g_fullpipe->_aniMan2) {
+ if (g_fullpipe->_aniMan->_ox < g_fullpipe->_sceneRect.left + 200) {
+ g_fullpipe->_currentScene->_x = g_fullpipe->_aniMan->_ox - g_fullpipe->_sceneRect.left - 300;
+ g_fullpipe->_aniMan->_ox = g_vars->scene04_dudePosX;
+ }
+ if (g_fullpipe->_aniMan->_ox > g_fullpipe->_sceneRect.right - 200) {
+ g_fullpipe->_currentScene->_x = g_fullpipe->_aniMan->_ox - g_fullpipe->_sceneRect.right + 300;
+ }
- res = 1;
+ res = 1;
- if (g_vars->scene04_soundPlaying) {
- if (g_fullpipe->_aniMan->_movement) {
- if (g_fullpipe->_aniMan->_movement->_id == MV_MAN_TOLADDER) {
- g_fullpipe->_aniMan2 = 0;
- if (g_fullpipe->_sceneRect.left > 380)
- g_currentScene->bg.x = 380 - g_fullpipe->_sceneRect.left;
+ if (g_vars->scene04_soundPlaying) {
+ if (g_fullpipe->_aniMan->_movement) {
+ if (g_fullpipe->_aniMan->_movement->_id == MV_MAN_TOLADDER) {
+ g_fullpipe->_aniMan2 = 0;
+
+ if (g_fullpipe->_sceneRect.left > 380)
+ g_fullpipe->_currentScene->_x = 380 - g_fullpipe->_sceneRect.left;
+ }
}
}
+ } else {
+ if (g_fullpipe->_aniMan->_movement && g_fullpipe->_aniMan->_movement->_id == MV_MAN_GOD)
+ g_fullpipe->_aniMan2 = g_fullpipe->_aniMan;
}
- } else {
- v7 = ;
- if (g_fullpipe->_aniMan->_movement && g_fullpipe->_aniMan->_movement->_id == MV_MAN_GOD)
- g_fullpipe->_aniMan2 = g_fullpipe->_aniMan;
- }
- sceneHandler04_sub4();
+ sceneHandler04_sub4();
- if (g_vars->scene04_var07 && !g_vars->scene04_var09)
- sceneHandler04_sub5();
+ if (g_vars->scene04_var07 && !g_vars->scene04_var09)
+ sceneHandler04_sub5();
- if (g_vars->scene04_var12)
- sceneHandler04_sub6();
+ if (g_vars->scene04_var12)
+ sceneHandler04_sub6();
- if (g_vars->scene04_var08)
- sceneHandler04_clickLadder();
+ if (g_vars->scene04_var08)
+ sceneHandler04_clickLadder();
- if (g_vars->scene04_var10 && g_vars->scene04_hand->_movement)
- sceneHandler04_sub1(0);
+ if (g_vars->scene04_var10 && g_vars->scene04_hand->_movement)
+ sceneHandler04_sub1(0);
- if (g_vars->scene04_coinPut && g_vars->scene04_var18 && !g_vars->scene04_var09 && !g_vars->scene04_soundPlaying)
- sceneHandler04_sub7();
+ if (g_vars->scene04_coinPut && g_vars->scene04_var18 && !g_vars->scene04_var09 && !g_vars->scene04_soundPlaying)
+ sceneHandler04_sub7();
- if (g_vars->scene04_var01) {
- if (!g_vars->scene04_soundPlaying) {
- startSceneTrack();
+ if (g_vars->scene04_var01) {
+ if (!g_vars->scene04_soundPlaying) {
+ g_fullpipe->startSceneTrack();
+ g_fullpipe->_behaviorManager->updateBehaviors();
+ return res;
+ }
+
+ g_vars->scene04_var14++;
+
+ if (g_vars->scene04_var14 > 600)
+ sceneHandler04_sub17();
+ }
+
+ if (g_vars->scene04_soundPlaying) {
g_fullpipe->_behaviorManager->updateBehaviors();
+
return res;
}
- v11 = __OFSUB__(g_vars->scene04_var14 + 1, 600);
- v9 = g_vars->scene04_var14 == 599;
- v10 = g_vars->scene04_var14++ - 599 < 0;
- if (!((unsigned __int8)(v10 ^ v11) | v9))
- sceneHandler04_sub17();
- }
+ g_fullpipe->startSceneTrack();
- if (g_vars->scene04_soundPlaying) {
g_fullpipe->_behaviorManager->updateBehaviors();
return res;
}
- startSceneTrack();
+ case 29:
+ {
+ int picid = g_fullpipe->_currentScene->getPictureObjectIdAtPos(ex->_sceneClickX, ex->_sceneClickY);
- g_fullpipe->_behaviorManager->updateBehaviors();
+ if (g_vars->scene04_var10) {
+ sceneHandler04_sub1(ex);
- return res;
+ break;
+ }
- case 29:
- v12 = Scene_getPictureObjectIdAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY);
- LOWORD(sceneHandler_pic) = v12;
- if (g_vars->scene04_var10) {
- sceneHandler04_sub1(ex);
- break;
- }
+ if (picid == PIC_SC4_LADDER) {
+ if (!g_vars->scene04_var04) {
+ g_vars->scene04_sceneClickX = ex->_sceneClickX;
+ g_vars->scene04_sceneClickY = ex->_sceneClickY;
- if (v12 == PIC_SC4_LADDER) {
- if (!g_vars->scene04_var04) {
- dword_476CB8 = ex->msg.sceneClickX;
- dword_476CBC = ex->msg.sceneClickY;
- sceneHandler04_clickLadder();
- ex->msg.messageKind = 0;
+ sceneHandler04_clickLadder();
+
+ ex->_messageKind = 0;
+
+ break;
+ }
+
+ sceneHandler04_gotoLadder(0);
break;
}
- sceneHandler04_gotoLadder(0);
- break;
- }
- v13 = Scene_getStaticANIObjectAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY);
- v14 = (GameObject *)v13;
- if (v13 && v13->GameObject.id == ANI_PLANK
- || Scene_getPictureObjectIdAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY) == PIC_SC4_PLANK) {
- sceneHandler04_clickPlank();
- ex->msg.messageKind = 0;
- } else if (g_vars->scene04_var01) {
- sceneHandler04_sub8(ex);
- } else if (!v14 || !canInteractAny(&g_fullpipe->_aniMan->GameObject, v14, LOWORD(ex->msg.keyCode))) {
- v15 = (GameObject *)Scene_getPictureObjectById(g_currentScene, sceneHandler_pic, 0);
- if (!v15 || !canInteractAny(&g_fullpipe->_aniMan->GameObject, v15, LOWORD(ex->msg.keyCode))) {
- if ((v16 = ex->msg.sceneClickX, g_fullpipe->_sceneRect.right - v16 < 47) && g_fullpipe->_sceneRect.right < g_sceneWidth - 1
- || v16 - g_fullpipe->_sceneRect.left < 47 && g_fullpipe->_sceneRect.left > 0)
- sceneHandlers_sub01(ex);
+ StaticANIObject *ani = g_fullpipe->_currentScene->getStaticANIObjectAtPos(ex->_sceneClickX, ex->_sceneClickY);
+
+ if ((ani && ani->_id == ANI_PLANK) || picid == PIC_SC4_PLANK) {
+ sceneHandler04_clickPlank();
+
+ ex->_messageKind = 0;
+ } else if (g_vars->scene04_var01) {
+ sceneHandler04_sub8(ex);
+ } else if (!ani || !canInteractAny(g_fullpipe->_aniMan, ani, ex->_keyCode)) {
+ PictureObject *pic = g_fullpipe->_currentScene->getPictureObjectById(picid, 0);
+
+ if (!pic || !canInteractAny(g_fullpipe->_aniMan, pic,ex->_keyCode)) {
+ if ((g_fullpipe->_sceneRect.right - ex->_sceneClickX < 47 && g_fullpipe->_sceneRect.right < g_fullpipe->_sceneWidth - 1)
+ || (ex->_sceneClickX - g_fullpipe->_sceneRect.left < 47 && g_fullpipe->_sceneRect.left > 0))
+ sceneHandlers_sub01(ex);
+ }
}
}
@@ -414,7 +539,7 @@ int sceneHandler04(ExCommand *ex) {
break;
case MSG_SC4_COINOUT:
- StaticANIObject_changeStatics2(g_vars->scene04_clock, ST_CLK_CLOSED);
+ g_vars->scene04_clock->changeStatics2(ST_CLK_CLOSED);
g_vars->scene04_coinPut = 0;
sceneHandler04_stopSound();
@@ -451,7 +576,7 @@ int sceneHandler04(ExCommand *ex) {
case MSG_SC4_MANFROMBOTTLE:
sceneHandler04_manFromBottle();
- return v2;
+ break;
case MSG_SC4_CLICKLADDER:
sceneHandler04_clickLadder();
@@ -463,11 +588,11 @@ int sceneHandler04(ExCommand *ex) {
case MSG_SHOWCOIN:
sceneHandler04_showCoin();
- return v2;
+ break;
case MSG_TAKEBOTTLE:
sceneHandler04_takeBottle();
- return v2;
+ break;
case MSG_GOTOLADDER:
sceneHandler04_gotoLadder(0);
@@ -479,11 +604,6 @@ int sceneHandler04(ExCommand *ex) {
}
return 0;
-
-#endif
- warning("STUB: sceneHandler04()");
-
- return 0;
}
} // End of namespace Fullpipe
Commit: b0ca746a185a137be3848ebc1dec321243b485ec
https://github.com/scummvm/scummvm/commit/b0ca746a185a137be3848ebc1dec321243b485ec
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-11-21T23:45:32-08:00
Commit Message:
FULLPIPE: More work on scene 4
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/scenes/scene04.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index fd1a011..0ca1dd5 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -118,6 +118,7 @@ namespace Fullpipe {
#define MV_MAN_TOLADDER 448
#define MV_MAN_TOLADDER2 2841
#define MV_MAN_TURN_LU 486
+#define MV_PNK_WEIGHTRIGHT 502
#define MV_SPK4_PLAY 3276
#define PIC_CMN_EVAL 3468
#define PIC_CSR_DEFAULT 4891
@@ -180,6 +181,7 @@ namespace Fullpipe {
#define QU_INTR_FINISH 5138
#define QU_INTR_GETUPMAN 5136
#define QU_INTR_STARTINTRO 5133
+#define QU_PNK_CLICK 550
#define QU_SC3_ENTERLIFT 2779
#define QU_SC3_EXITLIFT 2808
#define SC_1 301
@@ -236,6 +238,7 @@ namespace Fullpipe {
#define SC_TITLES 5166
#define SND_4_010 3125
#define SND_4_012 3127
+#define SND_4_033 4990
#define SND_CMN_031 3516
#define SND_CMN_070 5199
#define SND_INTR_019 5220
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 119fed5..6db3359 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -217,7 +217,8 @@ void sceneHandlers_sub01(ExCommand *ex) {
}
void sceneHandler04_clickBottle() {
- warning("sceneHandler04_clickBottle()");
+ if (!g_vars->scene04_var02)
+ g_vars->scene04_var20 += 5;
}
void sceneHandler04_clickButton() {
@@ -228,8 +229,17 @@ void sceneHandler04_clickLadder() {
warning("sceneHandler04_clickLadder()");
}
+void sceneHandler04_sub13() {
+ warning("sceneHandler04_sub13()");
+}
+
void sceneHandler04_clickPlank() {
- warning("sceneHandler04_clickPlank()");
+ if (sceneHandler04_friesAreWalking())
+ sceneHandler04_sub13();
+ else if (g_vars->scene04_var01)
+ g_fullpipe->playSound(SND_4_033, 0);
+ else if (!g_vars->scene04_soundPlaying)
+ chainQueue(QU_PNK_CLICK, 0);
}
void sceneHandler04_dropBottle() {
Commit: 70e471acd7edb03c32a9c33038558887d7e1e99d
https://github.com/scummvm/scummvm/commit/70e471acd7edb03c32a9c33038558887d7e1e99d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-11-21T23:45:32-08:00
Commit Message:
FULLPIPE: Continued work on scene 4
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/scenes.h
engines/fullpipe/scenes/scene04.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 0ca1dd5..087a768 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -46,6 +46,7 @@ namespace Fullpipe {
#define ANI_PLANK 501
#define ANI_SC2_BOX 1020
#define ANI_SC4_BOOT 1035
+#define ANI_SC4_COIN 690
#define ANI_SPEAKER_4 3275
#define ANI_SPRING 542
#define MSG_CLICKBOTTLE 569
@@ -107,9 +108,11 @@ namespace Fullpipe {
#define MV_IN1MAN_SLEEP 5111
#define MV_KZW_JUMP 558
#define MV_KZW_JUMPROTATE 561
+#define MV_BDG_OPEN 1379
#define MV_MAN_GOD 481
#define MV_MAN_GOLADDER 451
#define MV_MAN_GOLADDER2 2844
+#define MV_MAN_GOU 460
#define MV_MAN_LOOKUP 4773
#define MV_MAN_STARTLADDER 452
#define MV_MAN_STARTLADDER2 2842
@@ -118,7 +121,9 @@ namespace Fullpipe {
#define MV_MAN_TOLADDER 448
#define MV_MAN_TOLADDER2 2841
#define MV_MAN_TURN_LU 486
+#define MV_PNK_WEIGHTLEFT 541
#define MV_PNK_WEIGHTRIGHT 502
+#define MV_SC4_COIN_default 1029
#define MV_SPK4_PLAY 3276
#define PIC_CMN_EVAL 3468
#define PIC_CSR_DEFAULT 4891
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 4131fbb..277beb0 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -90,7 +90,7 @@ public:
Common::Point scene04_jumpRotateKozyawki[20];
Common::Array<StaticANIObject *> scene04_kozyawkiObjList;
- Common::Array<PictureObject *> scene04_bottleObjList;
+ Common::Array<GameObject *> scene04_bottleObjList;
Common::Array<StaticANIObject *> scene04_kozyawkiAni;
int scene04_ladder;
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 6db3359..5e14547 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -251,7 +251,7 @@ void sceneHandler04_gotoLadder(int par) {
}
void sceneHandler04_lowerPlank() {
- warning("sceneHandler04_lowerPlank()");
+ g_vars->scene04_plank->startAnim(MV_PNK_WEIGHTRIGHT, 0, -1);
}
void sceneHandler04_manFromBottle() {
@@ -259,11 +259,15 @@ void sceneHandler04_manFromBottle() {
}
void sceneHandler04_manToBottle() {
- warning("sceneHandler04_manToBottle()");
+ g_vars->scene04_bottleObjList.push_back(g_fullpipe->_aniMan);
+ g_vars->scene04_var20 = 5;
+ g_vars->scene04_var06 += 9;
+ g_fullpipe->_aniMan2 = g_fullpipe->_aniMan;
+ g_vars->scene04_var10 = 1;
}
void sceneHandler04_raisePlank() {
- warning("sceneHandler04_raisePlank()");
+ g_vars->scene04_plank->startAnim(MV_PNK_WEIGHTLEFT, 0, -1);
}
void sceneHandler04_shootKozyawka() {
@@ -271,7 +275,13 @@ void sceneHandler04_shootKozyawka() {
}
void sceneHandler04_showCoin() {
- warning("sceneHandler04_showCoin()");
+ StaticANIObject *ani = g_fullpipe->_currentScene->getStaticANIObject1ById(ANI_SC4_COIN, -1);
+
+ if (ani) {
+ ani->show1(MV_BDG_OPEN, MV_MAN_GOU, MV_SC4_COIN_default, 0);
+
+ ani->_priority = 40;
+ }
}
void sceneHandler04_stopSound() {
More information about the Scummvm-git-logs
mailing list