[Scummvm-cvs-logs] SF.net SVN: scummvm:[45588] scummvm/trunk/engines/sci
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Sat Oct 31 23:50:05 CET 2009
Revision: 45588
http://scummvm.svn.sourceforge.net/scummvm/?rev=45588&view=rev
Author: m_kiewitz
Date: 2009-10-31 22:50:05 +0000 (Sat, 31 Oct 2009)
Log Message:
-----------
SCI/newgui: fixing kDisposeWindow so that reanimate is correctly called (fixes cels disappearing after removing windows)
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/kgraphics.cpp
scummvm/trunk/engines/sci/gui/gui.cpp
scummvm/trunk/engines/sci/gui/gui.h
scummvm/trunk/engines/sci/gui/gui_windowmgr.cpp
scummvm/trunk/engines/sci/gui/gui_windowmgr.h
scummvm/trunk/engines/sci/gui32/gui32.cpp
scummvm/trunk/engines/sci/gui32/gui32.h
Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp 2009-10-31 22:38:41 UTC (rev 45587)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp 2009-10-31 22:50:05 UTC (rev 45588)
@@ -917,9 +917,11 @@
reg_t kDisposeWindow(EngineState *s, int argc, reg_t *argv) {
int goner_nr = argv[0].toSint16();
- int arg2 = (argc != 2 || argv[2].toUint16() == 0 ? 0 : 1);
+ bool reanimate = false;
+ if ((argc == 2) && (argv[1].isNull()))
+ reanimate = true;
- s->_gui->disposeWindow(goner_nr, arg2);
+ s->_gui->disposeWindow(goner_nr, reanimate);
return s->r_acc;
}
Modified: scummvm/trunk/engines/sci/gui/gui.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.cpp 2009-10-31 22:38:41 UTC (rev 45587)
+++ scummvm/trunk/engines/sci/gui/gui.cpp 2009-10-31 22:50:05 UTC (rev 45588)
@@ -168,9 +168,9 @@
return make_reg(0, wnd->id);
}
-void SciGui::disposeWindow(uint16 windowPtr, int16 arg2) {
+void SciGui::disposeWindow(uint16 windowPtr, bool reanimate) {
GuiWindow *wnd = (GuiWindow *)_windowMgr->getPortById(windowPtr);
- _windowMgr->DisposeWindow(wnd, arg2);
+ _windowMgr->DisposeWindow(wnd, reanimate);
}
#define SCI_DISPLAY_MOVEPEN 100
Modified: scummvm/trunk/engines/sci/gui/gui.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.h 2009-10-31 22:38:41 UTC (rev 45587)
+++ scummvm/trunk/engines/sci/gui/gui.h 2009-10-31 22:50:05 UTC (rev 45588)
@@ -70,7 +70,7 @@
virtual int16 priorityToCoordinate(int16 priority);
virtual reg_t newWindow(Common::Rect dims, Common::Rect restoreRect, uint16 style, int16 priority, int16 colorPen, int16 colorBack, const char *title);
- virtual void disposeWindow(uint16 windowPtr, int16 arg2);
+ virtual void disposeWindow(uint16 windowPtr, bool reanimate);
virtual void display(const char *text, int argc, reg_t *argv);
Modified: scummvm/trunk/engines/sci/gui/gui_windowmgr.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_windowmgr.cpp 2009-10-31 22:38:41 UTC (rev 45587)
+++ scummvm/trunk/engines/sci/gui/gui_windowmgr.cpp 2009-10-31 22:50:05 UTC (rev 45588)
@@ -250,11 +250,11 @@
_gfx->SetPort(oldport);
}
-void SciGuiWindowMgr::DisposeWindow(GuiWindow *pWnd, int16 arg2) {
+void SciGuiWindowMgr::DisposeWindow(GuiWindow *pWnd, bool reanimate) {
_gfx->SetPort(_wmgrPort);
_gfx->BitsRestore(pWnd->hSaved1);
_gfx->BitsRestore(pWnd->hSaved2);
- if (arg2)
+ if (!reanimate)
_gfx->BitsShow(pWnd->restoreRect);
else
_gui->graphRedrawBox(pWnd->restoreRect);
Modified: scummvm/trunk/engines/sci/gui/gui_windowmgr.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_windowmgr.h 2009-10-31 22:38:41 UTC (rev 45587)
+++ scummvm/trunk/engines/sci/gui/gui_windowmgr.h 2009-10-31 22:50:05 UTC (rev 45588)
@@ -43,7 +43,7 @@
void EndUpdate(GuiWindow *wnd);
GuiWindow *NewWindow(const Common::Rect &dims, const Common::Rect *restoreRect, const char *title, uint16 style, int16 priority, bool draw);
void DrawWindow(GuiWindow *wnd);
- void DisposeWindow(GuiWindow *pWnd, int16 arg2);
+ void DisposeWindow(GuiWindow *pWnd, bool reanimate);
void UpdateWindow(GuiWindow *wnd);
GuiPort *getPortById(uint16 id) const { return _windowsById[id]; }
Modified: scummvm/trunk/engines/sci/gui32/gui32.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui32/gui32.cpp 2009-10-31 22:38:41 UTC (rev 45587)
+++ scummvm/trunk/engines/sci/gui32/gui32.cpp 2009-10-31 22:50:05 UTC (rev 45588)
@@ -555,7 +555,7 @@
return make_reg(0, window->_ID);
}
-void SciGui32::disposeWindow(uint16 windowPtr, int16 arg2) {
+void SciGui32::disposeWindow(uint16 windowPtr, bool reanimate) {
GfxPort *goner;
GfxPort *pred;
Modified: scummvm/trunk/engines/sci/gui32/gui32.h
===================================================================
--- scummvm/trunk/engines/sci/gui32/gui32.h 2009-10-31 22:38:41 UTC (rev 45587)
+++ scummvm/trunk/engines/sci/gui32/gui32.h 2009-10-31 22:50:05 UTC (rev 45588)
@@ -50,7 +50,7 @@
int16 priorityToCoordinate(int16 priority);
reg_t newWindow(Common::Rect dims, Common::Rect restoreRect, uint16 style, int16 priority, int16 colorPen, int16 colorBack, const char *title);
- void disposeWindow(uint16 windowPtr, int16 arg2);
+ void disposeWindow(uint16 windowPtr, bool reanimate);
void display(const char *text, int argc, reg_t *argv);
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