aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/string.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/scumm/string.cpp b/scumm/string.cpp
index d34f41940c..9a8a3b5617 100644
--- a/scumm/string.cpp
+++ b/scumm/string.cpp
@@ -95,7 +95,7 @@ void ScummEngine::CHARSET_1() {
if (getTalkingActor() != 0xFF)
a = derefActorSafe(getTalkingActor(), "CHARSET_1");
- if (a && a->isInCurrentRoom() && _string[0].overhead != 0) {
+ if (a && _string[0].overhead != 0) {
if (_version <= 5) {
_string[0].xpos = a->_pos.x - camera._cur.x + (_screenWidth / 2);
@@ -110,9 +110,11 @@ void ScummEngine::CHARSET_1() {
s = a->scaley * a->talkPosY / 0xFF;
_string[0].ypos = ((a->talkPosY - s) / 2) + s - a->getElevation() + a->_pos.y;
- if (_string[0].ypos < _screenTop) {
- _string[0].ypos = _screenTop;
- }
+ if (_features & GF_NEW_CAMERA)
+ _string[0].ypos = _string[0].ypos - camera._cur.y + (_screenHeight / 2);
+
+ if (_string[0].ypos > _screenHeight - 40)
+ _string[0].ypos = _screenHeight - 40;
s = a->scalex * a->talkPosX / 0xFF;
_string[0].xpos = ((a->talkPosX - s) / 2) + s + a->_pos.x - camera._cur.x + (_screenWidth / 2);