3 TYPE ONELEVEL52 = RECORD
10 SPRITE:ARRAY[1..8]OF BYTE;
12 BALLS:ARRAY[1..32]OF RECORD
13 Y,X,D:BYTE; {Z:%00=right+down, %11=left+up}
15 W:ARRAY[1..4]OF RECORD
22 OBJ:ARRAY[1..32]OF RECORD {..128}
23 TYP:SHORTINT;X1,Y1,X2,Y2:BYTE;
28 A:ARRAY[1..15]OF CHAR;
30 C:ARRAY[1..98]OF BYTE; {256}
31 D:ARRAY[1..14]OF BYTE; {1}
32 E:ARRAY[1..9]OF BYTE; {1}
33 F:ARRAY[1..523]OF BYTE; {256}
38 CONST HEADEDIT52 = ('WormEdit�95'+#0+'LVL');
46 L:ARRAY[1..64]OF ONELEVEL52;
51 FUNCTION STR2BYTE(SPRITE:STRING):BYTE;
52 VAR SPRTEMP,SPRTEMP2:BYTE;
54 SPRTEMP:=0; SPRTEMP2:=1;
55 FOR SPRTEMP2:=1TO LENGTH(SPRITE)DO
56 IF SPRITE[SPRTEMP2]='1'THEN INC(SPRTEMP,1SHL(8-SPRTEMP2));
62 ASSIGN(F,FILENAME); {$I-} RESET(F,1); {$I+} I:=IORESULT;
64 TEXTCOLOR(15); WRITE('WARNING!! '); TEXTCOLOR(7);
65 WRITELN('FAILED OPENING LEVEL FILE ',FILENAME,'!'); WRITELN('RUNTIME ERROR #',I); HALT;
67 WRITELN('OPENING ',FILENAME);
68 {$I-} BLOCKREAD(F,B,SIZEOF(B));
69 FOR I:=1TO B.D[5]DO BLOCKREAD(F,L[I],SIZEOF(L[I])); {$I+}
70 IF(IORESULT<>0)OR(B.A<>HEADEDIT52)THEN BEGIN
71 TEXTCOLOR(15); WRITE('WARNING!! '); TEXTCOLOR(7);
72 WRITELN('ERROR READING LEVEL FILE!'); CLOSE(F); HALT;
74 IF B.B<>HEADVERSION THEN BEGIN
75 WRITELN('CAN''T READ FILE VERSION ',B.B,'.'); CLOSE(F); HALT;
78 WRITELN('OPENED V',B.B,' SUCESSFULLY - ',B.D[5],' LEVELS FOUND');
83 ASSIGN(F,FILENAME); REWRITE(F,1);
84 S:='WormEdit053'+#0+'LVL';
85 BLOCKWRITE(F,S[1],SIZEOF(B.A));
87 BLOCKWRITE(F,B.B,SIZEOF(B.B));
88 BLOCKWRITE(F,B.C,SIZEOF(B.C));
89 II:=0; FOR I:=1TO 128DO BLOCKWRITE(F,II,2);
90 BLOCKWRITE(F,B.D,SIZEOF(B.D));
92 BLOCKWRITE(F,B.E,SIZEOF(B.E));
94 BLOCKWRITE(F,B.F,SIZEOF(B.F));
95 FOR I:=1TO 128DO BLOCKWRITE(F,II,2);
96 BLOCKWRITE(F,B.G,SIZEOF(B.G));
97 FOR I:=1TO B.D[5]DO BEGIN
98 BLOCKWRITE(F,L[I],SIZEOF(L[I]));
99 FOR I2:=1TO 5*48DO BLOCKWRITE(F,II,2);
102 WRITELN(FILENAME,' REWRITTEN AS V',B.B);
108 WINDOW(1,1,80,25); TEXTCOLOR(7); TEXTBACKGROUND(0); CLRSCR;
109 WRITELN('V52 TO V53 CONVERTER - BY SHIAR');
110 FILENAME:=PARAMSTR(1);
112 WRITELN('ALL DONE. ENJOY!');