[Scummvm-cvs-logs] scummvm master -> 662bbfaffe026fbb1f73d7f5b0c23bcd54aecd59
sev-
sev at scummvm.org
Sun Jan 5 01:34:50 CET 2014
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
65ebf472d7 FULLPIPE: Implement sceneHandler23_fromStool() and fromCalendar()
9f7bf5df3d FULLPIPE: Implement sceneHandler23_pushButton()
166b6edc2a FULLPIPE: Rename vars in scene23. This completes the scene
662bbfaffe FULLPIPE: Fix wrong indexes in Floaters.
Commit: 65ebf472d74c347135761f598d0c4b96bbcc2fa0
https://github.com/scummvm/scummvm/commit/65ebf472d74c347135761f598d0c4b96bbcc2fa0
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-04T16:01:36-08:00
Commit Message:
FULLPIPE: Implement sceneHandler23_fromStool() and fromCalendar()
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/scenes/scene23.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index a8d3de9..0d40f29 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -815,7 +815,9 @@ namespace Fullpipe {
#define PIC_SC23_LADDERU 3411
#define QU_GRFU_TURN_UD 1664
#define QU_GRFU_TURN_UL 1662
+#define QU_SC23_FROMCALENDAR 1734
#define QU_SC23_FROMCALENDAREXIT 1735
+#define QU_SC23_FROMSTOOL 3338
#define QU_SC23_SHOWSTOOL 3335
#define QU_SC23_STARTKISS 1822
#define ST_CND_0 1704
diff --git a/engines/fullpipe/scenes/scene23.cpp b/engines/fullpipe/scenes/scene23.cpp
index ed51e26..e703588 100644
--- a/engines/fullpipe/scenes/scene23.cpp
+++ b/engines/fullpipe/scenes/scene23.cpp
@@ -330,18 +330,36 @@ void sceneHandler23_checkReachingTop() {
void sceneHandler23_exitCalendar() {
if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER
- && !g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100) ) {
+ && !g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100)) {
chainQueue(QU_SC23_FROMCALENDAREXIT, 1);
g_vars->scene23_var07 = 2;
}
}
-void sceneHandler23_lowerFromCalendar(ExCommand *cmd) {
- warning("STUB: sceneHandler23_lowerFromCalendar(cmd)");
+void sceneHandler23_fromCalendar(ExCommand *cmd) {
+ if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER
+ && !g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100)) {
+ MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC23_FROMCALENDAR), 0, 0);
+
+ mq->addExCommandToEnd(cmd->createClone());
+ mq->setFlags(mq->getFlags() | 1);
+ mq->chain(0);
+
+ g_vars->scene23_var05 = 0;
+ g_vars->scene23_var07 = 0;
+ }
}
void sceneHandler23_fromStool(ExCommand *cmd) {
- warning("STUB: sceneHandler23_fromStool(cmd)");
+ if (!g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100)) {
+ MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC23_FROMSTOOL), 0, 0);
+
+ mq->addExCommandToEnd(cmd->createClone());
+ mq->setFlags(mq->getFlags() | 1);
+ mq->chain(0);
+
+ cmd->_messageKind = 0;
+ }
}
int sceneHandler23(ExCommand *cmd) {
@@ -444,7 +462,7 @@ int sceneHandler23(ExCommand *cmd) {
}
if (cmd->_sceneClickY > 450) {
- sceneHandler23_lowerFromCalendar(cmd);
+ sceneHandler23_fromCalendar(cmd);
cmd->_messageKind = 0;
break;
Commit: 9f7bf5df3dd64d44adf2d913275e5106c70fb75e
https://github.com/scummvm/scummvm/commit/9f7bf5df3dd64d44adf2d913275e5106c70fb75e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-04T16:17:40-08:00
Commit Message:
FULLPIPE: Implement sceneHandler23_pushButton()
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/scenes/scene23.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 0d40f29..9eb3147 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -805,6 +805,10 @@ namespace Fullpipe {
#define MV_CND_7_8 1718
#define MV_CND_8_9 1720
#define MV_CND_9_0 1722
+#define MV_MAN23_PUSH1 1724
+#define MV_MAN23_PUSH2 1725
+#define MV_MAN23_PUSH3 1726
+#define MV_MAN23_PUSH4 1727
#define PIC_SC23_BOXCLOSED 1728
#define PIC_SC23_BOXOPEN 1723
#define PIC_SC23_BTN1 1729
@@ -820,6 +824,7 @@ namespace Fullpipe {
#define QU_SC23_FROMSTOOL 3338
#define QU_SC23_SHOWSTOOL 3335
#define QU_SC23_STARTKISS 1822
+#define QU_SC23_TOCALENDAR 1733
#define ST_CND_0 1704
#define ST_CND_1 1705
#define ST_CND_2 1707
diff --git a/engines/fullpipe/scenes/scene23.cpp b/engines/fullpipe/scenes/scene23.cpp
index e703588..d4cbb5e 100644
--- a/engines/fullpipe/scenes/scene23.cpp
+++ b/engines/fullpipe/scenes/scene23.cpp
@@ -292,7 +292,65 @@ void sceneHandler23_spinWheel3() {
}
void sceneHandler23_pushButton(ExCommand *cmd) {
- warning("STUB: sceneHandler23_pushButton(cmd)");
+ if (g_fp->_aniMan->isIdle() || !(g_fp->_aniMan->_flags & 0x100)) {
+ if (!g_vars->scene23_var05) {
+ if (g_fp->_aniMan->_ox != 405 || g_fp->_aniMan->_oy != 220) {
+ if (g_fp->_aniMan->_ox != 276 || g_fp->_aniMan->_oy != 438
+ || g_fp->_aniMan->_movement || g_fp->_aniMan->_statics->_staticsId != ST_MAN_RIGHT) {
+ if (g_fp->_msgX == 276 && g_fp->_msgY == 438 )
+ return;
+
+ MessageQueue *mq = getCurrSceneSc2MotionController()->method34(g_fp->_aniMan, 276, 438, 1, ST_MAN_RIGHT);
+
+ if (mq) {
+ mq->addExCommandToEnd(cmd->createClone());;
+
+ postExCommand(g_fp->_aniMan->_id, 2, 276, 438, 0, -1);
+ }
+ } else {
+ MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC23_TOCALENDAR), 0, 0);
+
+ mq->addExCommandToEnd(cmd->createClone());;
+ mq->setFlags(mq->getFlags() | 1);
+ mq->chain(0);
+ }
+
+ if (!g_vars->scene23_var05)
+ return;
+ } else {
+ g_vars->scene23_var05 = 1;
+ }
+ }
+
+ if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER) {
+ int mv = 0;
+
+ switch (cmd->_messageNum) {
+ case MSG_SC23_CLICKBTN1:
+ mv = MV_MAN23_PUSH1;
+ break;
+
+ case MSG_SC23_CLICKBTN2:
+ mv = MV_MAN23_PUSH2;
+ break;
+
+ case MSG_SC23_CLICKBTN3:
+ mv = MV_MAN23_PUSH3;
+ break;
+
+ case MSG_SC23_CLICKBTN4:
+ mv = MV_MAN23_PUSH4;
+ break;
+
+ default:
+ return;
+ }
+
+ if (mv)
+ g_fp->_aniMan->startAnim(mv, 0, -1);
+
+ }
+ }
}
void sceneHandler23_sendClick(StaticANIObject *ani) {
Commit: 166b6edc2a5030b6e00e6e740071e42438436019
https://github.com/scummvm/scummvm/commit/166b6edc2a5030b6e00e6e740071e42438436019
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-04T16:30:04-08:00
Commit Message:
FULLPIPE: Rename vars in scene23. This completes the scene
Changed paths:
engines/fullpipe/scenes.cpp
engines/fullpipe/scenes.h
engines/fullpipe/scenes/scene23.cpp
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index d11a923..5864238 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -264,17 +264,13 @@ Vars::Vars() {
scene22_craneIsOut = true;
scene22_numBagFalls = 1;
- scene23_var01 = 0;
- scene23_var02 = 0;
- scene23_var03 = 0;
- scene23_var04 = 0;
scene23_calend0 = 0;
scene23_calend1 = 0;
scene23_calend2 = 0;
scene23_calend3 = 0;
- scene23_var05 = 0;
- scene23_var06 = 0;
- scene23_var07 = 0;
+ scene23_topReached = false;
+ scene23_isOnStool = false;
+ scene23_someVar = 0;
scene23_giraffeTop = 0;
scene23_giraffee = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index b272608..4e341d3 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -378,17 +378,13 @@ public:
bool scene22_craneIsOut;
int scene22_numBagFalls;
- int scene23_var01;
- int scene23_var02;
- int scene23_var03;
- int scene23_var04;
StaticANIObject *scene23_calend0;
StaticANIObject *scene23_calend1;
StaticANIObject *scene23_calend2;
StaticANIObject *scene23_calend3;
- int scene23_var05;
- int scene23_var06;
- int scene23_var07;
+ bool scene23_topReached;
+ bool scene23_isOnStool;
+ int scene23_someVar;
StaticANIObject *scene23_giraffeTop;
StaticANIObject *scene23_giraffee;
diff --git a/engines/fullpipe/scenes/scene23.cpp b/engines/fullpipe/scenes/scene23.cpp
index d4cbb5e..1f2587e 100644
--- a/engines/fullpipe/scenes/scene23.cpp
+++ b/engines/fullpipe/scenes/scene23.cpp
@@ -63,17 +63,13 @@ bool sceneHandler23_testCalendar() {
}
void scene23_initScene(Scene *sc) {
- g_vars->scene23_var01 = 200;
- g_vars->scene23_var02 = 200;
- g_vars->scene23_var03 = 300;
- g_vars->scene23_var04 = 300;
g_vars->scene23_calend0 = sc->getStaticANIObject1ById(ANI_CALENDWHEEL, 0);
g_vars->scene23_calend1 = sc->getStaticANIObject1ById(ANI_CALENDWHEEL, 1);
g_vars->scene23_calend2 = sc->getStaticANIObject1ById(ANI_CALENDWHEEL, 2);
g_vars->scene23_calend3 = sc->getStaticANIObject1ById(ANI_CALENDWHEEL, 3);
- g_vars->scene23_var05 = 0;
- g_vars->scene23_var06 = 0;
- g_vars->scene23_var07 = 0;
+ g_vars->scene23_topReached = false;
+ g_vars->scene23_isOnStool = false;
+ g_vars->scene23_someVar = 0;
g_vars->scene23_giraffeTop = sc->getStaticANIObject1ById(ANI_GIRAFFE_TOP, -1);
g_vars->scene23_giraffee = sc->getStaticANIObject1ById(ANI_GIRAFFEE, -1);
@@ -165,7 +161,7 @@ int scene23_updateCursor() {
g_fp->updateCursorCommon();
if (g_fp->_objectIdAtCursor == PIC_SC23_LADDERU) {
- if (g_vars->scene23_var05)
+ if (g_vars->scene23_topReached)
return g_fp->_cursorId;
g_fp->_cursorId = getGameLoaderInventory()->getSelectedItemId() ? PIC_CSR_GOU : PIC_CSR_ITN; // FIXME check
@@ -293,7 +289,7 @@ void sceneHandler23_spinWheel3() {
void sceneHandler23_pushButton(ExCommand *cmd) {
if (g_fp->_aniMan->isIdle() || !(g_fp->_aniMan->_flags & 0x100)) {
- if (!g_vars->scene23_var05) {
+ if (!g_vars->scene23_topReached) {
if (g_fp->_aniMan->_ox != 405 || g_fp->_aniMan->_oy != 220) {
if (g_fp->_aniMan->_ox != 276 || g_fp->_aniMan->_oy != 438
|| g_fp->_aniMan->_movement || g_fp->_aniMan->_statics->_staticsId != ST_MAN_RIGHT) {
@@ -315,10 +311,10 @@ void sceneHandler23_pushButton(ExCommand *cmd) {
mq->chain(0);
}
- if (!g_vars->scene23_var05)
+ if (!g_vars->scene23_topReached)
return;
} else {
- g_vars->scene23_var05 = 1;
+ g_vars->scene23_topReached = true;
}
}
@@ -381,16 +377,16 @@ void sceneHandler23_sendClick(StaticANIObject *ani) {
void sceneHandler23_checkReachingTop() {
if (g_fp->_aniMan->_movement || g_fp->_aniMan->_statics->_staticsId != ST_MAN_STANDLADDER
|| g_fp->_aniMan->_ox != 405 || g_fp->_aniMan->_oy != 220)
- g_vars->scene23_var05 = 0;
+ g_vars->scene23_topReached = false;
else
- g_vars->scene23_var05 = 1;
+ g_vars->scene23_topReached = true;
}
void sceneHandler23_exitCalendar() {
if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_STANDLADDER
&& !g_fp->_aniMan->getMessageQueue() && !(g_fp->_aniMan->_flags & 0x100)) {
chainQueue(QU_SC23_FROMCALENDAREXIT, 1);
- g_vars->scene23_var07 = 2;
+ g_vars->scene23_someVar = 2;
}
}
@@ -403,8 +399,8 @@ void sceneHandler23_fromCalendar(ExCommand *cmd) {
mq->setFlags(mq->getFlags() | 1);
mq->chain(0);
- g_vars->scene23_var05 = 0;
- g_vars->scene23_var07 = 0;
+ g_vars->scene23_topReached = false;
+ g_vars->scene23_someVar = 0;
}
}
@@ -426,7 +422,7 @@ int sceneHandler23(ExCommand *cmd) {
switch (cmd->_messageNum) {
case MSG_SC23_FROMSTOOL:
- g_vars->scene23_var06 = 0;
+ g_vars->scene23_isOnStool = false;
getCurrSceneSc2MotionController()->setEnabled();
getGameLoaderInteractionController()->enableFlag24();
@@ -440,7 +436,7 @@ int sceneHandler23(ExCommand *cmd) {
break;
case MSG_SC23_ONSTOOL:
- g_vars->scene23_var06 = 1;
+ g_vars->scene23_isOnStool = true;
getCurrSceneSc2MotionController()->clearEnabled();
getGameLoaderInteractionController()->disableFlag24();
@@ -483,11 +479,11 @@ int sceneHandler23(ExCommand *cmd) {
if (g_fp->_aniMan2) {
int x = g_fp->_aniMan2->_ox;
- if (x < g_fp->_sceneRect.left + g_vars->scene23_var01)
- g_fp->_currentScene->_x = x - g_vars->scene23_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->scene23_var01)
- g_fp->_currentScene->_x = x + g_vars->scene23_var03 - g_fp->_sceneRect.right;
+ if (x > g_fp->_sceneRect.right - 200)
+ g_fp->_currentScene->_x = x + 300 - g_fp->_sceneRect.right;
}
g_fp->_floaters->update();
@@ -509,7 +505,7 @@ int sceneHandler23(ExCommand *cmd) {
sceneHandler23_checkReachingTop();
- if (g_vars->scene23_var05) {
+ if (g_vars->scene23_topReached) {
picId = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
if (picId == PIC_SC23_LADDER) {
@@ -528,10 +524,10 @@ int sceneHandler23(ExCommand *cmd) {
break;
}
- if (!g_vars->scene23_var06) {
+ if (!g_vars->scene23_isOnStool) {
picId = g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY);
- if (picId == PIC_SC23_LADDERU && !g_vars->scene23_var05) {
+ if (picId == PIC_SC23_LADDERU && !g_vars->scene23_topReached) {
sceneHandler23_pushButton(cmd);
cmd->_messageKind = 0;
Commit: 662bbfaffe026fbb1f73d7f5b0c23bcd54aecd59
https://github.com/scummvm/scummvm/commit/662bbfaffe026fbb1f73d7f5b0c23bcd54aecd59
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-04T16:32:30-08:00
Commit Message:
FULLPIPE: Fix wrong indexes in Floaters.
Thanks to eriktorbjorn.
Changed paths:
engines/fullpipe/floaters.cpp
diff --git a/engines/fullpipe/floaters.cpp b/engines/fullpipe/floaters.cpp
index 7ad634f..9e5ca7b 100644
--- a/engines/fullpipe/floaters.cpp
+++ b/engines/fullpipe/floaters.cpp
@@ -111,7 +111,7 @@ void Floaters::genFlies(Scene *sc, int x, int y, int priority, int flags) {
else
nummoves = ani->_movement->_dynamicPhases.size();
- ani->_movement->setDynamicPhaseIndex(g_fp->_rnd->getRandomNumber(nummoves));
+ ani->_movement->setDynamicPhaseIndex(g_fp->_rnd->getRandomNumber(nummoves - 1));
FloaterArray2 *arr2 = new FloaterArray2;
@@ -190,7 +190,7 @@ void Floaters::update() {
_array2[i]->val3 = _array2[i]->val7;
} else {
if (_array2[i]->fflags & 2) {
- int idx1 = g_fp->_rnd->getRandomNumber(_array1.size());
+ int idx1 = g_fp->_rnd->getRandomNumber(_array1.size() - 1);
_array2[i]->val2 = _array1[idx1]->val1;
_array2[i]->val3 = _array1[idx1]->val2;
More information about the Scummvm-git-logs
mailing list