diff options
author | James Brown | 2002-12-29 17:46:12 +0000 |
---|---|---|
committer | James Brown | 2002-12-29 17:46:12 +0000 |
commit | b885b47269c300dcf7663ffce502ce0d9a56ddee (patch) | |
tree | 154d78223a51a99712c98cdbbc45f7c550fc637b | |
parent | b8ef222a8d22d6e0798053e3975ab8731fab06e7 (diff) | |
download | scummvm-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
-rw-r--r-- | scumm/string.cpp | 35 |
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; } } |