aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMax Horn2009-05-18 12:34:25 +0000
committerMax Horn2009-05-18 12:34:25 +0000
commitf59456274530175e6b41d78d29c95b6db1c4299a (patch)
tree388d6f8bec605f3afe2caeb48b5dcf079c911dd4 /engines
parentfc9096ba1d8a08af5e6d84981087c6b506e86b5b (diff)
downloadscummvm-rg350-f59456274530175e6b41d78d29c95b6db1c4299a.tar.gz
scummvm-rg350-f59456274530175e6b41d78d29c95b6db1c4299a.tar.bz2
scummvm-rg350-f59456274530175e6b41d78d29c95b6db1c4299a.zip
SCI: Added a FIXME to graph_save_box
svn-id: r40684
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/engine/kgraphics.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index 2c81409fce..051c6f8b2e 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -200,8 +200,13 @@ int _find_priority_band(EngineState *s, int nr) {
reg_t graph_save_box(EngineState *s, rect_t area) {
reg_t handle = kalloc(s, "graph_save_box()", sizeof(gfxw_snapshot_t *));
- gfxw_snapshot_t **ptr = (gfxw_snapshot_t **) kmem(s, handle);
+ gfxw_snapshot_t **ptr = (gfxw_snapshot_t **)kmem(s, handle);
+ // FIXME: gfxw_make_snapshot returns a pointer. Now why do we store a
+ // pointer to real memory inside the SCI heap?
+ // If we save and the load again, this cannot work in general.
+ // This seems like bad design. Either the snapshot data itself should be
+ // stored in the heap, or a unique persistent id.
*ptr = gfxw_make_snapshot(s->visual, area);
return handle;