annotate window/runlengh.cc @ 66:d112357a0ec1

Fix a bug with savegames introduced with changeset c7bcc0ec2267. Warning: savegames created since c7bcc0ec2267 are probably corrupted, you may have to start the game over. If you chose not to do so, you should replace all occurrences of 'TextWindow' by 'TextImplWindow', and 'Text Window' by 'TextImpl Window' in your save files.
author Thibaut Girka <thib@sitedethib.com>
date Sat, 11 Dec 2010 18:36:20 +0100
parents 6d1a5b7f0838
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
1 /*
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
2 * Copyright (c) 2004-2006 Kazunori "jagarl" Ueno
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
3 * All rights reserved.
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
4 *
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
5 * Redistribution and use in source and binary forms, with or without
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
6 * modification, are permitted provided that the following conditions
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
7 * are met:
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
8 * 1. Redistributions of source code must retain the above copyright
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
9 * notice, this list of conditions and the following disclaimer.
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
10 * 2. Redistributions in binary form must reproduce the above copyright
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
11 * notice, this list of conditions and the following disclaimer in the
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
12 * documentation and/or other materials provided with the distribution.
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
13 * 3. The name of the author may not be used to endorse or promote products
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
14 * derived from this software without specific prior written permission.
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
15 *
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
18 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
26 */
6d1a5b7f0838 * Updated copyright/license information
thib
parents: 0
diff changeset
27
0
223b71206888 Initial import
thib
parents:
diff changeset
28 #include<stdio.h>
223b71206888 Initial import
thib
parents:
diff changeset
29
223b71206888 Initial import
thib
parents:
diff changeset
30 int main(int argc, char** argv) {
223b71206888 Initial import
thib
parents:
diff changeset
31 if (argc != 2) return 0;
223b71206888 Initial import
thib
parents:
diff changeset
32 FILE* f = fopen(argv[1],"rb");
223b71206888 Initial import
thib
parents:
diff changeset
33 if (f==0) return 0;
223b71206888 Initial import
thib
parents:
diff changeset
34 int i,j;
223b71206888 Initial import
thib
parents:
diff changeset
35 fseek(f,0,2);
223b71206888 Initial import
thib
parents:
diff changeset
36 int sz=ftell(f);
223b71206888 Initial import
thib
parents:
diff changeset
37 fseek(f,0,0);
223b71206888 Initial import
thib
parents:
diff changeset
38 char* buf=new char[sz];
223b71206888 Initial import
thib
parents:
diff changeset
39 char* out = new char[sz];
223b71206888 Initial import
thib
parents:
diff changeset
40 fread(buf,sz,1,f);
223b71206888 Initial import
thib
parents:
diff changeset
41 fclose(f);
223b71206888 Initial import
thib
parents:
diff changeset
42 int oc=0;
223b71206888 Initial import
thib
parents:
diff changeset
43 for (i=0; i<sz; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
44 int d = buf[i];
223b71206888 Initial import
thib
parents:
diff changeset
45 int c = d & 0xff;
223b71206888 Initial import
thib
parents:
diff changeset
46 switch(c) {
223b71206888 Initial import
thib
parents:
diff changeset
47 case 0x61: c=1; break;
223b71206888 Initial import
thib
parents:
diff changeset
48 case 0xa2: c=2; break;
223b71206888 Initial import
thib
parents:
diff changeset
49 case 0xc1: c=3; break;
223b71206888 Initial import
thib
parents:
diff changeset
50 case 0xdf: c=4; break;
223b71206888 Initial import
thib
parents:
diff changeset
51 case 0xde: c=5; break;
223b71206888 Initial import
thib
parents:
diff changeset
52 case 0xff: c=6; break;
223b71206888 Initial import
thib
parents:
diff changeset
53 }
223b71206888 Initial import
thib
parents:
diff changeset
54 for (j=i; j<sz; j++)
223b71206888 Initial import
thib
parents:
diff changeset
55 if (buf[j] != d) break;
223b71206888 Initial import
thib
parents:
diff changeset
56 int cnt = j-i;
223b71206888 Initial import
thib
parents:
diff changeset
57 if (cnt < 16) {
223b71206888 Initial import
thib
parents:
diff changeset
58 out[oc++] = c | 0x08 | (cnt<<4);
223b71206888 Initial import
thib
parents:
diff changeset
59 } else if (cnt < 256){
223b71206888 Initial import
thib
parents:
diff changeset
60 out[oc++] = c;
223b71206888 Initial import
thib
parents:
diff changeset
61 out[oc++] = cnt;
223b71206888 Initial import
thib
parents:
diff changeset
62 } else fprintf(stderr,"cnt %d\n",cnt);
223b71206888 Initial import
thib
parents:
diff changeset
63 if (j == sz) break;
223b71206888 Initial import
thib
parents:
diff changeset
64 i = j-1;
223b71206888 Initial import
thib
parents:
diff changeset
65 }
223b71206888 Initial import
thib
parents:
diff changeset
66 printf("int button1_cnt = %d;\nchar button1[%d] = {\n\t",oc,oc+1);
223b71206888 Initial import
thib
parents:
diff changeset
67 for (i=0; i<oc; i++) {
223b71206888 Initial import
thib
parents:
diff changeset
68 printf("0x%02x,",int(out[i])&0xff);
223b71206888 Initial import
thib
parents:
diff changeset
69 if ( (i&15) == 15) printf("\n\t");
223b71206888 Initial import
thib
parents:
diff changeset
70 }
223b71206888 Initial import
thib
parents:
diff changeset
71 printf("\n\t0xff};\n");
223b71206888 Initial import
thib
parents:
diff changeset
72 return 0;
223b71206888 Initial import
thib
parents:
diff changeset
73 }
223b71206888 Initial import
thib
parents:
diff changeset
74 /* 2834bytes*/