anchor.diff:      FRumors: TRumors;
   
       FIsDirty: boolean;
  +
  +    FTrackObjectChanges: Boolean;
   
       FVisibleObjectsQueue : TMapObjectQueue;
   
  
positive.code:     FMods: TLogicalIDCondition;
      FTriggeredEvents: TTriggeredEvents;
  
  
      FLevelLimit: Integer;
      FName: TLocalizedString;
      FObjects: TMapObjects;
  
negative.code: 
  procedure TVCMIMap.FPOObservedChanged(ASender: TObject;
    Operation: TFPObservedOperation; Data: Pointer);
  
  var
    o : TMapObject;
  begin
    FIsDirty := true;
  
    //case Operation of
    //  ooChange,ooAddItem,ooDeleteItem: FIsDirty := true ;
    //end;
  
    if FTrackObjectChanges and (ASender = FObjects) then
    begin
      o := TMapObject(Data);
      case Operation of
        ooAddItem: begin
          DebugLn('Add ', o.Identifier);
        end;
        ooDeleteItem: begin
          DebugLn('Delete ', o.Identifier);
        end;
      end;
    end;
  end;
  
  function TVCMIMap.GetCurrentLevelIndex: Integer;
  