[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