[Scummvm-cvs-logs] SF.net SVN: scummvm: [24547] scummvm/trunk/engines/agos

kirben at users.sourceforge.net kirben at users.sourceforge.net
Sat Oct 28 05:30:14 CEST 2006


Revision: 24547
          http://svn.sourceforge.net/scummvm/?rev=24547&view=rev
Author:   kirben
Date:     2006-10-27 20:29:58 -0700 (Fri, 27 Oct 2006)

Log Message:
-----------
Add more fixes for Elvira 1

Modified Paths:
--------------
    scummvm/trunk/engines/agos/agos.h
    scummvm/trunk/engines/agos/debug.cpp
    scummvm/trunk/engines/agos/debug.h
    scummvm/trunk/engines/agos/gfx.cpp
    scummvm/trunk/engines/agos/script_e1.cpp
    scummvm/trunk/engines/agos/script_e2.cpp
    scummvm/trunk/engines/agos/subroutine.cpp
    scummvm/trunk/engines/agos/vga.cpp

Modified: scummvm/trunk/engines/agos/agos.h
===================================================================
--- scummvm/trunk/engines/agos/agos.h	2006-10-28 01:28:41 UTC (rev 24546)
+++ scummvm/trunk/engines/agos/agos.h	2006-10-28 03:29:58 UTC (rev 24547)
@@ -1106,6 +1106,7 @@
 	void oe1_pObj();
 	void oe1_pName();
 	void oe1_pcName();
+	void oe1_isCalled();
 	void oe1_cFlag();
 	void oe1_rescan();
 	void oe1_setUserItem();

Modified: scummvm/trunk/engines/agos/debug.cpp
===================================================================
--- scummvm/trunk/engines/agos/debug.cpp	2006-10-28 01:28:41 UTC (rev 24546)
+++ scummvm/trunk/engines/agos/debug.cpp	2006-10-28 03:29:58 UTC (rev 24547)
@@ -130,13 +130,13 @@
 				int n = (int16)READ_BE_UINT16(p);
 				p += 2;
 				if (n == -1)
-					printf("ITEM_M1 ");
+					printf("SUBJECT_ITEM ");
 				else if (n == -3)
-					printf("ITEM_M3 ");
+					printf("OBJECT_ITEM ");
 				else if (n == -5)
-					printf("ITEM_1 ");
+					printf("ME_ITEM ");
 				else if (n == -7)
-					printf("ITEM_0 ");
+					printf("ACTOR_ITEM ");
 				else if (n == -9)
 					printf("ITEM_A_PARENT ");
 				else

Modified: scummvm/trunk/engines/agos/debug.h
===================================================================
--- scummvm/trunk/engines/agos/debug.h	2006-10-28 01:28:41 UTC (rev 24546)
+++ scummvm/trunk/engines/agos/debug.h	2006-10-28 03:29:58 UTC (rev 24547)
@@ -188,8 +188,8 @@
 	NULL,
 	NULL,
 	/* 128 */
-	"J|IS_M1_EMPTY",
-	"J|IS_M3_EMPTY",
+	"J|IS_SUBJECT_ITEM_EMPTY",
+	"J|IS_OBJECT_ITEM_EMPTY",
 	NULL,
 	NULL,
 	/* 132 */
@@ -482,8 +482,8 @@
 	"I|PRINT_CNAME",
 	/* 76 */
 	"WW|ADD_TIMEOUT",
-	"J|IS_M1_EMPTY",
-	"J|IS_M3_EMPTY",
+	"J|IS_SUBJECT_ITEM_EMPTY",
+	"J|IS_OBJECT_ITEM_EMPTY",
 	"ITJ|CHILD_FR2_IS",
 	/* 80 */
 	"IIJ|IS_ITEM_EQ",
@@ -715,8 +715,8 @@
 	NULL,
 	/* 76 */
 	"WW|ADD_TIMEOUT",
-	"J|IS_M1_EMPTY",
-	"J|IS_M3_EMPTY",
+	"J|IS_SUBJECT_ITEM_EMPTY",
+	"J|IS_OBJECT_ITEM_EMPTY",
 	"ITJ|CHILD_FR2_IS",
 	/* 80 */
 	"IIJ|IS_ITEM_EQ",
@@ -957,8 +957,8 @@
 	NULL,
 	/* 76 */
 	"WW|ADD_TIMEOUT",
