diff options
author | Eugene Sandulenko | 2014-01-02 22:43:51 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-01-02 22:43:51 +0200 |
commit | 9ee4cf899b26e3bc757bf77c4cda3dd3c67f0fd0 (patch) | |
tree | c9b803c0342760d72da8de2a8756e5f05566e295 /engines/fullpipe | |
parent | 82367c9b4083b52288caece983413c373c84d9ed (diff) | |
download | scummvm-rg350-9ee4cf899b26e3bc757bf77c4cda3dd3c67f0fd0.tar.gz scummvm-rg350-9ee4cf899b26e3bc757bf77c4cda3dd3c67f0fd0.tar.bz2 scummvm-rg350-9ee4cf899b26e3bc757bf77c4cda3dd3c67f0fd0.zip |
FULLPIPE: Implement sceneHandler22_handleDown() and smaller ones
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/constants.h | 5 | ||||
-rw-r--r-- | engines/fullpipe/objectnames.h | 2 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene22.cpp | 42 |
3 files changed, 45 insertions, 4 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 6b82165f33..dc586823e0 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -742,6 +742,7 @@ namespace Fullpipe { // Scene 22 #define ANI_GIRAFFE_MIDDLE 1981 #define ANI_MESHOK 1754 +#define ANI_TABURETTE 1745 #define MSG_SC22_CHECKGMABOOT 4782 #define MSG_SC22_CRANEOUT_GMA 5218 #define MSG_SC22_FROMSTOOL 1799 @@ -751,6 +752,10 @@ namespace Fullpipe { #define MSG_SC22_SHOWSTOOL 2495 #define QU_MSH_CRANEOUT 1811 #define QU_MSH_CRANEOUT_GMA 5219 +#define QU_SC22_FALLBROOM 1786 +#define QU_SC22_FALLSACK 1791 +#define QU_SC22_FALLSACK_GMA 2613 +#define QU_SC22_SHOWSTOOL 1793 #define QU_MSH_MOVE 1812 #define ST_GRFM_AFTER 3472 #define ST_GRFM_NORM 1983 diff --git a/engines/fullpipe/objectnames.h b/engines/fullpipe/objectnames.h index 594f0a6a3f..884271b350 100644 --- a/engines/fullpipe/objectnames.h +++ b/engines/fullpipe/objectnames.h @@ -230,7 +230,7 @@ namespace Fullpipe { #define sO_IsGone "\xd3\xe5\xf5\xe0\xeb\xe0" // "Уехала" #define sO_FallenTwice "\xd3\xef\xe0\xeb \xe4\xe2\xe0" // "Упал два" #define sO_FallenOnce "\xd3\xef\xe0\xeb \xf0\xe0\xe7" // "Упал раз" -#define sO_FallenBrush "\xd3\xef\xe0\xeb\xe0 \xf9\xe5\xf2\xea\xe0" // "Упала щетка" +#define sO_BrushHasFallen "\xd3\xef\xe0\xeb\xe0 \xf9\xe5\xf2\xea\xe0" // "Упала щетка" #define sO_NotBroken "\xd6\xe5\xeb\xe0" // "Цела" #define sO_IsScratchingBelly "\xd7\xe5\xf8\xe5\xf2 \xef\xf3\xe7\xee" // "Чешет пузо" #define sO_Level0 "\xdd\xf2\xe0\xe6 0" // "Этаж 0" diff --git a/engines/fullpipe/scenes/scene22.cpp b/engines/fullpipe/scenes/scene22.cpp index b57cf9399b..8e1cd9e9df 100644 --- a/engines/fullpipe/scenes/scene22.cpp +++ b/engines/fullpipe/scenes/scene22.cpp @@ -106,15 +106,51 @@ void scene22_setBagState() { } void sceneHandler22_showStool() { - warning("STUB: sceneHandler22_showStool()"); + chainQueue(QU_SC22_SHOWSTOOL, 0); } void sceneHandler22and23_hideStool() { - warning("STUB: sceneHandler22and23_hideStool()"); + g_fp->_currentScene->getStaticANIObject1ById(ANI_TABURETTE, -1)->hide(); } void sceneHandler22_handleDown() { - warning("STUB: sceneHandler22_handleDown()"); + if (g_vars->scene22_bag->_statics->_staticsId == ST_MSH_SIT) { + chainQueue(QU_MSH_CRANEOUT, 1); + g_vars->scene22_var08 = 0; + } else { + ++g_vars->scene22_var11; + + int qid; + + if (g_vars->scene22_var11 == 3) { + chainQueue(QU_SC22_FALLSACK_GMA, 1); + qid = QU_SC22_FALLBROOM; + } else { + qid = QU_SC22_FALLSACK; + } + + chainQueue(qid, 1); + + int state; + + if (g_vars->scene22_var11) { + if (g_vars->scene22_var11 == 1) { + state = g_fp->getObjectEnumState(sO_Bag_22, sO_FallenOnce); + } else if (g_vars->scene22_var11 == 2) { + state = g_fp->getObjectEnumState(sO_Bag_22, sO_FallenTwice); + } else { + state = g_fp->getObjectEnumState(sO_Bag_22, sO_BrushHasFallen); + } + } else { + state = g_fp->getObjectEnumState(sO_Bag_22, sO_NotFallen); + } + + g_fp->setObjectState(sO_Bag_22, state); + } + g_vars->scene22_var10 = 1; + + g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene22_bag, ST_MSH_SIT, QU_MSH_CRANEOUT, 1); + g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene22_bag, ST_MSH_SIT, QU_MSH_MOVE, 0); } void sceneHandler22_sub01(ExCommand *cmd) { |