[Scummvm-cvs-logs] scummvm master -> fefd46c60c94c20261d910e22de767fba3dcbcc7

dreammaster dreammaster at scummvm.org
Sat Aug 29 03:32:45 CEST 2015


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:
fefd46c60c SHERLOCK: RT: Workaround for monkey cap cutscene ending too quickly


Commit: fefd46c60c94c20261d910e22de767fba3dcbcc7
    https://github.com/scummvm/scummvm/commit/fefd46c60c94c20261d910e22de767fba3dcbcc7
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-08-28T21:27:17-04:00

Commit Message:
SHERLOCK: RT: Workaround for monkey cap cutscene ending too quickly

Somewhat unusually, the cutscene for the monkey stealing Hodgkins
cap (wilb29a.tlk) is ended immediately after they both run off-screen,
but the characters aren't properly marked as hidden until several
seconds later when another script, 30cuend, is called. If a user
saved the game really quickly before 30cuend is fired, it can leave
the game in an in-consistent state. This commit fixes that by forcing
the WAIT cursor to remain active until 30cuend has executed.

Changed paths:
    engines/sherlock/tattoo/tattoo_talk.cpp



diff --git a/engines/sherlock/tattoo/tattoo_talk.cpp b/engines/sherlock/tattoo/tattoo_talk.cpp
index 7c57605..98bf452 100644
--- a/engines/sherlock/tattoo/tattoo_talk.cpp
+++ b/engines/sherlock/tattoo/tattoo_talk.cpp
@@ -184,7 +184,22 @@ TattooTalk::TattooTalk(SherlockEngine *vm) : Talk(vm), _talkWidget(vm), _passwor
 }
 
 void TattooTalk::talkTo(const Common::String filename) {
+	Events &events = *_vm->_events;
+	TattooUserInterface &ui = *(TattooUserInterface *)_vm->_ui;
+
+	// WORKAROUND: Keep wait cursor active until very end of the cutscene of the monkey
+	// stealing the cap, which is finished by calling the 30cuend script
+	if (filename == "wilb29a")
+		events.incWaitCounter();
+
 	Talk::talkTo(filename);
+
+	if (filename == "wilb29a")
+		ui._menuMode = TALK_MODE;
+	if (filename == "30cuend") {
+		events.decWaitCounter();
+		events.setCursor(ARROW);
+	}
 }
 
 void TattooTalk::talkInterface(const byte *&str) {






More information about the Scummvm-git-logs mailing list