anchor.diff:    until (k>=length(FileText));
     //Apparently it's faster to parse till file end than check if all details are filled
   
  -  Result := (fFatalErrors='');
  -end;
  +  Result := (fFatalErrors = '');
  +end;
  +
   
   end.
  
positive.code:                                 fPlayers[fLastPlayer].Goals.AddGoal(glt_Victory,TGoalCondition(P[0]),TGoalStatus(P[1]),0,P[2],fRemap[P[3]])
                                else
                                  AddError('Add_Goal for non existing player');
      ct_AddLostGoal:     if (fParsingMode <> mpm_Preview) then
                          if fLastPlayer >= 0 then
                            //If the condition is time then P[3] is the time, else it is player ID
                            if TGoalCondition(P[0]) = gc_Time then
                              fPlayers[fLastPlayer].Goals.AddGoal(glt_Survive,TGoalCondition(P[0]),TGoalStatus(P[1]),P[3],P[2],-1)
  
negative.code:                             fPlayers[fLastPlayer].Stats.GoodInitial(ResourceKaMIndex[P[0]], Qty);
                            end;
                          end;
      ct_AddWareTo:       if fLastPlayer >= 0 then
                          begin //HouseType, House Order, Ware Type, Count
                            Qty := EnsureRange(P[3], -1, High(Word)); //Sometimes user can define it to be 999999
                            if Qty = -1 then Qty := High(Word); //-1 means maximum resources
  