mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-15 06:08:35 +00:00
FULLPIPE: Implement scene15_init()
This commit is contained in:
parent
328a525c02
commit
f58cdb98b3
@ -500,6 +500,15 @@ namespace Fullpipe {
|
||||
#define ST_SWR_SITBALD 1153
|
||||
#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
|
||||
|
||||
#endif /* FULLPIPE_CONSTANTS_H */
|
||||
|
@ -34,6 +34,7 @@ MODULE_OBJS = \
|
||||
scenes/scene08.o \
|
||||
scenes/scene10.o \
|
||||
scenes/scene11.o \
|
||||
scenes/scene15.o \
|
||||
scenes/sceneDbg.o \
|
||||
scenes/sceneIntro.o
|
||||
|
||||
|
@ -48,6 +48,10 @@ namespace Fullpipe {
|
||||
#define sO_InSock "\xc2 \xed\xee\xf1\xea\xe5" // "В носке"
|
||||
#define sO_InGlasses "\xc2 \xee\xf7\xea\xe0\xf5" // "В очках"
|
||||
#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_Stands "\xc2_32 \xf2\xee\xf0\xf7\xe8\xf2" // "В_32 торчит"
|
||||
#define sO_In_33 "\xc2_33" // "В_33"
|
||||
|
@ -186,6 +186,15 @@ Vars::Vars() {
|
||||
scene11_var19 = 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;
|
||||
}
|
||||
|
||||
|
@ -238,6 +238,15 @@ public:
|
||||
int scene11_var19;
|
||||
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;
|
||||
};
|
||||
|
||||
|
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…
Reference in New Issue
Block a user