aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h5
-rw-r--r--engines/fullpipe/module.mk1
-rw-r--r--engines/fullpipe/scenes.cpp4
-rw-r--r--engines/fullpipe/scenes.h4
-rw-r--r--engines/fullpipe/scenes/scene07.cpp55
5 files changed, 69 insertions, 0 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 1a41538732..433866fbe4 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -32,6 +32,7 @@ namespace Fullpipe {
#define ANI_BUTTON 598
#define ANI_BUTTON_6 2988
#define ANI_CLOCK 588
+#define ANI_CORNERSITTER 71
#define ANI_DOMINO_3 2732
#define ANI_DADAYASHIK 306
#define ANI_EGGEATER 334
@@ -55,6 +56,7 @@ namespace Fullpipe {
#define ANI_NEWBALL 1073
#define ANI_OTMOROZ 419
#define ANI_PLANK 501
+#define ANI_PLUSMINUS 2938
#define ANI_SC2_BOX 1020
#define ANI_SC4_BOOT 1035
#define ANI_SC4_COIN 690
@@ -351,6 +353,7 @@ namespace Fullpipe {
#define ST_BLK_CLOSED 912
#define ST_BLK_OPEN 913
#define ST_CLK_CLOSED 590
+#define ST_CST_HANDLELESS 794
#define ST_DYAS_LIES 318
#define ST_EGTR_MID1 2863
#define ST_EGTR_MID2 2869
@@ -402,6 +405,8 @@ namespace Fullpipe {
#define ST_OTM_BOX_LEFT 429
#define ST_OTM_GLS_LEFT 421
#define ST_OTM_VNT_LEFT 434
+#define ST_PMS_MINUS 2942
+#define ST_PMS_PLUS 2941
#define ST_PNK_WEIGHTLEFT 503
#define ST_PNK_WEIGHTRIGHT 504
#define ST_SPR_UP 544
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index efb3d65786..7c09811c18 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -30,6 +30,7 @@ MODULE_OBJS = \
scenes/scene04.o \
scenes/scene05.o \
scenes/scene06.o \
+ scenes/scene07.o \
scenes/sceneDbg.o \
scenes/sceneIntro.o
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 08eed7210b..83f4d6be10 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -139,6 +139,10 @@ Vars::Vars() {
scene06_mumsyJumpBkPercent = 0;
scene06_mumsyJumpFwPercent = 0;
+ scene07_lukeAnim = 0;
+ scene07_lukePercent = 0;
+ scene07_plusMinus = 0;
+
selector = 0;
}
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 6664d823be..3751ed9a32 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -177,6 +177,10 @@ public:
int scene06_mumsyJumpBkPercent;
int scene06_mumsyJumpFwPercent;
+ BehaviorEntryInfo *scene07_lukeAnim;
+ int scene07_lukePercent;
+ StaticANIObject *scene07_plusMinus;
+
PictureObject *selector;
};
diff --git a/engines/fullpipe/scenes/scene07.cpp b/engines/fullpipe/scenes/scene07.cpp
new file mode 100644
index 0000000000..037a201249
--- /dev/null
+++ b/engines/fullpipe/scenes/scene07.cpp
@@ -0,0 +1,55 @@
+/* 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/scenes.h"
+#include "fullpipe/scene.h"
+#include "fullpipe/statics.h"
+
+namespace Fullpipe {
+
+void scene07_initScene(Scene *sc) {
+ g_vars->scene07_lukeAnim = 0;
+ g_vars->scene07_lukePercent = 0;
+ g_vars->scene07_plusMinus = sc->getStaticANIObject1ById(ANI_PLUSMINUS, -1);
+
+ if (g_fullpipe->getObjectState(sO_Guard_1) == g_fullpipe->getObjectEnumState(sO_Guard_1, sO_Off))
+ g_vars->scene07_plusMinus->_statics = g_vars->scene07_plusMinus->getStaticsById(ST_PMS_MINUS);
+ else
+ g_vars->scene07_plusMinus->_statics = g_vars->scene07_plusMinus->getStaticsById(ST_PMS_PLUS);
+
+ if (g_fullpipe->getObjectState(sO_HareTheNooksiter) == g_fullpipe->getObjectEnumState(sO_HareTheNooksiter, sO_WithoutHandle)) {
+ Scene *oldsc = g_fullpipe->_currentScene;
+
+ g_fullpipe->_currentScene = sc;
+
+ sc->getStaticANIObject1ById(ANI_CORNERSITTER, -1)->changeStatics2(ST_CST_HANDLELESS);
+
+ g_fullpipe->_currentScene = oldsc;
+ }
+}
+
+} // End of namespace Fullpipe