aboutsummaryrefslogtreecommitdiff
path: root/scumm/cursor.cpp
diff options
context:
space:
mode:
authorMax Horn2005-04-17 23:19:16 +0000
committerMax Horn2005-04-17 23:19:16 +0000
commit96e40213efc65644c3685ca543f6ddbc05a27d87 (patch)
tree4d648d30e1e100841127adbe7fd6c1bfcb2a904e /scumm/cursor.cpp
parentc4e7f403f8b36c4c0437b6fa911f383dfa0770ab (diff)
downloadscummvm-rg350-96e40213efc65644c3685ca543f6ddbc05a27d87.tar.gz
scummvm-rg350-96e40213efc65644c3685ca543f6ddbc05a27d87.tar.bz2
scummvm-rg350-96e40213efc65644c3685ca543f6ddbc05a27d87.zip
New virtual method getObjectIdFromOBIM
svn-id: r17660
Diffstat (limited to 'scumm/cursor.cpp')
-rw-r--r--scumm/cursor.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/scumm/cursor.cpp b/scumm/cursor.cpp
index 9d025c6e60..8f49b9f624 100644
--- a/scumm/cursor.cpp
+++ b/scumm/cursor.cpp
@@ -157,26 +157,28 @@ void ScummEngine_v6::setCursorFromImg(uint img, uint room, uint imgindex) {
const byte *dataptr, *bomp;
uint32 size;
FindObjectInRoom foir;
+ const ImageHeader *imhd;
if (room == (uint) - 1)
room = getObjectRoom(img);
findObjectInRoom(&foir, foCodeHeader | foImageHeader | foCheckAlreadyLoaded, img, room);
+ imhd = (const ImageHeader *)findResourceData(MKID('IMHD'), foir.obim);
if (_version == 8) {
- setCursorHotspot(READ_LE_UINT32(&foir.imhd->v8.hotspot[0].x),
- READ_LE_UINT32(&foir.imhd->v8.hotspot[0].y));
- w = READ_LE_UINT32(&foir.imhd->v8.width) / 8;
- h = READ_LE_UINT32(&foir.imhd->v8.height) / 8;
+ setCursorHotspot(READ_LE_UINT32(&imhd->v8.hotspot[0].x),
+ READ_LE_UINT32(&imhd->v8.hotspot[0].y));
+ w = READ_LE_UINT32(&imhd->v8.width) / 8;
+ h = READ_LE_UINT32(&imhd->v8.height) / 8;
} else if (_version == 7) {
- setCursorHotspot(READ_LE_UINT16(&foir.imhd->v7.hotspot[0].x),
- READ_LE_UINT16(&foir.imhd->v7.hotspot[0].y));
- w = READ_LE_UINT16(&foir.imhd->v7.width) / 8;
- h = READ_LE_UINT16(&foir.imhd->v7.height) / 8;
+ setCursorHotspot(READ_LE_UINT16(&imhd->v7.hotspot[0].x),
+ READ_LE_UINT16(&imhd->v7.hotspot[0].y));
+ w = READ_LE_UINT16(&imhd->v7.width) / 8;
+ h = READ_LE_UINT16(&imhd->v7.height) / 8;
} else {
if (!(_features & GF_HUMONGOUS))
- setCursorHotspot(READ_LE_UINT16(&foir.imhd->old.hotspot[0].x),
- READ_LE_UINT16(&foir.imhd->old.hotspot[0].y));
+ setCursorHotspot(READ_LE_UINT16(&imhd->old.hotspot[0].x),
+ READ_LE_UINT16(&imhd->old.hotspot[0].y));
w = READ_LE_UINT16(&foir.cdhd->v6.w) / 8;
h = READ_LE_UINT16(&foir.cdhd->v6.h) / 8;
}