aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova/state.cpp
diff options
context:
space:
mode:
authorThierry Crozat2017-12-05 22:22:04 +0000
committerThierry Crozat2018-01-23 02:15:42 +0000
commit75e3568f063c883ecfb057f4c6dccd3962d77a4c (patch)
treebbbf6837b900742a0308ed675bade510abf5c6bf /engines/supernova/state.cpp
parentef90759e924caaf7b8b3854890eb0ea813a352c0 (diff)
downloadscummvm-rg350-75e3568f063c883ecfb057f4c6dccd3962d77a4c.tar.gz
scummvm-rg350-75e3568f063c883ecfb057f4c6dccd3962d77a4c.tar.bz2
scummvm-rg350-75e3568f063c883ecfb057f4c6dccd3962d77a4c.zip
SUPERNOVA: Implement dialogs with variable text
This was partially implemented but not finished. However I reverted the changes already done to support that in order to use a different approach.
Diffstat (limited to 'engines/supernova/state.cpp')
-rw-r--r--engines/supernova/state.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 2481e6b307..e0f30e941e 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -355,7 +355,6 @@ void GameManager::initState() {
for (int i = 0 ; i < 6 ; ++i) {
_sentenceNumber[i] = -1;
_texts[i] = kNoString;
- _varTexts[i].clear();
_rows[i] = 0;
_rowsStart[i] = 0;
}
@@ -687,8 +686,6 @@ void GameManager::telomat(int nr) {
dial2[3] = kStringDialogSeparator;
static byte rows2[4] = {1, 1, 1, 1};
-
- Common::String varDial[6];
_vm->renderBox(0, 0, 320, 200, kColorBlack);
_vm->renderText(kStringTelomat7, 100, 70, kColorGreen);
@@ -755,13 +752,14 @@ void GameManager::telomat(int nr) {
waitOnInput(_timer1);
_vm->removeMessage();
if (_state._nameSeen[nr]) {
- varDial[1] = name2[nr];
- dial1[1] = kStringTelomat2;
+ Common::String string = _vm->getGameString(kStringTelomat2);
+ _vm->setGameString(kStringPlaceholder1, Common::String::format(string.c_str(), name2[nr].c_str()));
+ dial1[1] = kStringPlaceholder1;
_currentRoom->addSentence(1, 1);
} else
_currentRoom->removeSentence(1, 1);
- switch (dialog(3, rows1, dial1, 1, varDial)) {
+ switch (dialog(3, rows1, dial1, 1)) {
case 1: _vm->renderMessage(kStringTelomat18, kMessageTop);
waitOnInput(_timer1);
_vm->removeMessage();
@@ -1299,7 +1297,7 @@ void GameManager::reply(const char *text, int aus1, int aus2) {
_vm->removeMessage();
}
-int GameManager::dialog(int num, byte rowLength[6], StringID text[6], int number, Common::String varText[6]) {
+int GameManager::dialog(int num, byte rowLength[6], StringID text[6], int number) {
_vm->_allowLoadGame = false;
_guiEnabled = false;
@@ -1322,8 +1320,6 @@ int GameManager::dialog(int num, byte rowLength[6], StringID text[6], int number
_rows[i] = rowLength[i];
for (int j = 0; j < _rows[i]; ++j, ++r, ++rq) {
_texts[r] = text[rq];
- if (varText != nullptr && !varText[rq].empty())
- _varTexts[r] = varText[rq];
_sentenceNumber[r] = i;
}
sentence(i, false);