-	"J|IS_M1_EMPTY",
-	"J|IS_M3_EMPTY",
+	"J|IS_SUBJECT_ITEM_EMPTY",
+	"J|IS_OBJECT_ITEM_EMPTY",
 	"ITJ|CHILD_FR2_IS",
 	/* 80 */
 	"IIJ|IS_ITEM_EQ",
@@ -1195,8 +1195,8 @@
 	NULL,
 	/* 76 */
 	"WW|ADD_TIMEOUT",
-	"J|IS_M1_EMPTY",
-	"J|IS_M3_EMPTY",
+	"J|IS_SUBJECT_ITEM_EMPTY",
+	"J|IS_OBJECT_ITEM_EMPTY",
 	"ITJ|CHILD_FR2_IS",
 	/* 80 */
 	"IIJ|IS_ITEM_EQ",
@@ -1433,8 +1433,8 @@
 	NULL,
 	/* 76 */
 	"WW|ADD_TIMEOUT",
-	"J|IS_M1_EMPTY",
-	"J|IS_M3_EMPTY",
+	"J|IS_SUBJECT_ITEM_EMPTY",
+	"J|IS_OBJECT_ITEM_EMPTY",
 	"ITJ|CHILD_FR2_IS",
 	/* 80 */
 	"IIJ|IS_ITEM_EQ",
@@ -1675,8 +1675,8 @@
 	NULL,
 	/* 76 */
 	"WW|ADD_TIMEOUT",
-	"J|IS_M1_EMPTY",
-	"J|IS_M3_EMPTY",
+	"J|IS_SUBJECT_ITEM_EMPTY",
+	"J|IS_OBJECT_ITEM_EMPTY",
 	"ITJ|CHILD_FR2_IS",
 	/* 80 */
 	"IIJ|IS_ITEM_EQ",
@@ -1917,8 +1917,8 @@
 	NULL,
 	/* 76 */
 	"WW|ADD_TIMEOUT",
-	"J|IS_M1_EMPTY",
-	"J|IS_M3_EMPTY",
+	"J|IS_SUBJECT_ITEM_EMPTY",
+	"J|IS_OBJECT_ITEM_EMPTY",
 	"ITJ|CHILD_FR2_IS",
 	/* 80 */
 	"IIJ|IS_ITEM_EQ",
@@ -2170,8 +2170,8 @@
 	NULL,
 	/* 76 */
 	"WW|ADD_TIMEOUT",
-	"J|IS_M1_EMPTY",
-	"J|IS_M3_EMPTY",
+	"J|IS_SUBJECT_ITEM_EMPTY",
+	"J|IS_OBJECT_ITEM_EMPTY",
 	"ITJ|CHILD_FR2_IS",
 	/* 80 */
 	"IIJ|IS_ITEM_EQ",

Modified: scummvm/trunk/engines/agos/gfx.cpp
===================================================================
--- scummvm/trunk/engines/agos/gfx.cpp	2006-10-28 01:28:41 UTC (rev 24546)
+++ scummvm/trunk/engines/agos/gfx.cpp	2006-10-28 03:29:58 UTC (rev 24547)
@@ -548,7 +548,7 @@
 			} while (--h);
 		}
 	} else {
-		if (getGameType() == GType_SIMON2 && state->flags & kDFUseFrontBuf && getBitFlag(171)) {
+		if (state->flags & kDFUseFrontBuf) {
 			state->surf_addr = state->surf2_addr;
 			state->surf_pitch = state->surf2_pitch;
 		}

Modified: scummvm/trunk/engines/agos/script_e1.cpp
===================================================================
--- scummvm/trunk/engines/agos/script_e1.cpp	2006-10-28 01:28:41 UTC (rev 24546)
+++ scummvm/trunk/engines/agos/script_e1.cpp	2006-10-28 03:29:58 UTC (rev 24547)
@@ -123,7 +123,7 @@
 	op[128] = &AGOSEngine::o_if1;
 	op[129] = &AGOSEngine::o_if2;
 
-	op[135] = &AGOSEngine::o_isCalled;
+	op[135] = &AGOSEngine::oe1_isCalled;
 	op[136] = &AGOSEngine::o_is;
 
 	op[152] = &AGOSEngine::o_debug;
@@ -423,6 +423,13 @@
 	showMessageFormat("%s", name.c_str());
 }
 
+void AGOSEngine::oe1_isCalled() {
+	// 135: childstruct fr2 is
+	Item *item = getNextItemPtr();
+	uint stringId = getNextStringID();
+	setScriptCondition(!scumm_stricmp((const char *)getStringPtrByID(item->itemName), (const char *)getStringPtrByID(stringId)));
+}
+
 void AGOSEngine::oe1_cFlag() {
 	// 162: check container flag
 	SubContainer *c = (SubContainer *)findChildOfType(getNextItemPtr(), 7);
@@ -549,10 +556,6 @@
 	uint y = getVarOrWord();
 	uint palette = getVarOrWord();
 
-	if (getGameType() == GType_SIMON1 && (getFeatures() & GF_TALKIE) && vgaSpriteId >= 400) {
-		_lastVgaWaitFor = 0;
-	}
-
 	_lockWord |= 0x40;
 	animate(windowNum, vgaSpriteId / 100, vgaSpriteId, x, y, palette);
 	_lockWord &= ~0x40;
@@ -708,7 +711,7 @@
 	window->flags = 1;
 
 	mouseOff();
-	writeChar(window, 36, 38, 2, _variableArray[441]);
+	writeChar(window, 36, 38, 2, _variableArray[241]);
 	mouseOn();
 }
 
@@ -718,7 +721,7 @@
 	window->flags = 1;
 
 	mouseOff();
-	writeChar(window, 36, 88, 2, _variableArray[442]);
+	writeChar(window, 36, 88, 2, _variableArray[242]);
 	mouseOn();
 }
 

