aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--akos.cpp4
-rw-r--r--gfx.cpp2
-rw-r--r--gfx.h4
-rw-r--r--gui.cpp2
4 files changed, 7 insertions, 5 deletions
diff --git a/akos.cpp b/akos.cpp
index f57b84b8e6..a14a09496b 100644
--- a/akos.cpp
+++ b/akos.cpp
@@ -928,8 +928,10 @@ void AkosRenderer::codec5()
if(left > max_width)
left -= left - max_width;
+ // Yazoo: this is not correct, but fix a lots of bugs for the momment
+
draw_top = 0;
- draw_bottom = 200;
+ draw_bottom = vs->height;
_vm->updateDirtyRect(0, left, right+1, top, bottom+1, 1 << dirty_id);
diff --git a/gfx.cpp b/gfx.cpp
index 065f9263f7..21db83f0ce 100644
--- a/gfx.cpp
+++ b/gfx.cpp
@@ -231,7 +231,7 @@ void Gdi::drawStripToScreen(VirtScreen * vs, int x, int w, int t, int b)
scrollY = 0;
ptr = vs->screenPtr + (t * 40 + x) * 8 + _readOffs + scrollY * 320;
- _vm->_system->copy_rect(ptr, 320, x * 8, vs->topline + t , w, height);
+ _vm->_system->copy_rect(ptr, 320, x * 8, vs->topline + t , w, height);
}
void blit(byte *dst, byte *src, int w, int h)
diff --git a/gfx.h b/gfx.h
index beb7f2925a..6164c41ee4 100644
--- a/gfx.h
+++ b/gfx.h
@@ -53,8 +53,8 @@ struct VirtScreen { /* Virtual screen areas */
byte alloctwobuffers;
byte scrollable;
uint16 xstart;
- byte tdirty[40];
- byte bdirty[40];
+ uint16 tdirty[40];
+ uint16 bdirty[40];
byte *screenPtr;
byte *backBuf;
};
diff --git a/gui.cpp b/gui.cpp
index 0167b4bd50..1f3c737e6c 100644
--- a/gui.cpp
+++ b/gui.cpp
@@ -522,7 +522,7 @@ byte *Gui::getBasePtr(int x, int y)
return NULL;
return _vs->screenPtr + x + (y - _vs->topline) * 320 +
- _s->_screenStartStrip * 8;
+ _s->_screenStartStrip * 8 + (_s->camera._cur.y - 100)*320;
}
void Gui::lineto(int x, int y)