[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