aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2002-12-25 12:41:41 +0000
committerMax Horn2002-12-25 12:41:41 +0000
commitaa2a85de9938cbe56c076f9f56c2b2005263a51a (patch)
tree15d646550f6cfd99f20241c03d26c25008014b93
parent9e0e918397a6772ae6ab5e9220a797750657973e (diff)
downloadscummvm-rg350-aa2a85de9938cbe56c076f9f56c2b2005263a51a.tar.gz
scummvm-rg350-aa2a85de9938cbe56c076f9f56c2b2005263a51a.tar.bz2
scummvm-rg350-aa2a85de9938cbe56c076f9f56c2b2005263a51a.zip
fixed bomp cursor in CMI partially - still seeing flickering/tearing/artifacts, though
svn-id: r6124
-rw-r--r--scumm/gfx.cpp13
-rw-r--r--scumm/object.cpp2
-rw-r--r--scumm/scumm.h2
3 files changed, 9 insertions, 8 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp
index a909f337e8..efedd8d1dd 100644
--- a/scumm/gfx.cpp
+++ b/scumm/gfx.cpp
@@ -3091,9 +3091,7 @@ void Scumm::useBompCursor(byte *im, int width, int height)
_cursor.height = height;
_cursor.animate = 0;
- // FIXME - why exactly the +10 ? Is that to account for block headers or something?
- // Should be documented and verified that this is appropriate for V8 bomps, or not.
- decompressBomp(_grabbedCursor, im + 10, width, height);
+ decompressBomp(_grabbedCursor, im, width, height);
updateCursor();
}
@@ -3314,9 +3312,12 @@ void Scumm::decompressBomp(byte *dst, byte *src, int w, int h)
int len, num;
byte code, color;
-
- // FIXME - why this +8? To skip some kind of header? Is this right for V8 ?
- src += 8;
+ // Skip the header
+ if (_features & GF_AFTER_V8) {
+ src += 16;
+ } else {
+ src += 18;
+ }
do {
len = w;
diff --git a/scumm/object.cpp b/scumm/object.cpp
index 83105b88e7..a8396bf8ae 100644
--- a/scumm/object.cpp
+++ b/scumm/object.cpp
@@ -1181,7 +1181,7 @@ void Scumm::setCursorImg(uint img, uint room, uint imgindex)
// TODO - distinguish between SMAP and BOMP here?
// HACK - adjust dataptr here until bomp code gets adjusted for V8
- bomp = dataptr + 2;
+ bomp = dataptr;
} else {
dataptr = findResource(IMxx_tags[imgindex], foir.obim);
if (dataptr == NULL)
diff --git a/scumm/scumm.h b/scumm/scumm.h
index a89255a208..37e65462e0 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -559,7 +559,7 @@ public:
bool isResourceLoaded(int type, int index);
void initRoomSubBlocks();
void loadRoomObjects();
- void loadRoomObjectsSmall();
+ void loadRoomObjectsSmall();
void readArrayFromIndexFile();
void readMAXS();
bool isGlobInMemory(int type, int index);