aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2006-04-16 13:37:48 +0000
committerTravis Howell2006-04-16 13:37:48 +0000
commit1a20a9ae0998c4cd890962630d3806dc01cf85a5 (patch)
tree55b9b3f70a3cb6ea69314b21edba377d4fe62c29
parent1baf98f1c85a8e95cba74d947c9ff1657ee80e68 (diff)
downloadscummvm-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
-rw-r--r--engines/simon/cursor.cpp17
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);