diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h index dc27f738e8ec..3a43f69fb13a 100644 --- a/engines/fullpipe/fullpipe.h +++ b/engines/fullpipe/fullpipe.h @@ -290,7 +290,7 @@ class FullpipeEngine : public ::Engine { 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 54d3bb65c518..8acea6a59db4 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 b2b918094250..5d22931fb73a 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 fa2712d91ece..83b98c272270 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 2a694e188cce..4f9e627fa479 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 543522ee5bf5..28f054fd3280 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 588868a934d2..9e11df92e432 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 d305da8eaedd..39a51deeefa0 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 383df0dc84c0..be7c9832770f 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 82c6e6d43d91..0e690f470392 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 b800f9c60291..a42849eeb5df 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 4dc6f2142b9d..7fb0be85096b 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: