aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/dreamweb/stubs.cpp30
-rw-r--r--engines/dreamweb/stubs.h1
2 files changed, 17 insertions, 14 deletions
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index a2bfd5b96a..646c7e8909 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -217,36 +217,38 @@ void DreamGenContext::setmouse() {
data.word(kOldpointerx) = 0xffff;
}
-void DreamGenContext::getnextword() {
- uint8 totalWidth = 0;
- bh = 0;
+uint8 DreamGenContext::getnextword(uint8 *totalWidth, uint8 *charCount) {
+ *totalWidth = 0;
+ *charCount = 0;
while(true) {
uint8 firstChar = es.byte(di);
++di;
- ++bh;
+ ++*charCount;
if ((firstChar == ':') || (firstChar == 0)) { //endall
- totalWidth += 6;
- bl = totalWidth;
- al = 1;
- return;
+ *totalWidth += 6;
+ return 1;
}
if (firstChar == 32) { //endword
- totalWidth += 6;
- bl = totalWidth;
- al = 0;
- return;
+ *totalWidth += 6;
+ return 0;
}
firstChar = engine->modifyChar(firstChar);
if (firstChar != 255) {
uint8 secondChar = es.byte(di);
uint8 width = ds.byte(6*(firstChar - 32 + data.word(kCharshift)));
width = kernchars(firstChar, secondChar, width);
- totalWidth += width;
- bl = totalWidth;
+ *totalWidth += width;
}
}
}
+void DreamGenContext::getnextword() {
+ uint8 totalWidth, charCount;
+ al = getnextword(&totalWidth, &charCount);
+ bl = totalWidth;
+ bh = charCount;
+}
+
uint8 DreamGenContext::kernchars(uint8 firstChar, uint8 secondChar, uint8 width) {
if ((firstChar == 'a') || (al == 'u')) {
if ((secondChar == 'n') || (secondChar == 't') || (secondChar == 'r') || (secondChar == 'i') || (secondChar == 'l'))
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 70c1cfda13..7f82ba5a54 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -15,6 +15,7 @@
void randomnumber();
void quickquit2();
void getnextword();
+ uint8 getnextword(uint8 *totalWidth, uint8 *charCount);
void kernchars();
uint8 kernchars(uint8 firstChar, uint8 secondChar, uint8 width);
Sprite* spritetable();