[Scummvm-cvs-logs] SF.net SVN: scummvm: [27120] scummvm/branches/branch-0-10-0/engines/agos/ script.cpp

Kirben at users.sourceforge.net Kirben at users.sourceforge.net
Wed Jun 6 02:47:36 CEST 2007


Revision: 27120
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27120&view=rev
Author:   Kirben
Date:     2007-06-05 17:47:35 -0700 (Tue, 05 Jun 2007)

Log Message:
-----------
Add alternative hack, to skip largest speech segment in Simon the Sorcerer 1, when using DS port.

Modified Paths:
--------------
    scummvm/branches/branch-0-10-0/engines/agos/script.cpp

Modified: scummvm/branches/branch-0-10-0/engines/agos/script.cpp
===================================================================
--- scummvm/branches/branch-0-10-0/engines/agos/script.cpp	2007-06-05 22:39:36 UTC (rev 27119)
+++ scummvm/branches/branch-0-10-0/engines/agos/script.cpp	2007-06-06 00:47:35 UTC (rev 27120)
@@ -105,7 +105,17 @@
 void AGOSEngine::o_eq() {
 	// 13: equal
 	uint tmp = getNextVarContents();
-	setScriptCondition(tmp == getVarOrWord());
+	uint tmp2 = getVarOrWord();
+
+#ifdef __DS__
+	// HACK: Skip attempt to read Calypso's letter manually,
+	// due to speech segment been too large to fit into memory
+	if (getGameType() == GType_SIMON1 && _currentTable->id == 71 && tmp == 1 && tmp2 == 1) {
+		setScriptCondition(false);
+		return;
+	}
+#endif
+	setScriptCondition(tmp == tmp2);
 }
 
 void AGOSEngine::o_notEq() {
@@ -404,8 +414,29 @@
 void AGOSEngine::o_process() {
 	// 71: start subroutine
 	Subroutine *sub = getSubroutineByID(getVarOrWord());
-	if (sub != NULL)
+	if (sub != NULL) {
+#ifdef __DS__
+		// HACK: Skip scene of Simon reading letter from Calypso
+		// due to speech segment been too large to fit into memory
+		if (getGameType() == GType_SIMON1 && sub->id == 2922) {
+			// set parent special
+			_noParentNotify = true;
+			setItemParent(derefItem(16), me());
+			_noParentNotify = false;
+
+			// set parent special
+			_noParentNotify = true;
+			setItemParent(derefItem(14), me());
+			_noParentNotify = false;
+
+			// set item parent
+			setItemParent(derefItem(12), me());
+
+			return;
+		}
+#endif
 		startSubroutine(sub);
+	}
 }
 
 void AGOSEngine::o_when() {


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