anchor.diff:        DebugLn(['invalid player color', Integer(ANewOwner)]);
       end;
     end;
  -
  -
   end;
   
   procedure TVCMIMap.Loaded;
   begin
  -
  +  FTrackObjectChanges := True;
   end;
   
   function TVCMIMap.GetHeroName(AObject: TMapObject): TLocalizedString;
  
positive.code:     FRumors: TRumors;
  
      FIsDirty: boolean;
  
      FVisibleObjectsQueue : TMapObjectQueue;
  
  
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;
  