[Scummvm-cvs-logs] SF.net SVN: scummvm:[45843] scummvm/trunk/engines/sci

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Nov 11 22:22:04 CET 2009


Revision: 45843
          http://scummvm.svn.sourceforge.net/scummvm/?rev=45843&view=rev
Author:   m_kiewitz
Date:     2009-11-11 21:22:04 +0000 (Wed, 11 Nov 2009)

Log Message:
-----------
SCI/newgui: call menuReset() on game_init(), fixes double menu in pq2

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/game.cpp
    scummvm/trunk/engines/sci/gui/gui.cpp
    scummvm/trunk/engines/sci/gui/gui.h
    scummvm/trunk/engines/sci/gui/gui_menu.cpp
    scummvm/trunk/engines/sci/gui/gui_menu.h
    scummvm/trunk/engines/sci/gui32/gui32.cpp
    scummvm/trunk/engines/sci/gui32/gui32.h

Modified: scummvm/trunk/engines/sci/engine/game.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/game.cpp	2009-11-11 21:06:06 UTC (rev 45842)
+++ scummvm/trunk/engines/sci/engine/game.cpp	2009-11-11 21:22:04 UTC (rev 45843)
@@ -386,6 +386,8 @@
 	if (s->gfx_state && _reset_graphics_input(s))
 		return 1;
 #endif
+	// Initialize menu TODO: Actually this should be another init()
+	s->_gui->menuReset();
 
 	s->successor = NULL; // No successor
 

Modified: scummvm/trunk/engines/sci/gui/gui.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.cpp	2009-11-11 21:06:06 UTC (rev 45842)
+++ scummvm/trunk/engines/sci/gui/gui.cpp	2009-11-11 21:22:04 UTC (rev 45843)
@@ -317,6 +317,12 @@
 	}
 }
 
+void SciGui::menuReset() {
+	delete _menu;
+	_menu = new SciGuiMenu(_s->_segMan, _gfx, _text, _screen, _cursor);
+	_menu->init(_s->gfx_state);
+}
+
 void SciGui::menuAdd(Common::String title, Common::String content, reg_t contentVmPtr) {
 	_menu->add(title, content, contentVmPtr);
 }

Modified: scummvm/trunk/engines/sci/gui/gui.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.h	2009-11-11 21:06:06 UTC (rev 45842)
+++ scummvm/trunk/engines/sci/gui/gui.h	2009-11-11 21:22:04 UTC (rev 45843)
@@ -81,6 +81,7 @@
 
 	virtual void drawStatus(const char *text, int16 colorPen, int16 colorBack);
 	virtual void drawMenuBar(bool clear);
+	virtual void menuReset();
 	virtual void menuAdd(Common::String title, Common::String content, reg_t contentVmPtr);
 	virtual void menuSet(uint16 menuId, uint16 itemId, uint16 attributeId, reg_t value);
 	virtual reg_t menuGet(uint16 menuId, uint16 itemId, uint16 attributeId);

Modified: scummvm/trunk/engines/sci/gui/gui_menu.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_menu.cpp	2009-11-11 21:06:06 UTC (rev 45842)
+++ scummvm/trunk/engines/sci/gui/gui_menu.cpp	2009-11-11 21:22:04 UTC (rev 45843)
@@ -55,6 +55,7 @@
 }
 
 SciGuiMenu::~SciGuiMenu() {
+	// TODO: deallocate _list and _itemList
 }
 
 void SciGuiMenu::init(GfxState *gfxstate) {

Modified: scummvm/trunk/engines/sci/gui/gui_menu.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_menu.h	2009-11-11 21:06:06 UTC (rev 45842)
+++ scummvm/trunk/engines/sci/gui/gui_menu.h	2009-11-11 21:22:04 UTC (rev 45843)
@@ -83,6 +83,7 @@
 	~SciGuiMenu();
 
 	void init(GfxState *gfxstate);
+	void reset();
 	void add(Common::String title, Common::String content, reg_t contentVmPtr);
 	void setAttribute(uint16 menuId, uint16 itemId, uint16 attributeId, reg_t value);
 	reg_t getAttribute(uint16 menuId, uint16 itemId, uint16 attributeId);

Modified: scummvm/trunk/engines/sci/gui32/gui32.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui32/gui32.cpp	2009-11-11 21:06:06 UTC (rev 45842)
+++ scummvm/trunk/engines/sci/gui32/gui32.cpp	2009-11-11 21:22:04 UTC (rev 45843)
@@ -837,6 +837,9 @@
 	gfxop_update(_s->gfx_state);
 }
 
+void SciGui32::menuReset() {
+}
+
 void SciGui32::menuAdd(Common::String title, Common::String content, reg_t entriesBase) {
 	int titlebarFont = _s->titlebar_port->_font;
 

Modified: scummvm/trunk/engines/sci/gui32/gui32.h
===================================================================
--- scummvm/trunk/engines/sci/gui32/gui32.h	2009-11-11 21:06:06 UTC (rev 45842)
+++ scummvm/trunk/engines/sci/gui32/gui32.h	2009-11-11 21:22:04 UTC (rev 45843)
@@ -60,6 +60,7 @@
 
 	void drawStatus(const char *text, int16 colorPen, int16 colorBack);
 	void drawMenuBar(bool clear);
+	void menuReset();
 	void menuAdd(Common::String title, Common::String content, reg_t entriesBase);
 	void menuSet(uint16 menuId, uint16 itemId, uint16 attributeId, reg_t value);
 	reg_t menuGet(uint16 menuId, uint16 itemId, uint16 attributeId);


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