[Scummvm-git-logs] scummvm master -> 6c24e0de983d51d9f50a7419a9434fabb479ac84
mgerhardy
martin.gerhardy at gmail.com
Tue Dec 15 22:13:17 UTC 2020
This automated email contains information about 7 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a74eed6cae TWINE: introduced enum for updateProgressiveText return values
5af7875b0f TWINE: renamed member var
520859a18d TWINE: renamed member var
f1255de484 TWINE: fixed mixed x and y vars (just by name)
86cd1fe936 TWINE: no need to call getWordSize in this situation
32d9842788 TWINE: renamed variables
6c24e0de98 TWINE: fixed typo in enum name
Commit: a74eed6caed908af4c5268174b2a99625f6c1e7c
https://github.com/scummvm/scummvm/commit/a74eed6caed908af4c5268174b2a99625f6c1e7c
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-12-15T23:12:35+01:00
Commit Message:
TWINE: introduced enum for updateProgressiveText return values
Changed paths:
engines/twine/gamestate.cpp
engines/twine/menu.cpp
engines/twine/text.cpp
engines/twine/text.h
diff --git a/engines/twine/gamestate.cpp b/engines/twine/gamestate.cpp
index 5f7f746961..41df51c94d 100644
--- a/engines/twine/gamestate.cpp
+++ b/engines/twine/gamestate.cpp
@@ -314,8 +314,8 @@ void GameState::processFoundItem(int32 item) {
_engine->_text->initText(item);
_engine->_text->initDialogueBox();
- int32 textState = 1;
- int32 quitItem = 0;
+ ProgressiveTestState textState = ProgressiveTestState::UNK1;
+ bool quitItem = false;
_engine->_text->initVoxToPlay(item);
@@ -360,12 +360,12 @@ void GameState::processFoundItem(int32 item) {
_engine->_grid->drawOverModelActor(itemX, itemY, itemZ);
_engine->_redraw->addRedrawArea(_engine->_redraw->renderRect);
- if (textState) {
+ if (textState != ProgressiveTestState::UNK0) {
_engine->_interface->resetClip();
textState = _engine->_text->updateProgressiveText();
}
- if (textState == 0 || textState == 2) {
+ if (textState == ProgressiveTestState::UNK0 || textState == ProgressiveTestState::UNK2) {
_engine->_system->delayMillis(15);
}
@@ -373,12 +373,12 @@ void GameState::processFoundItem(int32 item) {
_engine->readKeys();
if (_engine->_input->toggleAbortAction()) {
- if (!textState) {
- quitItem = 1;
+ if (textState == ProgressiveTestState::UNK0) {
+ quitItem = true;
}
- if (textState == 2) {
- textState = 1;
+ if (textState == ProgressiveTestState::UNK2) {
+ textState = ProgressiveTestState::UNK1;
}
}
diff --git a/engines/twine/menu.cpp b/engines/twine/menu.cpp
index cd5ce0d4a1..b4540b421c 100644
--- a/engines/twine/menu.cpp
+++ b/engines/twine/menu.cpp
@@ -1103,11 +1103,13 @@ void Menu::processInventoryMenu() {
_engine->_text->initTextBank(TextBankId::Inventory_Intro_and_Holomap);
- int32 bx = 3;
+ bool updateItemText = true;
_engine->_text->setFontCrossColor(4);
_engine->_text->initDialogueBox();
+ ProgressiveTestState bx = ProgressiveTestState::UNK0;
+
#if 0
ScopedCursor scopedCursor(_engine);
#endif
@@ -1130,56 +1132,54 @@ void Menu::processInventoryMenu() {
inventorySelectedItem = 0;
}
drawItem(prevSelectedItem);
- bx = 3;
+ updateItemText = true;
} else if (cursorUp) {
inventorySelectedItem--;
if (inventorySelectedItem < 0) {
inventorySelectedItem = NUM_INVENTORY_ITEMS - 1;
}
drawItem(prevSelectedItem);
- bx = 3;
- }
-
- if (cursorLeft) {
+ updateItemText = true;
+ } else if (cursorLeft) {
inventorySelectedItem -= 4;
if (inventorySelectedItem < 0) {
inventorySelectedItem += NUM_INVENTORY_ITEMS;
}
drawItem(prevSelectedItem);
- bx = 3;
+ updateItemText = true;
} else if (cursorRight) {
inventorySelectedItem += 4;
if (inventorySelectedItem >= NUM_INVENTORY_ITEMS) {
inventorySelectedItem -= NUM_INVENTORY_ITEMS;
}
drawItem(prevSelectedItem);
- bx = 3;
+ updateItemText = true;
}
- if (bx == 3) {
+ if (updateItemText) {
_engine->_text->initInventoryDialogueBox();
if (inventorySelectedItem < NUM_INVENTORY_ITEMS && _engine->_gameState->hasItem((InventoryItems)inventorySelectedItem) && !_engine->_gameState->inventoryDisabled()) {
_engine->_text->initText(inventorySelectedItem + 100);
} else {
- _engine->_text->initText(128);
+ _engine->_text->initText(NUM_INVENTORY_ITEMS + 100);
}
- bx = 0;
+ updateItemText = false;
}
- if (bx != 2) {
+ if (updateItemText || bx != ProgressiveTestState::UNK2) {
bx = _engine->_text->updateProgressiveText();
}
// TRICKY: 3D model rotation delay - only apply when no text is drawing
- if (bx == 0 || bx == 2) {
+ if (bx == ProgressiveTestState::UNK0 || bx == ProgressiveTestState::UNK2) {
_engine->_system->delayMillis(15);
}
if (_engine->_input->toggleActionIfActive(TwinEActionType::UINextPage)) {
- if (bx == 2) {
+ if (bx == ProgressiveTestState::UNK2) {
_engine->_text->initInventoryDialogueBox();
- bx = 0;
+ bx = ProgressiveTestState::UNK0;
} else {
if (inventorySelectedItem < NUM_INVENTORY_ITEMS && _engine->_gameState->hasItem((InventoryItems)inventorySelectedItem) && !_engine->_gameState->inventoryDisabled()) {
_engine->_text->initInventoryDialogueBox();
diff --git a/engines/twine/text.cpp b/engines/twine/text.cpp
index 86247f159e..1fe636ad60 100644
--- a/engines/twine/text.cpp
+++ b/engines/twine/text.cpp
@@ -511,9 +511,9 @@ int32 Text::getCharHeight(uint8 chr) const {
}
// TODO: refactor this code
-int Text::updateProgressiveText() {
+ProgressiveTestState Text::updateProgressiveText() {
if (!_hasValidTextHandle) {
- return 0;
+ return ProgressiveTestState::UNK0;
}
if (*_progressiveTextBufferPtr == '\0') {
@@ -522,7 +522,7 @@ int Text::updateProgressiveText() {
renderContinueReadingTriangle();
}
_hasValidTextHandle = false;
- return 0;
+ return ProgressiveTestState::UNK0;
}
if (_progressiveTextNextPage) {
_engine->_interface->blitBox(_dialTextBox, _engine->workVideoBuffer, _engine->frontVideoBuffer);
@@ -535,14 +535,14 @@ int Text::updateProgressiveText() {
if (*printText8Var8 == '\0') {
initProgressiveTextBuffer();
_progressiveTextEnd = true;
- return 1;
+ return ProgressiveTestState::UNK1;
}
processTextLine();
}
// RECHECK this later
if (*_progressiveTextBufferPtr == '\0') {
- return 1;
+ return ProgressiveTestState::UNK1;
}
fillFadeInBuffer(_dialTextYPos, _dialTextXPos, *_progressiveTextBufferPtr);
@@ -563,7 +563,7 @@ int Text::updateProgressiveText() {
_progressiveTextBufferPtr++;
if (*_progressiveTextBufferPtr != '\0') {
- return 1;
+ return ProgressiveTestState::UNK1;
}
const int32 lineHeight = 38;
@@ -572,12 +572,12 @@ int Text::updateProgressiveText() {
if (_progressiveTextNextPage && !_progressiveTextEnd) {
renderContinueReadingTriangle();
- return 2;
+ return ProgressiveTestState::UNK2;
}
_dialTextBoxCurrentLine++;
if (_dialTextBoxCurrentLine < _dialTextBoxLines) {
- return 1;
+ return ProgressiveTestState::UNK1;
}
initProgressiveTextBuffer();
@@ -587,7 +587,7 @@ int Text::updateProgressiveText() {
_progressiveTextEnd = true;
}
- return 1;
+ return ProgressiveTestState::UNK1;
}
// TODO: refactor this code
@@ -607,13 +607,13 @@ bool Text::drawTextFullscreen(int32 index) {
initText(index);
initDialogueBox();
- int32 printedText;
+ ProgressiveTestState printedText;
for (;;) {
_engine->readKeys();
printedText = updateProgressiveText();
playVox(currDialTextEntry);
- if (!printedText && !_engine->_sound->isSamplePlaying(currDialTextEntry)) {
+ if (printedText == ProgressiveTestState::UNK0 && !_engine->_sound->isSamplePlaying(currDialTextEntry)) {
break;
}
@@ -627,7 +627,7 @@ bool Text::drawTextFullscreen(int32 index) {
_hasValidTextHandle = false;
- if (printedText == 0) {
+ if (printedText == ProgressiveTestState::UNK0) {
stopVox(currDialTextEntry);
// wait displaying text
for (;;) {
@@ -773,12 +773,12 @@ void Text::drawAskQuestion(int32 index) {
initText(index);
initDialogueBox();
- int32 textStatus = 1;
+ ProgressiveTestState textStatus = ProgressiveTestState::UNK1;
do {
_engine->readKeys();
textStatus = updateProgressiveText();
- if (textStatus == 2) {
+ if (textStatus == ProgressiveTestState::UNK2) {
do {
_engine->readKeys();
if (_engine->shouldQuit()) {
@@ -792,7 +792,7 @@ void Text::drawAskQuestion(int32 index) {
}
_engine->_system->delayMillis(1);
- } while (textStatus);
+ } while (textStatus != ProgressiveTestState::UNK0);
while (playVoxSimple(currDialTextEntry)) {
if (_engine->shouldQuit() || _engine->_input->toggleAbortAction()) {
diff --git a/engines/twine/text.h b/engines/twine/text.h
index 90d3258f13..8a158b480a 100644
--- a/engines/twine/text.h
+++ b/engines/twine/text.h
@@ -101,6 +101,12 @@ enum _TextId {
#define TEXT_MAX_FADE_IN_CHR 32
+enum class ProgressiveTestState {
+ UNK0 = 0,
+ UNK1 = 1,
+ UNK2 = 2
+};
+
class TwinEEngine;
class Text {
private:
@@ -259,7 +265,7 @@ public:
void initInventoryDialogueBox();
void initText(int32 index);
- int updateProgressiveText();
+ ProgressiveTestState updateProgressiveText();
/**
* Set font type parameters
Commit: 5af7875b0fddefd65431d14ec404992691ad09e6
https://github.com/scummvm/scummvm/commit/5af7875b0fddefd65431d14ec404992691ad09e6
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-12-15T23:12:36+01:00
Commit Message:
TWINE: renamed member var
Changed paths:
engines/twine/text.cpp
engines/twine/text.h
diff --git a/engines/twine/text.cpp b/engines/twine/text.cpp
index 1fe636ad60..2e4bb9ef21 100644
--- a/engines/twine/text.cpp
+++ b/engines/twine/text.cpp
@@ -398,7 +398,7 @@ void Text::processTextLine() {
printText8Var8 = buffer;
char wordBuf[256] = "";
WordSize wordSize = getWordSize(buffer, wordBuf, sizeof(wordBuf));
- if (lineBreakX + _dialCharSpace + wordSize.inPixel >= _dialTextBoxParam2) {
+ if (lineBreakX + _dialCharSpace + wordSize.inPixel >= _dialTextBoxMaxX) {
break;
}
@@ -437,15 +437,15 @@ void Text::processTextLine() {
break;
}
- if (printText8PrepareBufferVar2 != 0) {
+ if (printText8PrepareBufferVar2 > 0) {
printText8PrepareBufferVar2--;
}
if (*printText8Var8 != '\0' && var4) {
- if (printText8PrepareBufferVar2 == 0) {
+ if (printText8PrepareBufferVar2 <= 0) {
printText8PrepareBufferVar2 = 1;
}
- _dialCharSpace += (_dialTextBoxParam2 - lineBreakX) / printText8PrepareBufferVar2;
+ _dialCharSpace += (_dialTextBoxMaxX - lineBreakX) / printText8PrepareBufferVar2;
printText10Var1 = -2 * lineBreakX;
}
@@ -752,18 +752,18 @@ void Text::textClipFull() {
_dialTextBox.bottom = SCREEN_HEIGHT - padding;
_dialTextBoxLines = 11;
- _dialTextBoxParam2 = 607;
+ _dialTextBoxMaxX = SCREEN_WIDTH - 33;
}
void Text::textClipSmall() {
const int padding = 17;
_dialTextBox.left = padding - 1;
- _dialTextBox.top = 334;
+ _dialTextBox.top = SCREEN_HEIGHT - 146;
_dialTextBox.right = SCREEN_WIDTH - padding;
_dialTextBox.bottom = SCREEN_HEIGHT - padding;
_dialTextBoxLines = 3;
- _dialTextBoxParam2 = 591;
+ _dialTextBoxMaxX = SCREEN_WIDTH - 49;
}
void Text::drawAskQuestion(int32 index) {
diff --git a/engines/twine/text.h b/engines/twine/text.h
index 8a158b480a..9a7f743a02 100644
--- a/engines/twine/text.h
+++ b/engines/twine/text.h
@@ -217,7 +217,7 @@ private:
Common::Rect _dialTextBox { 0, 0, 0, 0};
int32 _dialTextBoxLines = 0; // dialogueBoxParam1
- int32 _dialTextBoxParam2 = 0; // dialogueBoxParam2
+ int32 _dialTextBoxMaxX = 0; // dialogueBoxParam2
public:
Text(TwinEEngine *engine);
~Text();
Commit: 520859a18d7943aee8a723d121ec3acd67bb01c5
https://github.com/scummvm/scummvm/commit/520859a18d7943aee8a723d121ec3acd67bb01c5
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-12-15T23:12:36+01:00
Commit Message:
TWINE: renamed member var
Changed paths:
engines/twine/text.cpp
engines/twine/text.h
diff --git a/engines/twine/text.cpp b/engines/twine/text.cpp
index 2e4bb9ef21..e759acd02a 100644
--- a/engines/twine/text.cpp
+++ b/engines/twine/text.cpp
@@ -325,7 +325,7 @@ void Text::initText(int32 index) {
_progressiveTextEnd = false;
_progressiveTextNextPage = false;
_dialTextXPos = _dialTextBox.top + 8;
- printText8Var8 = _currDialTextPtr;
+ _progressiveTextNextWord = _currDialTextPtr;
// lba font is get while engine start
setFontParameters(2, 7);
@@ -378,7 +378,7 @@ Text::WordSize Text::getWordSize(const char *completeText, char *wordBuf, int32
}
void Text::processTextLine() {
- char *buffer = printText8Var8;
+ const char *buffer = _progressiveTextNextWord;
_dialCharSpace = 7;
bool var4 = true;
@@ -395,7 +395,7 @@ void Text::processTextLine() {
break;
}
- printText8Var8 = buffer;
+ _progressiveTextNextWord = buffer;
char wordBuf[256] = "";
WordSize wordSize = getWordSize(buffer, wordBuf, sizeof(wordBuf));
if (lineBreakX + _dialCharSpace + wordSize.inPixel >= _dialTextBoxMaxX) {
@@ -424,14 +424,14 @@ void Text::processTextLine() {
}
buffer += wordSize.inChar;
- printText8Var8 = buffer;
+ _progressiveTextNextWord = buffer;
strncat(_progressiveTextBuffer, wordBuf, sizeof(_progressiveTextBuffer) - strlen(_progressiveTextBuffer) - 1);
strncat(_progressiveTextBuffer, " ", sizeof(_progressiveTextBuffer) - strlen(_progressiveTextBuffer) - 1); // not 100% accurate
printText8PrepareBufferVar2++;
lineBreakX += wordSize.inPixel + _dialCharSpace;
- if (*printText8Var8 != '\0') {
- printText8Var8++;
+ if (*_progressiveTextNextWord != '\0') {
+ _progressiveTextNextWord++;
continue;
}
break;
@@ -441,7 +441,7 @@ void Text::processTextLine() {
printText8PrepareBufferVar2--;
}
- if (*printText8Var8 != '\0' && var4) {
+ if (*_progressiveTextNextWord != '\0' && var4) {
if (printText8PrepareBufferVar2 <= 0) {
printText8PrepareBufferVar2 = 1;
}
@@ -449,7 +449,7 @@ void Text::processTextLine() {
printText10Var1 = -2 * lineBreakX;
}
- printText8Var8 = buffer;
+ _progressiveTextNextWord = buffer;
_progressiveTextBufferPtr = _progressiveTextBuffer;
}
@@ -532,7 +532,7 @@ ProgressiveTestState Text::updateProgressiveText() {
_dialTextYPos = _dialTextBox.left + 8;
_dialTextXPos = _dialTextBox.top + 8;
}
- if (*printText8Var8 == '\0') {
+ if (*_progressiveTextNextWord == '\0') {
initProgressiveTextBuffer();
_progressiveTextEnd = true;
return ProgressiveTestState::UNK1;
@@ -583,7 +583,7 @@ ProgressiveTestState Text::updateProgressiveText() {
initProgressiveTextBuffer();
_progressiveTextNextPage = true;
- if (*printText8Var8 == '\0') {
+ if (*_progressiveTextNextWord == '\0') {
_progressiveTextEnd = true;
}
diff --git a/engines/twine/text.h b/engines/twine/text.h
index 9a7f743a02..fc74ad935b 100644
--- a/engines/twine/text.h
+++ b/engines/twine/text.h
@@ -168,7 +168,7 @@ private:
// TODO: refactor all this variables and related functions
char _progressiveTextBuffer[256] {'\0'};
- char *printText8Var8 = nullptr;
+ const char *_progressiveTextNextWord = nullptr;
int32 printText10Var1 = 0;
int32 _dialTextXPos = 0;
Commit: f1255de4842829b32a92a4277ed55997ca8c597c
https://github.com/scummvm/scummvm/commit/f1255de4842829b32a92a4277ed55997ca8c597c
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-12-15T23:12:36+01:00
Commit Message:
TWINE: fixed mixed x and y vars (just by name)
Changed paths:
engines/twine/text.cpp
engines/twine/text.h
diff --git a/engines/twine/text.cpp b/engines/twine/text.cpp
index e759acd02a..74e8018a66 100644
--- a/engines/twine/text.cpp
+++ b/engines/twine/text.cpp
@@ -321,10 +321,10 @@ void Text::initText(int32 index) {
_dialTextBoxCurrentLine = 0;
_progressiveTextBuffer[0] = '\0';
_fadeInCharactersPos = 0;
- _dialTextYPos = _dialTextBox.left + 8;
+ _dialTextXPos = _dialTextBox.left + 8;
_progressiveTextEnd = false;
_progressiveTextNextPage = false;
- _dialTextXPos = _dialTextBox.top + 8;
+ _dialTextYPos = _dialTextBox.top + 8;
_progressiveTextNextWord = _currDialTextPtr;
// lba font is get while engine start
@@ -529,8 +529,8 @@ ProgressiveTestState Text::updateProgressiveText() {
_engine->copyBlockPhys(_dialTextBox);
_fadeInCharactersPos = 0;
_progressiveTextNextPage = false;
- _dialTextYPos = _dialTextBox.left + 8;
- _dialTextXPos = _dialTextBox.top + 8;
+ _dialTextXPos = _dialTextBox.left + 8;
+ _dialTextYPos = _dialTextBox.top + 8;
}
if (*_progressiveTextNextWord == '\0') {
initProgressiveTextBuffer();
@@ -545,18 +545,18 @@ ProgressiveTestState Text::updateProgressiveText() {
return ProgressiveTestState::UNK1;
}
- fillFadeInBuffer(_dialTextYPos, _dialTextXPos, *_progressiveTextBufferPtr);
+ fillFadeInBuffer(_dialTextXPos, _dialTextYPos, *_progressiveTextBufferPtr);
fadeInCharacters(_fadeInCharactersPos, _dialTextStartColor);
int8 charWidth = getCharWidth(*_progressiveTextBufferPtr);
if (*_progressiveTextBufferPtr != ' ') {
- _dialTextYPos += charWidth + 2;
+ _dialTextXPos += charWidth + 2;
} else {
if (printText10Var1 != 0) {
- _dialTextYPos++;
+ _dialTextXPos++;
printText10Var1--;
}
- _dialTextYPos += _dialCharSpace;
+ _dialTextXPos += _dialCharSpace;
}
// next character
@@ -567,8 +567,8 @@ ProgressiveTestState Text::updateProgressiveText() {
}
const int32 lineHeight = 38;
- _dialTextXPos += lineHeight;
- _dialTextYPos = _dialTextBox.left + 8;
+ _dialTextYPos += lineHeight;
+ _dialTextXPos = _dialTextBox.left + 8;
if (_progressiveTextNextPage && !_progressiveTextEnd) {
renderContinueReadingTriangle();
diff --git a/engines/twine/text.h b/engines/twine/text.h
index fc74ad935b..c1636e134d 100644
--- a/engines/twine/text.h
+++ b/engines/twine/text.h
@@ -172,9 +172,9 @@ private:
int32 printText10Var1 = 0;
int32 _dialTextXPos = 0;
+ int32 _dialTextYPos = 0;
char *_progressiveTextBufferPtr = nullptr;
int32 _dialTextBoxCurrentLine = 0;
- int32 _dialTextYPos = 0;
bool _progressiveTextEnd = false;
bool _progressiveTextNextPage = false;
struct BlendInCharacter {
Commit: 86cd1fe9362dd06c867373f4aa8a0fdbce7eef27
https://github.com/scummvm/scummvm/commit/86cd1fe9362dd06c867373f4aa8a0fdbce7eef27
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-12-15T23:12:36+01:00
Commit Message:
TWINE: no need to call getWordSize in this situation
Changed paths:
engines/twine/text.cpp
diff --git a/engines/twine/text.cpp b/engines/twine/text.cpp
index 74e8018a66..79cbb31280 100644
--- a/engines/twine/text.cpp
+++ b/engines/twine/text.cpp
@@ -394,6 +394,11 @@ void Text::processTextLine() {
if (*buffer == '\0') {
break;
}
+ if (*buffer == '\1') {
+ var4 = false;
+ buffer++;
+ break;
+ }
_progressiveTextNextWord = buffer;
char wordBuf[256] = "";
@@ -402,12 +407,6 @@ void Text::processTextLine() {
break;
}
- if (*buffer == '\1') {
- var4 = false;
- buffer++;
- break;
- }
-
if (*wordBuf == '@') {
var4 = false;
buffer++;
Commit: 32d9842788e6fd6d502e951fe26f0c359c925208
https://github.com/scummvm/scummvm/commit/32d9842788e6fd6d502e951fe26f0c359c925208
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-12-15T23:12:36+01:00
Commit Message:
TWINE: renamed variables
Changed paths:
engines/twine/text.cpp
engines/twine/text.h
diff --git a/engines/twine/text.cpp b/engines/twine/text.cpp
index 79cbb31280..b0a6ca8e2f 100644
--- a/engines/twine/text.cpp
+++ b/engines/twine/text.cpp
@@ -380,10 +380,10 @@ Text::WordSize Text::getWordSize(const char *completeText, char *wordBuf, int32
void Text::processTextLine() {
const char *buffer = _progressiveTextNextWord;
_dialCharSpace = 7;
- bool var4 = true;
+ bool moreWordsFollowing = true;
int32 lineBreakX = 0;
- int32 printText8PrepareBufferVar2 = 0;
+ int32 spaceCharCount = 0;
_progressiveTextBuffer[0] = '\0';
for (;;) {
@@ -395,7 +395,7 @@ void Text::processTextLine() {
break;
}
if (*buffer == '\1') {
- var4 = false;
+ moreWordsFollowing = false;
buffer++;
break;
}
@@ -408,7 +408,7 @@ void Text::processTextLine() {
}
if (*wordBuf == '@') {
- var4 = false;
+ moreWordsFollowing = false;
buffer++;
if (lineBreakX == 0) {
lineBreakX = 7;
@@ -426,7 +426,7 @@ void Text::processTextLine() {
_progressiveTextNextWord = buffer;
strncat(_progressiveTextBuffer, wordBuf, sizeof(_progressiveTextBuffer) - strlen(_progressiveTextBuffer) - 1);
strncat(_progressiveTextBuffer, " ", sizeof(_progressiveTextBuffer) - strlen(_progressiveTextBuffer) - 1); // not 100% accurate
- printText8PrepareBufferVar2++;
+ spaceCharCount++;
lineBreakX += wordSize.inPixel + _dialCharSpace;
if (*_progressiveTextNextWord != '\0') {
@@ -436,15 +436,16 @@ void Text::processTextLine() {
break;
}
- if (printText8PrepareBufferVar2 > 0) {
- printText8PrepareBufferVar2--;
+ if (spaceCharCount > 0) {
+ spaceCharCount--;
}
- if (*_progressiveTextNextWord != '\0' && var4) {
- if (printText8PrepareBufferVar2 <= 0) {
- printText8PrepareBufferVar2 = 1;
+ if (*_progressiveTextNextWord != '\0' && moreWordsFollowing) {
+ if (spaceCharCount <= 0) {
+ spaceCharCount = 1;
}
- _dialCharSpace += (_dialTextBoxMaxX - lineBreakX) / printText8PrepareBufferVar2;
+ // split the remaining space between the words
+ _dialCharSpace += (_dialTextBoxMaxX - lineBreakX) / spaceCharCount;
printText10Var1 = -2 * lineBreakX;
}
diff --git a/engines/twine/text.h b/engines/twine/text.h
index c1636e134d..ef6752f120 100644
--- a/engines/twine/text.h
+++ b/engines/twine/text.h
@@ -196,7 +196,7 @@ private:
/** Pixel size between dialogue text */
int32 _dialSpaceBetween = 0;
- /** Pixel size of the space character */
+ /** Pixel size of the space character - recalculated per per line */
int32 _dialCharSpace = 0;
/** Dialogue text color */
int32 _dialTextColor = 0;
Commit: 6c24e0de983d51d9f50a7419a9434fabb479ac84
https://github.com/scummvm/scummvm/commit/6c24e0de983d51d9f50a7419a9434fabb479ac84
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2020-12-15T23:12:36+01:00
Commit Message:
TWINE: fixed typo in enum name
Changed paths:
engines/twine/gamestate.cpp
engines/twine/menu.cpp
engines/twine/text.cpp
engines/twine/text.h
diff --git a/engines/twine/gamestate.cpp b/engines/twine/gamestate.cpp
index 41df51c94d..6f793769a9 100644
--- a/engines/twine/gamestate.cpp
+++ b/engines/twine/gamestate.cpp
@@ -314,7 +314,7 @@ void GameState::processFoundItem(int32 item) {
_engine->_text->initText(item);
_engine->_text->initDialogueBox();
- ProgressiveTestState textState = ProgressiveTestState::UNK1;
+ ProgressiveTextState textState = ProgressiveTextState::UNK1;
bool quitItem = false;
_engine->_text->initVoxToPlay(item);
@@ -360,12 +360,12 @@ void GameState::processFoundItem(int32 item) {
_engine->_grid->drawOverModelActor(itemX, itemY, itemZ);
_engine->_redraw->addRedrawArea(_engine->_redraw->renderRect);
- if (textState != ProgressiveTestState::UNK0) {
+ if (textState != ProgressiveTextState::End) {
_engine->_interface->resetClip();
textState = _engine->_text->updateProgressiveText();
}
- if (textState == ProgressiveTestState::UNK0 || textState == ProgressiveTestState::UNK2) {
+ if (textState == ProgressiveTextState::End || textState == ProgressiveTextState::UNK2) {
_engine->_system->delayMillis(15);
}
@@ -373,12 +373,12 @@ void GameState::processFoundItem(int32 item) {
_engine->readKeys();
if (_engine->_input->toggleAbortAction()) {
- if (textState == ProgressiveTestState::UNK0) {
+ if (textState == ProgressiveTextState::End) {
quitItem = true;
}
- if (textState == ProgressiveTestState::UNK2) {
- textState = ProgressiveTestState::UNK1;
+ if (textState == ProgressiveTextState::UNK2) {
+ textState = ProgressiveTextState::UNK1;
}
}
diff --git a/engines/twine/menu.cpp b/engines/twine/menu.cpp
index b4540b421c..971399475a 100644
--- a/engines/twine/menu.cpp
+++ b/engines/twine/menu.cpp
@@ -1108,7 +1108,7 @@ void Menu::processInventoryMenu() {
_engine->_text->setFontCrossColor(4);
_engine->_text->initDialogueBox();
- ProgressiveTestState bx = ProgressiveTestState::UNK0;
+ ProgressiveTextState bx = ProgressiveTextState::End;
#if 0
ScopedCursor scopedCursor(_engine);
@@ -1167,19 +1167,19 @@ void Menu::processInventoryMenu() {
updateItemText = false;
}
- if (updateItemText || bx != ProgressiveTestState::UNK2) {
+ if (updateItemText || bx != ProgressiveTextState::UNK2) {
bx = _engine->_text->updateProgressiveText();
}
// TRICKY: 3D model rotation delay - only apply when no text is drawing
- if (bx == ProgressiveTestState::UNK0 || bx == ProgressiveTestState::UNK2) {
+ if (bx == ProgressiveTextState::End || bx == ProgressiveTextState::UNK2) {
_engine->_system->delayMillis(15);
}
if (_engine->_input->toggleActionIfActive(TwinEActionType::UINextPage)) {
- if (bx == ProgressiveTestState::UNK2) {
+ if (bx == ProgressiveTextState::UNK2) {
_engine->_text->initInventoryDialogueBox();
- bx = ProgressiveTestState::UNK0;
+ bx = ProgressiveTextState::End;
} else {
if (inventorySelectedItem < NUM_INVENTORY_ITEMS && _engine->_gameState->hasItem((InventoryItems)inventorySelectedItem) && !_engine->_gameState->inventoryDisabled()) {
_engine->_text->initInventoryDialogueBox();
diff --git a/engines/twine/text.cpp b/engines/twine/text.cpp
index b0a6ca8e2f..b77dbdefd3 100644
--- a/engines/twine/text.cpp
+++ b/engines/twine/text.cpp
@@ -511,9 +511,9 @@ int32 Text::getCharHeight(uint8 chr) const {
}
// TODO: refactor this code
-ProgressiveTestState Text::updateProgressiveText() {
+ProgressiveTextState Text::updateProgressiveText() {
if (!_hasValidTextHandle) {
- return ProgressiveTestState::UNK0;
+ return ProgressiveTextState::End;
}
if (*_progressiveTextBufferPtr == '\0') {
@@ -522,7 +522,7 @@ ProgressiveTestState Text::updateProgressiveText() {
renderContinueReadingTriangle();
}
_hasValidTextHandle = false;
- return ProgressiveTestState::UNK0;
+ return ProgressiveTextState::End;
}
if (_progressiveTextNextPage) {
_engine->_interface->blitBox(_dialTextBox, _engine->workVideoBuffer, _engine->frontVideoBuffer);
@@ -535,14 +535,14 @@ ProgressiveTestState Text::updateProgressiveText() {
if (*_progressiveTextNextWord == '\0') {
initProgressiveTextBuffer();
_progressiveTextEnd = true;
- return ProgressiveTestState::UNK1;
+ return ProgressiveTextState::UNK1;
}
processTextLine();
}
// RECHECK this later
if (*_progressiveTextBufferPtr == '\0') {
- return ProgressiveTestState::UNK1;
+ return ProgressiveTextState::UNK1;
}
fillFadeInBuffer(_dialTextXPos, _dialTextYPos, *_progressiveTextBufferPtr);
@@ -563,7 +563,7 @@ ProgressiveTestState Text::updateProgressiveText() {
_progressiveTextBufferPtr++;
if (*_progressiveTextBufferPtr != '\0') {
- return ProgressiveTestState::UNK1;
+ return ProgressiveTextState::UNK1;
}
const int32 lineHeight = 38;
@@ -572,12 +572,12 @@ ProgressiveTestState Text::updateProgressiveText() {
if (_progressiveTextNextPage && !_progressiveTextEnd) {
renderContinueReadingTriangle();
- return ProgressiveTestState::UNK2;
+ return ProgressiveTextState::UNK2;
}
_dialTextBoxCurrentLine++;
if (_dialTextBoxCurrentLine < _dialTextBoxLines) {
- return ProgressiveTestState::UNK1;
+ return ProgressiveTextState::UNK1;
}
initProgressiveTextBuffer();
@@ -587,7 +587,7 @@ ProgressiveTestState Text::updateProgressiveText() {
_progressiveTextEnd = true;
}
- return ProgressiveTestState::UNK1;
+ return ProgressiveTextState::UNK1;
}
// TODO: refactor this code
@@ -607,13 +607,13 @@ bool Text::drawTextFullscreen(int32 index) {
initText(index);
initDialogueBox();
- ProgressiveTestState printedText;
+ ProgressiveTextState printedText;
for (;;) {
_engine->readKeys();
printedText = updateProgressiveText();
playVox(currDialTextEntry);
- if (printedText == ProgressiveTestState::UNK0 && !_engine->_sound->isSamplePlaying(currDialTextEntry)) {
+ if (printedText == ProgressiveTextState::End && !_engine->_sound->isSamplePlaying(currDialTextEntry)) {
break;
}
@@ -627,7 +627,7 @@ bool Text::drawTextFullscreen(int32 index) {
_hasValidTextHandle = false;
- if (printedText == ProgressiveTestState::UNK0) {
+ if (printedText == ProgressiveTextState::End) {
stopVox(currDialTextEntry);
// wait displaying text
for (;;) {
@@ -773,12 +773,12 @@ void Text::drawAskQuestion(int32 index) {
initText(index);
initDialogueBox();
- ProgressiveTestState textStatus = ProgressiveTestState::UNK1;
+ ProgressiveTextState textStatus = ProgressiveTextState::UNK1;
do {
_engine->readKeys();
textStatus = updateProgressiveText();
- if (textStatus == ProgressiveTestState::UNK2) {
+ if (textStatus == ProgressiveTextState::UNK2) {
do {
_engine->readKeys();
if (_engine->shouldQuit()) {
@@ -792,7 +792,7 @@ void Text::drawAskQuestion(int32 index) {
}
_engine->_system->delayMillis(1);
- } while (textStatus != ProgressiveTestState::UNK0);
+ } while (textStatus != ProgressiveTextState::End);
while (playVoxSimple(currDialTextEntry)) {
if (_engine->shouldQuit() || _engine->_input->toggleAbortAction()) {
diff --git a/engines/twine/text.h b/engines/twine/text.h
index ef6752f120..f40762aeb3 100644
--- a/engines/twine/text.h
+++ b/engines/twine/text.h
@@ -101,8 +101,8 @@ enum _TextId {
#define TEXT_MAX_FADE_IN_CHR 32
-enum class ProgressiveTestState {
- UNK0 = 0,
+enum class ProgressiveTextState {
+ End = 0,
UNK1 = 1,
UNK2 = 2
};
@@ -265,7 +265,7 @@ public:
void initInventoryDialogueBox();
void initText(int32 index);
- ProgressiveTestState updateProgressiveText();
+ ProgressiveTextState updateProgressiveText();
/**
* Set font type parameters
More information about the Scummvm-git-logs
mailing list