anchor.diff:      procedure PaintCenterScreen(aLayer: TKMPaintLayer);
       procedure PaintAIStart(aLayer: TKMPaintLayer);
       procedure PaintMiningRadius(aLayer: TKMPaintLayer);
  +
  +    procedure AddDefenceMarker(const aLoc: TKMPoint);
   
       function GetCheckpointObjectsStr: string;
       function GetHistory: TKMMapEditorHistory;
  
positive.code:                 cmUnits:      ProceedUnitsCursorMode;
                  cmMarkers:    case gGameCursor.Tag1 of
                                  MARKER_REVEAL:        fRevealers[gMySpectator.HandID].Add(P, gGameCursor.MapEdSize);
                                  MARKER_DEFENCE:       gMySpectator.Hand.AI.General.DefencePositions.Add(KMPointDir(P, dirN), gtMelee, DEFAULT_DEFENCE_POSITION_RADIUS, adtFrontLine);
                                  MARKER_CENTERSCREEN:  begin
                                                          gMySpectator.Hand.CenterScreen := P;
                                                          //Updating XY display is done in InterfaceMapEd
  
negative.code:   if Self = nil then Exit(nil);
    
    Result := fHistory;
  end;
  
  
  procedure TKMMapEditor.AddDefenceMarker(const aLoc: TKMPoint);
  var
    groupType: TKMGroupType;
    dir: TKMDirection;
    G: TKMUnitGroup;
  begin
    dir := dirN;
    groupType := gtMelee;
    G := gHands.GroupsHitTest(aLoc.X, aLoc.Y);
    if G <> nil then
    begin
      dir := G.Direction;
      groupType := G.GroupType;
    end;
  
    gMySpectator.Hand.AI.General.DefencePositions.Add(KMPointDir(aLoc, dir), groupType, DEFAULT_DEFENCE_POSITION_RADIUS, adtFrontLine);
  end;
  
  
  