From f8981765e924ecd632a99072287af7254eb9c4fc Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sat, 22 Oct 2005 12:47:09 +0000 Subject: Cleaned up some cursor show/hide handling. This should fix bug #1333391. svn-id: r19239 --- saga/gfx.cpp | 8 ++++---- saga/gfx.h | 1 - saga/scene.cpp | 27 ++++++++------------------- 3 files changed, 12 insertions(+), 24 deletions(-) (limited to 'saga') diff --git a/saga/gfx.cpp b/saga/gfx.cpp index 2ae266c721..9f40c28f31 100644 --- a/saga/gfx.cpp +++ b/saga/gfx.cpp @@ -48,9 +48,10 @@ Gfx::Gfx(SagaEngine *vm, OSystem *system, int width, int height, GameDetector &d // Set module data _init = 1; - // For now, always show the mouse cursor. - setCursor(); - _system->showMouse(true); + // Start with the cursor shown. It will be hidden before the intro, if + // there is an intro. (With boot params, there may not be.) + setCursor(kCursorNormal); + showCursor(true); } Gfx::~Gfx() { @@ -390,7 +391,6 @@ void Gfx::blackToPal(PalEntry *srcPal, double percent) { } void Gfx::showCursor(bool state) { - updateCursor(); g_system->showMouse(state); } diff --git a/saga/gfx.h b/saga/gfx.h index 5f927a0765..d0de5e9e76 100644 --- a/saga/gfx.h +++ b/saga/gfx.h @@ -145,7 +145,6 @@ public: void getCurrentPal(PalEntry *src_pal); void palToBlack(PalEntry *src_pal, double percent); void blackToPal(PalEntry *src_pal, double percent); - void updateCursor() { setCursor(); } void showCursor(bool state); private: diff --git a/saga/scene.cpp b/saga/scene.cpp index be9ed9de4b..c273941f6c 100644 --- a/saga/scene.cpp +++ b/saga/scene.cpp @@ -843,16 +843,6 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) { _vm->_events->queue(&event); - if (getFlags() & kSceneFlagShowCursor) { - // Activate user interface - event.type = kEvTOneshot; - event.code = kInterfaceEvent; - event.op = kEventActivate; - event.time = 0; - - _vm->_events->queue(&event); - } - // Begin palette cycle animation if present event.type = kEvTOneshot; event.code = kPalAnimEvent; @@ -861,12 +851,6 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) { q_event = _vm->_events->queue(&event); - // Show cursor - event.type = kEvTOneshot; - event.code = kCursorEvent; - event.op = kEventShow; - _vm->_events->chain(q_event, &event); - // Start the scene main script if (_sceneDescription.sceneScriptEntrypointNumber > 0) { event.type = kEvTOneshot; @@ -899,9 +883,14 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) { if (_sceneNumber == ITE_SCENE_PUZZLE) _vm->_puzzle->execute(); - if (_sceneDescription.flags & kSceneFlagShowCursor) - _vm->_interface->activate(); - + if (getFlags() & kSceneFlagShowCursor) { + // Activate user interface + event.type = kEvTOneshot; + event.code = kInterfaceEvent; + event.op = kEventActivate; + event.time = 0; + _vm->_events->queue(&event); + } } void Scene::loadSceneDescriptor(uint32 resourceId) { -- cgit v1.2.3