anchor.diff:  implementation
   
   uses FileUtil, editor_str_consts, root_manager, editor_utils;
  -
   
   { TRumor }
   
  
positive.code:     procedure DestroyTiles();
      function GetAllowedAbilities: TStrings;
      function GetAllowedSpells: TStrings;
      procedure RecreateTerrainArray;
  
      procedure AttachTo(AObserved: IFPObserved);
  
negative.code:     lm: TListsManager;
    end;
  
    ///WIP, MULTILEVEL MAP
  
    { TMapLevel }
  
    TMapLevel = class(TCollectionItem)
    strict private
      FHeight: Integer;
      FTerrain: array of array of TMapTile; //X, Y
      FObjects: TMapObjects;
      FWidth: Integer;
      function GetTile(X, Y: Integer): TMapTile; inline;
      procedure SetHeight(AValue: Integer);
      procedure SetWidth(AValue: Integer);
  
      procedure Resize;
    public
      destructor Destroy; override;
  
      property Tile[X, Y: Integer]: TMapTile read GetTile;
    published
      property Height: Integer read FHeight write SetHeight;
      property Width: Integer read FWidth write SetWidth;
    end;
  
    { TMapLevels }
  
    TMapLevels = class(specialize TGArrayCollection<TMapLevel>)
  
    end;
  
    { TVCMIMap }
  
    TVCMIMap = class (TPersistent, IFPObserver)
  