aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2010-01-10 09:42:55 +0000
committerMartin Kiewitz2010-01-10 09:42:55 +0000
commit231e122c639e745094062e14273ab64b6bb84ea4 (patch)
tree9037c93a0e296ed14ac2c5015fb3310cb2366b79
parent7d16dbeb3581924175cf7d63c6a4189e016e5413 (diff)
downloadscummvm-rg350-231e122c639e745094062e14273ab64b6bb84ea4.tar.gz
scummvm-rg350-231e122c639e745094062e14273ab64b6bb84ea4.tar.bz2
scummvm-rg350-231e122c639e745094062e14273ab64b6bb84ea4.zip
SCI: updateBox now also supports hires mode
svn-id: r47219
-rw-r--r--engines/sci/engine/kgraphics.cpp6
-rw-r--r--engines/sci/graphics/gfx.cpp4
-rw-r--r--engines/sci/graphics/gfx.h1
-rw-r--r--engines/sci/graphics/gui.cpp7
-rw-r--r--engines/sci/graphics/gui.h2
5 files changed, 15 insertions, 5 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index f9ae3e2366..1a0d789458 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -264,11 +264,13 @@ reg_t kGraph(EngineState *s, int argc, reg_t *argv) {
s->_gui->graphFillBox(rect, colorMask, color, priority, control);
break;
- case K_GRAPH_UPDATE_BOX:
+ case K_GRAPH_UPDATE_BOX: {
kGraphCreateRect(x, y, x1, y1, &rect);
+ bool hiresMode = (argc > 6) ? true : false;
// argc == 7 on upscaled hires
- s->_gui->graphUpdateBox(rect);
+ s->_gui->graphUpdateBox(rect, hiresMode);
break;
+ }
case K_GRAPH_REDRAW_BOX:
kGraphCreateRect(x, y, x1, y1, &rect);
diff --git a/engines/sci/graphics/gfx.cpp b/engines/sci/graphics/gfx.cpp
index 8aeb15a22a..19d9c957f4 100644
--- a/engines/sci/graphics/gfx.cpp
+++ b/engines/sci/graphics/gfx.cpp
@@ -267,6 +267,10 @@ void Gfx::BitsShow(const Common::Rect &rect) {
_screen->copyRectToScreen(workerRect);
}
+void Gfx::BitsShowHires(const Common::Rect &rect) {
+ _screen->copyDisplayRectToScreen(rect);
+}
+
reg_t Gfx::BitsSave(const Common::Rect &rect, byte screenMask) {
reg_t memoryId;
byte *memoryPtr;
diff --git a/engines/sci/graphics/gfx.h b/engines/sci/graphics/gfx.h
index af1d4b13c7..6ad6e6c9ec 100644
--- a/engines/sci/graphics/gfx.h
+++ b/engines/sci/graphics/gfx.h
@@ -78,6 +78,7 @@ public:
void OffsetLine(Common::Point &start, Common::Point &end);
void BitsShow(const Common::Rect &r);
+ void BitsShowHires(const Common::Rect &rect);
reg_t BitsSave(const Common::Rect &rect, byte screenFlags);
void BitsGetRect(reg_t memoryHandle, Common::Rect *destRect);
void BitsRestore(reg_t memoryHandle);
diff --git a/engines/sci/graphics/gui.cpp b/engines/sci/graphics/gui.cpp
index 07c5ee665a..826630a1a4 100644
--- a/engines/sci/graphics/gui.cpp
+++ b/engines/sci/graphics/gui.cpp
@@ -516,8 +516,11 @@ void SciGui::graphRestoreBox(reg_t handle) {
_gfx->BitsRestore(handle);
}
-void SciGui::graphUpdateBox(Common::Rect rect) {
- _gfx->BitsShow(rect);
+void SciGui::graphUpdateBox(Common::Rect rect, bool hiresMode) {
+ if (!hiresMode)
+ _gfx->BitsShow(rect);
+ else
+ _gfx->BitsShowHires(rect);
}
void SciGui::graphRedrawBox(Common::Rect rect) {
diff --git a/engines/sci/graphics/gui.h b/engines/sci/graphics/gui.h
index 0813acd1f8..cf35865c5d 100644
--- a/engines/sci/graphics/gui.h
+++ b/engines/sci/graphics/gui.h
@@ -104,7 +104,7 @@ public:
virtual reg_t graphSaveBox(Common::Rect rect, uint16 flags);
virtual reg_t graphSaveUpscaledHiresBox(Common::Rect rect);
virtual void graphRestoreBox(reg_t handle);
- virtual void graphUpdateBox(Common::Rect rect);
+ virtual void graphUpdateBox(Common::Rect rect, bool hiresMode);
virtual void graphRedrawBox(Common::Rect rect);
virtual void graphAdjustPriority(int top, int bottom);