diff options
-rw-r--r-- | engines/fullpipe/constants.h | 8 | ||||
-rw-r--r-- | engines/fullpipe/fullpipe.h | 1 | ||||
-rw-r--r-- | engines/fullpipe/init.cpp | 2 | ||||
-rw-r--r-- | engines/fullpipe/input.cpp | 5 | ||||
-rw-r--r-- | engines/fullpipe/module.mk | 1 | ||||
-rw-r--r-- | engines/fullpipe/objectnames.h | 4 | ||||
-rw-r--r-- | engines/fullpipe/scenes.cpp | 15 | ||||
-rw-r--r-- | engines/fullpipe/scenes.h | 16 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene02.cpp | 2 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene06.cpp | 88 |
10 files changed, 138 insertions, 4 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index be47e0d264..7abfd8aa0e 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -25,10 +25,12 @@ namespace Fullpipe { +#define ANI_BALLDROP 2685 #define ANI_BIGBALL 4923 #define ANI_BIGLUK 909 #define ANI_BOOT_1 4231 #define ANI_BUTTON 598 +#define ANI_BUTTON_6 2988 #define ANI_CLOCK 588 #define ANI_DOMINO_3 2732 #define ANI_DADAYASHIK 306 @@ -42,11 +44,14 @@ namespace Fullpipe { #define ANI_INV_EGGCOIN 1567 #define ANI_INV_EGGDOM 1561 #define ANI_INV_EGGGLS 1573 +#define ANI_INV_HANDLE 893 #define ANI_INV_MAP 5321 #define ANI_KOZAWKA 495 #define ANI_LIFTBUTTON 2751 +#define ANI_MAMASHA 656 #define ANI_MAMASHA_4 660 #define ANI_MAN 322 +#define ANI_NEWBALL 1073 #define ANI_OTMOROZ 419 #define ANI_PLANK 501 #define ANI_SC2_BOX 1020 @@ -242,6 +247,8 @@ namespace Fullpipe { #define QU_SC4_MANTOBOTTLE 2850 #define QU_SC5_MANBUMP 1167 #define QU_SC5_MANFLY 1168 +#define QU_SC6_ENTERLIFT 1054 +#define QU_SC6_EXITLIFT 1055 #define SC_1 301 #define SC_10 653 #define SC_11 654 @@ -347,6 +354,7 @@ namespace Fullpipe { #define ST_MAN_SIT 1164 #define ST_MAN_STANDLADDER 453 #define ST_MAN_UP 449 +#define ST_NBL_NORM 1076 #define ST_OTM_BOX_LEFT 429 #define ST_OTM_GLS_LEFT 421 #define ST_OTM_VNT_LEFT 434 diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h index 51b935362e..d5001b2449 100644 --- a/engines/fullpipe/fullpipe.h +++ b/engines/fullpipe/fullpipe.h @@ -246,6 +246,7 @@ public: void initArcadeKeys(const char *varname); void processArcade(ExCommand *ex); void winArcade(); + void setArcadeOverlay(int picId); void getAllInventory(); diff --git a/engines/fullpipe/init.cpp b/engines/fullpipe/init.cpp index eb109e11ec..0b74648140 100644 --- a/engines/fullpipe/init.cpp +++ b/engines/fullpipe/init.cpp @@ -52,7 +52,7 @@ void FullpipeEngine::initObjectStates() { setObjectState(sO_Fly_12, 0); setObjectState(sO_ClockAxis, getObjectEnumState(sO_ClockAxis, sO_NotAvailable)); setObjectState(sO_ClockHandle, getObjectEnumState(sO_ClockHandle, sO_In_7)); - setObjectState(sO_BigMumsy, getObjectEnumState(sO_BigMumsy, sO_Sleeping)); + setObjectState(sO_BigMumsy, getObjectEnumState(sO_BigMumsy, sO_IsSleeping)); setObjectState(sO_CoinSlot_1, getObjectEnumState(sO_CoinSlot_1, sO_Empty)); setObjectState(sO_FriesPit, getObjectEnumState(sO_FriesPit, sO_WithApple)); setObjectState(sO_Jug, getObjectEnumState(sO_Jug, sO_Blocked)); diff --git a/engines/fullpipe/input.cpp b/engines/fullpipe/input.cpp index e98920c78a..beff95c2e2 100644 --- a/engines/fullpipe/input.cpp +++ b/engines/fullpipe/input.cpp @@ -274,4 +274,9 @@ void FullpipeEngine::updateCursorCommon() { _cursorId = PIC_CSR_DEFAULT; } +void FullpipeEngine::setArcadeOverlay(int picId) { + warning("STUB: setArcadeOverlay()"); +} + + } // End of namespace Fullpipe diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk index 1da0c33b86..efb3d65786 100644 --- a/engines/fullpipe/module.mk +++ b/engines/fullpipe/module.mk @@ -29,6 +29,7 @@ MODULE_OBJS = \ scenes/scene03.o \ scenes/scene04.o \ scenes/scene05.o \ + scenes/scene06.o \ scenes/sceneDbg.o \ scenes/sceneIntro.o diff --git a/engines/fullpipe/objectnames.h b/engines/fullpipe/objectnames.h index b8696ec672..5e67f09688 100644 --- a/engines/fullpipe/objectnames.h +++ b/engines/fullpipe/objectnames.h @@ -94,7 +94,7 @@ namespace Fullpipe { #define sO_HalfFull "\xc7\xe0\xef\xee\xeb\xed\xe5\xed \xed\xe0\xef\xee\xeb\xee\xe2\xe8\xed\xf3" // "Заполнен наполовину" #define sO_Full "\xc7\xe0\xef\xee\xeb\xed\xe5\xed \xf6\xe5\xeb\xe8\xea\xee\xec" // "Заполнен целиком" #define sO_MirroredTo "\xc7\xe5\xf0\xea\xe0\xeb\xfc\xed\xe0\xff \xea" // "Зеркальная к" -#define sO_Playing "\xc8\xe3\xf0\xe0\xe5\xf2" // "Играет" +#define sO_IsPlaying "\xc8\xe3\xf0\xe0\xe5\xf2" // "Играет" #define sO_Tub "\xca\xe0\xe4\xea\xe0" // "Кадка" #define sO_Cactus "\xca\xe0\xea\xf2\xf3\xf1" // "Кактус" #define sO_SwingingWithBoot "\xca\xe0\xf2\xe0\xe5\xf2\xf1\xff \xf1 \xe1\xee\xf2\xe8\xed\xea\xee\xec" // "Катается с ботинком" @@ -203,7 +203,7 @@ namespace Fullpipe { #define sO_WithMop "\xd1\xee \xf8\xe2\xe0\xe1\xf0\xee\xe9" // "Со шваброй" #define sO_WithHose "\xd1\xee \xf8\xeb\xe0\xed\xe3\xee\xec" // "Со шлангом" #define sO_WithBrush "\xd1\xee \xf9\xe5\xf2\xea\xee\xe9" // "Со щеткой" -#define sO_Sleeping "\xd1\xef\xe8\xf2" // "Спит" +#define sO_IsSleeping "\xd1\xef\xe8\xf2" // "Спит" #define sO_OnRight "\xd1\xef\xf0\xe0\xe2\xe0" // "Справа" #define sO_StandsInBoots "\xd1\xf2\xee\xe8\xf2 \xe2 \xe1\xee\xf2\xe8\xed\xea\xe0\xf5" // "Стоит в ботинках" #define sO_StandsInCorner "\xd1\xf2\xee\xe8\xf2 \xe2 \xf3\xe3\xeb\xf3" // "Стоит в углу" diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index 41bec4df93..a4b1a0782e 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -110,6 +110,21 @@ Vars::Vars() { scene05_handleFlipper = 0; scene05_floatersTicker = 0; + scene06_mumsy = 0; + scene06_var06 = 0; + scene06_invHandle = 0; + scene06_liftButton = 0; + scene06_ballDrop = 0; + scene06_var07 = 0; + scene06_var08 = 0; + scene06_var09 = 0; + scene06_var10 = 0; + scene06_var11 = 0; + scene06_var12 = 0; + scene06_var13 = 0; + scene06_var14 = 0; + scene06_var15 = 1; + selector = 0; } diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h index 4c7302d9b7..7c1e338444 100644 --- a/engines/fullpipe/scenes.h +++ b/engines/fullpipe/scenes.h @@ -141,6 +141,22 @@ public: int scene05_handleFlipper; int scene05_floatersTicker; + StaticANIObject *scene06_mumsy; + int scene06_var06; + StaticANIObject *scene06_invHandle; + StaticANIObject *scene06_liftButton; + StaticANIObject *scene06_ballDrop; + int scene06_var07; + int scene06_var08; + int scene06_var09; + int scene06_var10; + int scene06_var11; + Common::Array<StaticANIObject *> scene06_balls; + int scene06_var12; + int scene06_var13; + int scene06_var14; + int scene06_var15; + PictureObject *selector; }; diff --git a/engines/fullpipe/scenes/scene02.cpp b/engines/fullpipe/scenes/scene02.cpp index dd01af4c4b..3ca28cb0d1 100644 --- a/engines/fullpipe/scenes/scene02.cpp +++ b/engines/fullpipe/scenes/scene02.cpp @@ -39,7 +39,7 @@ namespace Fullpipe { void scene02_initScene(Scene *sc) { g_vars->scene02_guvTheDrawer = sc->getStaticANIObject1ById(ANI_DADAYASHIK, -1); - if (g_fullpipe->getObjectState(sO_GuvTheDrawer) == g_fullpipe->getObjectEnumState(sO_GuvTheDrawer, sO_Sleeping)) { + if (g_fullpipe->getObjectState(sO_GuvTheDrawer) == g_fullpipe->getObjectEnumState(sO_GuvTheDrawer, sO_IsSleeping)) { Scene *s = g_fullpipe->_currentScene; g_fullpipe->_currentScene = sc; diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp new file mode 100644 index 0000000000..f341216906 --- /dev/null +++ b/engines/fullpipe/scenes/scene06.cpp @@ -0,0 +1,88 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "fullpipe/fullpipe.h" + +#include "fullpipe/objects.h" +#include "fullpipe/objectnames.h" +#include "fullpipe/constants.h" +#include "fullpipe/gfx.h" +#include "fullpipe/scenes.h" +#include "fullpipe/statics.h" +#include "fullpipe/scene.h" + +namespace Fullpipe { + +void sceneHandler06_setExits(Scene *sc) { + warning("STUB: sceneHandler06_setExits()"); +} + +void scene06_initScene(Scene *sc) { + g_vars->scene06_mumsy = sc->getStaticANIObject1ById(ANI_MAMASHA, -1); + g_vars->scene06_var06 = 0; + g_vars->scene06_invHandle = sc->getStaticANIObject1ById(ANI_INV_HANDLE, -1); + g_vars->scene06_liftButton = sc->getStaticANIObject1ById(ANI_BUTTON_6, -1); + g_vars->scene06_ballDrop = sc->getStaticANIObject1ById(ANI_BALLDROP, -1); + g_vars->scene06_var07 = 0; + g_vars->scene06_var08 = 0; + g_vars->scene06_var09 = 0; + g_vars->scene06_var10 = 0; + g_vars->scene06_var11 = 0; + g_vars->scene06_balls.clear(); + g_vars->scene06_var12 = 0; + g_vars->scene06_var13 = 0; + g_vars->scene06_var14 = 0; + g_vars->scene06_var15 = 1; + + StaticANIObject *ball = sc->getStaticANIObject1ById(ANI_NEWBALL, -1); + + ball->hide(); + ball->_statics = ball->getStaticsById(ST_NBL_NORM); + g_vars->scene06_balls.push_back(ball); + + for (int i = 0; i < 3; i++) { + StaticANIObject *ball2 = new StaticANIObject(ball); + + ball2->hide(); + ball2->_statics = ball2->getStaticsById(ST_NBL_NORM); + + sc->addStaticANIObject(ball2, 1); + + g_vars->scene06_balls.push_back(ball2); + } + + if (g_fullpipe->getObjectState(sO_BigMumsy) == g_fullpipe->getObjectEnumState(sO_BigMumsy, sO_IsPlaying)) + g_fullpipe->setObjectState(sO_BigMumsy, g_fullpipe->getObjectEnumState(sO_BigMumsy, sO_IsSleeping)); + + if (g_fullpipe->getObjectState(sO_BigMumsy) != g_fullpipe->getObjectEnumState(sO_BigMumsy, sO_IsSleeping)) + g_vars->scene06_mumsy->hide(); + + g_fullpipe->lift_setButton(sO_Level3, ST_LBN_3N); + g_fullpipe->lift_sub5(sc, QU_SC6_ENTERLIFT, QU_SC6_EXITLIFT); + g_fullpipe->initArcadeKeys("SC_6"); + + sceneHandler06_setExits(sc); + + g_fullpipe->setArcadeOverlay(PIC_CSR_ARCADE2); +} + +} // End of namespace Fullpipe |