[Scummvm-cvs-logs] CVS: scummvm/sky text.cpp,1.11,1.12 text.h,1.5,1.6

Joost Peters joostp at users.sourceforge.net
Mon Apr 21 07:35:56 CEST 2003


Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1:/tmp/cvs-serv11297/sky

Modified Files:
	text.cpp text.h 
Log Message:
added text decoder for v0.0303

Index: text.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/text.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- text.cpp	20 Apr 2003 21:56:57 -0000	1.11
+++ text.cpp	21 Apr 2003 14:06:45 -0000	1.12
@@ -1351,6 +1351,550 @@
 
 }
 
+char SkyText_v00303::getTextChar() {
+
+	//This code is based on disassembly of the v0.0303 binary.
+
+	if (getTBit())
+		goto ec6d;
+	if (getTBit())
+		goto ec2e;
+	if (getTBit())
+		goto ec21;
+	if (getTBit())
+		goto ec1e;
+   
+	return (char)0x20;
+
+ec1e:   
+	return (char)0x65;
+
+ec21:   
+	if (getTBit())
+		goto ec2b;
+   
+	return (char)0x74;
+
+ec2b:   
+	return (char)0x73;
+
+ec2e:   
+	if (getTBit())
+		goto ec56;
+	if (getTBit())
+		goto ec49;
+	if (getTBit())
+		goto ec46;
+   
+	return (char)0x6e;
+
+ec46:   
+	return (char)0x61;
+
+ec49:   
+	if (getTBit())
+		goto ec53;
+   
+	return (char)0x69;
+
+ec53:   
+	return (char)0x2e;
+
+ec56:   
+	if (getTBit())
+		goto ec6a;
+	if (getTBit())
+		goto ec67;
+   
+	return (char)0x6f;
+
+ec67:   
+	return (char)0x0;
+
+ec6a:   
+	return (char)0x45;
+
+ec6d:   
+	if (getTBit())
+		goto ece5;
+	if (getTBit())
+		goto ecb0;
+	if (getTBit())
+		goto ec99;
+	if (getTBit())
+		goto ec96;
+	if (getTBit())
+		goto ec93;
+   
+	return (char)0x72;
+
+ec93:   
+	return (char)0x75;
+
+ec96:   
+	return (char)0x68;
+
+ec99:   
+	if (getTBit())
+		goto ecad;
+	if (getTBit())
+		goto ecaa;
+   
+	return (char)0x49;
+
+ecaa:   
+	return (char)0x6d;
+
+ecad:   
+	return (char)0x6c;
+
+ecb0:   
+	if (getTBit())
+		goto ecce;
+	if (getTBit())
+		goto eccb;
+	if (getTBit())
+		goto ecc8;
+   
+	return (char)0x54;
+
+ecc8:   
+	return (char)0x53;
+
+eccb:   
+	return (char)0x52;
+
+ecce:   
+	if (getTBit())
+		goto ece2;
+	if (getTBit())
+		goto ecdf;
+  
+	return (char)0x64;
+
+ecdf:   
+	return (char)0x4e;
+
+ece2:   
+	return (char)0x41;
+
+ece5:   
+	if (getTBit())
+		goto ed5d;
+	if (getTBit())
+		goto ed28;
+	if (getTBit())
+		goto ed11;
+	if (getTBit())
+		goto ed0e;
+	if (getTBit())
+		goto ed0b;
+   
+	return (char)0x63;
+
+ed0b:   
+	return (char)0x4f;
+
+ed0e:   
+	return (char)0x44;
+
+ed11:   
+	if (getTBit())
+		goto ed25;
+	if (getTBit())
+		goto ed22;
+   
+	return (char)0x4c;
+
+ed22:   
+	return (char)0x43;
+
+ed25:   
+	return (char)0x79;
+
+ed28:   
+	if (getTBit())
+		goto ed46;
+	if (getTBit())
+		goto ed43;
+	if (getTBit())
+		goto ed40;
+   
+	return (char)0x67;
+
+ed40:   
+	return (char)0x27;
+
+ed43:   
+	return (char)0x55;
+
+ed46:   
+	if (getTBit())
+		goto ed5a;
+	if (getTBit())
+		goto ed57;
+   
+	return (char)0x48;
+
+ed57:   
+	return (char)0x21;
+
+ed5a:   
+	return (char)0x70;
+
+ed5d:   
+	if (getTBit())
+		goto edb7;
+	if (getTBit())
+		goto ed96;
+	if (getTBit())
+		goto ed89;
+	if (getTBit())
+		goto ed86;
+	if (getTBit())
+		goto ed83;
+   
+	return (char)0x4d;
+
+ed83:   
+	return (char)0x62;
+
+ed86:   
+	return (char)0x3f;
+
+ed89:   
+	if (getTBit())
+		goto ed93;
+   
+	return (char)0x76;
+
+ed93:   
+	return (char)0x66;
+
+ed96:   
+	if (getTBit())
+		goto edaa;
+	if (getTBit())
+		goto eda7;
+   
+	return (char)0x50;
+
+eda7:   
+	return (char)0x2c;
+
+edaa:   
+	if (getTBit())
+		goto edb4;
+   
+	return (char)0x77;
+
+edb4:   
+	return (char)0x47;
+
+edb7:   
+	if (getTBit())
+		goto edfd;
+	if (getTBit())
+		goto eddc;
+	if (getTBit())
+		goto edd9;
+	if (getTBit())
+		goto edd6;
+   
+	return (char)0x42;
+
+edd6:   
+	return (char)0x57;
+
+edd9:   
+	return (char)0x6b;
+
+eddc:   
+	if (getTBit())
+		goto edf0;
+	if (getTBit())
+		goto eded;
+   
+	return (char)0x46;
+
+eded:   
+	return (char)0x56;
+
+edf0:   
+	if (getTBit())
+		goto edfa;
+   
+	return (char)0x59;
+
+edfa:   
+	return (char)0x4b;
+
+edfd:   
+	if (getTBit())
+		goto ee39;
+	if (getTBit())
+		goto ee22;
+	if (getTBit())
+		goto ee1f;
+	if (getTBit())
+		goto ee1c;
+   
+	return (char)0x2d;
+
+ee1c:   
+	return (char)0x7a;
+
+ee1f:   
+	return (char)0x4a;
+
+ee22:   
+	if (getTBit())
+		goto ee36;
+	if (getTBit())
+		goto ee33;
+   
+	return (char)0x71;
+
+ee33:   
+	return (char)0x2b;
+
+ee36:   
+	return (char)0x6a;
+
+ee39:   
+	if (getTBit())
+		goto ee93;
+	if (getTBit())
+		goto ee68;
+	if (getTBit())
+		goto ee5b;
+	if (getTBit())
+		goto ee58;
+   
+	return (char)0x5a;
+
+ee58:   
+	return (char)0x23;
+
+ee5b:   
+	if (getTBit())
+		goto ee65;
+   
+	return (char)0x51;
+
+ee65:   
+	return (char)0x78;
+
+ee68:   
+	if (getTBit())
+		goto ee86;
+	if (getTBit())
+		goto ee83;
+	if (getTBit())
+		goto ee80;
+   
+	return (char)0x3a;
+
+ee80:   
+	return (char)0x29;
+
+ee83:   
+	return (char)0x28;
+
+ee86:   
+	if (getTBit())
+		goto ee90;
+   
+	return (char)0x3c;
+
+ee90:   
+	return (char)0x58;
+
+ee93:   
+	if (getTBit())
+		goto eee3;
+	if (getTBit())
+		goto eec2;
+	if (getTBit())
+		goto eeb5;
+	if (getTBit())
+		goto eeb2;
+   
+	return (char)0x2a;
+
+eeb2:   
+	return (char)0x60;
+
+eeb5:   
+	if (getTBit())
+		goto eebf;
+   
+	return (char)0x7d;
+
+eebf:   
+	return (char)0x3d;
+
+eec2:   
+	if (getTBit())
+		goto eed6;
+	if (getTBit())
+		goto eed3;
+   
+	return (char)0x32;
+
+eed3:   
+	return (char)0x30;
+
+eed6:   
+	if (getTBit())
+		goto eee0;
+   
+	return (char)0x5d;
+
+eee0:   
+	return (char)0x31;
+
+eee3:   
+	if (getTBit())
+		goto ef1f;
+	if (getTBit())
+		goto ef08;
+	if (getTBit())
+		goto ef05;
+	if (getTBit())
+		goto ef02;
+   
+	return (char)0x7e;
+
+ef02:   
+	return (char)0x33;
+
+ef05:   
+	return (char)0x7f;
+
+ef08:   
+	if (getTBit())
+		goto ef1c;
+	if (getTBit())
+		goto ef19;
+   
+	return (char)0x39;
+
+ef19:   
+	return (char)0x34;
+
+ef1c:   
+	return (char)0x2f;
+
+ef1f:   
+	if (getTBit())
+		goto ef5b;
+	if (getTBit())
+		goto ef44;
+	if (getTBit())
+		goto ef41;
+	if (getTBit())
+		goto ef3e;
+   
+	return (char)0x38;
+
+ef3e:   
+	return (char)0x5e;
+
+ef41:   
+	return (char)0x26;
+
+ef44:   
+	if (getTBit())
+		goto ef58;
+	if (getTBit())
+		goto ef55;
+   
+	return (char)0x35;
+
+ef55:   
+	return (char)0x36;
+
+ef58:   
+	return (char)0x3e;
+
+ef5b:   
+	if (getTBit())
+		goto ef8d;
+	if (getTBit())
+		goto ef80;
+	if (getTBit())
+		goto ef7d;
+	if (getTBit())
+		goto ef7a;
+   
+	return (char)0x40;
+
+ef7a:   
+	return (char)0x37;
+
+ef7d:   
+	return (char)0x5f;
+
+ef80:   
+	if (getTBit())
+		goto ef8a;
+   
+	return (char)0x5c;
+
+ef8a:   
+	return (char)0x24;
+
+ef8d:   
+	if (getTBit())
+		goto efb5;
+	if (getTBit())
+		goto efa8;
+	if (getTBit())
+		goto efa5;
+   
+	return (char)0x5b;
+
+efa5:   
+	return (char)0x80;
+
+efa8:   
+	if (getTBit())
+		goto efb2;
+   
+	return (char)0x81;
+
+efb2:   
+	return (char)0x22;
+
+efb5:   
+	if (getTBit())
+		goto efc9;
+	if (getTBit())
+		goto efc6;
+   
+	return (char)0x25;
+
+efc6:   
+	return (char)0x82;
+
+efc9:   
+	if (getTBit())
+		goto efd3;
+   
+	return (char)0x7b;
+
+efd3:   
+	if (getTBit())
+		goto efdd;
+   
+	return (char)0x9;
+
+efdd:   
+	return (char)0x7c;
+
+}
+
 char SkyText_v00331::getTextChar() {
 
 	//This code is based on disassembly of the v0.0331 binary.

Index: text.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/text.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- text.h	20 Apr 2003 21:56:58 -0000	1.5
+++ text.h	21 Apr 2003 14:06:45 -0000	1.6
@@ -85,6 +85,13 @@
 	char getTextChar();
 };
 
+class SkyText_v00303 : public SkyText {
+public:
+	SkyText_v00303(SkyDisk *skyDisk, uint32 gameVersion) : SkyText(skyDisk, gameVersion) {};
+protected:
+	char getTextChar();
+};
+
 class SkyText_v00331 : public SkyText {
 public:
 	SkyText_v00331(SkyDisk *skyDisk, uint32 gameVersion) : SkyText(skyDisk, gameVersion) {};





More information about the Scummvm-git-logs mailing list