Modified: scummvm/trunk/engines/agos/script_e2.cpp
===================================================================
--- scummvm/trunk/engines/agos/script_e2.cpp	2006-10-28 01:28:41 UTC (rev 24546)
+++ scummvm/trunk/engines/agos/script_e2.cpp	2006-10-28 03:29:58 UTC (rev 24547)
@@ -46,6 +46,7 @@
 	op[73] = &AGOSEngine::oe2_pObj;
 	op[74] = &AGOSEngine::oe1_pName;
 	op[75] = &AGOSEngine::oe1_pcName;
+	op[79] = &AGOSEngine::oe1_isCalled;
 	op[83] = &AGOSEngine::oe1_rescan;
 	op[89] = &AGOSEngine::oe1_loadGame;
 	op[94] = &AGOSEngine::oe1_findMaster;

Modified: scummvm/trunk/engines/agos/subroutine.cpp
===================================================================
--- scummvm/trunk/engines/agos/subroutine.cpp	2006-10-28 01:28:41 UTC (rev 24546)
+++ scummvm/trunk/engines/agos/subroutine.cpp	2006-10-28 03:29:58 UTC (rev 24547)
@@ -542,16 +542,6 @@
 	if (++_recursionDepth > 40)
 		error("Recursion error");
 
-	// WORKAROUND: Bit Flag 171 isn't set when Simon rides the lion to the
-	// goblin camp in non-English versions. Bit Flag 171 is required to display 
-	// the red trail between locations on the map, during the ride.
-	if (getGameType() == GType_SIMON2) {
-		if (sub->id == 13020)
-			setBitFlag(171, true);
-		if (sub->id == 13021)
-			setBitFlag(171, false);
-	}
-
 	_currentTable = sub;
 restart:
 	while ((byte *)sl != (byte *)sub) {
@@ -575,7 +565,6 @@
 	}
 
 	if (_classMode1) {
-		debug(0, "_classMode1");
 		_subjectItem = nextInByClass(_subjectItem, _classMask);
 		if (!_subjectItem) {
 			_classMode1 = 0;
@@ -586,7 +575,6 @@
 		}
 	}
 	if (_classMode2) {
-		debug(0, "_classMode2");
 		_objectItem = nextInByClass(_objectItem, _classMask);
 		if (!_objectItem) {
 			_classMode2 = 0;

Modified: scummvm/trunk/engines/agos/vga.cpp
===================================================================
--- scummvm/trunk/engines/agos/vga.cpp	2006-10-28 01:28:41 UTC (rev 24546)
+++ scummvm/trunk/engines/agos/vga.cpp	2006-10-28 03:29:58 UTC (rev 24547)
@@ -1087,8 +1087,11 @@
 }
 
 void AGOSEngine::vc34_setMouseOff() {
-	mouseOff();
-	_mouseHideCount = 200;
+	// FIXME
+	if (getGameType() != GType_ELVIRA1) {
+		mouseOff();
+		_mouseHideCount = 200;
+	}
 	_leftButtonDown = 0;
 }
 


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