aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/dreamweb/print.cpp2
-rw-r--r--engines/dreamweb/stubs.cpp7
-rw-r--r--engines/dreamweb/stubs.h2
3 files changed, 5 insertions, 6 deletions
diff --git a/engines/dreamweb/print.cpp b/engines/dreamweb/print.cpp
index a73e9f0792..46d7d45b1a 100644
--- a/engines/dreamweb/print.cpp
+++ b/engines/dreamweb/print.cpp
@@ -90,7 +90,7 @@ void DreamGenContext::printchar(uint16 src, uint16* x, uint16 y, uint8 c, uint8
if (data.byte(kForeignrelease) != 0)
y -= 3;
uint16 tmp = c - 32 + data.word(kCharshift);
- showframe(src, *x, y, tmp & 0xff, tmp >> 8, width, height);
+ showframe(src, *x, y, tmp & 0x1ff, (tmp >> 8) & 0xfe, width, height);
di = pop();
si = pop();
_cmp(data.byte(kKerning), 0);
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 8c278b5990..688ad82d92 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -671,12 +671,11 @@ void DreamGenContext::frameoutv(uint8 *dst, const uint8 *src, uint16 pitch, uint
}
}
-void DreamGenContext::showframe(uint16 src, uint16 x, uint16 y, uint8 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) {
+void DreamGenContext::showframe(uint16 src, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) {
ds = src;
- al = frameNumber;
ah = effectsFlag;
- si = (ax & 0x1ff) * 6;
+ si = frameNumber * 6;
if (ds.word(si) == 0) {
*width = 0;
*height = 0;
@@ -733,7 +732,7 @@ void DreamGenContext::showframe(uint16 src, uint16 x, uint16 y, uint8 frameNumbe
void DreamGenContext::showframe() {
uint8 width, height;
- showframe(ds, di, bx, al, ah, &width, &height);
+ showframe(ds, di, bx, ax & 0x1ff, ah & 0xfe, &width, &height);
cl = width;
ch = height;
}
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index e72229639b..33b272efc6 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -58,7 +58,7 @@
uint8 kernchars(uint8 firstChar, uint8 secondChar, uint8 width);
Sprite *spritetable();
void showframe();
- void showframe(uint16 src, uint16 x, uint16 y, uint8 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height);
+ void showframe(uint16 src, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height);
void printasprite(const Sprite *sprite);
void width160();
void multiput(uint16 x, uint16 y, uint8 width, uint8 height);