[Scummvm-cvs-logs] scummvm master -> 654155bbe0db06ff23adbba748bc1c749c4f7e4c
dreammaster
dreammaster at scummvm.org
Tue Oct 6 04:48:09 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:
654155bbe0 SHERLOCK: SS: Fix garbage text in German version conversation
Commit: 654155bbe0db06ff23adbba748bc1c749c4f7e4c
https://github.com/scummvm/scummvm/commit/654155bbe0db06ff23adbba748bc1c749c4f7e4c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-10-05T22:47:14-04:00
Commit Message:
SHERLOCK: SS: Fix garbage text in German version conversation
Talking to Watson in the Alleyway scene can result in the text
"Change Speaker to Sherlock Holmes" appearing mid-conversation,
even in DosBox. This workaround fixes this by skipping the text.
Changed paths:
engines/sherlock/journal.cpp
engines/sherlock/scalpel/scalpel_journal.cpp
engines/sherlock/scalpel/scalpel_journal.h
engines/sherlock/scalpel/scalpel_talk.cpp
diff --git a/engines/sherlock/journal.cpp b/engines/sherlock/journal.cpp
index 44b966f..d5d0295 100644
--- a/engines/sherlock/journal.cpp
+++ b/engines/sherlock/journal.cpp
@@ -525,6 +525,9 @@ void Journal::loadJournalFile(bool alreadyLoaded) {
else
journalString += people._characters[c]._name;
+ if (IS_SERRATED_SCALPEL && _vm->getLanguage() == Common::DE_DEU)
+ Scalpel::ScalpelJournal::skipBadText(replyP);
+
const byte *strP = replyP;
byte v;
do {
diff --git a/engines/sherlock/scalpel/scalpel_journal.cpp b/engines/sherlock/scalpel/scalpel_journal.cpp
index 787d899..e068e3b 100644
--- a/engines/sherlock/scalpel/scalpel_journal.cpp
+++ b/engines/sherlock/scalpel/scalpel_journal.cpp
@@ -631,6 +631,14 @@ void ScalpelJournal::record(int converseNum, int statementNum, bool replyOnly) {
Journal::record(converseNum, statementNum, replyOnly);
}
+void ScalpelJournal::skipBadText(const byte *&msgP) {
+ // WORKAROUND: Skip over bad text in the original game
+ const char *BAD_PHRASE1 = "Change Speaker to Sherlock Holmes ";
+
+ if (!strncmp((const char *)msgP, BAD_PHRASE1, strlen(BAD_PHRASE1)))
+ msgP += strlen(BAD_PHRASE1);
+}
+
} // End of namespace Scalpel
} // End of namespace Sherlock
diff --git a/engines/sherlock/scalpel/scalpel_journal.h b/engines/sherlock/scalpel/scalpel_journal.h
index c8e9c01..2f64141 100644
--- a/engines/sherlock/scalpel/scalpel_journal.h
+++ b/engines/sherlock/scalpel/scalpel_journal.h
@@ -71,6 +71,11 @@ public:
void drawInterface();
/**
+ * Handles skipping over bad text in conversations
+ */
+ static void skipBadText(const byte *&msgP);
+
+ /**
* Handle events whilst the journal is being displayed
*/
bool handleEvents(int key);
diff --git a/engines/sherlock/scalpel/scalpel_talk.cpp b/engines/sherlock/scalpel/scalpel_talk.cpp
index 88a718e..0458c30 100644
--- a/engines/sherlock/scalpel/scalpel_talk.cpp
+++ b/engines/sherlock/scalpel/scalpel_talk.cpp
@@ -22,6 +22,7 @@
#include "sherlock/scalpel/scalpel_talk.h"
#include "sherlock/scalpel/scalpel_fixed_text.h"
+#include "sherlock/scalpel/scalpel_journal.h"
#include "sherlock/scalpel/scalpel_map.h"
#include "sherlock/scalpel/scalpel_people.h"
#include "sherlock/scalpel/scalpel_scene.h"
@@ -189,6 +190,9 @@ void ScalpelTalk::talkInterface(const byte *&str) {
ScalpelScreen &screen = *(ScalpelScreen *)_vm->_screen;
UserInterface &ui = *_vm->_ui;
+ if (_vm->getLanguage() == Common::DE_DEU)
+ ScalpelJournal::skipBadText(str);
+
// If the window isn't yet open, draw the window before printing starts
if (!ui._windowOpen && _noTextYet) {
_noTextYet = false;
More information about the Scummvm-git-logs
mailing list