[Scummvm-cvs-logs] CVS: scummvm/scumm charset.cpp,2.33,2.34

Max Horn fingolfin at users.sourceforge.net
Sun May 25 13:22:03 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv28806

Modified Files:
	charset.cpp 
Log Message:
fixed V2 font decoder; added french V2 font

Index: charset.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/charset.cpp,v
retrieving revision 2.33
retrieving revision 2.34
diff -u -d -r2.33 -r2.34
--- charset.cpp	25 May 2003 00:30:48 -0000	2.33
+++ charset.cpp	25 May 2003 20:21:28 -0000	2.34
@@ -197,7 +197,7 @@
 }
 
 // German Zak font (should work for US version too).
-static byte charsetDataV2[] = {
+static byte germanCharsetDataV2[] = {
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, 
 	0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, 
@@ -325,11 +325,146 @@
 	0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00, 
 	0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 
 	0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40, 
-	0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08
+	0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, 
 };
 
+// French Zak font (should work for US version too).
+static byte frenchCharsetDataV2[] = {
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, 
+	0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, 
+	0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, 
+	0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, 
+	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 
+	0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, 
+	0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 
+	0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 
+	0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, 
+	0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, 
+	0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 
+	0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, 
+	0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, 
+	0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, 
+	0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, 
+	0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, 
+	0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, 
+	0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 
+	0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, 
+	0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, 
+	0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, 
+	0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, 
+	0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 
+	0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 
+	0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, 
+	0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, 
+	0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, 
+	0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, 
+	0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, 
+	0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, 
+	0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, 
+	0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, 
+	0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, 
+	0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 
+	0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 
+	0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 
+	0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 
+	0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 
+	0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, 
+	0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, 
+	0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, 
+	0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, 
+	0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, 
+	0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, 
+	0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, 
+	0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, 
+	0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, 
+	0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 
+	0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, 
+	0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, 
+	0x18, 0x24, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, 
+	0x00, 0x00, 0x3c, 0x60, 0x60, 0x3c, 0x18, 0x38, 
+	0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, 
+	0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 
+	0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, 
+	0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, 
+	0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, 
+	0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, 
+	0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, 
+	0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, 
+	0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, 
+	0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, 
+	0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 
+	0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, 
+	0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, 
+	0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, 
+	0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, 
+	0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, 
+	0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 
+	0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, 
+	0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, 
+	0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, 
+	0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, 
+	0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 
+	0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 
+	0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, 
+	0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, 
+	0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, 
+	0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, 
+	0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, 
+	0x08, 0x10, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, 
+	0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, 
+	0x18, 0x24, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, 
+	0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, 
+	0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, 
+	0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 
+	0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, 
+	0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, 
+	0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, 
+	0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, 
+	0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, 
+	0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, 
+	0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, 
+	0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, 
+	0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, 
+	0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, 
+	0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, 
+	0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 
+	0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, 
+	0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, 
+	0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, 
+	0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 
+	0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, 
+	0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, 
+	0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, 
+	0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, 
+	0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, 
+	0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, 
+	0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, 
+	0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, 
+	0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, 
+	0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, 
+	0x18, 0x24, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, 
+	0x18, 0x24, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00, 
+	0x10, 0x08, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, 
+	0x18, 0x24, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, 
+	0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, 
+};
+
+
 void CharsetRendererV2::setCurID(byte id) {
-	_fontPtr = charsetDataV2;
+
+	_fontPtr = frenchCharsetDataV2;
+	_fontPtr = germanCharsetDataV2;
 
 #if 0
 	// Decompress weird encoding in which the Zak executable contains the font.
@@ -339,10 +474,13 @@
 	//
 	int count = 0, len;
 	byte b;
-	for (int offset = 0; offset < (int)sizeof(charsetDataV2); offset++) {
-		if (charsetDataV2[offset+1] == 0x00 && charsetDataV2[offset+2] == 0xB2) {
-			b = charsetDataV2[offset+3];
-			len = charsetDataV2[offset+4];
+	const byte *data = frenchCharsetDataV2;
+	const int size = sizeof(frenchCharsetDataV2);
+	for (int offset = 0; offset < size; offset++) {
+		if (data[offset+1] == 0x00 && data[offset+2] == 0xB2 &&
+			data[offset+5] == 0x00 && data[offset+6] == 0xB0) {
+			b = data[offset+3];
+			len = data[offset+4];
 			while (len--) {
 				printf("0x%02x, ", b);
 				count++;
@@ -351,13 +489,14 @@
 			}
 			offset += 6;
 		} else {
-			printf("0x%02x, ", charsetDataV2[offset]);
+			printf("0x%02x, ", data[offset]);
 			count++;
 			if (count % 8 == 0)
 				printf("\n");
 		}
 	}
 	printf("\n");
+	exit(0);
 #endif
 }
 





More information about the Scummvm-git-logs mailing list