diff options
-rw-r--r-- | engines/dreamweb/print.cpp | 27 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 1 |
2 files changed, 18 insertions, 10 deletions
diff --git a/engines/dreamweb/print.cpp b/engines/dreamweb/print.cpp index 528b897b60..dce5fc76be 100644 --- a/engines/dreamweb/print.cpp +++ b/engines/dreamweb/print.cpp @@ -171,6 +171,12 @@ uint8 DreamGenContext::printDirect(const uint8** string, uint16 x, uint16 *y, ui } } +void DreamGenContext::getNumber() { + uint16 offset = di; + cl = getNumber((Frame *)ds.ptr(0, 0), es.ptr(si, 0), dl, (bool)(dl & 1), &offset); + di = offset; +} + uint8 DreamGenContext::getNumber(const Frame *charSet, const uint8 *string, uint16 maxWidth, bool centered, uint16* offset) { uint8 totalWidth = 0; uint8 charCount = 0; @@ -179,30 +185,31 @@ uint8 DreamGenContext::getNumber(const Frame *charSet, const uint8 *string, uint uint8 done = getNextWord(charSet, string, &wordTotalWidth, &wordCharCount); string += wordCharCount; - uint16 tmp = totalWidth + wordTotalWidth - 10; if (done == 1) { //endoftext - if (tmp < maxWidth) { + ax = totalWidth + wordTotalWidth - 10; + if (ax < maxWidth) { totalWidth += wordTotalWidth; charCount += wordCharCount; } if (centered) { - tmp = (maxWidth & 0xfe) + 2 + 20 - totalWidth; - tmp /= 2; + ax = (maxWidth & 0xfe) + 2 + 20 - totalWidth; + ax /= 2; } else { - tmp = 0; + ax = 0; } *offset += ax; return charCount; } - if (tmp >= maxWidth) { //gotoverend + ax = totalWidth + wordTotalWidth - 10; + if (ax >= maxWidth) { //gotoverend if (centered) { - tmp = (maxWidth & 0xfe) - totalWidth + 20; - tmp /= 2; + ax = (maxWidth & 0xfe) - totalWidth + 20; + ax /= 2; } else { - tmp = 0; + ax = 0; } - *offset += tmp; + *offset += ax; return charCount; } totalWidth += wordTotalWidth; diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index df424d3503..a4faa6322d 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -88,6 +88,7 @@ uint8 printSlow(const uint8 *string, uint16 x, uint16 y, uint8 maxWidth, bool centered); void printSlow(); void dumpTextLine(); + void getNumber(); uint8 getNumber(const Frame *charSet, const uint8 *string, uint16 maxWidth, bool centered, uint16 *offset); uint8 kernChars(uint8 firstChar, uint8 secondChar, uint8 width); void oldToNames(); |