anchor.diff:    SaveStream.Write(fFirstLineCnt);
     SaveStream.Write(TroopFormations, SizeOf(TroopFormations));
   
  -  I := Length(fDefPolyFirstLine);
  -  SaveStream.Write(I);
  -  if (I > 0) then
  -    SaveStream.Write(fDefPolyFirstLine[0], SizeOf(fDefPolyFirstLine[0]) * I);
  -
     SaveStream.Write(Count);
     for I := 0 to Count - 1 do
       Positions[I].Save(SaveStream);
  
positive.code: begin
    SaveStream.WriteA('DefencePosition');
    SaveStream.Write(fWeight);
    SaveStream.Write(fPosition);
    if (fGroup <> nil) then
      SaveStream.Write(fGroup.UID) //Store ID
  
negative.code: 
  
  //Find DefencePosition of a group
  function TKMArmyDefence.FindPositionOf(aGroup: TKMUnitGroup; aIgnoreFirstLine: Boolean = False): TKMDefencePosition;
  var
    I: Integer;
  begin
    Result := nil;
  
    for I := 0 to Count - 1 do
      if (Positions[I].Group = aGroup) then
      begin
        if (aIgnoreFirstLine AND (Positions[I].Line <= FIRST_LINE_MAX_IDX)) then
          Break;
        Result := Positions[I];
        Break;
      end;
  end;
  
  
  