diff options
-rw-r--r-- | scumm/saveload.cpp | 2 | ||||
-rw-r--r-- | scumm/script_v6.cpp | 2 | ||||
-rw-r--r-- | scumm/script_v8.cpp | 2 | ||||
-rw-r--r-- | scumm/smush/smush_player.cpp | 3 | ||||
-rw-r--r-- | scumm/string.cpp | 28 |
5 files changed, 16 insertions, 21 deletions
diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp index c066734edb..6a91510f75 100644 --- a/scumm/saveload.cpp +++ b/scumm/saveload.cpp @@ -318,8 +318,8 @@ void Scumm::saveOrLoad(Serializer *s, uint32 savegameVersion) { MKLINE(Actor, needBgReset, sleByte, VER_V8), MKLINE(Actor, costumeNeedsInit, sleByte, VER_V8), - MKLINE(Actor, talkPosX, sleInt16, VER_V8), MKLINE(Actor, talkPosY, sleInt16, VER_V8), + MKLINE(Actor, talkPosX, sleInt16, VER_V8), MKLINE(Actor, ignoreTurns, sleByte, VER_V8), MKLINE(Actor, layer, sleByte, VER_V8), diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp index 7b69a6578c..fd44c9617c 100644 --- a/scumm/script_v6.cpp +++ b/scumm/script_v6.cpp @@ -1698,8 +1698,8 @@ void Scumm_v6::o6_actorOps() { a->shadow_mode = pop(); break; case 99: - a->talkPosX = pop(); a->talkPosY = pop(); + a->talkPosX = pop(); break; case 198: /* set anim variable */ i = pop(); /* value */ diff --git a/scumm/script_v8.cpp b/scumm/script_v8.cpp index 58328e0a37..76cee771be 100644 --- a/scumm/script_v8.cpp +++ b/scumm/script_v8.cpp @@ -1121,8 +1121,8 @@ void Scumm_v8::o8_actorOps() { a->shadow_mode = pop(); break; case 0x79: // SO_ACTOR_TEXT_OFFSET Set text offset relative to actor - a->talkPosX = pop(); a->talkPosY = pop(); + a->talkPosX = pop(); break; // case 0x7A: // SO_ACTOR_INIT Set current actor (handled above) case 0x7B: // SO_ACTOR_VARIABLE Set actor variable diff --git a/scumm/smush/smush_player.cpp b/scumm/smush/smush_player.cpp index 70ceef6950..ccd09234cf 100644 --- a/scumm/smush/smush_player.cpp +++ b/scumm/smush/smush_player.cpp @@ -615,8 +615,7 @@ void SmushPlayer::readPalette(byte *out, Chunk &in) { } static byte delta_color(byte org_color, int16 delta_color) { - int16 t; - t = (((int32)(org_color) << 7) + org_color + delta_color) >> 7; + int t = ((org_color << 7) + org_color + delta_color) >> 7; if (t > 255) t = 255; if (t < 0) diff --git a/scumm/string.cpp b/scumm/string.cpp index e6f66f98e6..de82cdd06f 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -108,29 +108,25 @@ void Scumm::CHARSET_1() { } else { _string[0].ypos = (int)VAR(VAR_V5_TALK_STRING_Y); } - if (_string[0].ypos < 1) - _string[0].ypos = 1; - if (_string[0].xpos < 80) - _string[0].xpos = 80; - if (_string[0].xpos > _screenWidth - 80) - _string[0].xpos = _screenWidth - 80; } else { - s = a->scaley * a->talkPosX / 0xFF; - _string[0].ypos = ((a->talkPosX - s) >> 1) + s - a->elevation + a->y; - if (_string[0].ypos < 1) - _string[0].ypos = 1; + s = a->scaley * a->talkPosY / 0xFF; + _string[0].ypos = ((a->talkPosY - s) >> 1) + s - a->elevation + a->y; if (_string[0].ypos < camera._cur.y - (_screenHeight / 2)) _string[0].ypos = camera._cur.y - (_screenHeight / 2); - s = a->scalex * a->talkPosY / 0xFF; - _string[0].xpos = ((a->talkPosY - s) >> 1) + s + a->x - camera._cur.x + (_screenWidth / 2); - if (_string[0].xpos < 80) - _string[0].xpos = 80; - if (_string[0].xpos > _screenWidth - 80) - _string[0].xpos = _screenWidth - 80; + s = a->scalex * a->talkPosX / 0xFF; + _string[0].xpos = ((a->talkPosX - s) >> 1) + s + a->x - camera._cur.x + (_screenWidth / 2); } + + if (_string[0].ypos < 1) + _string[0].ypos = 1; + + if (_string[0].xpos < 80) + _string[0].xpos = 80; + if (_string[0].xpos > _screenWidth - 80) + _string[0].xpos = _screenWidth - 80; } _charset->_top = _string[0].ypos; |