aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/simon/cursor.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/engines/simon/cursor.cpp b/engines/simon/cursor.cpp
index 3b7725c7d7..9acc4aa59f 100644
--- a/engines/simon/cursor.cpp
+++ b/engines/simon/cursor.cpp
@@ -226,10 +226,23 @@ static const byte _simon2_cursors[10][256] = {
void SimonEngine::drawMousePointer() {
//debug(0, "Mouse %d Anim %d Max %d", _mouseCursor, _mouseAnim, _mouseAnimMax);
- if (getGameType() == GType_SIMON2)
+ if (getGameType() == GType_FF) {
+ byte *src, *dst;
+ VgaPointersEntry *vpe = &_vgaBufferPointers[7];
+
+ src = vpe->vgaFile2 + 98 * 8;
+ uint width = READ_LE_UINT16(src + 6);
+ uint height = READ_LE_UINT16(src + 4) & 0x7FFF;
+ src = vpe->vgaFile2 + readUint32Wrapper(src);
+
+ dst = (byte *)malloc(width * height);
+ memcpy(dst, src, width * height);
+ _system->setMouseCursor(dst, width, height, width / 2, height / 2, 0);
+ } else if (getGameType() == GType_SIMON2) {
_system->setMouseCursor(_simon2_cursors[_mouseCursor], 16, 16, 7, 7);
- else
+ } else {
_system->setMouseCursor(_simon1_cursor, 16, 16, 0, 0);
+ }
}
} // End of namespace Simon