diff options
-rw-r--r-- | scumm/gfx.cpp | 13 | ||||
-rw-r--r-- | scumm/object.cpp | 2 | ||||
-rw-r--r-- | scumm/scumm.h | 2 |
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); |