aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/simon/cursor.cpp10
-rw-r--r--engines/simon/verb.cpp3
2 files changed, 10 insertions, 3 deletions
diff --git a/engines/simon/cursor.cpp b/engines/simon/cursor.cpp
index 9acc4aa59f..c7800eb434 100644
--- a/engines/simon/cursor.cpp
+++ b/engines/simon/cursor.cpp
@@ -230,7 +230,15 @@ void SimonEngine::drawMousePointer() {
byte *src, *dst;
VgaPointersEntry *vpe = &_vgaBufferPointers[7];
- src = vpe->vgaFile2 + 98 * 8;
+ if (_animatePointer) {
+ _mouseAnim++;
+ if (_mouseAnim == _mouseAnimMax)
+ _mouseAnim = 1;
+ }
+
+ uint cursor = _mouseCursor * 16 + 1 + _mouseAnim;
+ src = vpe->vgaFile2 + cursor * 8;
+
uint width = READ_LE_UINT16(src + 6);
uint height = READ_LE_UINT16(src + 4) & 0x7FFF;
src = vpe->vgaFile2 + readUint32Wrapper(src);
diff --git a/engines/simon/verb.cpp b/engines/simon/verb.cpp
index a05cb6f442..dff5ceadfb 100644
--- a/engines/simon/verb.cpp
+++ b/engines/simon/verb.cpp
@@ -715,7 +715,7 @@ void SimonEngine::displayName(HitArea *ha) {
return;
if (getBitFlag(99))
- _animatePointer = ((ha->flags & kBFTextBox) != 0);
+ _animatePointer = ((ha->flags & kBFTextBox) == 0);
else
_animatePointer = 1;
@@ -755,7 +755,6 @@ void SimonEngine::invertBox(HitArea *ha, bool state) {
_oldMouseAnimMax = _mouseAnimMax;
_mouseAnimMax = 2;
_mouseCursor = 18;
-
}
} else {
if (getBitFlag(207)) {