diff --git a/src/tools/mapgen.dpr b/src/tools/mapgen.dpr
index 8a23afa7e46f99fc915417b1821d949660e35ff6..cdb4d3551d9accdaf25ce4328c7aabc45c6d5076 100644 (file)
--- a/src/tools/mapgen.dpr
+++ b/src/tools/mapgen.dpr
uses
SysUtils, Classes,
+ {$IFDEF USE_SDL}
+ SDL in '../lib/sdl/sdl.pas',
+ {$ENDIF}
+ {$IFDEF USE_SDL2}
+ SDL2 in '../lib/sdl2/sdl2.pas',
+ {$ENDIF}
+ mempool in '../shared/mempool.pas',
xstreams in '../shared/xstreams.pas',
xparser in '../shared/xparser.pas',
xdynrec in '../shared/xdynrec.pas',
// ////////////////////////////////////////////////////////////////////////// //
type
- THashStrFld = specialize THashBase<AnsiString, TDynField>;
+ THashStrFld = specialize THashBase<AnsiString, TDynField, THashKeyStr>;
// ////////////////////////////////////////////////////////////////////////// //
AssignFile(fo, fname);
{$I+}Rewrite(fo);{$I-}
- fldknown := THashStrFld.Create(hsihash, hsiequ);
+ fldknown := THashStrFld.Create();
write(fo, '// trigger cache'#10);
for tidx := 0 to dfmapdef.trigTypeCount-1 do
if fld.hasTPrefix then
begin
write(fo, ' tgt.tgcTX := tdata.trigTX;'#10);
- write(fo, ' tgt.tgcTY := tdata.trigTX;'#10);
+ write(fo, ' tgt.tgcTY := tdata.trigTY;'#10);
end
else if fld.separatePasFields then
begin
write(fo, ' tgt.tgcX := tdata.trigX;'#10);
- write(fo, ' tgt.tgcY := tdata.trigX;'#10);
+ write(fo, ' tgt.tgcY := tdata.trigY;'#10);
end
else
begin
fldknown: THashStrFld = nil; // key: palias; value: prev field
knownfld: TDynField;
begin
- fldknown := THashStrFld.Create(hsihash, hsiequ);
+ fldknown := THashStrFld.Create();
//writeln(getFilenamePath(ParamStr(0)), '|');
e_InitWritelnDriver();
writeln('FATAL: mapdef not found!');
end;
+ writeln('parsing "mapdef.txt"...');
pr := TFileTextParser.Create(st, false); // don't own
try
dfmapdef := TDynMapDef.Create(pr);
- except on e: Exception do
- begin
- writeln('ERROR at (', pr.tokLine, ',', pr.tokCol, '): ', e.message);
- Halt(1);
- end;
+ except
+ on e: TDynParseException do
+ begin
+ writeln('ERROR at (', e.tokLine, ',', e.tokCol, '): ', e.message);
+ Halt(1);
+ end;
+ on e: Exception do
+ begin
+ writeln('ERROR: ', e.message);
+ Halt(1);
+ end;
end;
pr.Free();