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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Thu Nov 12 13:49:18 CET 2009


Revision: 45859
          http://scummvm.svn.sourceforge.net/scummvm/?rev=45859&view=rev
Author:   m_kiewitz
Date:     2009-11-12 12:49:17 +0000 (Thu, 12 Nov 2009)

Log Message:
-----------
SCI/newgui: SciGuiMenu now has said support (used in at least codename iceman)

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

Modified: scummvm/trunk/engines/sci/gui/gui_menu.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_menu.cpp	2009-11-12 11:47:28 UTC (rev 45858)
+++ scummvm/trunk/engines/sci/gui/gui_menu.cpp	2009-11-12 12:49:17 UTC (rev 45859)
@@ -233,7 +233,6 @@
 		itemEntry->enabled = value.isNull() ? false : true;
 		break;
 	case SCI_MENU_ATTRIBUTE_SAID:
-		itemEntry->said = _segMan->getString(value);
 		itemEntry->saidVmPtr = value;
 		break;
 	case SCI_MENU_ATTRIBUTE_TEXT:
@@ -334,6 +333,8 @@
 	GuiMenuItemList::iterator itemEnd = _itemList.end();
 	GuiMenuItemEntry *itemEntry = NULL;
 	bool forceClaimed = false;
+	EngineState *s;
+	byte saidSpec[64];
 
 	switch (eventType) {
 	case SCI_EVT_KEYBOARD:
@@ -359,11 +360,17 @@
 		break;
 
 	case SCI_EVT_SAID:
+		// HACK: should be removed as soon as said() is cleaned up
+		s = ((SciEngine *)g_engine)->getEngineState();
 		while (itemIterator != itemEnd) {
 			itemEntry = *itemIterator;
-			// TODO: said comparsion
-			//  said(_s, itemEntry->said.c_str(), 0) != SAID_NO_MATCH
-			// Where is this used anyway, so we can test it out?
+
+			if (!itemEntry->saidVmPtr.isNull()) {
+				// TODO: get a pointer to saidVmPtr or make said() work on VmPtrs
+				_segMan->memcpy(saidSpec, itemEntry->saidVmPtr, 64);
+				if (said(s, saidSpec, 0) != SAID_NO_MATCH)
+					break;
+			}
 			itemIterator++;
 		}
 		if (itemIterator == itemEnd)

Modified: scummvm/trunk/engines/sci/gui/gui_menu.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_menu.h	2009-11-12 11:47:28 UTC (rev 45858)
+++ scummvm/trunk/engines/sci/gui/gui_menu.h	2009-11-12 12:49:17 UTC (rev 45859)
@@ -60,7 +60,6 @@
 	uint16 keyPress;
 	uint16 keyModifier;
 	bool separatorLine;
-	Common::String said;
 	reg_t saidVmPtr;
 	Common::String text;
 	reg_t textVmPtr;


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