anchor.diff:    Result := true; //Must have worked if we haven't exited by now
   end;
   
  +
   procedure TMissionParser.DebugScriptError(ErrorMsg:string);
   begin
     //Just an idea, a nice way of debugging script errors. Shows the error to the user so they know exactly what they did wrong.
  
positive.code:         CommandText:=CommandText+FileText[k];
          inc(k);
        until((FileText[k]=#32)or(k>=length(FileText)));
        //Now convert command into type
        CommandType := GetCommandTypeFromText(CommandText);
        if CommandType in CommandsUsedInGetMissionDetails then //Try to make it faster by only processing commands used
        begin
        inc(k);
        //Extract parameters
        for l:=1 to Max_Cmd do
          if (FileText[k]<>'!') and (k<length(FileText)) then
          begin
            Param := '';
            repeat
              Param:=Param+FileText[k];
              inc(k);
            until((k>=length(FileText))or(FileText[k]='!')or(FileText[k]=#32)); //Until we find another ! OR we run out of data
            //Convert to an integer, if possible
            if StrToIntDef(Param,-999) <> -999 then ParamList[l] := StrToInt(Param)
            else if l=1 then TextParam:=Param; //Accept text for first parameter
  
            if FileText[k]=#32 then inc(k);
          end;
        //We now have command text and parameters, so process them
        GetDetailsProcessCommand(CommandType,ParamList,TextParam,Result);
        end;
      end
      else
  
negative.code: 
  {Acquire specific map details in a fast way}
  function TMissionParser.GetMapDetails(aFileName:string):TKMMapDetails;
  var f:file; i,k:integer;
  begin
    assignfile(f,aFileName); reset(f,1);
    blockread(f,k,4);
    blockread(f,i,4);
    Assert((k<=MaxMapSize)and(i<=MaxMapSize),'TMissionParser.GetMapDetails - Can''t open the map cos it''s too big.');
    closefile(f);
    Result.MapSize.X:=k;
    Result.MapSize.Y:=i;
  end;
  
  
  