anchor.diff:  
   
   //aStageIncrement - stage increment, can be negative
  -//aCheckPrevCell - do we check prev cell uner the cursor to differ from current cell under the cursor
  +//aCheckPrevCell - do we check prev cell under the cursor to differ from current cell under the cursor
   procedure TKMMapEditor.UpdateField(aStageIncrement: Integer; aCheckPrevCell: Boolean);
   var
     P: TKMPoint;
  
positive.code: end;
  
  
  procedure TKMMapEditor.EraseObject(aEraseAll: Boolean);
  var Obj: TObject;
      P: TKMPoint;
      IsDeleted: Boolean;
  begin
    IsDeleted := False;
    P := gGameCursor.Cell;
    Obj := gMySpectator.HitTestCursor(True);
  
    if Obj is TKMUnit then
    begin
      gHands.RemAnyUnit(TKMUnit(Obj).GetPosition);
      IsDeleted := True;
    end
    else
    if Obj is TKMHouse then
    begin
      gHands.RemAnyHouse(P);
      IsDeleted := True;
    end;
  
    if (aEraseAll or not IsDeleted) and (gTerrain.Land[P.Y,P.X].Obj <> 255) then
    begin
      fTerrainPainter.MakeCheckpoint;
      if gTerrain.TileIsCornField(P) and (gTerrain.GetCornStage(P) in [4,5]) then
  
negative.code: var House: TKMHouse;
  begin
    Result := False;
    if (aObject = nil) then Exit;
  
    if aObject is TKMHouse then
    begin
      House := TKMHouse(aObject);
      if House.Owner <> aOwner then
      begin
        House.OwnerUpdate(aOwner, True);
        gTerrain.SetHouseAreaOwner(House.GetPosition, House.HouseType, aOwner); // Update minimap colors
        Result := True;
      end;
    end
    else if aObject is TKMUnit then
    begin
      if (TKMUnit(aObject).Owner <> aOwner) and (TKMUnit(aObject).Owner <> PLAYER_ANIMAL) then
      begin
        TKMUnit(aObject).OwnerUpdate(aOwner, True);
        Result := True;
      end;
    end else if aObject is TKMUnitGroup then
      if TKMUnitGroup(aObject).Owner <> aOwner then
      begin
        TKMUnitGroup(aObject).OwnerUpdate(aOwner, True);
        Result := True;
      end
  end;
  
  
  