diff options
-rw-r--r-- | engines/simon/cursor.cpp | 10 | ||||
-rw-r--r-- | engines/simon/verb.cpp | 3 |
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)) { |