diff options
author | Travis Howell | 2006-04-16 13:37:48 +0000 |
---|---|---|
committer | Travis Howell | 2006-04-16 13:37:48 +0000 |
commit | 1a20a9ae0998c4cd890962630d3806dc01cf85a5 (patch) | |
tree | 55b9b3f70a3cb6ea69314b21edba377d4fe62c29 /engines/simon | |
parent | 1baf98f1c85a8e95cba74d947c9ff1657ee80e68 (diff) | |
download | scummvm-rg350-1a20a9ae0998c4cd890962630d3806dc01cf85a5.tar.gz scummvm-rg350-1a20a9ae0998c4cd890962630d3806dc01cf85a5.tar.bz2 scummvm-rg350-1a20a9ae0998c4cd890962630d3806dc01cf85a5.zip |
Add missing mouse pointer checks for oracle and SAM in FF
svn-id: r21942
Diffstat (limited to 'engines/simon')
-rw-r--r-- | engines/simon/cursor.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/engines/simon/cursor.cpp b/engines/simon/cursor.cpp index c7800eb434..b77dd487e9 100644 --- a/engines/simon/cursor.cpp +++ b/engines/simon/cursor.cpp @@ -229,6 +229,7 @@ void SimonEngine::drawMousePointer() { if (getGameType() == GType_FF) { byte *src, *dst; VgaPointersEntry *vpe = &_vgaBufferPointers[7]; + uint cursor, image, width, height; if (_animatePointer) { _mouseAnim++; @@ -236,11 +237,19 @@ void SimonEngine::drawMousePointer() { _mouseAnim = 1; } - uint cursor = _mouseCursor * 16 + 1 + _mouseAnim; - src = vpe->vgaFile2 + cursor * 8; + cursor = _mouseCursor; + if (_animatePointer == 0 && getBitFlag(99)) { + cursor = 6; + _mouseAnim = 1; + } else if (getBitFlag(72)) { + cursor += 7; + } + + image = cursor * 16 + 1 + _mouseAnim; + src = vpe->vgaFile2 + image * 8; - uint width = READ_LE_UINT16(src + 6); - uint height = READ_LE_UINT16(src + 4) & 0x7FFF; + width = READ_LE_UINT16(src + 6); + height = READ_LE_UINT16(src + 4) & 0x7FFF; src = vpe->vgaFile2 + readUint32Wrapper(src); dst = (byte *)malloc(width * height); |