diff --git a/src/shared/zmapgen.dpr b/src/tools/mapgen.dpr
similarity index 53%
rename from src/shared/zmapgen.dpr
rename to src/tools/mapgen.dpr
index e983e43688b3846ecdf3b7a355e69349393676d1..bb38d087d8e153896ac54b725dc86839ad4fb190 100644 (file)
rename from src/shared/zmapgen.dpr
rename to src/tools/mapgen.dpr
index e983e43688b3846ecdf3b7a355e69349393676d1..bb38d087d8e153896ac54b725dc86839ad4fb190 100644 (file)
--- a/src/shared/zmapgen.dpr
+++ b/src/tools/mapgen.dpr
-{$INCLUDE a_modes.inc}
-{$M+}
+{$INCLUDE ../shared/a_modes.inc}
+{$APPTYPE CONSOLE}
uses
SysUtils, Classes,
- xparser in 'xparser.pas',
- xdynrec in 'xdynrec.pas',
- utils in 'utils.pas';
+ xstreams in '../shared/xstreams.pas',
+ xparser in '../shared/xparser.pas',
+ xdynrec in '../shared/xdynrec.pas',
+ utils in '../shared/utils.pas';
// ////////////////////////////////////////////////////////////////////////// //
pr: TTextParser;
dfmapdef: TDynMapDef;
fo: TextFile;
- st: TStream;
+ st: TStream = nil;
ch: AnsiChar;
wdt: Integer;
s: AnsiString;
begin
+ //writeln(getFilenamePath(ParamStr(0)), '|');
+
writeln('parsing "mapdef.txt"...');
- pr := TFileTextParser.Create('mapdef.txt');
+ try
+ st := openDiskFileRO('mapdef.txt');
+ writeln('found: local mapdef');
+ except // sorry
+ st := nil;
+ end;
+ try
+ writeln(filenameConcat(getFilenamePath(ParamStr(0)), '../mapdef/mapdef.txt'), '|');
+ st := openDiskFileRO(filenameConcat(getFilenamePath(ParamStr(0)), '../mapdef/mapdef.txt'));
+ writeln('found: system mapdef');
+ except // sorry
+ writeln('FATAL: mapdef not found!');
+ end;
+
+ pr := TFileTextParser.Create(st, false); // don't own
try
dfmapdef := TDynMapDef.Create(pr);
except on e: Exception do
Halt(1);
end;
end;
+ pr.Free();
writeln('writing "mapdef.inc"...');
AssignFile(fo, 'mapdef.inc');
Rewrite(fo);
write(fo, '// *** WARNING! ***'#10);
- write(fo, '// regenerate this part directly from "mapdef.txt" with ''zmapgen'', NEVER manually change anything here!'#10#10#10);
+ write(fo, '// regenerate this part directly from "mapdef.txt" with ''mapgen'', NEVER manually change anything here!'#10#10#10);
write(fo, dfmapdef.pasdef);
- st := openDiskFileRO('mapdef.txt');
+ //st := openDiskFileRO('mapdef.txt');
+ st.position := 0;
write(fo, #10#10'const defaultMapDef: AnsiString = ''''+'#10' ');
wdt := 2;
while true do