aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2014-02-17 00:14:18 +0200
committerEugene Sandulenko2014-02-17 00:14:52 +0200
commit3d1ac3cc78a704fc0c72a4f645be5c79380380c8 (patch)
treecc47b5861b5e1a167037e8b71843acd18d6191b0 /engines/fullpipe
parent0657b7a072dc745b7290c159d73c1f6924886554 (diff)
downloadscummvm-rg350-3d1ac3cc78a704fc0c72a4f645be5c79380380c8.tar.gz
scummvm-rg350-3d1ac3cc78a704fc0c72a4f645be5c79380380c8.tar.bz2
scummvm-rg350-3d1ac3cc78a704fc0c72a4f645be5c79380380c8.zip
FULLPIPE: Implement sceneHandler09_hangerStartCycle()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/constants.h1
-rw-r--r--engines/fullpipe/scenes/scene09.cpp20
2 files changed, 20 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index bae0a2d799..d22e021d00 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -606,6 +606,7 @@ namespace Fullpipe {
#define QU_TTA9_GOL 4937
#define SND_9_006 3650
#define SND_9_018 4200
+#define SND_9_019 4201
#define ST_GLT_SIT 926
#define ST_GRT9_GRIT 2722
#define ST_GRT9_NORM 2721
diff --git a/engines/fullpipe/scenes/scene09.cpp b/engines/fullpipe/scenes/scene09.cpp
index 6752864962..dc860b1884 100644
--- a/engines/fullpipe/scenes/scene09.cpp
+++ b/engines/fullpipe/scenes/scene09.cpp
@@ -321,7 +321,25 @@ void sceneHandler09_checkHangerCollide() {
}
void sceneHandler09_hangerStartCycle() {
- warning("STUB: sceneHandler09_hangerStartCycle()");
+ StaticANIObject *ani = g_vars->scene09_hangers[g_vars->scene09_var10]->ani;
+
+ if (ani->_movement) {
+ ani->startAnim(MV_VSN_CYCLE2, 0, -1);
+ g_vars->scene09_hangers[g_vars->scene09_var10]->field_8 = 0;
+ g_vars->scene09_hangers[g_vars->scene09_var10]->phase = g_vars->scene09_var11 + (g_fp->_mouseScreenPos.y - g_vars->scene09_var19) / 2;
+
+ if (g_vars->scene09_var12 != -1000 && g_vars->scene09_hangers[g_vars->scene09_var10]->phase != g_vars->scene09_var12) {
+ ExCommand *ex = new ExCommand(0, 35, SND_9_019, 0, 0, 0, 1, 0, 0, 0);
+
+ ex->_field_14 = 1;
+ ex->_excFlags |= 2;
+ ex->postMessage();
+
+ g_vars->scene09_var12 = -1000;
+ }
+ } else {
+ g_vars->scene09_var10 = -1;
+ }
}
int sceneHandler09(ExCommand *cmd) {