[Scummvm-cvs-logs] CVS: scummvm/scumm akos.cpp,1.164,1.165 intern.h,2.230,2.231 script_v72he.cpp,2.65,2.66 script_v80he.cpp,2.9,2.10 script_v90he.cpp,2.17,2.18

Travis Howell kirben at users.sourceforge.net
Wed Sep 8 21:08:57 CEST 2004


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

Modified Files:
	akos.cpp intern.h script_v72he.cpp script_v80he.cpp 
	script_v90he.cpp 
Log Message:

Add extra opcodes for freddi2
Allow akos to play any actor sound.


Index: akos.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/akos.cpp,v
retrieving revision 1.164
retrieving revision 1.165
diff -u -d -r1.164 -r1.165
--- akos.cpp	9 Sep 2004 02:20:03 -0000	1.164
+++ akos.cpp	9 Sep 2004 04:05:30 -0000	1.165
@@ -1447,7 +1447,7 @@
 				tmp = GB(2);
 			else
 				tmp = GB(2) - 1;
-			if ((uint) tmp < 8)
+			if ((uint) tmp < 24)
 				akos_queCommand(3, a, a->sound[tmp], 0);
 			continue;
 		case AKC_CmdQue3Quick:

Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.230
retrieving revision 2.231
diff -u -d -r2.230 -r2.231
--- intern.h	9 Sep 2004 01:53:23 -0000	2.230
+++ intern.h	9 Sep 2004 04:05:30 -0000	2.231
@@ -696,6 +696,7 @@
 	void shuffleArray(int num, int minIdx, int maxIdx);
 	int readFileToArray(int slot, int32 size);
 	void writeFileFromArray(int slot, int resID);
+	void arrrays_unk2(int dst, int src, int len2, int len);
 
 	void drawWizImage(int restype, int resnum, int state, int x1, int y1, int flags);
 	void flushWizBuffer();
@@ -747,12 +748,14 @@
 	void o72_getPixel();
 	void o72_pickVarRandom();
 	void o72_redimArray();
+	void o72_unknownEC();
 	void o72_unknownED();
 	void o72_unknownEF();
 	void o72_unknownF1();
 	void o72_checkGlobQueue();
 	void o72_readINI();
 	void o72_writeINI();
+	void o72_unknownF0();
 	void o72_unknownF4();
 	void o72_unknownF5();
 	void o72_unknownF6();

Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.65
retrieving revision 2.66
diff -u -d -r2.65 -r2.66
--- script_v72he.cpp	9 Sep 2004 01:53:23 -0000	2.65
+++ script_v72he.cpp	9 Sep 2004 04:05:31 -0000	2.66
@@ -340,12 +340,12 @@
 		OPCODE(o72_redimArray),
 		OPCODE(o6_readFilePos),
 		/* EC */
-		OPCODE(o6_invalid),
+		OPCODE(o72_unknownEC),
 		OPCODE(o72_unknownED),
 		OPCODE(o7_stringLen),
 		OPCODE(o72_unknownEF),
 		/* F0 */
-		OPCODE(o6_invalid),
+		OPCODE(o72_unknownF0),
 		OPCODE(o72_unknownF1),
 		OPCODE(o72_checkGlobQueue),
 		OPCODE(o72_readINI),
@@ -1664,6 +1664,47 @@
 	ah->dim2end = TO_LE_32(newDim2end);
 }
 
