diff --git a/src/game/g_map.pas b/src/game/g_map.pas
index 50b0d2669ae576f4647c599664b6d7c38dc094d2..bbf39cb5efb7bad44613c76d9352e0cb2655b37b 100644 (file)
--- a/src/game/g_map.pas
+++ b/src/game/g_map.pas
result := dfmapdef.parseMap(pr);
except on e: Exception do
begin
result := dfmapdef.parseMap(pr);
except on e: Exception do
begin
- if (pr <> nil) then e_LogWritefln('ERROR at (%s,%s): %s', [pr.line, pr.col, e.message])
+ if (pr <> nil) then e_LogWritefln('ERROR at (%s,%s): %s', [pr.tokLine, pr.tokCol, e.message])
else e_LogWritefln('ERROR: %s', [e.message]);
pr.Free(); // will free `wst`
result := nil;
else e_LogWritefln('ERROR: %s', [e.message]);
pr.Free(); // will free `wst`
result := nil;
FreeMem(Data);
FreeMem(Data);
+ if (mapReader = nil) then
+ begin
+ e_LogWritefln('invalid map file: ''%s''', [mapResName]);
+ exit;
+ end;
+
generateExternalResourcesList(mapReader);
mapTextureList := mapReader['texture'];
// get all other lists here too
generateExternalResourcesList(mapReader);
mapTextureList := mapReader['texture'];
// get all other lists here too
FreeMem(Data);
FreeMem(Data);
+ if (mapReader = nil) then exit;
+
if (mapReader.Width > 0) and (mapReader.Height > 0) then
begin
Result.Name := mapReader.MapName;
if (mapReader.Width > 0) and (mapReader.Height > 0) then
begin
Result.Name := mapReader.MapName;