aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2014-10-31 19:44:45 -0400
committerPaul Gilbert2014-12-12 22:18:21 -0500
commite9c003f30648936e58253dca2e72173757d2ff80 (patch)
tree612bc7b85b85a4399acb503c9ef16aeb68b2574d /engines
parent374669d7c3d8b9d3b7207925c90417a4e82f7ed2 (diff)
downloadscummvm-rg350-e9c003f30648936e58253dca2e72173757d2ff80.tar.gz
scummvm-rg350-e9c003f30648936e58253dca2e72173757d2ff80.tar.bz2
scummvm-rg350-e9c003f30648936e58253dca2e72173757d2ff80.zip
ACCESS: Fix display of paged text in doEstablish calls
Diffstat (limited to 'engines')
-rw-r--r--engines/access/access.cpp17
-rw-r--r--engines/access/access.h4
-rw-r--r--engines/access/amazon/amazon_game.cpp11
3 files changed, 16 insertions, 16 deletions
diff --git a/engines/access/access.cpp b/engines/access/access.cpp
index a97bd6d322..051884c704 100644
--- a/engines/access/access.cpp
+++ b/engines/access/access.cpp
@@ -218,17 +218,20 @@ void AccessEngine::freeInactiveData() {
_inactive._spritesPtr = nullptr;
}
-void AccessEngine::speakText(ASurface *s, Common::Array<Common::String> msgArr) {
+void AccessEngine::speakText(ASurface *s, const Common::String &msg) {
+ Common::String lines = msg;
+ Common::String line;
int curPage = 0;
int soundsLeft = 0;
- while(true) {
+ for (;;) {
soundsLeft = _countTbl[curPage];
_events->zeroKeys();
Common::String line;
int width = 0;
- bool lastLine = _fonts._font2.getLine(msgArr[curPage], s->_maxChars * 6, line, width);
+ bool lastLine = _fonts._font2.getLine(lines, s->_maxChars * 6, line, width);
+
// Set font colors
_fonts._font2._fontColors[0] = 0;
_fonts._font2._fontColors[1] = 28;
@@ -308,11 +311,13 @@ void AccessEngine::speakText(ASurface *s, Common::Array<Common::String> msgArr)
}
}
-void AccessEngine::printText(ASurface *s, Common::String &msg) {
+void AccessEngine::printText(ASurface *s, const Common::String &msg) {
+ Common::String lines = msg;
Common::String line;
int width = 0;
- while (true) {
- bool lastLine = _fonts._font2.getLine(msg, s->_maxChars * 6, line, width);
+
+ for (;;) {
+ bool lastLine = _fonts._font2.getLine(lines, s->_maxChars * 6, line, width);
// Set font colors
_fonts._font2._fontColors[0] = 0;
diff --git a/engines/access/access.h b/engines/access/access.h
index 157a33c723..bec1dacb4c 100644
--- a/engines/access/access.h
+++ b/engines/access/access.h
@@ -271,8 +271,8 @@ public:
/**
* Draw a string on a given surface and update text positioning
*/
- void printText(ASurface *s, Common::String &msg);
- void speakText(ASurface *s, Common::Array<Common::String>msgArr);
+ void printText(ASurface *s, const Common::String &msg);
+ void speakText(ASurface *s, const Common::String &msg);
/**
* Load a savegame
diff --git a/engines/access/amazon/amazon_game.cpp b/engines/access/amazon/amazon_game.cpp
index 66b77d66d2..187b38c497 100644
--- a/engines/access/amazon/amazon_game.cpp
+++ b/engines/access/amazon/amazon_game.cpp
@@ -282,17 +282,12 @@ void AmazonEngine::doEstablish(int screenId, int estabIndex) {
uint16 msgOffset = READ_LE_UINT16(_eseg->data() + (estabIndex * 2) + 2);
_printEnd = 155;
+ Common::String msg((const char *)_eseg->data() + msgOffset);
+
if (_txtPages == 0) {
- Common::String msg((const char *)_eseg->data() + msgOffset);
printText(_screen, msg);
} else {
- Common::Array<Common::String> msgArr;
- for (int i = 0; i < _txtPages; ++i) {
- Common::String msg((const char *)_eseg->data() + msgOffset);
- msgOffset += msg.size() + 1;
- msgArr.push_back(msg);
- }
- speakText(_screen, msgArr);
+ speakText(_screen, msg);
}
_screen->forceFadeOut();