anchor.diff:       FLinksToResolve: TQIResolveRequests;
   
        class procedure CheckMapVersion(const AVersion: DWord); static;
  -     function IsNotROE: boolean;
  +
  +     function IsAtLeastAB: Boolean;
  +     function IsAtLeastSoD: Boolean;
  +
        function IsWog: Boolean;
   
        procedure SkipNotImpl(count: Integer);
  
positive.code:     end;
  
      exper := 0;
      if FMapVersion > MAP_VERSION_AB then
      begin
        if ReadBoolean then
        begin
  
negative.code:   cnt: Integer;
  begin
  
    cnt := ifthen(IsAtLeastAB(),20,16);
  
    ReadBitmask(FMap.AllowedHeroes, cnt, HERO_QUANTITY, @FMapEnv.lm.HeroIndexToString, False);
  
    //unknown plaseholder
    if IsAtLeastAB() then
    begin
      cnt :=FSrc.ReadDWord;
      FSrc.Skip(cnt);
  