[Scummvm-git-logs] scummvm master -> bb5db9de27260c21c42442d55b4f8cae9b340bae

dreammaster dreammaster at scummvm.org
Mon Feb 20 22:44:53 CET 2017


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
bb5db9de27 TITANIC: Wait for parrot speech to end before waking Titania


Commit: bb5db9de27260c21c42442d55b4f8cae9b340bae
    https://github.com/scummvm/scummvm/commit/bb5db9de27260c21c42442d55b4f8cae9b340bae
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-02-20T16:44:45-05:00

Commit Message:
TITANIC: Wait for parrot speech to end before waking Titania

Changed paths:
    engines/titanic/npcs/parrot.cpp
    engines/titanic/npcs/parrot.h
    engines/titanic/npcs/titania.cpp


diff --git a/engines/titanic/npcs/parrot.cpp b/engines/titanic/npcs/parrot.cpp
index 223f6b4..6a48837 100644
--- a/engines/titanic/npcs/parrot.cpp
+++ b/engines/titanic/npcs/parrot.cpp
@@ -43,6 +43,7 @@ BEGIN_MESSAGE_MAP(CParrot, CTrueTalkNPC)
 	ON_MESSAGE(PreEnterViewMsg)
 	ON_MESSAGE(PanningAwayFromParrotMsg)
 	ON_MESSAGE(LeaveRoomMsg)
+	ON_MESSAGE(TrueTalkNotifySpeechEndedMsg)
 END_MESSAGE_MAP()
 
 bool CParrot::_eatingChicken;
@@ -729,4 +730,15 @@ bool CParrot::LeaveRoomMsg(CLeaveRoomMsg *msg) {
 	return true;
 }
 
+bool CParrot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg) {
+	if (msg->_dialogueId == 80022) {
+		// WORKAROUND: End of parrot speech after having fixed Titania
+		unlockMouse();
+		changeView("Titania.Node 18.N", "");
+	}
+
+	return CTrueTalkNPC::TrueTalkNotifySpeechEndedMsg(msg);
+}
+
+
 } // End of namespace Titanic
diff --git a/engines/titanic/npcs/parrot.h b/engines/titanic/npcs/parrot.h
index c178a20..d3558df 100644
--- a/engines/titanic/npcs/parrot.h
+++ b/engines/titanic/npcs/parrot.h
@@ -51,6 +51,7 @@ class CParrot : public CTrueTalkNPC {
 	bool PreEnterViewMsg(CPreEnterViewMsg *msg);
 	bool PanningAwayFromParrotMsg(CPanningAwayFromParrotMsg *msg);
 	bool LeaveRoomMsg(CLeaveRoomMsg *msg);
+	bool TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg);
 public:
 	static bool _eatingChicken;
 	static bool _takeOff;
diff --git a/engines/titanic/npcs/titania.cpp b/engines/titanic/npcs/titania.cpp
index db0c85d..b961e0d 100644
--- a/engines/titanic/npcs/titania.cpp
+++ b/engines/titanic/npcs/titania.cpp
@@ -99,7 +99,7 @@ bool CTitania::AddHeadPieceMsg(CAddHeadPieceMsg *msg) {
 		_eye2 = true;
 	} else if (msg->_value == "Ear1") {
 		_ear1 = true;
-	} else if (msg->_value == "Ear2") {
+	} else if (msg->_value == "Ear 2") {
 		_ear2 = true;
 	} else if (msg->_value == "Mouth") {
 		_mouth = true;
@@ -216,8 +216,11 @@ bool CTitania::EnterViewMsg(CEnterViewMsg *msg) {
 }
 
 bool CTitania::TimerMsg(CTimerMsg *msg) {
-	changeView("Titania.Node 18.N", "");
+	// WORKAROUND: The original uses the disc change dialog as a pause
+	// to allow the parrot speech to finish. I've rewritten it to instead
+	// use the standard TrueTalkNotifySpeechEndedMsg message instead
 	startTalking("PerchedParrot", 80022);
+	lockMouse();
 
 	return true;
 }





More information about the Scummvm-git-logs mailing list