aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorTorbjörn Andersson2006-05-25 22:51:42 +0000
committerTorbjörn Andersson2006-05-25 22:51:42 +0000
commit8062eb6ec33e32012da28f0cd06b8f9334c26937 (patch)
tree088c83206fbb0e4feea93ebeada0a505599572bb /engines/scumm
parentd56c65bf4a47007dc874b70eb04be9ed7de27b01 (diff)
downloadscummvm-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.cpp3
-rw-r--r--engines/scumm/scumm.cpp4
-rw-r--r--engines/scumm/smush/smush_player.cpp6
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