[Scummvm-cvs-logs] SF.net SVN: scummvm:[48697] scummvm/trunk/engines/sci

waltervn at users.sourceforge.net waltervn at users.sourceforge.net
Sun Apr 18 02:56:05 CEST 2010


Revision: 48697
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48697&view=rev
Author:   waltervn
Date:     2010-04-18 00:56:04 +0000 (Sun, 18 Apr 2010)

Log Message:
-----------
SCI: Don't add subtitles for monolingual strings.

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/state.cpp
    scummvm/trunk/engines/sci/sci.h

Modified: scummvm/trunk/engines/sci/engine/state.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/state.cpp	2010-04-17 23:57:50 UTC (rev 48696)
+++ scummvm/trunk/engines/sci/engine/state.cpp	2010-04-18 00:56:04 UTC (rev 48697)
@@ -124,7 +124,7 @@
 	}
 }
 
-Common::String SciEngine::getSciLanguageString(const char *str, kLanguage lang) const {
+Common::String SciEngine::getSciLanguageString(const char *str, kLanguage lang, kLanguage *lang2) const {
 	kLanguage secondLang = K_LANG_NONE;
 
 	const char *seeker = str;
@@ -139,10 +139,9 @@
 		seeker++;
 	}
 
-	//if ((secondLang == K_LANG_JAPANESE) && (*(seeker + 1) == 'J')) {
-	//	// FIXME: Add Kanji support
-	//	lang = K_LANG_ENGLISH;
-	//}
+	// Return the secondary language found in the string
+	if (lang2)
+		*lang2 = secondLang;
 
 	if (secondLang == lang)
 		return Common::String(seeker + 2);
@@ -211,9 +210,16 @@
 		subLang = (kLanguage)GET_SEL32V(_gamestate->_segMan, _gamestate->_gameObj, SELECTOR(subtitleLang));
 	}
 
-	Common::String retval = getSciLanguageString(str, lang);
+	kLanguage secondLang;
+	Common::String retval = getSciLanguageString(str, lang, &secondLang);
 
-	if ((subLang != K_LANG_NONE) && (sep != NULL)) {
+	// Don't add subtitle when separator is not set, subtitle language is not set, or
+	// string contains only one language
+	if ((sep == NULL) || (subLang == K_LANG_NONE) || (secondLang == K_LANG_NONE))
+		return retval;
+
+	// Add subtitle, unless the subtitle language doesn't match the languages in the string
+	if ((subLang == K_LANG_ENGLISH) || (subLang == secondLang)) {
 		retval += sep;
 		retval += getSciLanguageString(str, subLang);
 	}

Modified: scummvm/trunk/engines/sci/sci.h
===================================================================
--- scummvm/trunk/engines/sci/sci.h	2010-04-17 23:57:50 UTC (rev 48696)
+++ scummvm/trunk/engines/sci/sci.h	2010-04-18 00:56:04 UTC (rev 48697)
@@ -190,7 +190,7 @@
 
 	kLanguage getSciLanguage();
 
-	Common::String getSciLanguageString(const char *str, kLanguage lang) const;
+	Common::String getSciLanguageString(const char *str, kLanguage lang, kLanguage *lang2 = NULL) const;
 
 public:
 	GfxAnimate *_gfxAnimate; // Animate for 16-bit gfx


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list