Revert "DREAMWEB: Cleanup"

This reverts commit 5871a6943fa0a07bae81482ed96448cd3763af08.
This commit is contained in:
Bertrand Augereau 2011-12-05 00:11:52 +01:00
parent 07633d0c8b
commit 2b2f4a90a6
2 changed files with 18 additions and 10 deletions

View File

@ -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;

View File

@ -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();