+void ScummEngine_v72he::arrrays_unk2(int dst, int src, int len2, int len) {
+	int edi, value;
+	int i = 0;
+
+	if (len == -1) {
+		len = resStrLen(getStringAddress(src));
+		len2 = 0;
+	}
+
+	edi = resStrLen(getStringAddress(dst));
+
+	len -= len2;
+	len++;
+
+	while (i < len) {
+		writeVar(0, src);
+		value = readArray(0, 0, len2 + i);
+		writeVar(0, dst);
+		writeArray(0, 0, edi + i, value);
+		i++;
+	}
+
+	writeArray(0, 0, edi + i, 0);
+}
+
+void ScummEngine_v72he::o72_unknownEC() {
+	int dst, size;
+	int src = pop();
+
+	size = resStrLen(getStringAddress(src)) + 1;
+
+	writeVar(0, 0);
+	defineArray(0, kStringArray, 0, 0, 0, size);
+	writeArray(0, 0, 0, 0);
+	dst = readVar(0);
+
+	arrrays_unk2(dst, src, -1, -1);
+
+	push(dst);
+	debug(1,"stub o72_unknownEC");
+}
 
 void ScummEngine_v72he::o72_unknownED() {
 	int array, pos, len;
@@ -1691,45 +1732,44 @@
 }
 
 void ScummEngine_v72he::o72_unknownEF() {
-	int value;
-	int array, array2, len, len2, len3, offset;
-	int b, size;
-	len = pop();
-	b = pop();
-	array2 = pop();
+	int dst, size;
+	int b = pop();
+	int a = pop();
+	int src = pop();
 
-	size = len - b + 2;
+	size = b - a + 2;
 
 	writeVar(0, 0);
 	defineArray(0, kStringArray, 0, 0, 0, size);
 	writeArray(0, 0, 0, 0);
 
-	array = readVar(0);
+	dst = readVar(0);
 
-	len2 = len;
-	if (len == -1) {
-		len2 = resStrLen(getStringAddress(array2));
-		len = 0;
-	} else {
-		len = b;
-	}
-	len3 = resStrLen(getStringAddress(array));
+	arrrays_unk2(dst, src, a, b);
 
-	offset = 0;
-	len2 -= len;
-	len2++;
-	while (offset < len2) {
-		writeVar(0, array2);
-		value = readArray(0, 0, offset + len);
-		writeVar(0, array);
-		writeArray(0, 0, offset + len3, value);
-		offset++;
-	}
+	push(dst);
+	debug(1,"stub o72_unknownEF");
+}
 
-	writeArray(0, 0, len3 + offset, 0);
+void ScummEngine_v72he::o72_unknownF0() {
+	int dst, size;
 
-	push(array);
-	debug(1,"stub o72_unknownEF (array %d, array2 %d)", array, array2);
+	int src2 = pop();
+	int src1 = pop();
+
+	size = resStrLen(getStringAddress(src1)) * 2 + 1;
+
+	writeVar(0, 0);
+	defineArray(0, kStringArray, 0, 0, 0, size);
+	writeArray(0, 0, 0, 0);
+
+	dst = readVar(0);
+
+	arrrays_unk2(dst, src1, 0, -1);
+	arrrays_unk2(dst, src2, 0, -1);
+
+	push(dst);
+	debug(1,"stub o72_unknownF0");
 }
 
 void ScummEngine_v72he::o72_unknownF1() {

Index: script_v80he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v80he.cpp,v
retrieving revision 2.9
retrieving revision 2.10
diff -u -d -r2.9 -r2.10
--- script_v80he.cpp	9 Sep 2004 02:10:05 -0000	2.9
+++ script_v80he.cpp	9 Sep 2004 04:05:31 -0000	2.10
@@ -340,12 +340,12 @@
 		OPCODE(o72_redimArray),
 		OPCODE(o6_readFilePos),
 		/* EC */
-		OPCODE(o6_invalid),
+		OPCODE(o72_unknownEC),
 		OPCODE(o72_unknownED),
 		OPCODE(o7_stringLen),
 		OPCODE(o72_unknownEF),
 		/* F0 */
-		OPCODE(o6_invalid),
+		OPCODE(o72_unknownF0),
 		OPCODE(o72_unknownF1),
 		OPCODE(o72_checkGlobQueue),
 		OPCODE(o72_readINI),

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.17
retrieving revision 2.18
diff -u -d -r2.17 -r2.18
--- script_v90he.cpp	9 Sep 2004 01:53:23 -0000	2.17
+++ script_v90he.cpp	9 Sep 2004 04:05:31 -0000	2.18
@@ -340,12 +340,12 @@
 		OPCODE(o72_redimArray),
 		OPCODE(o6_readFilePos),
 		/* EC */
-		OPCODE(o6_invalid),
+		OPCODE(o72_unknownEC),
 		OPCODE(o72_unknownED),
 		OPCODE(o7_stringLen),
 		OPCODE(o72_unknownEF),
 		/* F0 */
-		OPCODE(o6_invalid),
+		OPCODE(o72_unknownF0),
 		OPCODE(o72_unknownF1),
 		OPCODE(o72_checkGlobQueue),
 		OPCODE(o72_readINI),





More information about the Scummvm-git-logs mailing list