[Scummvm-cvs-logs] SF.net SVN: scummvm: [24233] scummvm/trunk/gui
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sun Oct 8 22:37:45 CEST 2006
Revision: 24233
http://svn.sourceforge.net/scummvm/?rev=24233&view=rev
Author: lordhoto
Date: 2006-10-08 13:37:39 -0700 (Sun, 08 Oct 2006)
Log Message:
-----------
Final fix for wrong cursor palettes in SCUMM games after using the GUI.
Modified Paths:
--------------
scummvm/trunk/gui/newgui.cpp
scummvm/trunk/gui/newgui.h
Modified: scummvm/trunk/gui/newgui.cpp
===================================================================
--- scummvm/trunk/gui/newgui.cpp 2006-10-08 20:19:23 UTC (rev 24232)
+++ scummvm/trunk/gui/newgui.cpp 2006-10-08 20:37:39 UTC (rev 24233)
@@ -86,6 +86,7 @@
NewGui::NewGui() : _needRedraw(false),
_stateIsSaved(false), _cursorAnimateCounter(0), _cursorAnimateTimer(0) {
_theme = 0;
+ _useStdCursor = false;
_system = g_system;
_lastScreenChangeID = _system->getScreenChangeID();
@@ -126,6 +127,15 @@
Common::ConfigFile cfg;
Common::String oldTheme = (_theme != 0) ? _theme->getStylefileName() : "";
+
+ if (_theme)
+ _theme->disable();
+
+ if (_useStdCursor) {
+ PaletteMan.popCursorPalette();
+ CursorMan.popCursor();
+ }
+
delete _theme;
if (style.compareToIgnoreCase("classic (builtin)") == 0) {
@@ -205,13 +215,12 @@
saveState();
_theme->enable();
didSaveState = true;
+
+ _useStdCursor = !_theme->ownCursor();
+ if (_useStdCursor)
+ setupCursor();
}
- bool useStandardCurs = !_theme->ownCursor();
-
- if (useStandardCurs)
- setupCursor();
-
while (!_dialogStack.empty() && activeDialog == _dialogStack.top()) {
if (_needRedraw) {
redraw();
@@ -223,7 +232,7 @@
activeDialog->handleTickle();
- if (useStandardCurs)
+ if (_useStdCursor)
animateCursor();
_theme->drawAll();
_system->updateScreen();
@@ -240,12 +249,9 @@
// HACK to change the cursor to the new themes one
if (_themeChange) {
_theme->enable();
- PaletteMan.popCursorPalette();
- CursorMan.popCursor();
-
- useStandardCurs = !_theme->ownCursor();
- if (useStandardCurs)
+ _useStdCursor = !_theme->ownCursor();
+ if (_useStdCursor)
setupCursor();
_theme->refresh();
@@ -325,12 +331,11 @@
}
_theme->closeDialog();
- if (useStandardCurs)
- PaletteMan.popCursorPalette();
if (didSaveState) {
_theme->disable();
restoreState();
+ _useStdCursor = false;
}
}
@@ -347,7 +352,10 @@
}
void NewGui::restoreState() {
- CursorMan.popCursor();
+ if (_useStdCursor) {
+ CursorMan.popCursor();
+ PaletteMan.popCursorPalette();
+ }
_system->updateScreen();
Modified: scummvm/trunk/gui/newgui.h
===================================================================
--- scummvm/trunk/gui/newgui.h 2006-10-08 20:19:23 UTC (rev 24232)
+++ scummvm/trunk/gui/newgui.h 2006-10-08 20:37:39 UTC (rev 24233)
@@ -94,6 +94,8 @@
bool _stateIsSaved;
+ bool _useStdCursor;
+
// for continuous events (keyDown)
struct {
uint16 ascii;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list