aboutsummaryrefslogtreecommitdiff
path: root/scumm/string.cpp
diff options
context:
space:
mode:
authorJames Brown2002-12-29 17:46:12 +0000
committerJames Brown2002-12-29 17:46:12 +0000
commitb885b47269c300dcf7663ffce502ce0d9a56ddee (patch)
tree154d78223a51a99712c98cdbbc45f7c550fc637b /scumm/string.cpp
parentb8ef222a8d22d6e0798053e3975ab8731fab06e7 (diff)
downloadscummvm-rg350-b885b47269c300dcf7663ffce502ce0d9a56ddee.tar.gz
scummvm-rg350-b885b47269c300dcf7663ffce502ce0d9a56ddee.tar.bz2
scummvm-rg350-b885b47269c300dcf7663ffce502ce0d9a56ddee.zip
Translate/say verbs added to converstion text.
N.B: We might be able to cut back on all these translateText calls if we just do it in addMessageToStack() period... thoughts? svn-id: r6256
Diffstat (limited to 'scumm/string.cpp')
-rw-r--r--scumm/string.cpp35
1 files changed, 33 insertions, 2 deletions
diff --git a/scumm/string.cpp b/scumm/string.cpp
index 8ba5574569..58efc07868 100644
--- a/scumm/string.cpp
+++ b/scumm/string.cpp
@@ -718,7 +718,23 @@ void Scumm::addVerbToStack(int var)
if (num) {
for (i = 1; i < _maxVerbs; i++) {
if (num == _verbs[i].verbid && !_verbs[i].type && !_verbs[i].saveid) {
- addMessageToStack(getResourceAddress(rtVerb, i));
+ byte *ptr = getResourceAddress(rtVerb, i);
+ if ((_features & GF_AFTER_V8) && (ptr[0] == '/')) {
+ char pointer[20];
+ int i, j;
+
+ translateText(ptr, _transText);
+
+ for (i = 0, j = 0; (ptr[i] != '/' || j == 0) && j < 19; i++) {
+ if (ptr[i] != '/')
+ pointer[j++] = ptr[i];
+ }
+ pointer[j] = 0;
+ _sound->_talkChannel = _sound->playBundleSound(pointer);
+ addMessageToStack(_transText);
+ } else {
+ addMessageToStack(ptr);
+ }
break;
}
}
@@ -749,7 +765,22 @@ void Scumm::addStringToStack(int var)
if (var) {
ptr = getStringAddress(var);
if (ptr) {
- addMessageToStack(ptr);
+ if ((_features & GF_AFTER_V8) && (ptr[0] == '/')) {
+ char pointer[20];
+ int i, j;
+
+ translateText(ptr, _transText);
+
+ for (i = 0, j = 0; (ptr[i] != '/' || j == 0) && j < 19; i++) {
+ if (ptr[i] != '/')
+ pointer[j++] = ptr[i];
+ }
+ pointer[j] = 0;
+ _sound->_talkChannel = _sound->playBundleSound(pointer);
+ addMessageToStack(_transText);
+ } else {
+ addMessageToStack(ptr);
+ }
return;
}
}