[Scummvm-cvs-logs] scummvm master -> 5c9f46b88d368743d35ee266d633f51cb0110c3b

sev- sev at scummvm.org
Wed Jan 1 14:28:02 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:
db98d92325 FULLPIPE: Implement sceneHandler16_putOnWheel()
5c9f46b88d FULLPIPE: Implement sceneHandler16_drink()


Commit: db98d92325b3b7b526d5bd3c5fe1fa3a2f01b084
    https://github.com/scummvm/scummvm/commit/db98d92325b3b7b526d5bd3c5fe1fa3a2f01b084
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T05:08:58-08:00

Commit Message:
FULLPIPE: Implement sceneHandler16_putOnWheel()

Changed paths:
    engines/fullpipe/constants.h
    engines/fullpipe/scenes/scene16.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index fa90756..fcd974e 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -671,6 +671,8 @@ namespace Fullpipe {
 #define QU_SC16_BOYOUT 1364
 #define QU_SC16_GIRLLAUGH 1375
 #define QU_SC16_GIRLOUT 1365
+#define QU_SC16_GOBOY 1347
+#define QU_SC16_GOGIRL 1348
 #define QU_SC16_SHOWMUG 1361
 #define SND_16_034 3854
 #define SND_16_035 3855
diff --git a/engines/fullpipe/scenes/scene16.cpp b/engines/fullpipe/scenes/scene16.cpp
index dafb932..fd764c2 100644
--- a/engines/fullpipe/scenes/scene16.cpp
+++ b/engines/fullpipe/scenes/scene16.cpp
@@ -296,8 +296,42 @@ void sceneHandler16_showWire() {
 	g_vars->scene16_wire->show1(-1, -1, -1, 0);
 }
 
-void sceneHandler16_sub01() {
-	warning("STUB: sceneHandler16_sub01()");
+void sceneHandler16_putOnWheel() {
+	StaticANIObject *ani = g_vars->scene16_var06;
+
+	if (!ani)
+		ani = g_vars->scene16_var07;
+
+	if (ani)
+		g_vars->scene16_var05.push_back(ani);
+
+	ani = g_vars->scene16_var05.front();
+
+	g_vars->scene16_var05.pop_front();
+
+	if (ani) {
+		MessageQueue *mq;
+
+		if (ani->_id == ANI_BOY) {
+			mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC16_GOBOY), 0, 1);
+
+			mq->replaceKeyCode(-1, ani->_okeyCode);
+			mq->chain(0);
+
+			g_vars->scene16_var06 = ani;
+			g_vars->scene16_var07 = 0;
+		} else if (ani->_id == ANI_GIRL) {
+			if (g_fp->getObjectState(sO_Girl) == g_fp->getObjectEnumState(sO_Girl, sO_IsSwinging)) {
+				mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC16_GOGIRL), 0, 1);
+
+				mq->replaceKeyCode(-1, ani->_okeyCode);
+				mq->chain(0);
+
+				g_vars->scene16_var06 = 0;
+				g_vars->scene16_var07 = ani;
+			}
+		}
+	}
 }
 
 void sceneHandler16_girlROTFL() {
@@ -387,7 +421,7 @@ int sceneHandler16(ExCommand *cmd) {
 			g_vars->scene16_var08++;
 
 			if (g_vars->scene16_var08 < 280) {
-				sceneHandler16_sub01();
+				sceneHandler16_putOnWheel();
 
 				g_vars->scene16_var08 = 0;
 			}


Commit: 5c9f46b88d368743d35ee266d633f51cb0110c3b
    https://github.com/scummvm/scummvm/commit/5c9f46b88d368743d35ee266d633f51cb0110c3b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-01T05:27:30-08:00

Commit Message:
FULLPIPE: Implement sceneHandler16_drink()

Changed paths:
    engines/fullpipe/constants.h
    engines/fullpipe/messages.cpp
    engines/fullpipe/messages.h
    engines/fullpipe/scenes/scene16.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index fcd974e..07b761b 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -660,7 +660,9 @@ namespace Fullpipe {
 #define MSG_SC16_SHOWMUGFULL 1396
 #define MSG_SC16_SHOWWIRE 1350
 #define MSG_SC16_STARTLAUGH 1374
+#define MV_BOY_DRINK 1333
 #define MV_BT16_FILL 3286
+#define MV_GRL_DRINK 1339
 #define MV_GRL_FALL 3115
 #define MV_GRL_LAUGH_POPA 3278
 #define MV_JTI_FLOWBY 1393
@@ -668,15 +670,19 @@ namespace Fullpipe {
 #define MV_MAN16_TAKEMUG 1362
 #define PIC_SC16_TUMBA 1368
 #define QU_BRD16_STARTBEARDED 4948
+#define QU_SC16_BOYKICK 1367
 #define QU_SC16_BOYOUT 1364
 #define QU_SC16_GIRLLAUGH 1375
 #define QU_SC16_GIRLOUT 1365
 #define QU_SC16_GOBOY 1347
 #define QU_SC16_GOGIRL 1348
+#define QU_SC16_MANDRINK 5200
 #define QU_SC16_SHOWMUG 1361
+#define QU_SC16_TAKEMUG 1435
 #define SND_16_034 3854
 #define SND_16_035 3855
 #define SND_16_037 3857
+#define ST_BOY_STAND 1331
 #define ST_GRL_LAUGH 1342
 #define ST_GRL_STAND 1337
 #define ST_MUG_EMPTY 1298
diff --git a/engines/fullpipe/messages.cpp b/engines/fullpipe/messages.cpp
index 36b89f8..cdb457e 100644
--- a/engines/fullpipe/messages.cpp
+++ b/engines/fullpipe/messages.cpp
@@ -331,6 +331,10 @@ void MessageQueue::addExCommandToEnd(ExCommand *ex) {
 	_exCommands.push_back(ex);
 }
 
+void MessageQueue::insertExCommandAt(int pos, ExCommand *ex) {
+	warning("STUB: MessageQueue::insertExCommandAt()");
+}
+
 ExCommand *MessageQueue::getExCommandByIndex(uint idx) {
 	if (idx >= getCount())
 		return 0;
diff --git a/engines/fullpipe/messages.h b/engines/fullpipe/messages.h
index 44245bc..30ded96 100644
--- a/engines/fullpipe/messages.h
+++ b/engines/fullpipe/messages.h
@@ -124,6 +124,7 @@ class MessageQueue : public CObject {
 
 	void addExCommand(ExCommand *ex);
 	void addExCommandToEnd(ExCommand *ex);
+	void insertExCommandAt(int pos, ExCommand *ex);
 	ExCommand *getExCommandByIndex(uint idx);
 	void deleteExCommandByIndex(uint idx, bool doFree);
 
diff --git a/engines/fullpipe/scenes/scene16.cpp b/engines/fullpipe/scenes/scene16.cpp
index fd764c2..1ba4920 100644
--- a/engines/fullpipe/scenes/scene16.cpp
+++ b/engines/fullpipe/scenes/scene16.cpp
@@ -245,8 +245,58 @@ void sceneHandler16_startLaugh() {
 	g_vars->scene16_var09 = 1;
 }
 
-void sceneHandler16_sub02() {
-	warning("STUB: sceneHandler16_sub02()");
+void sceneHandler16_drink() {
+	if (g_vars->scene16_mug->_flags & 4) {
+		if (!g_vars->scene16_jettie->_movement) {
+			if (!g_vars->scene16_var06 || !g_vars->scene16_var06->_movement || g_vars->scene16_var06->_movement->_id != MV_BOY_DRINK) {
+				if (!g_vars->scene16_var07 || !g_vars->scene16_var07->_movement || g_vars->scene16_var07->_movement->_id != MV_GRL_DRINK) {
+					if (g_vars->scene16_mug->_statics->_staticsId == ST_MUG_FULL) {
+						MessageQueue *mq;
+						ExCommand *ex;
+
+						if (g_vars->scene16_var06) {
+							g_fp->_aniMan->_flags |= 0x180;
+
+							g_vars->scene16_var06->changeStatics2(ST_BOY_STAND);
+							g_vars->scene16_var06->queueMessageQueue(0);
+
+							mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC16_BOYKICK), 0, 1);
+
+							mq->replaceKeyCode(-1, g_vars->scene16_var06->_okeyCode);
+							
+							ex = new ExCommand(ANI_MAN, 34, 384, 0, 0, 0, 1, 0, 0, 0);
+							ex->_excFlags |= 3u;
+							ex->_field_14 = 384;
+							ex->_messageNum = 0;
+
+							mq->insertExCommandAt(2, ex);
+							mq->setFlags(mq->getFlags() | 1);
+							mq->chain(0);
+						} else {
+							g_fp->_aniMan->_flags |= 1;
+
+							mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC16_MANDRINK), 0, 1);
+
+							ex = new ExCommand(ANI_MAN, 34, 256, 0, 0, 0, 1, 0, 0, 0);
+							ex->_excFlags |= 3u;
+							ex->_field_14 = 256;
+							ex->_messageNum = 0;
+
+							mq->addExCommandToEnd(ex);
+							mq->setFlags(mq->getFlags() | 1);
+							mq->chain(0);
+
+							g_fp->_currentScene->getStaticANIObject1ById(ANI_GIRL, -1)->changeStatics2(ST_GRL_STAND);
+						}
+
+						g_fp->_currentScene->getStaticANIObject1ById(ANI_WIRE16, -1)->show1(-1, -1, -1, 0);
+					} else {
+						chainObjQueue(g_fp->_aniMan, QU_SC16_TAKEMUG, 1);
+					}
+				}
+			}
+		}
+	}
 }
 
 void sceneHandler16_mugClick() {
@@ -262,7 +312,7 @@ void sceneHandler16_mugClick() {
 			postExCommand(g_fp->_aniMan->_id, 2, 310, 449, 0, -1);
 		}
 	} else {
-		sceneHandler16_sub02();
+		sceneHandler16_drink();
 	}
 }
 






More information about the Scummvm-git-logs mailing list