[Scummvm-cvs-logs] scummvm master -> d8e57490a5bf1d37ac579788b22fd1b3c30dc051
m-kiewitz
m_kiewitz at users.sourceforge.net
Sat Jun 13 21:16:41 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:
d8e57490a5 SHERLOCK: 3DO: movie playback for script events
Commit: d8e57490a5bf1d37ac579788b22fd1b3c30dc051
https://github.com/scummvm/scummvm/commit/d8e57490a5bf1d37ac579788b22fd1b3c30dc051
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2015-06-13T21:15:34+02:00
Commit Message:
SHERLOCK: 3DO: movie playback for script events
also added debug information output
Changed paths:
engines/sherlock/scalpel/scalpel_talk.cpp
engines/sherlock/scalpel/scalpel_talk.h
engines/sherlock/scalpel/scalpel_user_interface.cpp
engines/sherlock/talk.cpp
engines/sherlock/talk.h
diff --git a/engines/sherlock/scalpel/scalpel_talk.cpp b/engines/sherlock/scalpel/scalpel_talk.cpp
index 3a5ac67..9003eb5 100644
--- a/engines/sherlock/scalpel/scalpel_talk.cpp
+++ b/engines/sherlock/scalpel/scalpel_talk.cpp
@@ -524,15 +524,32 @@ void ScalpelTalk::talkWait(const byte *&str) {
}
}
-void ScalpelTalk::talk3DOMovieTrigger(int selector, int subIndex) {
+void ScalpelTalk::talk3DOMovieTrigger(int subIndex) {
if (_vm->getPlatform() != Common::kPlatform3DO) {
// No 3DO? No movie!
return;
}
// Find out a few things that we need
+ int userSelector = _vm->_ui->_selector;
+ int scriptSelector = _scriptSelect;
+ int selector = 0;
int roomNr = _vm->_scene->_currentScene;
+ if (userSelector >= 0) {
+ // User-selected dialog
+ selector = userSelector;
+ } else {
+ if (scriptSelector >= 0) {
+ // Script-selected dialog
+ selector = scriptSelector;
+ subIndex--; // for scripts we adjust subIndex, b/c we won't get called from doTalkControl()
+ } else {
+ warning("talk3DOMovieTrigger: unable to find selector");
+ return;
+ }
+ }
+
// Make a quick update, so that current text is shown on screen
_vm->_screen->update();
@@ -546,6 +563,12 @@ void ScalpelTalk::talk3DOMovieTrigger(int selector, int subIndex) {
movieFilename.insertChar(subIndex + 'a', movieFilename.size());
movieFilename = Common::String::format("movies/%02d/%s.stream", roomNr, movieFilename.c_str());
+ warning("3DO movie player:");
+ warning("room: %d", roomNr);
+ warning("script: %s", _scriptName.c_str());
+ warning("selector: %d", selector);
+ warning("subindex: %d", subIndex);
+
Scalpel3DOMoviePlay(movieFilename.c_str(), Common::Point(5, 5));
// Restore screen HACK
diff --git a/engines/sherlock/scalpel/scalpel_talk.h b/engines/sherlock/scalpel/scalpel_talk.h
index 3a94fbc..2f8e412 100644
--- a/engines/sherlock/scalpel/scalpel_talk.h
+++ b/engines/sherlock/scalpel/scalpel_talk.h
@@ -66,7 +66,7 @@ protected:
/**
* Trigger to play a 3DO talk dialog movie
*/
- virtual void talk3DOMovieTrigger(int selector, int subIndex);
+ virtual void talk3DOMovieTrigger(int subIndex);
public:
ScalpelTalk(SherlockEngine *vm);
diff --git a/engines/sherlock/scalpel/scalpel_user_interface.cpp b/engines/sherlock/scalpel/scalpel_user_interface.cpp
index c8d9aee..302e958 100644
--- a/engines/sherlock/scalpel/scalpel_user_interface.cpp
+++ b/engines/sherlock/scalpel/scalpel_user_interface.cpp
@@ -1641,7 +1641,7 @@ void ScalpelUserInterface::doTalkControl() {
}
// Trigger to play 3DO movie
- talk.talk3DOMovieTrigger(_selector, 0);
+ talk.talk3DOMovieTrigger(0);
talk.waitForMore(talk._statements[_selector]._statement.size());
if (talk._talkToAbort)
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp
index 1a27f8e..2fe9f35 100644
--- a/engines/sherlock/talk.cpp
+++ b/engines/sherlock/talk.cpp
@@ -1079,8 +1079,7 @@ void Talk::doScript(const Common::String &script) {
if (_wait) {
// Trigger to play 3DO movie
- int selector = _vm->_ui->_selector;
- talk3DOMovieTrigger(selector, subIndex);
+ talk3DOMovieTrigger(subIndex);
subIndex++;
}
diff --git a/engines/sherlock/talk.h b/engines/sherlock/talk.h
index aea2800..6695e4e 100644
--- a/engines/sherlock/talk.h
+++ b/engines/sherlock/talk.h
@@ -267,7 +267,7 @@ protected:
/**
* Trigger to play a 3DO talk dialog movie
*/
- virtual void talk3DOMovieTrigger(int selector, int subIndex) {};
+ virtual void talk3DOMovieTrigger(int subIndex) {};
public:
TalkSequence _talkSequenceStack[TALK_SEQUENCE_STACK_SIZE];
More information about the Scummvm-git-logs
mailing list