[Scummvm-cvs-logs] CVS: scummvm/scumm script_v90he.cpp,2.87,2.88

Gregory Montoir cyx at users.sourceforge.net
Sat Oct 9 09:43:54 CEST 2004


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

Modified Files:
	script_v90he.cpp 
Log Message:
ScummEngine_v90he::processWizImage() cases 3 & 4

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.87
retrieving revision 2.88
diff -u -d -r2.87 -r2.88
--- script_v90he.cpp	9 Oct 2004 16:10:53 -0000	2.87
+++ script_v90he.cpp	9 Oct 2004 16:41:35 -0000	2.88
@@ -563,9 +563,55 @@
 	case 1:
 		displayWizComplexImage(params);
 		break;
-	case 2:
 	case 3:
+		if (params->processFlags & 0x800) {
+			File f;
+			if (!f.open((const char *)params->filename, File::kFileReadMode)) {
+				warning("Unable to open for read '%s'", params->filename);
+			} else {
+				uint32 id = f.readUint32BE();
+				if (id != MKID('AWIZ') && id != MKID('MULT')) {
+					VAR(0x20) = -1;
+				} else {
+					uint32 size = f.readUint32BE();
+					f.seek(0, SEEK_SET);
+					byte *p = createResource(rtImage, params->img.resNum, size);
+					if (f.read(p, size) != size) {
+						nukeResource(rtImage, params->img.resNum);
+						warning("i/o error when reading '%s'", params->filename);
+						VAR(0x20) = -2;
+					} else {
+						VAR(0x20) = 0;
+					}
+				}
+				f.close();
+			}
+		}
+		break;
 	case 4:
+		if (params->processFlags & 0x800) {
+			if (params->unk_14C != 0) {
+				VAR(0x77) = -1;
+			} else {
+				File f;
+				if (!f.open((const char *)params->filename, File::kFileWriteMode)) {
+					warning("Unable to open for write '%s'", params->filename);
+					VAR(0x77) = -3;
+				} else {
+					byte *p = getResourceAddress(rtImage, params->img.resNum);
+					uint32 size = READ_BE_UINT32(p + 4);
+					if (f.write(p, size) != size) {
+						warning("i/o error when writing '%s'", params->filename);
+						VAR(0x77) = -2;
+					} else {
+						VAR(0x77) = 0;
+					}
+					f.close();
+				}
+			}
+		}
+		break;
+	case 2:
 	case 6:
 	// HE 99+
 	case 7:





More information about the Scummvm-git-logs mailing list