diff options
author | Torbjörn Andersson | 2006-05-25 22:51:42 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2006-05-25 22:51:42 +0000 |
commit | 8062eb6ec33e32012da28f0cd06b8f9334c26937 (patch) | |
tree | 088c83206fbb0e4feea93ebeada0a505599572bb /engines/scumm | |
parent | d56c65bf4a47007dc874b70eb04be9ed7de27b01 (diff) | |
download | scummvm-rg350-8062eb6ec33e32012da28f0cd06b8f9334c26937.tar.gz scummvm-rg350-8062eb6ec33e32012da28f0cd06b8f9334c26937.tar.bz2 scummvm-rg350-8062eb6ec33e32012da28f0cd06b8f9334c26937.zip |
Set and show/hide mouse cursors through a "cursor manager" (analogous to the
recently added (cursor) palette manager) so that the cursor can be properly
restored after returning from the GUI.
If there's any C++ magic that can keep the backend functions from being called
by anything else than these managing classes, that would probably be a good
idea. Also, since the cursor manager keeps a copy of the cursor image, perhaps
there are at least some backends that will no longer need to?
svn-id: r22639
Diffstat (limited to 'engines/scumm')
-rw-r--r-- | engines/scumm/cursor.cpp | 3 | ||||
-rw-r--r-- | engines/scumm/scumm.cpp | 4 | ||||
-rw-r--r-- | engines/scumm/smush/smush_player.cpp | 6 |
3 files changed, 9 insertions, 4 deletions
diff --git a/engines/scumm/cursor.cpp b/engines/scumm/cursor.cpp index 2e624144ad..2371ce860c 100644 --- a/engines/scumm/cursor.cpp +++ b/engines/scumm/cursor.cpp @@ -23,6 +23,7 @@ #include "common/stdafx.h" #include "common/system.h" #include "common/util.h" +#include "graphics/cursorman.h" #include "graphics/paletteman.h" #include "scumm/bomp.h" #include "scumm/charset.h" @@ -102,7 +103,7 @@ void ScummEngine_v6::setCursorTransparency(int a) { void ScummEngine::updateCursor() { const int transColor = (_game.heversion >= 80) ? 5 : 255; - _system->setMouseCursor(_grabbedCursor, _cursor.width, _cursor.height, + CursorMan.replaceCursor(_grabbedCursor, _cursor.width, _cursor.height, _cursor.hotspotX, _cursor.hotspotY, (_game.platform == Common::kPlatformNES ? _grabbedCursor[63] : transColor), (_game.heversion == 70 ? 2 : 1)); diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp index 98dfb2c446..7704a0a2c1 100644 --- a/engines/scumm/scumm.cpp +++ b/engines/scumm/scumm.cpp @@ -32,6 +32,8 @@ #include "gui/message.h" #include "gui/newgui.h" +#include "graphics/cursorman.h" + #include "scumm/akos.h" #include "scumm/charset.h" #include "scumm/costume.h" @@ -1787,7 +1789,7 @@ load_game: animateCursor(); /* show or hide mouse */ - _system->showMouse(_cursor.state > 0); + CursorMan.showMouse(_cursor.state > 0); #ifndef DISABLE_HE if (_game.heversion >= 90) { diff --git a/engines/scumm/smush/smush_player.cpp b/engines/scumm/smush/smush_player.cpp index 76dc32284b..c7bb980985 100644 --- a/engines/scumm/smush/smush_player.cpp +++ b/engines/scumm/smush/smush_player.cpp @@ -30,6 +30,8 @@ #include "common/timer.h" #include "common/util.h" +#include "graphics/cursorman.h" + #include "scumm/bomp.h" #include "scumm/file.h" #include "scumm/imuse_digi/dimuse.h" @@ -1304,7 +1306,7 @@ void SmushPlayer::play(const char *filename, int32 offset, int32 startFrame) { _palDirtyMax = -1; // Hide mouse - bool oldMouseState = _vm->_system->showMouse(false); + bool oldMouseState = CursorMan.showMouse(false); // Load the video _seekFile = filename; @@ -1379,7 +1381,7 @@ void SmushPlayer::play(const char *filename, int32 offset, int32 startFrame) { release(); // Reset mouse state - _vm->_system->showMouse(oldMouseState); + CursorMan.showMouse(oldMouseState); } } // End of namespace Scumm |