aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2014-02-01 13:45:22 +0200
committerEugene Sandulenko2014-02-01 16:55:44 +0200
commitb5182581eb9828c9edc0aebdc5e8dafc946f6e3e (patch)
tree32ad92b975b830b7f3a1fdea88d19013305f39d9
parent3b1f60943990ee8ee0ff8f447287a72bdc014fe8 (diff)
downloadscummvm-rg350-b5182581eb9828c9edc0aebdc5e8dafc946f6e3e.tar.gz
scummvm-rg350-b5182581eb9828c9edc0aebdc5e8dafc946f6e3e.tar.bz2
scummvm-rg350-b5182581eb9828c9edc0aebdc5e8dafc946f6e3e.zip
FULLPIPE: Implement lift_hoverButton(). This completes the lift.
-rw-r--r--engines/fullpipe/fullpipe.h2
-rw-r--r--engines/fullpipe/lift.cpp9
-rw-r--r--engines/fullpipe/scenes/scene03.cpp2
-rw-r--r--engines/fullpipe/scenes/scene06.cpp2
-rw-r--r--engines/fullpipe/scenes/scene10.cpp2
-rw-r--r--engines/fullpipe/scenes/scene14.cpp2
-rw-r--r--engines/fullpipe/scenes/scene15.cpp2
-rw-r--r--engines/fullpipe/scenes/scene30.cpp2
-rw-r--r--engines/fullpipe/scenes/scene32.cpp2
-rw-r--r--engines/fullpipe/scenes/scene34.cpp2
-rw-r--r--engines/fullpipe/scenes/scene35.cpp2
-rw-r--r--engines/fullpipe/scenes/scene38.cpp2
12 files changed, 18 insertions, 13 deletions
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index dc27f738e8..3a43f69fb1 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -290,7 +290,7 @@ public:
void lift_goAnimation();
void lift_animateButton(StaticANIObject *button);
void lift_startExitQueue();
- void lift_sub05(ExCommand *ex);
+ void lift_hoverButton(ExCommand *ex);
bool lift_checkButton(const char *varname);
void lift_openLift();
diff --git a/engines/fullpipe/lift.cpp b/engines/fullpipe/lift.cpp
index 54d3bb65c5..8acea6a59d 100644
--- a/engines/fullpipe/lift.cpp
+++ b/engines/fullpipe/lift.cpp
@@ -479,8 +479,13 @@ void FullpipeEngine::lift_startExitQueue() {
mq->chain(0);
}
-void FullpipeEngine::lift_sub05(ExCommand *ex) {
- warning("STUB: FullpipeEngine::lift_sub05()");
+void FullpipeEngine::lift_hoverButton(ExCommand *cmd) {
+ if (_lastLiftButton) {
+ if (!(cmd->_keyCode & 2) || _liftX != cmd->_x || _liftY != cmd->_y) {
+ _lastLiftButton->_statics = _lastLiftButton->getStaticsById(lift_getButtonIdN(_lastLiftButton->_statics->_staticsId));
+ _lastLiftButton = 0;
+ }
+ }
}
bool FullpipeEngine::lift_checkButton(const char *varName) {
diff --git a/engines/fullpipe/scenes/scene03.cpp b/engines/fullpipe/scenes/scene03.cpp
index b2b9180942..5d22931fb7 100644
--- a/engines/fullpipe/scenes/scene03.cpp
+++ b/engines/fullpipe/scenes/scene03.cpp
@@ -239,7 +239,7 @@ int sceneHandler03(ExCommand *ex) {
break;
case 64:
- g_fp->lift_sub05(ex);
+ g_fp->lift_hoverButton(ex);
break;
case 29:
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index fa2712d91e..83b98c2722 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -622,7 +622,7 @@ int sceneHandler06(ExCommand *ex) {
break;
case 64:
- g_fp->lift_sub05(ex);
+ g_fp->lift_hoverButton(ex);
break;
case MSG_SC6_TAKEBALL:
diff --git a/engines/fullpipe/scenes/scene10.cpp b/engines/fullpipe/scenes/scene10.cpp
index 2a694e188c..4f9e627fa4 100644
--- a/engines/fullpipe/scenes/scene10.cpp
+++ b/engines/fullpipe/scenes/scene10.cpp
@@ -170,7 +170,7 @@ int sceneHandler10(ExCommand *ex) {
break;
case 64:
- g_fp->lift_sub05(ex);
+ g_fp->lift_hoverButton(ex);
break;
case 29:
diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp
index 543522ee5b..28f054fd32 100644
--- a/engines/fullpipe/scenes/scene14.cpp
+++ b/engines/fullpipe/scenes/scene14.cpp
@@ -749,7 +749,7 @@ int sceneHandler14(ExCommand *cmd) {
break;
case 64:
- g_fp->lift_sub05(cmd);
+ g_fp->lift_hoverButton(cmd);
break;
case 33:
diff --git a/engines/fullpipe/scenes/scene15.cpp b/engines/fullpipe/scenes/scene15.cpp
index 588868a934..9e11df92e4 100644
--- a/engines/fullpipe/scenes/scene15.cpp
+++ b/engines/fullpipe/scenes/scene15.cpp
@@ -156,7 +156,7 @@ int sceneHandler15(ExCommand *cmd) {
break;
case 64:
- g_fp->lift_sub05(cmd);
+ g_fp->lift_hoverButton(cmd);
break;
case 29:
diff --git a/engines/fullpipe/scenes/scene30.cpp b/engines/fullpipe/scenes/scene30.cpp
index d305da8eae..39a51deeef 100644
--- a/engines/fullpipe/scenes/scene30.cpp
+++ b/engines/fullpipe/scenes/scene30.cpp
@@ -111,7 +111,7 @@ int sceneHandler30(ExCommand *cmd) {
break;
case 64:
- g_fp->lift_sub05(cmd);
+ g_fp->lift_hoverButton(cmd);
break;
case MSG_LIFT_GO:
diff --git a/engines/fullpipe/scenes/scene32.cpp b/engines/fullpipe/scenes/scene32.cpp
index 383df0dc84..be7c983277 100644
--- a/engines/fullpipe/scenes/scene32.cpp
+++ b/engines/fullpipe/scenes/scene32.cpp
@@ -339,7 +339,7 @@ int sceneHandler32(ExCommand *cmd) {
break;
case 64:
- g_fp->lift_sub05(cmd);
+ g_fp->lift_hoverButton(cmd);
break;
case MSG_SC6_INSTHANDLE:
diff --git a/engines/fullpipe/scenes/scene34.cpp b/engines/fullpipe/scenes/scene34.cpp
index 82c6e6d43d..0e690f4703 100644
--- a/engines/fullpipe/scenes/scene34.cpp
+++ b/engines/fullpipe/scenes/scene34.cpp
@@ -392,7 +392,7 @@ int sceneHandler34(ExCommand *cmd) {
break;
case 64:
- g_fp->lift_sub05(cmd);
+ g_fp->lift_hoverButton(cmd);
break;
case MSG_LIFT_GO:
diff --git a/engines/fullpipe/scenes/scene35.cpp b/engines/fullpipe/scenes/scene35.cpp
index b800f9c602..a42849eeb5 100644
--- a/engines/fullpipe/scenes/scene35.cpp
+++ b/engines/fullpipe/scenes/scene35.cpp
@@ -199,7 +199,7 @@ int sceneHandler35(ExCommand *cmd) {
break;
case 64:
- g_fp->lift_sub05(cmd);
+ g_fp->lift_hoverButton(cmd);
break;
case 29:
diff --git a/engines/fullpipe/scenes/scene38.cpp b/engines/fullpipe/scenes/scene38.cpp
index 4dc6f2142b..7fb0be8509 100644
--- a/engines/fullpipe/scenes/scene38.cpp
+++ b/engines/fullpipe/scenes/scene38.cpp
@@ -368,7 +368,7 @@ int sceneHandler38(ExCommand *cmd) {
break;
case 64:
- g_fp->lift_sub05(cmd);
+ g_fp->lift_hoverButton(cmd);
break;
case 29: