diff options
-rw-r--r-- | scumm/string.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/scumm/string.cpp b/scumm/string.cpp index a044ecf0e7..9c18d0dc29 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -741,7 +741,22 @@ void Scumm::addNameToStack(int var) num = readVar(var); if (num) { - addMessageToStack(getObjOrActorName(num)); + byte *ptr = getObjOrActorName(num); + 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; + + addMessageToStack(_transText); + } else { + addMessageToStack(ptr); + } } else { addMessageToStack((byte *)""); } @@ -768,7 +783,7 @@ void Scumm::addStringToStack(int var) pointer[j++] = ptr[i]; } pointer[j] = 0; - _sound->_talkChannel = _sound->playBundleSound(pointer); + addMessageToStack(_transText); } else { addMessageToStack(ptr); |