[Scummvm-git-logs] scummvm branch-2-6 -> 8b4bf5e47cc856af2e339edf351727172b51240d
athrxx
noreply at scummvm.org
Thu Jun 23 20:23:31 UTC 2022
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a78f33fdb9 KYRA: (LoK) - avoid starting the same song twice after loading savegame
8a455d9071 KYRA: (LoK/Floppy) - fix minor animator glitch
e83a147686 KYRA: (DOS/CD) - add workaround for text glitch
8b4bf5e47c KYRA: fix uninitialized vars warning
Commit: a78f33fdb9322f3ae128d086d1946747c21a7fb7
https://github.com/scummvm/scummvm/commit/a78f33fdb9322f3ae128d086d1946747c21a7fb7
Author: athrxx (athrxx at scummvm.org)
Date: 2022-06-23T22:12:39+02:00
Commit Message:
KYRA: (LoK) - avoid starting the same song twice after loading savegame
(The game restarts the last song which is stored in the savegame, but for many scenes the scene entry scripts will start the same song again right afterwards. This causes some audible "stuttering".
HOF and MR don't seem to require this fix. For these games the music restart is controlled via the last argument of enterNewScene(). If it is set to 1 then no song will be started. And that is what happens when calling from loadGameState()...
Changed paths:
engines/kyra/gui/saveload_lok.cpp
diff --git a/engines/kyra/gui/saveload_lok.cpp b/engines/kyra/gui/saveload_lok.cpp
index 37650d67042..307a40f21b2 100644
--- a/engines/kyra/gui/saveload_lok.cpp
+++ b/engines/kyra/gui/saveload_lok.cpp
@@ -129,11 +129,9 @@ Common::Error KyraEngine_LoK::loadGameState(int slot) {
_sound->selectAudioResourceSet(kMusicIngame);
closeFinalWsa();
- if (header.version >= 3) {
- _lastMusicCommand = in->readSint16BE();
- if (_lastMusicCommand != -1)
- snd_playWanderScoreViaMap(_lastMusicCommand, 1);
- }
+ int lastMusicCommand = _lastMusicCommand = -1;
+ if (header.version >= 3)
+ lastMusicCommand = in->readSint16BE();
// Version 4 stored settings in the savegame. As of version 5, they are
// handled by the config manager.
@@ -215,6 +213,13 @@ Common::Error KyraEngine_LoK::loadGameState(int slot) {
enterNewScene(_currentCharacter->sceneId, _currentCharacter->facing, 0, 0, 1);
+ // Check if _lastMusicCommand changed during enterNewScene(). If it didn't (no song was
+ // started from script) and we do have the last song id from our savegame, then we start that...
+ // This way we avoid the "stuttering" we used to have from restarting the saved song and
+ // then the same song again directly afterwards from script...
+ if (_lastMusicCommand == -1 && lastMusicCommand != -1)
+ snd_playWanderScoreViaMap(lastMusicCommand, 1);
+
_animator->animRefreshNPC(0);
_animator->restoreAllObjectBackgrounds();
_animator->preserveAnyChangedBackgrounds();
Commit: 8a455d9071d6ef5fa268d7aef43090bcb5498c36
https://github.com/scummvm/scummvm/commit/8a455d9071d6ef5fa268d7aef43090bcb5498c36
Author: athrxx (athrxx at scummvm.org)
Date: 2022-06-23T22:13:38+02:00
Commit Message:
KYRA: (LoK/Floppy) - fix minor animator glitch
(in the first cave, when trying to cross the broken bridge and falling into the river, a "cut off" Herman's head could appear on screen beside the death dialog)
The animator code is a bit different here between versions. Our code was apparently based only on DOS CD (Talkie).
Changed paths:
engines/kyra/engine/kyra_lok.cpp
engines/kyra/engine/kyra_lok.h
engines/kyra/graphics/animator_lok.cpp
engines/kyra/text/text_lok.cpp
diff --git a/engines/kyra/engine/kyra_lok.cpp b/engines/kyra/engine/kyra_lok.cpp
index 9b0d6a9021c..f288d8691cb 100644
--- a/engines/kyra/engine/kyra_lok.cpp
+++ b/engines/kyra/engine/kyra_lok.cpp
@@ -237,7 +237,7 @@ Common::Error KyraEngine_LoK::init() {
memset(_flagsTable, 0, sizeof(_flagsTable));
_talkingCharNum = -1;
- _charSayUnk3 = -1;
+ _talkHeadAnimCharNum = -1;
_disabledTalkAnimObject = _enabledTalkAnimObject = 0;
memset(_currSentenceColor, 0, 3);
_startSentencePalIndex = -1;
diff --git a/engines/kyra/engine/kyra_lok.h b/engines/kyra/engine/kyra_lok.h
index b5f63b5f81c..6524bace31c 100644
--- a/engines/kyra/engine/kyra_lok.h
+++ b/engines/kyra/engine/kyra_lok.h
@@ -468,7 +468,7 @@ protected:
int8 _talkingCharNum;
int8 _charSayUnk2;
- int8 _charSayUnk3;
+ int8 _talkHeadAnimCharNum;
int8 _currHeadShape;
int _currentHeadFrameTableIndex;
int8 _disabledTalkAnimObject;
diff --git a/engines/kyra/graphics/animator_lok.cpp b/engines/kyra/graphics/animator_lok.cpp
index 4191703989e..050c1dba295 100644
--- a/engines/kyra/graphics/animator_lok.cpp
+++ b/engines/kyra/graphics/animator_lok.cpp
@@ -201,13 +201,13 @@ void Animator_LoK::preserveOrRestoreBackground(AnimObject *obj, bool restore) {
void Animator_LoK::prepDrawAllObjects() {
AnimObject *curObject = _objectQueue;
int drawPage = 2;
- int flagUnk1 = 0, flagUnk2 = 0, flagUnk3 = 0;
+ int invisibilityDrawFlag = 0, blurDrawFlag = 0, fadeDrawFlag = 0;
if (_noDrawShapesFlag)
return;
if (_vm->_brandonStatusBit & 0x20)
- flagUnk1 = 0x200;
+ invisibilityDrawFlag = Screen::kDRAWSHP_PREDATOR;
if (_vm->_brandonStatusBit & 0x40)
- flagUnk2 = 0x4000;
+ blurDrawFlag = Screen::kDRAWSHP_MORPH;
while (curObject) {
if (curObject->active) {
@@ -215,90 +215,85 @@ void Animator_LoK::prepDrawAllObjects() {
int ypos = curObject->y1;
int drawLayer = 0;
- if (!(curObject->flags & 0x800))
+ if (!(curObject->flags & Screen::kDRAWSHP_PRIORITY))
drawLayer = 7;
else if (curObject->disable)
drawLayer = 0;
else
drawLayer = _vm->_sprites->getDrawLayer(curObject->drawY);
- // talking head functionallity
- if (_vm->_talkingCharNum != -1 && (_vm->_currentCharacter->currentAnimFrame != 88 || curObject->index != 0)) {
- const int16 baseAnimFrameTable1[] = { 0x11, 0x35, 0x59, 0x00, 0x00, 0x00 };
- const int16 baseAnimFrameTable2[] = { 0x15, 0x39, 0x5D, 0x00, 0x00, 0x00 };
- const int8 xOffsetTable1[] = { 2, 4, 0, 5, 2, 0, 0, 0 };
- const int8 xOffsetTable2[] = { 6, 4, 8, 3, 6, 0, 0, 0 };
- const int8 yOffsetTable1[] = { 0, 8, 1, 1, 0, 0, 0, 0 };
- const int8 yOffsetTable2[] = { 0, 8, 1, 1, 0, 0, 0, 0 };
- if (curObject->index == 0 || curObject->index <= 4) {
+ // Talking head functionallity
+ // DOS Floppy, Amiga and Mac work differently than DOS Talkie. PC-98 and FM-Towns are similar to DOS Talkie, but also slightly different.
+ bool fmTownsOrPC98 = (_vm->gameFlags().platform == Common::kPlatformFMTowns || _vm->gameFlags().platform == Common::kPlatformPC98);
+ if (_vm->_talkingCharNum != -1 && (fmTownsOrPC98 || (_vm->gameFlags().isTalkie ?
+ (_vm->_currentCharacter->currentAnimFrame != 88 || curObject->index != 0) : (_brandonScaleX == 0x100 || !_vm->_scaleMode)))) {
+ const int16 baseAnimFrameTable1[] = { 0x11, 0x35, 0x59, 0x00, 0x00 };
+ const int16 baseAnimFrameTable2[] = { 0x15, 0x39, 0x5D, 0x00, 0x00 };
+ const int8 xOffsetTable1[] = { 2, 4, 0, 5, 2, };
+ const int8 xOffsetTable2[] = { 6, 4, 8, 3, 6, };
+ const int8 yOffsetTable[] = { 0, 8, 1, 1, 0, };
+ if (curObject->index <= 4) {
int shapesIndex = 0;
- if (curObject->index == _vm->_charSayUnk3) {
+ if (curObject->index == _vm->_talkHeadAnimCharNum)
shapesIndex = _vm->_currHeadShape + baseAnimFrameTable1[curObject->index];
- } else {
+ else if (curObject->index != 2 || _vm->_characterList[2].sceneId == 77 || _vm->_characterList[2].sceneId == 86)
shapesIndex = baseAnimFrameTable2[curObject->index];
- int temp2 = 0;
- if (curObject->index == 2) {
- if (_vm->_characterList[2].sceneId == 77 || _vm->_characterList[2].sceneId == 86)
- temp2 = 1;
- else
- temp2 = 0;
- } else {
- temp2 = 1;
- }
-
- if (!temp2)
- shapesIndex = -1;
- }
+ else
+ shapesIndex = -1;
xpos = curObject->x1;
ypos = curObject->y1;
int tempX = 0, tempY = 0;
- if (curObject->flags & 0x1) {
- tempX = (xOffsetTable1[curObject->index] * _brandonScaleX) >> 8;
- tempY = yOffsetTable1[curObject->index];
+ if (curObject->flags & Screen::kDRAWSHP_XFLIP) {
+ tempX = xOffsetTable1[curObject->index];
+ tempY = yOffsetTable[curObject->index];
} else {
- tempX = (xOffsetTable2[curObject->index] * _brandonScaleX) >> 8;
- tempY = yOffsetTable2[curObject->index];
+ tempX = xOffsetTable2[curObject->index];
+ tempY = yOffsetTable[curObject->index];
}
- tempY = (tempY * _brandonScaleY) >> 8;
+
+ if (_vm->gameFlags().isTalkie || fmTownsOrPC98) {
+ tempX = (tempX * _brandonScaleX) >> 8;
+ tempY = (tempY * _brandonScaleY) >> 8;
+ if (_vm->_scaleMode && _brandonScaleX != 0x100)
+ ++tempX;
+ }
+
xpos += tempX;
ypos += tempY;
- if (_vm->_scaleMode && _brandonScaleX != 256)
- ++xpos;
-
if (curObject->index == 0 && shapesIndex != -1) {
if (!(_vm->_brandonStatusBit & 2)) {
- flagUnk3 = 0x100;
- if ((flagUnk1 & 0x200) || (flagUnk2 & 0x4000))
- flagUnk3 = 0;
+ fadeDrawFlag = Screen::kDRAWSHP_FADE;
+ if ((invisibilityDrawFlag & Screen::kDRAWSHP_PREDATOR) || (blurDrawFlag & Screen::kDRAWSHP_MORPH))
+ fadeDrawFlag = 0;
int tempFlags = 0;
- if (flagUnk3 & 0x100) {
- tempFlags = curObject->flags & 1;
- tempFlags |= 0x800 | flagUnk1 | 0x100;
+ if (fadeDrawFlag & Screen::kDRAWSHP_FADE) {
+ tempFlags = curObject->flags & Screen::kDRAWSHP_XFLIP;
+ tempFlags |= (Screen::kDRAWSHP_PRIORITY | invisibilityDrawFlag | Screen::kDRAWSHP_FADE);
}
- if (!(flagUnk3 & 0x100) && (flagUnk2 & 0x4000)) {
- tempFlags = curObject->flags & 1;
- tempFlags |= 0x900 | flagUnk1 | 0x4000;
- _screen->drawShape(drawPage, _vm->_shapes[shapesIndex], xpos, ypos, 2, tempFlags | 4, _vm->_brandonPoisonFlagsGFX, int(1), int(_vm->_brandonInvFlag), drawLayer, _brandonScaleX, _brandonScaleY);
+ if (!(fadeDrawFlag & Screen::kDRAWSHP_FADE) && (blurDrawFlag & Screen::kDRAWSHP_MORPH)) {
+ tempFlags = curObject->flags & Screen::kDRAWSHP_XFLIP;
+ tempFlags |= (Screen::kDRAWSHP_PRIORITY | Screen::kDRAWSHP_FADE | invisibilityDrawFlag | Screen::kDRAWSHP_MORPH);
+ _screen->drawShape(drawPage, _vm->_shapes[shapesIndex], xpos, ypos, 2, tempFlags | Screen::kDRAWSHP_SCALE, _vm->_brandonPoisonFlagsGFX, int(1), int(_vm->_brandonInvFlag), drawLayer, _brandonScaleX, _brandonScaleY);
} else {
- if (!(flagUnk2 & 0x4000)) {
- tempFlags = curObject->flags & 1;
- tempFlags |= 0x900 | flagUnk1;
+ if (!(blurDrawFlag & Screen::kDRAWSHP_MORPH)) {
+ tempFlags = curObject->flags & Screen::kDRAWSHP_XFLIP;
+ tempFlags |= (Screen::kDRAWSHP_PRIORITY | Screen::kDRAWSHP_FADE | invisibilityDrawFlag);
}
- _screen->drawShape(drawPage, _vm->_shapes[shapesIndex], xpos, ypos, 2, tempFlags | 4, _vm->_brandonPoisonFlagsGFX, int(1), drawLayer, _brandonScaleX, _brandonScaleY);
+ _screen->drawShape(drawPage, _vm->_shapes[shapesIndex], xpos, ypos, 2, tempFlags | Screen::kDRAWSHP_SCALE, _vm->_brandonPoisonFlagsGFX, int(1), drawLayer, _brandonScaleX, _brandonScaleY);
}
}
} else {
if (shapesIndex != -1) {
int tempFlags = 0;
- if (curObject->flags & 1)
- tempFlags = 1;
- _screen->drawShape(drawPage, _vm->_shapes[shapesIndex], xpos, ypos, 2, tempFlags | 0x800, drawLayer);
+ if (curObject->flags & Screen::kDRAWSHP_XFLIP)
+ tempFlags = Screen::kDRAWSHP_XFLIP;
+ _screen->drawShape(drawPage, _vm->_shapes[shapesIndex], xpos, ypos, 2, tempFlags | Screen::kDRAWSHP_PRIORITY, drawLayer);
}
}
}
@@ -307,34 +302,34 @@ void Animator_LoK::prepDrawAllObjects() {
xpos = curObject->x1;
ypos = curObject->y1;
- curObject->flags |= 0x800;
+ curObject->flags |= Screen::kDRAWSHP_PRIORITY;
if (curObject->index == 0) {
- flagUnk3 = 0x100;
+ fadeDrawFlag = Screen::kDRAWSHP_FADE;
- if (flagUnk1 & 0x200 || flagUnk2 & 0x4000)
- flagUnk3 = 0;
+ if (invisibilityDrawFlag & Screen::kDRAWSHP_PREDATOR || blurDrawFlag & Screen::kDRAWSHP_MORPH)
+ fadeDrawFlag = 0;
if (_vm->_brandonStatusBit & 2)
- curObject->flags &= 0xFFFFFFFE;
+ curObject->flags &= ~Screen::kDRAWSHP_XFLIP;
if (!_vm->_scaleMode) {
- if (flagUnk3 & 0x100)
- _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | flagUnk1 | 0x100, (uint8 *)_vm->_brandonPoisonFlagsGFX, int(1), drawLayer);
- else if (flagUnk2 & 0x4000)
- _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | flagUnk1 | 0x4000, int(_vm->_brandonInvFlag), drawLayer);
+ if (fadeDrawFlag & Screen::kDRAWSHP_FADE)
+ _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | invisibilityDrawFlag | Screen::kDRAWSHP_FADE, (uint8 *)_vm->_brandonPoisonFlagsGFX, int(1), drawLayer);
+ else if (blurDrawFlag & Screen::kDRAWSHP_MORPH)
+ _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | invisibilityDrawFlag | Screen::kDRAWSHP_MORPH, int(_vm->_brandonInvFlag), drawLayer);
else
- _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | flagUnk1, drawLayer);
+ _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | invisibilityDrawFlag, drawLayer);
} else {
- if (flagUnk3 & 0x100)
- _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | flagUnk1 | 0x104, (uint8 *)_vm->_brandonPoisonFlagsGFX, int(1), drawLayer, _brandonScaleX, _brandonScaleY);
- else if (flagUnk2 & 0x4000)
- _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | flagUnk1 | 0x4004, int(_vm->_brandonInvFlag), drawLayer, _brandonScaleX, _brandonScaleY);
+ if (fadeDrawFlag & Screen::kDRAWSHP_FADE)
+ _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | invisibilityDrawFlag | Screen::kDRAWSHP_FADE | Screen::kDRAWSHP_SCALE, (uint8 *)_vm->_brandonPoisonFlagsGFX, int(1), drawLayer, _brandonScaleX, _brandonScaleY);
+ else if (blurDrawFlag & Screen::kDRAWSHP_MORPH)
+ _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | invisibilityDrawFlag | Screen::kDRAWSHP_MORPH | Screen::kDRAWSHP_SCALE, int(_vm->_brandonInvFlag), drawLayer, _brandonScaleX, _brandonScaleY);
else
- _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | flagUnk1 | 0x4, drawLayer, _brandonScaleX, _brandonScaleY);
+ _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | invisibilityDrawFlag | Screen::kDRAWSHP_SCALE, drawLayer, _brandonScaleX, _brandonScaleY);
}
} else {
if (curObject->index >= 16 && curObject->index <= 27)
- _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | 4, drawLayer, (int)_vm->_scaleTable[curObject->drawY], (int)_vm->_scaleTable[curObject->drawY]);
+ _screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags | Screen::kDRAWSHP_SCALE, drawLayer, (int)_vm->_scaleTable[curObject->drawY], (int)_vm->_scaleTable[curObject->drawY]);
else
_screen->drawShape(drawPage, curObject->sceneAnimPtr, xpos, ypos, 2, curObject->flags, drawLayer);
}
diff --git a/engines/kyra/text/text_lok.cpp b/engines/kyra/text/text_lok.cpp
index 719cd381de9..8acd00130a6 100644
--- a/engines/kyra/text/text_lok.cpp
+++ b/engines/kyra/text/text_lok.cpp
@@ -132,7 +132,7 @@ void KyraEngine_LoK::waitForChatToFinish(int vocFile, int16 chatDuration, const
}
void KyraEngine_LoK::endCharacterChat(int8 charNum, int16 convoInitialized) {
- _charSayUnk3 = -1;
+ _talkHeadAnimCharNum = -1;
if (charNum > 4 && charNum < 11) {
_animator->sprites()[_disabledTalkAnimObject].active = 1;
@@ -244,7 +244,7 @@ int KyraEngine_LoK::initCharacterChat(int8 charNum) {
_animator->flagAllObjectsForRefresh();
_animator->flagAllObjectsForBkgdChange();
_animator->preserveAnyChangedBackgrounds();
- _charSayUnk3 = charNum;
+ _talkHeadAnimCharNum = charNum;
return returnValue;
}
@@ -268,9 +268,11 @@ void KyraEngine_LoK::characterSays(int vocFile, const char *chatStr, int8 charNu
backupChatPartnerAnimFrame(chatPartnerNum);
if (charNum < 5) {
- _characterList[charNum].currentAnimFrame = startAnimFrames[charNum];
- _charSayUnk3 = charNum;
- _talkingCharNum = charNum;
+ if (_flags.isTalkie || _flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98 || _animator->_brandonScaleX == 0x100 || !_scaleMode) {
+ _characterList[charNum].currentAnimFrame = startAnimFrames[charNum];
+ _talkHeadAnimCharNum = charNum;
+ _talkingCharNum = charNum;
+ }
_animator->animRefreshNPC(charNum);
}
Commit: e83a147686d275e62bf713f20a70adffabfe7fc3
https://github.com/scummvm/scummvm/commit/e83a147686d275e62bf713f20a70adffabfe7fc3
Author: athrxx (athrxx at scummvm.org)
Date: 2022-06-23T22:13:46+02:00
Commit Message:
KYRA: (DOS/CD) - add workaround for text glitch
(in the cave with the bridge, when falling into the river)
Changed paths:
engines/kyra/script/script_lok.cpp
diff --git a/engines/kyra/script/script_lok.cpp b/engines/kyra/script/script_lok.cpp
index 3c5b3aa73b5..bf6329f0651 100644
--- a/engines/kyra/script/script_lok.cpp
+++ b/engines/kyra/script/script_lok.cpp
@@ -543,6 +543,8 @@ int KyraEngine_LoK::o1_popBrandonIntoScene(EMCState *script) {
return 0;
}
+bool workaround_removeTextfield = false;
+
int KyraEngine_LoK::o1_restoreAllObjectBackgrounds(EMCState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_LoK::o1_restoreAllObjectBackgrounds(%p) (%d)", (const void *)script, stackPos(0));
int disable = stackPos(0);
@@ -551,6 +553,13 @@ int KyraEngine_LoK::o1_restoreAllObjectBackgrounds(EMCState *script) {
activeBackup = _animator->actors()->active;
_animator->actors()->active = 0;
}
+
+ // WORKAROUND: See o1_customPrintTalkString() for more info.
+ if (workaround_removeTextfield) {
+ _text->restoreTalkTextMessageBkgd(2, 0);
+ workaround_removeTextfield = false;
+ }
+
_animator->restoreAllObjectBackgrounds();
if (disable)
_animator->actors()->active = activeBackup;
@@ -592,8 +601,14 @@ int KyraEngine_LoK::o1_customPrintTalkString(EMCState *script) {
}
resetSkipFlag();
- if (textEnabled())
+ if (textEnabled()) {
+ // WORKAROUND: This string appears only in the talkie versions. The engine would need to remove it via
+ // o1_restoreCustomPrintBackground(), but it doesn't happen. Most of the text gets cleared when the
+ // animation background is restored, but not all of it. We just set a notification to have it cleared manually...
+ if (!strcmp(stackPosString(1), "AARGH!"))
+ workaround_removeTextfield = true;
_text->printTalkTextMessage(stackPosString(1), stackPos(2), stackPos(3), stackPos(4) & 0xFF, 0, 2);
+ }
} else {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_LoK::o1_customPrintTalkString(%p) ('%s', %d, %d, %d)", (const void *)script, stackPosString(0), stackPos(1), stackPos(2), stackPos(3) & 0xFF);
resetSkipFlag();
Commit: 8b4bf5e47cc856af2e339edf351727172b51240d
https://github.com/scummvm/scummvm/commit/8b4bf5e47cc856af2e339edf351727172b51240d
Author: athrxx (athrxx at scummvm.org)
Date: 2022-06-23T22:21:59+02:00
Commit Message:
KYRA: fix uninitialized vars warning
Changed paths:
engines/kyra/text/text.cpp
diff --git a/engines/kyra/text/text.cpp b/engines/kyra/text/text.cpp
index 58c72bdbf6d..fd355baed43 100644
--- a/engines/kyra/text/text.cpp
+++ b/engines/kyra/text/text.cpp
@@ -252,7 +252,7 @@ void TextDisplayer::printText(const Common::String &str, int x, int y, uint8 c0,
}
void TextDisplayer::printCharacterText(const char *text, int8 charNum, int charX) {
- int top, left, x1, x2, w, x;
+ int top, left, w, x;
char *msg;
text = preprocessString(text);
@@ -265,6 +265,8 @@ void TextDisplayer::printCharacterText(const char *text, int8 charNum, int charX
w = MIN<int>(w, 302);
}
+ int x1 = 12;
+ int x2 = Screen::SCREEN_W - 12;
if (_vm->gameFlags().lang != Common::ZH_TWN || lineCount == 1) {
x = charX;
calcWidestLineBounds(x1, x2, w, x);
More information about the Scummvm-git-logs
mailing list