aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/statics.cpp18
-rw-r--r--engines/fullpipe/statics.h1
2 files changed, 17 insertions, 2 deletions
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index 5b889d7818..20ce75f365 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -599,7 +599,11 @@ void Movement::updateCurrDynamicPhase() {
}
void Movement::setDynamicPhaseIndex(int index) {
- warning("STUB: Movement::setDynamicPhaseIndex(%d)", index);
+ while (_currDynamicPhaseIndex < index)
+ gotoNextFrame(0, 0);
+
+ while (_currDynamicPhaseIndex > index)
+ gotoPrevFrame(0, 0);
}
void Movement::loadPixelData() {
@@ -640,8 +644,18 @@ void Movement::gotoNextFrame(int callback1, int callback2) {
warning("STUB: Movement::gotoNextFrame()");
}
+void Movement::gotoPrevFrame(int callback1, int callback2) {
+ warning("STUB: Movement::gotoPrevFrame()");
+}
+
void Movement::gotoLastFrame() {
- warning("STUB: Movement::gotoLastFrame()");
+ if (_currMovement) {
+ while ((uint)_currDynamicPhaseIndex != _currMovement->_dynamicPhases.size())
+ gotoNextFrame(0, 0);
+ } else {
+ while ((uint)_currDynamicPhaseIndex != _dynamicPhases.size())
+ gotoNextFrame(0, 0);
+ }
}
Common::Point *Movement::getCenter(Common::Point *p) {
diff --git a/engines/fullpipe/statics.h b/engines/fullpipe/statics.h
index e3711e6501..5366f71acd 100644
--- a/engines/fullpipe/statics.h
+++ b/engines/fullpipe/statics.h
@@ -147,6 +147,7 @@ class Movement : public GameObject {
void removeFirstPhase();
void gotoNextFrame(int callback1, int callback2);
+ void gotoPrevFrame(int callback1, int callback2);
void gotoLastFrame();
void loadPixelData();