anchor.diff:  //*   ChangeSet: TKMTileChangeTypeSet; // Set of changes.
   //* end;
   //* TKMTileChangeTypeSet = set of TKMTileChangeType
  -//* TKMTileChangeType =
  -//*   (tctTerrain, tctRotation, tctHeight, tctObject)</pre>
  +//* TKMTileChangeType = (tctTerrain, tctRotation, tctHeight, tctObject)
  +//* </pre>
   //* ChangeSet determines what should be changed on tile
   //* F.e. if we want to change terrain type and height, then ChangeSet should contain tctTerrain and tctHeight
   //* Note: aTiles elements should start from 0, as for dynamic array. So f.e. to change map tile 1,1 we should set aTiles[0][0].
  
positive.code: //* Version: 7000+
  //* Add AI attack 
  //* Possible targets:
  //* <pre>TKMAIAttackTarget = (
  //*  attClosestUnit, // Closest enemy unit
  //*  attClosestBuildingFromArmy, // Closest building from the group lauching the attack
  //*  attClosestBuildingFromStartPos, // Closest building from the AI's start position
  //*  attCustomPosition // Custom point defined with aCustomPosition
  //* );</pre>
  //* aHand: handID
  //* aRepeating: is attack repeating
  //* aDelay: attack delay from the game start (in ticks)
  
negative.code: //* aTiles: Check detailed info on this type in description
  //* aRevertOnFail: do we need to revert all changes on any error while applying changes. If True, then no changes will be applied on error. If False - we will continue apply changes where possible
  //* aShowDetailedErrors: show detailed errors after. Can slow down the execution, because of logging. If aRevertOnFail is set to True, then only first error will be shown
  //* Result: True, if there was no errors on any tile. False if there was at least 1 error.
  function TKMScriptActions.MapTilesArraySet(aTiles: array of TKMTerrainTileBrief; aRevertOnFail, aShowDetailedErrors: Boolean): Boolean;
  
    function GetTileErrorsStr(aErrorsIn: TKMTileChangeTypeSet): string;
  