DEADSOFTWARE

smoother camera on stairs/slopes
[d2df-sdl.git] / src / shared / zmapgen.dpr
1 {$INCLUDE a_modes.inc}
2 {$M+}
4 uses
5 SysUtils, Classes,
6 xparser in 'xparser.pas',
7 xdynrec in 'xdynrec.pas',
8 utils in 'utils.pas';
11 // ////////////////////////////////////////////////////////////////////////// //
12 var
13 pr: TTextParser;
14 dfmapdef: TDynMapDef;
15 fo: TextFile;
16 st: TStream;
17 ch: AnsiChar;
18 wdt: Integer;
19 s: AnsiString;
20 begin
21 writeln('parsing "mapdef.txt"...');
22 pr := TFileTextParser.Create('mapdef.txt');
23 try
24 dfmapdef := TDynMapDef.Create(pr);
25 except on e: Exception do
26 begin
27 writeln('ERROR at (', pr.line, ',', pr.col, '): ', e.message);
28 Halt(1);
29 end;
30 end;
32 writeln('writing "mapdef.inc"...');
33 AssignFile(fo, 'mapdef.inc');
34 Rewrite(fo);
35 write(fo, '// *** WARNING! ***'#10);
36 write(fo, '// regenerate this part directly from "mapdef.txt" with ''zmapgen'', NEVER manually change anything here!'#10#10#10);
37 write(fo, dfmapdef.pasdef);
39 st := openDiskFileRO('mapdef.txt');
40 write(fo, #10#10'const defaultMapDef: AnsiString = ''''+'#10' ');
41 wdt := 2;
42 while true do
43 begin
44 if (st.Read(ch, 1) <> 1) then break;
45 s := formatstrf('#%d', [Byte(ch)]);
46 if (wdt+Length(s) > 78) then begin wdt := 2; write(fo, '+'#10' '); end;
47 write(fo, s);
48 Inc(wdt, Length(s));
49 end;
50 write(fo, #10';');
52 CloseFile(fo);
53 end.