[Scummvm-cvs-logs] scummvm master -> b2438f8d013ff75bab2d55d7d868fe53441a115e
sev-
sev at scummvm.org
Sun Jan 26 15:54:10 CET 2014
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
f7c768552a FULLPIPE: Implement lift_clickButton()
704eca2ddf FULLPIPE: Implement lift_getButtonIdH()
a32f56f9f2 FULLPIPE: Implement lift_getButtonIdN()
05ab849247 FULLPIPE: Implement lift_setButtonStatics()
b2438f8d01 FULLPIPE: Implement lift_init()
Commit: f7c768552a53f3f3733d9bade6667445aec004d3
https://github.com/scummvm/scummvm/commit/f7c768552a53f3f3733d9bade6667445aec004d3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-26T06:53:08-08:00
Commit Message:
FULLPIPE: Implement lift_clickButton()
Changed paths:
engines/fullpipe/fullpipe.cpp
engines/fullpipe/fullpipe.h
engines/fullpipe/lift.cpp
engines/fullpipe/scenes/scene03.cpp
engines/fullpipe/scenes/scene06.cpp
engines/fullpipe/scenes/scene10.cpp
engines/fullpipe/scenes/scene14.cpp
engines/fullpipe/scenes/scene15.cpp
engines/fullpipe/scenes/scene30.cpp
engines/fullpipe/scenes/scene32.cpp
engines/fullpipe/scenes/scene34.cpp
engines/fullpipe/scenes/scene35.cpp
engines/fullpipe/scenes/scene38.cpp
diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp
index 1c319d3..578a40f 100644
--- a/engines/fullpipe/fullpipe.cpp
+++ b/engines/fullpipe/fullpipe.cpp
@@ -82,6 +82,8 @@ FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc)
_modalObject = 0;
+ _lastLiftButton = 0;
+
_gameContinue = true;
_needRestart = false;
_flgPlayIntro = true;
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index 0fc69c2..2e071b1 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -269,13 +269,16 @@ public:
void getAllInventory();
+ StaticANIObject *_lastLiftButton;
+
int lift_getButtonIdP(int objid);
void lift_setButton(const char *name, int state);
void lift_sub5(Scene *sc, int qu1, int qu2);
void lift_sub7(Scene *sc, int buttonId);
void lift_exitSeq(ExCommand *ex);
void lift_closedoorSeq();
- void lift_animation3();
+ void lift_clickButton();
+ void lift_walkAndGo();
void lift_goAnimation();
void lift_sub1(StaticANIObject *ani);
void lift_startExitQueue();
diff --git a/engines/fullpipe/lift.cpp b/engines/fullpipe/lift.cpp
index e5c566e..c8434fa 100644
--- a/engines/fullpipe/lift.cpp
+++ b/engines/fullpipe/lift.cpp
@@ -85,8 +85,13 @@ void FullpipeEngine::lift_closedoorSeq() {
warning("STUB: FullpipeEngine::lift_closedoorSeq()");
}
-void FullpipeEngine::lift_animation3() {
- warning("STUB: FullpipeEngine::lift_animation3()");
+void FullpipeEngine::lift_walkAndGo() {
+ warning("STUB: FullpipeEngine::lift_walkAndGo()");
+}
+
+void FullpipeEngine::lift_clickButton() {
+ if (_lastLiftButton)
+ lift_walkAndGo();
}
void FullpipeEngine::lift_goAnimation() {
diff --git a/engines/fullpipe/scenes/scene03.cpp b/engines/fullpipe/scenes/scene03.cpp
index 40e70e2..c706dad 100644
--- a/engines/fullpipe/scenes/scene03.cpp
+++ b/engines/fullpipe/scenes/scene03.cpp
@@ -215,7 +215,7 @@ int sceneHandler03(ExCommand *ex) {
break;
case MSG_LIFT_CLICKBUTTON:
- g_fp->lift_animation3();
+ g_fp->lift_clickButton();
break;
case MSG_SC3_HIDEDOMINO:
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index c352d27..0c27151 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -590,7 +590,7 @@ int sceneHandler06(ExCommand *ex) {
break;
case MSG_LIFT_CLICKBUTTON:
- g_fp->lift_animation3();
+ g_fp->lift_clickButton();
break;
case MSG_SPINHANDLE:
diff --git a/engines/fullpipe/scenes/scene10.cpp b/engines/fullpipe/scenes/scene10.cpp
index f8d16b2..6836cd6 100644
--- a/engines/fullpipe/scenes/scene10.cpp
+++ b/engines/fullpipe/scenes/scene10.cpp
@@ -140,7 +140,7 @@ int sceneHandler10(ExCommand *ex) {
break;
case MSG_LIFT_CLICKBUTTON:
- g_fp->lift_animation3();
+ g_fp->lift_clickButton();
break;
case MSG_SC10_LADDERTOBACK:
diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp
index 4a09bc9..e0618ee 100644
--- a/engines/fullpipe/scenes/scene14.cpp
+++ b/engines/fullpipe/scenes/scene14.cpp
@@ -665,7 +665,7 @@ int sceneHandler14(ExCommand *cmd) {
break;
case MSG_LIFT_CLICKBUTTON:
- g_fp->lift_animation3();
+ g_fp->lift_clickButton();
break;
case MSG_SC14_SHOWBALLGMAHIT:
diff --git a/engines/fullpipe/scenes/scene15.cpp b/engines/fullpipe/scenes/scene15.cpp
index 046e9c9..ece260d 100644
--- a/engines/fullpipe/scenes/scene15.cpp
+++ b/engines/fullpipe/scenes/scene15.cpp
@@ -144,7 +144,7 @@ int sceneHandler15(ExCommand *cmd) {
break;
case MSG_LIFT_CLICKBUTTON:
- g_fp->lift_animation3();
+ g_fp->lift_clickButton();
break;
case MSG_SC15_PULL:
diff --git a/engines/fullpipe/scenes/scene30.cpp b/engines/fullpipe/scenes/scene30.cpp
index 59cb83e..d115a70 100644
--- a/engines/fullpipe/scenes/scene30.cpp
+++ b/engines/fullpipe/scenes/scene30.cpp
@@ -103,7 +103,7 @@ int sceneHandler30(ExCommand *cmd) {
break;
case MSG_LIFT_CLICKBUTTON:
- g_fp->lift_animation3();
+ g_fp->lift_clickButton();
break;
case MSG_SC30_UPDATEPATH:
diff --git a/engines/fullpipe/scenes/scene32.cpp b/engines/fullpipe/scenes/scene32.cpp
index c93e888..87ecf22 100644
--- a/engines/fullpipe/scenes/scene32.cpp
+++ b/engines/fullpipe/scenes/scene32.cpp
@@ -291,7 +291,7 @@ int sceneHandler32(ExCommand *cmd) {
break;
case MSG_LIFT_CLICKBUTTON:
- g_fp->lift_animation3();
+ g_fp->lift_clickButton();
break;
case MSG_SC33_TRYKUBIK:
diff --git a/engines/fullpipe/scenes/scene34.cpp b/engines/fullpipe/scenes/scene34.cpp
index 942a0ab..72a289a 100644
--- a/engines/fullpipe/scenes/scene34.cpp
+++ b/engines/fullpipe/scenes/scene34.cpp
@@ -317,7 +317,7 @@ int sceneHandler34(ExCommand *cmd) {
break;
case MSG_LIFT_CLICKBUTTON:
- g_fp->lift_animation3();
+ g_fp->lift_clickButton();
break;
case MSG_SC34_FROMCACTUS:
diff --git a/engines/fullpipe/scenes/scene35.cpp b/engines/fullpipe/scenes/scene35.cpp
index 290213c..ac8ed71 100644
--- a/engines/fullpipe/scenes/scene35.cpp
+++ b/engines/fullpipe/scenes/scene35.cpp
@@ -168,7 +168,7 @@ int sceneHandler35(ExCommand *cmd) {
break;
case MSG_LIFT_CLICKBUTTON:
- g_fp->lift_animation3();
+ g_fp->lift_clickButton();
break;
case MSG_SC35_STOPFLOW:
diff --git a/engines/fullpipe/scenes/scene38.cpp b/engines/fullpipe/scenes/scene38.cpp
index 198a88f..bf7c2a3 100644
--- a/engines/fullpipe/scenes/scene38.cpp
+++ b/engines/fullpipe/scenes/scene38.cpp
@@ -348,7 +348,7 @@ int sceneHandler38(ExCommand *cmd) {
break;
case MSG_LIFT_CLICKBUTTON:
- g_fp->lift_animation3();
+ g_fp->lift_clickButton();
break;
case MSG_SC38_POINT:
Commit: 704eca2ddfc13867bd969ac64f7c458bbdea188c
https://github.com/scummvm/scummvm/commit/704eca2ddfc13867bd969ac64f7c458bbdea188c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-26T06:53:08-08:00
Commit Message:
FULLPIPE: Implement lift_getButtonIdH()
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/fullpipe.h
engines/fullpipe/lift.cpp
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index dfc2146..408f765 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -219,25 +219,35 @@ namespace Fullpipe {
#define SND_INTR_019 5220
#define ST_EGTR_SLIMSORROW 340
#define ST_FLY_FLY 4918
+#define ST_LBN_0H 2835
+#define ST_LBN_1H 2791
+#define ST_LBN_2H 2793
+#define ST_LBN_3H 2795
+#define ST_LBN_4H 2797
+#define ST_LBN_5H 2799
+#define ST_LBN_6H 2801
+#define ST_LBN_7H 2803
+#define ST_LBN_8H 2805
+#define ST_LBN_9H 2807
#define ST_LBN_0N 2832
-#define ST_LBN_0P 2833
#define ST_LBN_1N 2753
-#define ST_LBN_1P 2754
#define ST_LBN_2N 2756
-#define ST_LBN_2P 2757
#define ST_LBN_3N 2759
-#define ST_LBN_3P 2760
#define ST_LBN_4N 2762
-#define ST_LBN_4P 2763
#define ST_LBN_5N 2765
-#define ST_LBN_5P 2766
#define ST_LBN_6N 2768
-#define ST_LBN_6P 2769
#define ST_LBN_7N 2771
-#define ST_LBN_7P 2772
#define ST_LBN_8N 2774
-#define ST_LBN_8P 2775
#define ST_LBN_9N 2777
+#define ST_LBN_0P 2833
+#define ST_LBN_1P 2754
+#define ST_LBN_2P 2757
+#define ST_LBN_3P 2760
+#define ST_LBN_4P 2763
+#define ST_LBN_5P 2766
+#define ST_LBN_6P 2769
+#define ST_LBN_7P 2772
+#define ST_LBN_8P 2775
#define ST_LBN_9P 2778
#define ST_MAN_EMPTY 476
#define ST_MAN_GOU 459
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index 2e071b1..c41cc92 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -272,6 +272,7 @@ public:
StaticANIObject *_lastLiftButton;
int lift_getButtonIdP(int objid);
+ int lift_getButtonIdH(int objid);
void lift_setButton(const char *name, int state);
void lift_sub5(Scene *sc, int qu1, int qu2);
void lift_sub7(Scene *sc, int buttonId);
diff --git a/engines/fullpipe/lift.cpp b/engines/fullpipe/lift.cpp
index c8434fa..97f6547 100644
--- a/engines/fullpipe/lift.cpp
+++ b/engines/fullpipe/lift.cpp
@@ -32,37 +32,73 @@ int FullpipeEngine::lift_getButtonIdP(int objid) {
switch (objid) {
case ST_LBN_0N:
return ST_LBN_0P;
- break;
+
case ST_LBN_1N:
return ST_LBN_1P;
- break;
+
case ST_LBN_2N:
return ST_LBN_2P;
- break;
+
case ST_LBN_3N:
return ST_LBN_3P;
- break;
+
case ST_LBN_4N:
return ST_LBN_4P;
- break;
+
case ST_LBN_5N:
return ST_LBN_5P;
- break;
+
case ST_LBN_6N:
return ST_LBN_6P;
- break;
+
case ST_LBN_7N:
return ST_LBN_7P;
- break;
+
case ST_LBN_8N:
return ST_LBN_8P;
- break;
+
case ST_LBN_9N:
return ST_LBN_9P;
- break;
+
+ default:
+ return 0;
+ }
+}
+
+int FullpipeEngine::lift_getButtonIdH(int objid) {
+ switch (objid) {
+ case ST_LBN_0P:
+ return ST_LBN_0H;
+
+ case ST_LBN_1P:
+ return ST_LBN_1H;
+
+ case ST_LBN_2P:
+ return ST_LBN_2H;
+
+ case ST_LBN_3P:
+ return ST_LBN_3H;
+
+ case ST_LBN_4P:
+ return ST_LBN_4H;
+
+ case ST_LBN_5P:
+ return ST_LBN_5H;
+
+ case ST_LBN_6P:
+ return ST_LBN_6H;
+
+ case ST_LBN_7P:
+ return ST_LBN_7H;
+
+ case ST_LBN_8P:
+ return ST_LBN_8H;
+
+ case ST_LBN_9P:
+ return ST_LBN_9H;
+
default:
return 0;
- break;
}
}
Commit: a32f56f9f23dfd7e17ad91ad77295f0707c2a8ba
https://github.com/scummvm/scummvm/commit/a32f56f9f23dfd7e17ad91ad77295f0707c2a8ba
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-26T06:53:08-08:00
Commit Message:
FULLPIPE: Implement lift_getButtonIdN()
Changed paths:
engines/fullpipe/fullpipe.h
engines/fullpipe/lift.cpp
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index c41cc92..baf0380 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -273,6 +273,7 @@ public:
int lift_getButtonIdP(int objid);
int lift_getButtonIdH(int objid);
+ int lift_getButtonIdN(int objid);
void lift_setButton(const char *name, int state);
void lift_sub5(Scene *sc, int qu1, int qu2);
void lift_sub7(Scene *sc, int buttonId);
diff --git a/engines/fullpipe/lift.cpp b/engines/fullpipe/lift.cpp
index 97f6547..32d5f33 100644
--- a/engines/fullpipe/lift.cpp
+++ b/engines/fullpipe/lift.cpp
@@ -102,6 +102,63 @@ int FullpipeEngine::lift_getButtonIdH(int objid) {
}
}
+int FullpipeEngine::lift_getButtonIdN(int objid) {
+ switch (objid) {
+ case ST_LBN_0H:
+ case ST_LBN_0N:
+ case ST_LBN_0P:
+ return ST_LBN_0N;
+
+ case ST_LBN_1H:
+ case ST_LBN_1N:
+ case ST_LBN_1P:
+ return ST_LBN_1N;
+
+ case ST_LBN_2H:
+ case ST_LBN_2N:
+ case ST_LBN_2P:
+ return ST_LBN_2N;
+
+ case ST_LBN_3H:
+ case ST_LBN_3N:
+ case ST_LBN_3P:
+ return ST_LBN_3N;
+
+ case ST_LBN_4H:
+ case ST_LBN_4N:
+ case ST_LBN_4P:
+ return ST_LBN_4N;
+
+ case ST_LBN_5H:
+ case ST_LBN_5N:
+ case ST_LBN_5P:
+ return ST_LBN_5N;
+
+ case ST_LBN_6H:
+ case ST_LBN_6N:
+ case ST_LBN_6P:
+ return ST_LBN_6N;
+
+ case ST_LBN_7H:
+ case ST_LBN_7N:
+ case ST_LBN_7P:
+ return ST_LBN_7N;
+
+ case ST_LBN_8H:
+ case ST_LBN_8N:
+ case ST_LBN_8P:
+ return ST_LBN_8N;
+
+ case ST_LBN_9H:
+ case ST_LBN_9N:
+ case ST_LBN_9P:
+ return ST_LBN_9N;
+
+ default:
+ return 0;
+ }
+}
+
void FullpipeEngine::lift_setButton(const char *name, int state) {
GameVar *var = g_fp->getGameLoaderGameVar()->getSubVarByName("OBJSTATES")->getSubVarByName(sO_LiftButtons);
Commit: 05ab84924776d49ffee786a21e98cd95fd096e06
https://github.com/scummvm/scummvm/commit/05ab84924776d49ffee786a21e98cd95fd096e06
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-26T06:53:08-08:00
Commit Message:
FULLPIPE: Implement lift_setButtonStatics()
Changed paths:
engines/fullpipe/fullpipe.h
engines/fullpipe/lift.cpp
engines/fullpipe/scenes/scene38.cpp
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index baf0380..09160db 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -276,7 +276,7 @@ public:
int lift_getButtonIdN(int objid);
void lift_setButton(const char *name, int state);
void lift_sub5(Scene *sc, int qu1, int qu2);
- void lift_sub7(Scene *sc, int buttonId);
+ void lift_setButtonStatics(Scene *sc, int buttonId);
void lift_exitSeq(ExCommand *ex);
void lift_closedoorSeq();
void lift_clickButton();
diff --git a/engines/fullpipe/lift.cpp b/engines/fullpipe/lift.cpp
index 32d5f33..81d7d2d 100644
--- a/engines/fullpipe/lift.cpp
+++ b/engines/fullpipe/lift.cpp
@@ -25,6 +25,8 @@
#include "fullpipe/objects.h"
#include "fullpipe/objectnames.h"
#include "fullpipe/constants.h"
+#include "fullpipe/scene.h"
+#include "fullpipe/statics.h"
namespace Fullpipe {
@@ -209,8 +211,17 @@ bool FullpipeEngine::lift_checkButton(const char *varname) {
return false;
}
-void FullpipeEngine::lift_sub7(Scene *sc, int buttonId) {
- warning("STUB: lift_sub7()");
+void FullpipeEngine::lift_setButtonStatics(Scene *sc, int buttonId) {
+ for (uint i = 0; i < sc->_staticANIObjectList1.size(); i++) {
+ StaticANIObject *ani = (StaticANIObject *)sc->_staticANIObjectList1[i];
+
+ if (ani->_id == ANI_LIFTBUTTON) {
+ int id = lift_getButtonIdN(ani->_statics->_staticsId);
+
+ if (id == buttonId)
+ ani->_statics = ani->getStaticsById(id);
+ }
+ }
}
diff --git a/engines/fullpipe/scenes/scene38.cpp b/engines/fullpipe/scenes/scene38.cpp
index bf7c2a3..2c863f6 100644
--- a/engines/fullpipe/scenes/scene38.cpp
+++ b/engines/fullpipe/scenes/scene38.cpp
@@ -83,7 +83,7 @@ void scene38_initScene(Scene *sc) {
}
g_fp->lift_sub5(sc, QU_SC38_ENTERLIFT, QU_SC38_EXITLIFT);
- g_fp->lift_sub7(sc, ST_LBN_0N);
+ g_fp->lift_setButtonStatics(sc, ST_LBN_0N);
}
void sceneHandler38_tryTakeBottle() {
Commit: b2438f8d013ff75bab2d55d7d868fe53441a115e
https://github.com/scummvm/scummvm/commit/b2438f8d013ff75bab2d55d7d868fe53441a115e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-26T06:53:08-08:00
Commit Message:
FULLPIPE: Implement lift_init()
Changed paths:
engines/fullpipe/fullpipe.cpp
engines/fullpipe/fullpipe.h
engines/fullpipe/lift.cpp
engines/fullpipe/scenes/scene03.cpp
engines/fullpipe/scenes/scene06.cpp
engines/fullpipe/scenes/scene10.cpp
engines/fullpipe/scenes/scene14.cpp
engines/fullpipe/scenes/scene15.cpp
engines/fullpipe/scenes/scene30.cpp
engines/fullpipe/scenes/scene32.cpp
engines/fullpipe/scenes/scene34.cpp
engines/fullpipe/scenes/scene35.cpp
engines/fullpipe/scenes/scene38.cpp
diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp
index 578a40f..b1e366c 100644
--- a/engines/fullpipe/fullpipe.cpp
+++ b/engines/fullpipe/fullpipe.cpp
@@ -82,7 +82,12 @@ FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc)
_modalObject = 0;
+ _liftEnterMQ = 0;
+ _liftExitMQ = 0;
+ _lift = 0;
_lastLiftButton = 0;
+ _liftX = 0;
+ _liftY = 0;
_gameContinue = true;
_needRestart = false;
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index 09160db..1e58327 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -60,6 +60,7 @@ class GameProject;
class GameObject;
class GlobalMessageQueueList;
struct MessageHandler;
+class MessageQueue;
struct MovTable;
class MGM;
class NGIArchive;
@@ -270,12 +271,17 @@ public:
void getAllInventory();
StaticANIObject *_lastLiftButton;
+ MessageQueue *_liftEnterMQ;
+ MessageQueue *_liftExitMQ;
+ StaticANIObject *_lift;
+ int _liftX;
+ int _liftY;
int lift_getButtonIdP(int objid);
int lift_getButtonIdH(int objid);
int lift_getButtonIdN(int objid);
void lift_setButton(const char *name, int state);
- void lift_sub5(Scene *sc, int qu1, int qu2);
+ void lift_init(Scene *sc, int qu1, int qu2);
void lift_setButtonStatics(Scene *sc, int buttonId);
void lift_exitSeq(ExCommand *ex);
void lift_closedoorSeq();
diff --git a/engines/fullpipe/lift.cpp b/engines/fullpipe/lift.cpp
index 81d7d2d..4a5b124 100644
--- a/engines/fullpipe/lift.cpp
+++ b/engines/fullpipe/lift.cpp
@@ -25,8 +25,10 @@
#include "fullpipe/objects.h"
#include "fullpipe/objectnames.h"
#include "fullpipe/constants.h"
+
#include "fullpipe/scene.h"
#include "fullpipe/statics.h"
+#include "fullpipe/messages.h"
namespace Fullpipe {
@@ -168,8 +170,51 @@ void FullpipeEngine::lift_setButton(const char *name, int state) {
var->setSubVarAsInt(name, state);
}
-void FullpipeEngine::lift_sub5(Scene *sc, int qu1, int qu2) {
- warning("STUB: FullpipeEngine::lift_sub5()");
+void FullpipeEngine::lift_init(Scene *sc, int enterSeq, int exitSeq) {
+ _lastLiftButton = 0;
+
+ _liftEnterMQ = sc->getMessageQueueById(enterSeq);
+ if (!_liftEnterMQ)
+ return;
+
+ _liftExitMQ = sc->getMessageQueueById(exitSeq);
+
+ if (!_liftExitMQ)
+ return;
+
+ ExCommand *ex = _liftEnterMQ->getExCommandByIndex(0);
+
+ if (!ex)
+ return;
+
+ _liftX = ex->_x;
+ _liftY = ex->_y;
+
+ _lift = sc->getStaticANIObject1ById(ANI_LIFT, -1);
+
+ for (uint i = 0; i < sc->_staticANIObjectList1.size(); i++) {
+ StaticANIObject *ani = (StaticANIObject *)sc->_staticANIObjectList1[i];
+
+ if (ani->_id == ANI_LIFTBUTTON)
+ ani->_statics = ani->getStaticsById(lift_getButtonIdP(ani->_statics->_staticsId));
+ }
+
+ GameVar *var = getGameLoaderGameVar()->getSubVarByName("OBJSTATES")->getSubVarByName(sO_LiftButtons);
+ if (var) {
+ for (var = var->_subVars; var; var = var->_nextVarObj) {
+ for (uint i = 0; i < sc->_staticANIObjectList1.size(); i++) {
+ StaticANIObject *ani = (StaticANIObject *)sc->_staticANIObjectList1[i];
+
+ if (ani->_id == ANI_LIFTBUTTON) {
+ int id = lift_getButtonIdN(ani->_statics->_staticsId);
+
+ if (id == var->_value.intValue)
+ ani->_statics = ani->getStaticsById(id);
+ }
+
+ }
+ }
+ }
}
void FullpipeEngine::lift_exitSeq(ExCommand *ex) {
diff --git a/engines/fullpipe/scenes/scene03.cpp b/engines/fullpipe/scenes/scene03.cpp
index c706dad..9ba84a5 100644
--- a/engines/fullpipe/scenes/scene03.cpp
+++ b/engines/fullpipe/scenes/scene03.cpp
@@ -59,7 +59,7 @@ void scene03_initScene(Scene *sc) {
g_fp->lift_setButton(sO_Level2, ST_LBN_2N);
- g_fp->lift_sub5(sc, QU_SC3_ENTERLIFT, QU_SC3_EXITLIFT);
+ g_fp->lift_init(sc, QU_SC3_ENTERLIFT, QU_SC3_EXITLIFT);
}
void scene03_setEaterState() {
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 0c27151..7d637d8 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -531,7 +531,7 @@ void scene06_initScene(Scene *sc) {
g_vars->scene06_mumsy->hide();
g_fp->lift_setButton(sO_Level3, ST_LBN_3N);
- g_fp->lift_sub5(sc, QU_SC6_ENTERLIFT, QU_SC6_EXITLIFT);
+ g_fp->lift_init(sc, QU_SC6_ENTERLIFT, QU_SC6_EXITLIFT);
g_fp->initArcadeKeys("SC_6");
sceneHandler06_setExits(sc);
diff --git a/engines/fullpipe/scenes/scene10.cpp b/engines/fullpipe/scenes/scene10.cpp
index 6836cd6..9c00902 100644
--- a/engines/fullpipe/scenes/scene10.cpp
+++ b/engines/fullpipe/scenes/scene10.cpp
@@ -43,7 +43,7 @@ void scene10_initScene(Scene *sc) {
g_vars->scene10_ladder = sc->getPictureObjectById(PIC_SC10_LADDER, 0);
g_fp->lift_setButton(sO_Level1, ST_LBN_1N);
- g_fp->lift_sub5(sc, QU_SC10_ENTERLIFT, QU_SC10_EXITLIFT);
+ g_fp->lift_init(sc, QU_SC10_ENTERLIFT, QU_SC10_EXITLIFT);
if (g_fp->getObjectState(sO_Inflater) == g_fp->getObjectEnumState(sO_Inflater, sO_WithGum)) {
g_vars->scene10_hasGum = 1;
diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp
index e0618ee..ab04879 100644
--- a/engines/fullpipe/scenes/scene14.cpp
+++ b/engines/fullpipe/scenes/scene14.cpp
@@ -72,7 +72,7 @@ void scene14_initScene(Scene *sc) {
}
g_fp->lift_setButton(sO_Level4, ST_LBN_4N);
- g_fp->lift_sub5(sc, QU_SC14_ENTERLIFT, QU_SC14_EXITLIFT);
+ g_fp->lift_init(sc, QU_SC14_ENTERLIFT, QU_SC14_EXITLIFT);
g_fp->initArcadeKeys("SC_14");
g_fp->setArcadeOverlay(PIC_CSR_ARCADE6);
diff --git a/engines/fullpipe/scenes/scene15.cpp b/engines/fullpipe/scenes/scene15.cpp
index ece260d..1558976 100644
--- a/engines/fullpipe/scenes/scene15.cpp
+++ b/engines/fullpipe/scenes/scene15.cpp
@@ -88,7 +88,7 @@ void scene15_initScene(Scene *sc) {
g_fp->_currentScene = oldsc;
g_fp->lift_setButton(sO_Level5, ST_LBN_5N);
- g_fp->lift_sub5(sc, QU_SC15_ENTERLIFT, QU_SC15_EXITLIFT);
+ g_fp->lift_init(sc, QU_SC15_ENTERLIFT, QU_SC15_EXITLIFT);
}
int scene15_updateCursor() {
diff --git a/engines/fullpipe/scenes/scene30.cpp b/engines/fullpipe/scenes/scene30.cpp
index d115a70..a807e69 100644
--- a/engines/fullpipe/scenes/scene30.cpp
+++ b/engines/fullpipe/scenes/scene30.cpp
@@ -73,7 +73,7 @@ void scene30_initScene(Scene *sc, int flag) {
g_fp->lift_setButton(sO_Level8, ST_LBN_8N);
- g_fp->lift_sub5(sc, QU_SC30_ENTERLIFT, QU_SC30_EXITLIFT);
+ g_fp->lift_init(sc, QU_SC30_ENTERLIFT, QU_SC30_EXITLIFT);
}
int scene30_updateCursor() {
diff --git a/engines/fullpipe/scenes/scene32.cpp b/engines/fullpipe/scenes/scene32.cpp
index 87ecf22..597d342 100644
--- a/engines/fullpipe/scenes/scene32.cpp
+++ b/engines/fullpipe/scenes/scene32.cpp
@@ -88,7 +88,7 @@ void scene32_initScene(Scene *sc) {
}
g_fp->lift_setButton(sO_Level9, ST_LBN_9N);
- g_fp->lift_sub5(sc, QU_SC32_ENTERLIFT, QU_SC32_EXITLIFT);
+ g_fp->lift_init(sc, QU_SC32_ENTERLIFT, QU_SC32_EXITLIFT);
g_fp->initArcadeKeys("SC_32");
}
diff --git a/engines/fullpipe/scenes/scene34.cpp b/engines/fullpipe/scenes/scene34.cpp
index 72a289a..b3e0db7 100644
--- a/engines/fullpipe/scenes/scene34.cpp
+++ b/engines/fullpipe/scenes/scene34.cpp
@@ -92,7 +92,7 @@ void scene34_initScene(Scene *sc) {
g_fp->_floaters->init(g_fp->getGameLoaderGameVar()->getSubVarByName("SC_34"));
g_fp->lift_setButton(sO_Level7, ST_LBN_7N);
- g_fp->lift_sub5(sc, QU_SC34_ENTERLIFT, QU_SC34_EXITLIFT);
+ g_fp->lift_init(sc, QU_SC34_ENTERLIFT, QU_SC34_EXITLIFT);
g_fp->initArcadeKeys("SC_34");
}
diff --git a/engines/fullpipe/scenes/scene35.cpp b/engines/fullpipe/scenes/scene35.cpp
index ac8ed71..f10786b 100644
--- a/engines/fullpipe/scenes/scene35.cpp
+++ b/engines/fullpipe/scenes/scene35.cpp
@@ -64,7 +64,7 @@ void scene35_initScene(Scene *sc) {
g_fp->playSound(sndId, 1);
g_fp->lift_setButton(sO_Level6, ST_LBN_6N);
- g_fp->lift_sub5(sc, QU_SC35_ENTERLIFT, QU_SC35_EXITLIFT);
+ g_fp->lift_init(sc, QU_SC35_ENTERLIFT, QU_SC35_EXITLIFT);
g_fp->initArcadeKeys("SC_35");
diff --git a/engines/fullpipe/scenes/scene38.cpp b/engines/fullpipe/scenes/scene38.cpp
index 2c863f6..016dc83 100644
--- a/engines/fullpipe/scenes/scene38.cpp
+++ b/engines/fullpipe/scenes/scene38.cpp
@@ -82,7 +82,7 @@ void scene38_initScene(Scene *sc) {
g_vars->scene38_domino1->_flags &= 0xFFFB;
}
- g_fp->lift_sub5(sc, QU_SC38_ENTERLIFT, QU_SC38_EXITLIFT);
+ g_fp->lift_init(sc, QU_SC38_ENTERLIFT, QU_SC38_EXITLIFT);
g_fp->lift_setButtonStatics(sc, ST_LBN_0N);
}
More information about the Scummvm-git-logs
mailing list