aboutsummaryrefslogtreecommitdiff
path: root/engines/tucker/tucker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tucker/tucker.cpp')
-rw-r--r--engines/tucker/tucker.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/engines/tucker/tucker.cpp b/engines/tucker/tucker.cpp
index 2d17417b78..d4de367dc4 100644
--- a/engines/tucker/tucker.cpp
+++ b/engines/tucker/tucker.cpp
@@ -143,6 +143,14 @@ void TuckerEngine::restart() {
_gameHintsDisplayText = 0;
_gameHintsStringNum = 0;
+ if ((_gameFlags & kGameFlagDemo) == 0) {
+ _locationWidthTable = _locationWidthTableGame;
+ _locationHeightTable = _locationHeightTableGame;
+ } else {
+ _locationWidthTable = _locationWidthTableDemo;
+ _locationHeightTable = _locationHeightTableDemo;
+ }
+
memset(_sprA02Table, 0, sizeof(_sprA02Table));
memset(_sprC02Table, 0, sizeof(_sprC02Table));
memset(_actionsTable, 0, sizeof(_actionsTable));
@@ -1527,9 +1535,7 @@ void TuckerEngine::drawData3() {
void TuckerEngine::execData3PreUpdate() {
switch (_locationNum) {
case 1:
- if ((_gameFlags & kGameFlagDemo) == 0) {
- execData3PreUpdate_locationNum1();
- }
+ execData3PreUpdate_locationNum1();
break;
case 2:
execData3PreUpdate_locationNum2();
@@ -2819,7 +2825,7 @@ void TuckerEngine::drawStringAlt(int offset, int color, const uint8 *str, int st
offset += _charWidthTable[chr];
++pos;
}
- addDirtyRect(startOffset % 640, startOffset / 640, (offset - startOffset) % 640, Graphics::_charset.charH);
+ addDirtyRect(startOffset % 640, startOffset / 640, Graphics::_charset.charW * pos, Graphics::_charset.charH);
}
void TuckerEngine::drawItemString(int offset, int num, const uint8 *str) {
@@ -3776,13 +3782,13 @@ int TuckerEngine::splitSpeechTextLines(const uint8 *dataPtr, int pos, int x, int
void TuckerEngine::drawSpeechTextLine(const uint8 *dataPtr, int pos, int count, int dstOffset, uint8 color) {
int startOffset = dstOffset;
- while (count > 0 && dataPtr[pos] != '\n') {
+ int i = 0;
+ for (; i < count && dataPtr[pos] != '\n'; ++i) {
Graphics::drawStringChar(_locationBackgroundGfxBuf + dstOffset, dataPtr[pos], 640, color, _charsetGfxBuf);
dstOffset += _charWidthTable[dataPtr[pos]];
++pos;
- --count;
}
- addDirtyRect(startOffset % 640, startOffset / 640, (dstOffset - startOffset) % 640, Graphics::_charset.charH);
+ addDirtyRect(startOffset % 640, startOffset / 640, Graphics::_charset.charW * i, Graphics::_charset.charH);
}
void TuckerEngine::redrawScreen(int offset) {