diff options
author | Eugene Sandulenko | 2013-12-24 00:08:18 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2013-12-24 00:14:37 +0200 |
commit | 51a83e8be1f9ca9ea755cfe8b253b0aa0b9d5769 (patch) | |
tree | 37684b57c63f06555ef900f26aab6624ff3a351d /engines/fullpipe/scenes | |
parent | 8d7b10f7c3463390a928b7aca889a4bfae5dc8ad (diff) | |
download | scummvm-rg350-51a83e8be1f9ca9ea755cfe8b253b0aa0b9d5769.tar.gz scummvm-rg350-51a83e8be1f9ca9ea755cfe8b253b0aa0b9d5769.tar.bz2 scummvm-rg350-51a83e8be1f9ca9ea755cfe8b253b0aa0b9d5769.zip |
FULLPIPE: Implement scene11_initScene()
Diffstat (limited to 'engines/fullpipe/scenes')
-rw-r--r-- | engines/fullpipe/scenes/scene01.cpp | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene02.cpp | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene03.cpp | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene04.cpp | 4 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene05.cpp | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene06.cpp | 2 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene07.cpp | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene08.cpp | 2 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene10.cpp | 2 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene11.cpp | 139 | ||||
-rw-r--r-- | engines/fullpipe/scenes/sceneDbg.cpp | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/sceneIntro.cpp | 1 |
12 files changed, 151 insertions, 5 deletions
diff --git a/engines/fullpipe/scenes/scene01.cpp b/engines/fullpipe/scenes/scene01.cpp index c6f7ba303c..6c8f26d209 100644 --- a/engines/fullpipe/scenes/scene01.cpp +++ b/engines/fullpipe/scenes/scene01.cpp @@ -26,6 +26,7 @@ #include "fullpipe/constants.h" #include "fullpipe/gameloader.h" +#include "fullpipe/motion.h" #include "fullpipe/scenes.h" #include "fullpipe/statics.h" diff --git a/engines/fullpipe/scenes/scene02.cpp b/engines/fullpipe/scenes/scene02.cpp index 845a53e1d1..95cf1df7dd 100644 --- a/engines/fullpipe/scenes/scene02.cpp +++ b/engines/fullpipe/scenes/scene02.cpp @@ -26,6 +26,7 @@ #include "fullpipe/constants.h" #include "fullpipe/gameloader.h" +#include "fullpipe/motion.h" #include "fullpipe/scenes.h" #include "fullpipe/statics.h" diff --git a/engines/fullpipe/scenes/scene03.cpp b/engines/fullpipe/scenes/scene03.cpp index 4d4f05764d..40e70e2ea5 100644 --- a/engines/fullpipe/scenes/scene03.cpp +++ b/engines/fullpipe/scenes/scene03.cpp @@ -26,6 +26,7 @@ #include "fullpipe/constants.h" #include "fullpipe/gameloader.h" +#include "fullpipe/motion.h" #include "fullpipe/scenes.h" #include "fullpipe/statics.h" diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp index 3218324a75..fa9f4ceef0 100644 --- a/engines/fullpipe/scenes/scene04.cpp +++ b/engines/fullpipe/scenes/scene04.cpp @@ -26,14 +26,14 @@ #include "fullpipe/constants.h" #include "fullpipe/utils.h" #include "fullpipe/gfx.h" -#include "fullpipe/scenes.h" #include "fullpipe/messages.h" +#include "fullpipe/motion.h" +#include "fullpipe/scenes.h" #include "fullpipe/statics.h" #include "fullpipe/scene.h" #include "fullpipe/interaction.h" #include "fullpipe/gameloader.h" #include "fullpipe/behavior.h" -#include "fullpipe/motion.h" namespace Fullpipe { diff --git a/engines/fullpipe/scenes/scene05.cpp b/engines/fullpipe/scenes/scene05.cpp index 20443edb5f..c6e21daf1e 100644 --- a/engines/fullpipe/scenes/scene05.cpp +++ b/engines/fullpipe/scenes/scene05.cpp @@ -27,6 +27,7 @@ #include "fullpipe/constants.h" #include "fullpipe/statics.h" #include "fullpipe/scene.h" +#include "fullpipe/motion.h" #include "fullpipe/scenes.h" #include "fullpipe/messages.h" #include "fullpipe/floaters.h" diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp index 2b7678b10a..c352d27dd6 100644 --- a/engines/fullpipe/scenes/scene06.cpp +++ b/engines/fullpipe/scenes/scene06.cpp @@ -26,13 +26,13 @@ #include "fullpipe/objectnames.h" #include "fullpipe/constants.h" #include "fullpipe/gfx.h" +#include "fullpipe/motion.h" #include "fullpipe/scenes.h" #include "fullpipe/statics.h" #include "fullpipe/scene.h" #include "fullpipe/messages.h" #include "fullpipe/gameloader.h" #include "fullpipe/behavior.h" -#include "fullpipe/motion.h" #include "fullpipe/interaction.h" namespace Fullpipe { diff --git a/engines/fullpipe/scenes/scene07.cpp b/engines/fullpipe/scenes/scene07.cpp index ba4121944e..207189d151 100644 --- a/engines/fullpipe/scenes/scene07.cpp +++ b/engines/fullpipe/scenes/scene07.cpp @@ -25,6 +25,7 @@ #include "fullpipe/objects.h" #include "fullpipe/objectnames.h" #include "fullpipe/constants.h" +#include "fullpipe/motion.h" #include "fullpipe/scenes.h" #include "fullpipe/scene.h" #include "fullpipe/statics.h" diff --git a/engines/fullpipe/scenes/scene08.cpp b/engines/fullpipe/scenes/scene08.cpp index 2764861841..ada63ef22d 100644 --- a/engines/fullpipe/scenes/scene08.cpp +++ b/engines/fullpipe/scenes/scene08.cpp @@ -25,11 +25,11 @@ #include "fullpipe/objects.h" #include "fullpipe/objectnames.h" #include "fullpipe/constants.h" +#include "fullpipe/motion.h" #include "fullpipe/scenes.h" #include "fullpipe/scene.h" #include "fullpipe/statics.h" #include "fullpipe/floaters.h" -#include "fullpipe/motion.h" #include "fullpipe/gameloader.h" #include "fullpipe/behavior.h" #include "fullpipe/interaction.h" diff --git a/engines/fullpipe/scenes/scene10.cpp b/engines/fullpipe/scenes/scene10.cpp index 78f3fcdcff..f8d16b2759 100644 --- a/engines/fullpipe/scenes/scene10.cpp +++ b/engines/fullpipe/scenes/scene10.cpp @@ -26,12 +26,12 @@ #include "fullpipe/constants.h" #include "fullpipe/gameloader.h" +#include "fullpipe/motion.h" #include "fullpipe/scenes.h" #include "fullpipe/statics.h" #include "fullpipe/behavior.h" #include "fullpipe/interaction.h" -#include "fullpipe/motion.h" namespace Fullpipe { diff --git a/engines/fullpipe/scenes/scene11.cpp b/engines/fullpipe/scenes/scene11.cpp new file mode 100644 index 0000000000..7ac92c7cf3 --- /dev/null +++ b/engines/fullpipe/scenes/scene11.cpp @@ -0,0 +1,139 @@ +/* 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/objectnames.h" +#include "fullpipe/constants.h" + +#include "fullpipe/gameloader.h" +#include "fullpipe/motion.h" +#include "fullpipe/scenes.h" +#include "fullpipe/statics.h" + +#include "fullpipe/interaction.h" +#include "fullpipe/behavior.h" + + +namespace Fullpipe { + +void scene11_dudeSwingCallback(int *arg) { + warning("STUB: scene11_dudeSwingCallback()"); +} + +void scene11_initScene(Scene *sc) { + g_vars->scene11_swingie = sc->getStaticANIObject1ById(ANI_SWINGER, -1); + g_vars->scene11_boots = sc->getStaticANIObject1ById(ANI_BOOTS_11, -1); + g_vars->scene11_var01.clear(); + g_vars->scene11_dudeOnSwing = sc->getStaticANIObject1ById(ANI_MAN11, -1); + g_vars->scene11_dudeOnSwing->_callback2 = scene11_dudeSwingCallback; + g_vars->scene11_dudeOnSwing = sc->getStaticANIObject1ById(ANI_KACHELI, -1); + g_vars->scene11_dudeOnSwing->_callback2 = scene11_dudeSwingCallback; + g_vars->scene11_hint = sc->getPictureObjectById(PIC_SC11_HINT, 0); + g_vars->scene11_hint->_flags &= 0xFFFB; + + g_vars->scene11_var02 = 0; + g_vars->scene11_var03 = 0; + g_vars->scene11_var04 = 0; + g_vars->scene11_var05 = 0; + g_vars->scene11_var06 = 0; + g_vars->scene11_var07 = 0; + g_vars->scene11_var08 = 1.0; + g_vars->scene11_var09 = 1.0; + g_vars->scene11_var10 = 1.0; + g_vars->scene11_var11 = 1.0; + g_vars->scene11_var12 = 1.9849218750000000; + g_vars->scene11_var13 = 0; + g_vars->scene11_var14 = 0; + g_vars->scene11_var15 = 0; + g_vars->scene11_var16 = 0; + g_vars->scene11_var17 = 0; + g_vars->scene11_var18 = 0; + + Scene *oldsc = g_fp->_currentScene; + + g_fp->_currentScene = sc; + + int swingie = g_fp->getObjectState(sO_Swingie); + + if (swingie == g_fp->getObjectEnumState(sO_Swingie, sO_IsSwinging) + || swingie == g_fp->getObjectEnumState(sO_Swingie, sO_IsSwingingWithBoot)) { + g_vars->scene11_var19 = 1; + g_vars->scene11_var20 = 0; + + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing1, 1); + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing2, 1); + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing3, 0); + + ((MctlCompound *)getCurrSceneSc2MotionController())->replaceNodeX(805, 905); + + getSc2MctlCompoundBySceneId(sc->_sceneId)->replaceNodeX(303, 353); + } else if (swingie == g_fp->getObjectEnumState(sO_Swingie, sO_IsStandingInBoots) + || swingie == g_fp->getObjectEnumState(sO_Swingie, sO_IsStandingInCorner)) { + g_vars->scene11_var19 = 0; + g_vars->scene11_var20 = 1; + + g_vars->scene11_swingie->changeStatics2(ST_SWR_STAND3); + + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing1, 0); + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing2, 1); + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing3, 0); + + ((MctlCompound *)getCurrSceneSc2MotionController())->replaceNodeX(905, 805); + } else { + g_vars->scene11_var19 = 0; + g_vars->scene11_var20 = 0; + + if (swingie == g_fp->getObjectEnumState(sO_Swingie, sO_IsSitting)) { + g_vars->scene11_swingie->_movement = 0; + g_vars->scene11_swingie->_statics = g_vars->scene11_swingie->getStaticsById(ST_SWR_SIT); + g_vars->scene11_swingie->setOXY(144, 389); + + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing1, 0); + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing2, 0); + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing3, 1); + } else { + g_vars->scene11_swingie->_movement = 0; + g_vars->scene11_swingie->_statics = g_vars->scene11_swingie->getStaticsById(ST_SWR_SITBALD); + g_vars->scene11_swingie->setOXY(144, 415); + + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing1, 0); + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing2, 0); + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing3, 1); + } + } + + if (!g_vars->scene11_var19) { + g_vars->scene11_dudeOnSwing->changeStatics2(ST_KCH_STATIC); + g_vars->scene11_dudeOnSwing->setOXY(691, 371); + g_vars->scene11_dudeOnSwing->_priority = 20; + + g_vars->scene11_dudeOnSwing->_flags |= 4; + } + + g_fp->_currentScene = oldsc; + + g_fp->initArcadeKeys("SC_11"); + g_fp->setArcadeOverlay(PIC_CSR_ARCADE5); +} + +} // End of namespace Fullpipe diff --git a/engines/fullpipe/scenes/sceneDbg.cpp b/engines/fullpipe/scenes/sceneDbg.cpp index 518ef0d13b..4a3751940f 100644 --- a/engines/fullpipe/scenes/sceneDbg.cpp +++ b/engines/fullpipe/scenes/sceneDbg.cpp @@ -25,6 +25,7 @@ #include "fullpipe/constants.h" #include "fullpipe/gameloader.h" +#include "fullpipe/motion.h" #include "fullpipe/scenes.h" #include "fullpipe/statics.h" #include "fullpipe/input.h" diff --git a/engines/fullpipe/scenes/sceneIntro.cpp b/engines/fullpipe/scenes/sceneIntro.cpp index 368ca43abd..c9f19f3724 100644 --- a/engines/fullpipe/scenes/sceneIntro.cpp +++ b/engines/fullpipe/scenes/sceneIntro.cpp @@ -24,6 +24,7 @@ #include "fullpipe/constants.h" #include "fullpipe/gameloader.h" +#include "fullpipe/motion.h" #include "fullpipe/scenes.h" #include "fullpipe/modal.h" #include "fullpipe/statics.h" |