FULLPIPE: Implement scene15_init()
This commit is contained in:
parent
328a525c02
commit
f58cdb98b3
6 changed files with 130 additions and 0 deletions
|
@ -500,6 +500,15 @@ namespace Fullpipe {
|
||||||
#define ST_SWR_SITBALD 1153
|
#define ST_SWR_SITBALD 1153
|
||||||
#define ST_SWR_STAND3 3014
|
#define ST_SWR_STAND3 3014
|
||||||
|
|
||||||
|
// Scene 15
|
||||||
|
#define ANI_BOOT_15 4779
|
||||||
|
#define ANI_GRANDMA_ASS 1265
|
||||||
|
#define PIC_SC15_LADDER 3253
|
||||||
|
#define QU_SC15_ENTERLIFT 2811
|
||||||
|
#define QU_SC15_EXITLIFT 2812
|
||||||
|
#define ST_GMS_BOOT 1270
|
||||||
|
#define ST_GMS_BOOTLESS2 3316
|
||||||
|
|
||||||
} // End of namespace Fullpipe
|
} // End of namespace Fullpipe
|
||||||
|
|
||||||
#endif /* FULLPIPE_CONSTANTS_H */
|
#endif /* FULLPIPE_CONSTANTS_H */
|
||||||
|
|
|
@ -34,6 +34,7 @@ MODULE_OBJS = \
|
||||||
scenes/scene08.o \
|
scenes/scene08.o \
|
||||||
scenes/scene10.o \
|
scenes/scene10.o \
|
||||||
scenes/scene11.o \
|
scenes/scene11.o \
|
||||||
|
scenes/scene15.o \
|
||||||
scenes/sceneDbg.o \
|
scenes/sceneDbg.o \
|
||||||
scenes/sceneIntro.o
|
scenes/sceneIntro.o
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,10 @@ namespace Fullpipe {
|
||||||
#define sO_InSock "\xc2 \xed\xee\xf1\xea\xe5" // "В носке"
|
#define sO_InSock "\xc2 \xed\xee\xf1\xea\xe5" // "В носке"
|
||||||
#define sO_InGlasses "\xc2 \xee\xf7\xea\xe0\xf5" // "В очках"
|
#define sO_InGlasses "\xc2 \xee\xf7\xea\xe0\xf5" // "В очках"
|
||||||
#define sO_In_14 "\xc2_14" // "В_14"
|
#define sO_In_14 "\xc2_14" // "В_14"
|
||||||
|
#define sO_In_15 "\xc2_15" // "В_15"
|
||||||
|
#define sO_In_15_1 "\xc2_15_1" // "В_15_1"
|
||||||
|
#define sO_In_15_2 "\xc2_15_2" // "В_15_2"
|
||||||
|
#define sO_In_15_3 "\xc2_15_3" // "В_15_3"
|
||||||
#define sO_In_32_Lies "\xc2_32 \xeb\xe5\xe6\xe8\xf2" // "В_32 лежит"
|
#define sO_In_32_Lies "\xc2_32 \xeb\xe5\xe6\xe8\xf2" // "В_32 лежит"
|
||||||
#define sO_In_32_Stands "\xc2_32 \xf2\xee\xf0\xf7\xe8\xf2" // "В_32 торчит"
|
#define sO_In_32_Stands "\xc2_32 \xf2\xee\xf0\xf7\xe8\xf2" // "В_32 торчит"
|
||||||
#define sO_In_33 "\xc2_33" // "В_33"
|
#define sO_In_33 "\xc2_33" // "В_33"
|
||||||
|
|
|
@ -186,6 +186,15 @@ Vars::Vars() {
|
||||||
scene11_var19 = 0;
|
scene11_var19 = 0;
|
||||||
scene11_var20 = 0;
|
scene11_var20 = 0;
|
||||||
|
|
||||||
|
scene15_var01 = 0;
|
||||||
|
scene15_var02 = 0;
|
||||||
|
scene15_var03 = 0;
|
||||||
|
scene15_var04 = 0;
|
||||||
|
scene15_var05 = 0;
|
||||||
|
scene15_plusminus = 0;
|
||||||
|
scene15_ladder = 0;
|
||||||
|
scene15_boot = 0;
|
||||||
|
|
||||||
selector = 0;
|
selector = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -238,6 +238,15 @@ public:
|
||||||
int scene11_var19;
|
int scene11_var19;
|
||||||
int scene11_var20;
|
int scene11_var20;
|
||||||
|
|
||||||
|
int scene15_var01;
|
||||||
|
int scene15_var02;
|
||||||
|
int scene15_var03;
|
||||||
|
int scene15_var04;
|
||||||
|
int scene15_var05;
|
||||||
|
StaticANIObject *scene15_plusminus;
|
||||||
|
PictureObject *scene15_ladder;
|
||||||
|
StaticANIObject *scene15_boot;
|
||||||
|
|
||||||
PictureObject *selector;
|
PictureObject *selector;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
98
engines/fullpipe/scenes/scene15.cpp
Normal file
98
engines/fullpipe/scenes/scene15.cpp
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
/* 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 scene15_initScene(Scene *sc) {
|
||||||
|
g_vars->scene15_var01 = 200;
|
||||||
|
g_vars->scene15_var02 = 200;
|
||||||
|
g_vars->scene15_var03 = 300;
|
||||||
|
g_vars->scene15_var04 = 300;
|
||||||
|
g_vars->scene15_var05 = 0;
|
||||||
|
|
||||||
|
StaticANIObject *grandma = sc->getStaticANIObject1ById(ANI_GRANDMA_ASS, -1);
|
||||||
|
|
||||||
|
Scene *oldsc = g_fp->_currentScene;
|
||||||
|
g_fp->_currentScene = sc;
|
||||||
|
|
||||||
|
int grandmaState = g_fp->getObjectState(sO_Grandma);
|
||||||
|
|
||||||
|
if (grandmaState == g_fp->getObjectEnumState(sO_Grandma, sO_In_15)) {
|
||||||
|
grandma->changeStatics2(ST_GMS_BOOT);
|
||||||
|
grandma->setOXY(97, 399);
|
||||||
|
g_fp->setObjectState(sO_LeftPipe_15, g_fp->getObjectEnumState(sO_LeftPipe_15, sO_IsClosed));
|
||||||
|
} else if (grandmaState == g_fp->getObjectEnumState(sO_Grandma, sO_In_15_1)) {
|
||||||
|
grandma->changeStatics2(ST_GMS_BOOT);
|
||||||
|
grandma->setOXY(86, 399);
|
||||||
|
g_fp->setObjectState(sO_LeftPipe_15, g_fp->getObjectEnumState(sO_LeftPipe_15, sO_IsClosed));
|
||||||
|
} else if (grandmaState == g_fp->getObjectEnumState(sO_Grandma, sO_In_15_2)) {
|
||||||
|
grandma->changeStatics2(ST_GMS_BOOT);
|
||||||
|
grandma->setOXY(71, 399);
|
||||||
|
g_fp->setObjectState(sO_LeftPipe_15, g_fp->getObjectEnumState(sO_LeftPipe_15, sO_IsClosed));
|
||||||
|
} else if (grandmaState == g_fp->getObjectEnumState(sO_Grandma, sO_In_15_3)) {
|
||||||
|
grandma->changeStatics2(ST_GMS_BOOT);
|
||||||
|
grandma->setOXY(49, 399);
|
||||||
|
g_fp->setObjectState(sO_LeftPipe_15, g_fp->getObjectEnumState(sO_LeftPipe_15, sO_IsClosed));
|
||||||
|
} else if (grandmaState == g_fp->getObjectEnumState(sO_Grandma, sO_WithoutBoot)) {
|
||||||
|
grandma->changeStatics2(ST_GMS_BOOT);
|
||||||
|
grandma->setOXY(97, 399);
|
||||||
|
grandma->changeStatics2(ST_GMS_BOOTLESS2);
|
||||||
|
g_fp->setObjectState(sO_LeftPipe_15, g_fp->getObjectEnumState(sO_LeftPipe_15, sO_IsClosed));
|
||||||
|
} else {
|
||||||
|
grandma->hide();
|
||||||
|
g_fp->setObjectState(sO_LeftPipe_15, g_fp->getObjectEnumState(sO_LeftPipe_15, sO_IsOpened));
|
||||||
|
}
|
||||||
|
|
||||||
|
g_vars->scene15_plusminus = sc->getStaticANIObject1ById(ANI_PLUSMINUS, -1);
|
||||||
|
|
||||||
|
if (g_fp->getObjectState(sO_Gurad_2) == g_fp->getObjectEnumState(sO_Gurad_2, sO_Off))
|
||||||
|
g_vars->scene15_plusminus->_statics = g_vars->scene15_plusminus->getStaticsById(ST_PMS_MINUS);
|
||||||
|
else
|
||||||
|
g_vars->scene15_plusminus->_statics = g_vars->scene15_plusminus->getStaticsById(ST_PMS_PLUS);
|
||||||
|
|
||||||
|
g_vars->scene15_ladder = sc->getPictureObjectById(PIC_SC15_LADDER, 0);
|
||||||
|
g_vars->scene15_boot = sc->getStaticANIObject1ById(ANI_BOOT_15, -1);
|
||||||
|
|
||||||
|
if (g_fp->getObjectState(sO_Boot_15) != g_fp->getObjectEnumState(sO_Boot_15, sO_Available))
|
||||||
|
g_vars->scene15_boot->_flags &= 0xFFFB;
|
||||||
|
|
||||||
|
g_fp->_currentScene = oldsc;
|
||||||
|
|
||||||
|
g_fp->lift_setButton(sO_Level5, ST_LBN_5N);
|
||||||
|
g_fp->lift_sub5(sc, QU_SC15_ENTERLIFT, QU_SC15_EXITLIFT);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // End of namespace Fullpipe
|
Loading…
Add table
Add a link
Reference in a new issue