[Scummvm-cvs-logs] scummvm master -> 1bf3f9aacffa3885f1ebfa0a614df1244823a82a
sev-
sev at scummvm.org
Wed Jan 29 22:55:16 CET 2014
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
30123a51d0 FULLPIPE: Implement lift_exitSeq()
1bf3f9aacf FULLPIPE: Implement MessageQueue::activateExCommandsByKind()
Commit: 30123a51d085e84a08e188cbabe4e70008278309
https://github.com/scummvm/scummvm/commit/30123a51d085e84a08e188cbabe4e70008278309
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-29T13:54:11-08:00
Commit Message:
FULLPIPE: Implement lift_exitSeq()
Changed paths:
engines/fullpipe/constants.h
engines/fullpipe/lift.cpp
engines/fullpipe/messages.cpp
engines/fullpipe/messages.h
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index b2ed962..788ff84 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -39,6 +39,8 @@ namespace Fullpipe {
#define MSG_MANSHADOWSOFF 5196
#define MSG_MANSHADOWSON 5197
#define MV_FLY_FLY 4917
+#define MV_LFT_CLOSE 1053
+#define MV_LFT_OPEN 1048
#define MV_MAN_GOLADDER 451
#define MV_MAN_GOLADDER2 2844
#define MV_MAN_LIFTDOWN 1052
@@ -47,6 +49,7 @@ namespace Fullpipe {
#define rMV_MAN_LOOKUP 4775
#define MV_MAN_TOLADDER 448
#define MV_MAN_TOLADDER2 2841
+#define MV_MAN_STARTD 478
#define MV_MAN_STARTLADDER 452
#define MV_MAN_STARTLADDER2 2842
#define MV_MAN_STOPLADDER 454
@@ -251,6 +254,7 @@ namespace Fullpipe {
#define ST_LBN_7P 2772
#define ST_LBN_8P 2775
#define ST_LBN_9P 2778
+#define ST_LFT_CLOSED 1049
#define ST_MAN_EMPTY 476
#define ST_MAN_GOU 459
#define ST_MAN_RIGHT 325
diff --git a/engines/fullpipe/lift.cpp b/engines/fullpipe/lift.cpp
index 6484aca..a2918c0 100644
--- a/engines/fullpipe/lift.cpp
+++ b/engines/fullpipe/lift.cpp
@@ -218,8 +218,63 @@ void FullpipeEngine::lift_init(Scene *sc, int enterSeq, int exitSeq) {
}
}
-void FullpipeEngine::lift_exitSeq(ExCommand *ex) {
- warning("STUB: FullpipeEngine::lift_exitSeq()");
+void FullpipeEngine::lift_exitSeq(ExCommand *cmd) {
+ if (cmd)
+ _globalMessageQueueList->getMessageQueueById(cmd->_parId)->activateExCommandsByKind(34);
+
+ _lift->changeStatics2(ST_LFT_CLOSED);
+
+ MessageQueue *mq = new MessageQueue(_globalMessageQueueList->compact());
+
+ ExCommand *ex = new ExCommand(_aniMan->_id, 34, 256, 0, 0, 0, 1, 0, 0, 0);
+
+ ex->_field_14 = 256;
+ ex->_messageNum = 256;
+ ex->_excFlags |= 3;
+ mq->addExCommandToEnd(ex);
+
+ if (!ex) {
+ ex = new ExCommand(_aniMan->_id, 2, 40, 0, 0, 0, 1, 0, 0, 0);
+ ex->_keyCode = _aniMan->_okeyCode;
+ ex->_excFlags |= 2;
+ mq->addExCommandToEnd(ex);
+ }
+
+ ex = new ExCommand(_lift->_id, 1, MV_LFT_OPEN, 0, 0, 0, 1, 0, 0, 0);
+ ex->_keyCode = _lift->_okeyCode;
+ ex->_excFlags |= 2;
+ mq->addExCommandToEnd(ex);
+
+ ex = new ExCommand(_aniMan->_id, 1, MV_MAN_STARTD, 0, 0, 0, 1, 0, 0, 0);
+ ex->_keyCode = _aniMan->_okeyCode;
+ ex->_excFlags |= 2;
+ mq->addExCommandToEnd(ex);
+
+ ex = new ExCommand(_aniMan->_id, 5, -1, 0, 0, 0, 1, 0, 0, 0);
+ ex->_keyCode = _aniMan->_okeyCode;
+ ex->_field_14 = 10;
+ ex->_x = -1;
+ ex->_y = -1;
+ ex->_excFlags |= 3;
+ mq->addExCommandToEnd(ex);
+
+ ex = new ExCommand(_aniMan->_id, 34, 256, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags |= 3;
+ ex->_field_14 = 256;
+ ex->_messageNum = 0;
+ mq->addExCommandToEnd(ex);
+
+ ex = new ExCommand(0, 17, MSG_LIFT_STARTEXITQUEUE, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags |= 3;
+ mq->addExCommandToEnd(ex);
+
+ ex = new ExCommand(_lift->_id, 1, MV_LFT_CLOSE, 0, 0, 0, 1, 0, 0, 0);
+ ex->_keyCode = _lift->_okeyCode;
+ ex->_excFlags |= 2;
+
+ mq->addExCommandToEnd(ex);
+
+ mq->chain(0);
}
void FullpipeEngine::lift_closedoorSeq() {
diff --git a/engines/fullpipe/messages.cpp b/engines/fullpipe/messages.cpp
index 7dfdd06..6906c68 100644
--- a/engines/fullpipe/messages.cpp
+++ b/engines/fullpipe/messages.cpp
@@ -619,6 +619,12 @@ MessageQueue *GlobalMessageQueueList::getMessageQueueById(int id) {
return 0;
}
+int MessageQueue::activateExCommandsByKind(int kind) {
+ warning("STUB: MessageQueue::activateExCommandsByKind()");
+
+ return 0;
+}
+
void GlobalMessageQueueList::deleteQueueById(int id) {
for (uint i = 0; i < size(); i++)
if (_storage[i]->_id == id) {
diff --git a/engines/fullpipe/messages.h b/engines/fullpipe/messages.h
index 33bb827..f8e9d16 100644
--- a/engines/fullpipe/messages.h
+++ b/engines/fullpipe/messages.h
@@ -158,6 +158,8 @@ class MessageQueue : public CObject {
int calcDuration(StaticANIObject *obj);
void changeParam28ForObjectId(int objId, int oldParam28, int newParam28);
+
+ int activateExCommandsByKind(int kind);
};
class GlobalMessageQueueList : public Common::Array<MessageQueue *> {
Commit: 1bf3f9aacffa3885f1ebfa0a614df1244823a82a
https://github.com/scummvm/scummvm/commit/1bf3f9aacffa3885f1ebfa0a614df1244823a82a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-29T13:54:11-08:00
Commit Message:
FULLPIPE: Implement MessageQueue::activateExCommandsByKind()
Changed paths:
engines/fullpipe/messages.cpp
diff --git a/engines/fullpipe/messages.cpp b/engines/fullpipe/messages.cpp
index 6906c68..55b5daa 100644
--- a/engines/fullpipe/messages.cpp
+++ b/engines/fullpipe/messages.cpp
@@ -610,6 +610,23 @@ void MessageQueue::changeParam28ForObjectId(int objId, int oldParam28, int newPa
}
}
+int MessageQueue::activateExCommandsByKind(int kind) {
+ int res = 0;
+
+ for (uint i = 0; i < getCount(); i++) {
+ ExCommand *ex = getExCommandByIndex(i);
+
+ if (ex->_messageKind == kind) {
+ ex->_messageKind = 0;
+ ex->_excFlags |= 1;
+
+ res++;
+ }
+ }
+
+ return res;
+}
+
MessageQueue *GlobalMessageQueueList::getMessageQueueById(int id) {
for (Common::Array<MessageQueue *>::iterator s = begin(); s != end(); ++s) {
if ((*s)->_id == id)
@@ -619,12 +636,6 @@ MessageQueue *GlobalMessageQueueList::getMessageQueueById(int id) {
return 0;
}
-int MessageQueue::activateExCommandsByKind(int kind) {
- warning("STUB: MessageQueue::activateExCommandsByKind()");
-
- return 0;
-}
-
void GlobalMessageQueueList::deleteQueueById(int id) {
for (uint i = 0; i < size(); i++)
if (_storage[i]->_id == id) {
More information about the Scummvm-git-logs
mailing list