[Scummvm-cvs-logs] CVS: scummvm/scumm resource.cpp,1.286.2.1,1.286.2.2 script_v72he.cpp,2.191.2.1,2.191.2.2 script_v7he.cpp,2.122,2.122.2.1

kirben kirben at users.sourceforge.net
Sat Mar 12 04:59:34 CET 2005


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11268/scumm

Modified Files:
      Tag: branch-0-7-0
	resource.cpp script_v72he.cpp script_v7he.cpp 
Log Message:

Back port Buzzy fixes.


Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.286.2.1
retrieving revision 1.286.2.2
diff -u -d -r1.286.2.1 -r1.286.2.2
--- resource.cpp	17 Dec 2004 18:01:19 -0000	1.286.2.1
+++ resource.cpp	12 Mar 2005 12:59:11 -0000	1.286.2.2
@@ -611,7 +611,7 @@
 
 	debugC(DEBUG_RESOURCE, "ensureResourceLoaded(%s,%d)", resTypeFromId(type), i);
 
-	if ((type == rtRoom) && i > 0x7F && _version < 7) {
+	if ((type == rtRoom) && i > 0x7F && _version < 7 && _heversion <= 71) {
 		i = _resourceMapper[i & 0x7F];
 	}
 

Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.191.2.1
retrieving revision 2.191.2.2
diff -u -d -r2.191.2.1 -r2.191.2.2
--- script_v72he.cpp	19 Dec 2004 09:24:55 -0000	2.191.2.1
+++ script_v72he.cpp	12 Mar 2005 12:59:11 -0000	2.191.2.2
@@ -1603,9 +1603,9 @@
 		size = _hFileTable[slot].size() - _hFileTable[slot].pos();
 
 	writeVar(0, 0);
-
 	ArrayHeader *ah = defineArray(0, kByteArray, 0, 0, 0, size);
-	_hFileTable[slot].read(ah->data, size);
+
+	_hFileTable[slot].read(ah->data, size + 1);
 
 	return readVar(0);
 }

Index: script_v7he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v7he.cpp,v
retrieving revision 2.122
retrieving revision 2.122.2.1
diff -u -d -r2.122 -r2.122.2.1
--- script_v7he.cpp	27 Nov 2004 17:50:22 -0000	2.122
+++ script_v7he.cpp	12 Mar 2005 12:59:12 -0000	2.122.2.1
@@ -835,45 +835,32 @@
 }
 
 void ScummEngine_v70he::o70_compareString() {
-	byte *addr, *addr2;
-	int i = 0;
-
-	int id = pop();
-	int id2 = pop();
-
-	addr = getStringAddress(id);
-	if (!addr)
-		error("o70_compareString: Reference to zeroed array pointer (%d)", id);
+	int result;
 
-	addr2 = getStringAddress(id2);
-	if (!addr2)
-		error("o70_compareString: Reference to zeroed array pointer (%d)", id);
+	int array1 = pop();
+	int array2 = pop();
 
-	while(1) {
-		if (*addr != *addr2)
-			break;
-		if (*addr == 0) {
-			push(0);
-			return;
-		}
+	byte *string1 = getStringAddress(array1);
+	if (!string1)
+		error("o70_compareString: Reference to zeroed array pointer (%d)", array1);
 
-		addr++;
-		addr2++;
+	byte *string2 = getStringAddress(array2);
+	if (!string2)
+		error("o70_compareString: Reference to zeroed array pointer (%d)", array2);
 
-		if (*addr != *addr2)
-			break;
-		if (*addr == 0) {
+	while (*string1 == *string2) {
+		if (*string2 == 0) {
 			push(0);
 			return;
 		}
 
-		addr++;
-		addr2++;
-		i += 2;
+		string1++;
+		string2++;
 	}
 
-	push (i);
-	debug(1,"o70_compareString (%d, %d, %d)", id, id2, i);
+	result = (*string1 > *string2) ? -1 : 1;
+	push(result);
+	debug(1,"o70_compareString (%d, %d, %d)", array1, array2, result);
 }
 
 void ScummEngine_v70he::o70_readINI() {





More information about the Scummvm-git-logs mailing list