anchor.diff:      class function GetIcon(aTag: Integer): Word;
       class function GetTitle(aTag: Integer): UnicodeString;
     protected
  -    function CreateItem(AHandIndex: Integer; ATag: Integer; aOnItemClick: TIntBoolEvent): TKMGUIGameSpectatorItem; override;
  +    function CreateItem(aHandIndex: Integer; ATag: Integer; aOnItemClick: TIntBoolEvent): TKMGUIGameSpectatorItem; override;
       function GetTagCount: Integer; override;
       function GetTag(AIndex: Integer): Integer; override;
  -    function GetValue(AHandIndex: Integer; ATag: Integer): String; override;
  +    function GetValue(aHandIndex: Integer; ATag: Integer): String; override;
     end;
   
     // Buildings
  
positive.code:     procedure ResetUIDs;
      function CheckHighlight(aIndex: Integer): Boolean;
    protected
      function CreateItem(AHandIndex: Integer; ATag: Integer; aOnItemClick: TIntBoolEvent): TKMGUIGameSpectatorItem; override;
      function GetTagCount: Integer; override;
      function GetTag(AIndex: Integer): Integer; override;
      function GetNextLoc(AHandIndex: Integer; ATag: Integer; aMainFunction: Boolean): TKMPointF; override;
      function GetVerifyHouseSketchFn: TAnonHouseSketchBoolFn; virtual; abstract;
    public
      constructor Create(aParent: TKMPanel; AHandIndex: Integer; aOnJumpToPlayer: TIntegerEvent; aSetViewportPos: TPointFEvent;
                         aLinesAggregator: TKMGameSpectatorItemLinesAggregator = nil); override;
      destructor Destroy; override;
    end;
  
    TKMGUIGameSpectatorItemLineConstructing = class(TKMGUIGameSpectatorItemLineCustomBuildings)
    protected
      function GetValue(AHandIndex: Integer; ATag: Integer): String; override;
      function GetProgress(AHandIndex: Integer; ATag: Integer): Single; override;
      function GetVerifyHouseSketchFn: TAnonHouseSketchBoolFn; override;
    end;
  
    TKMGUIGameSpectatorItemLineHouses = class(TKMGUIGameSpectatorItemLineCustomBuildings)
    protected
      function CreateItem(AHandIndex: Integer; ATag: Integer; aOnItemClick: TIntBoolEvent): TKMGUIGameSpectatorItem; override;
      function GetValue(AHandIndex: Integer; ATag: Integer): String; override;
      function GetAdditionalValue(AHandIndex: Integer; ATag: Integer): String; override;
      function GetProgress(AHandIndex: Integer; ATag: Integer): Single; override;
      function GetVerifyHouseSketchFn: TAnonHouseSketchBoolFn; override;
    end;
  
    // Units
    TKMGUIGameSpectatorItemLinePopulation = class(TKMGUIGameSpectatorItemLine)
    protected
      function CreateItem(AHandIndex: Integer; ATag: Integer; aOnItemClick: TIntBoolEvent): TKMGUIGameSpectatorItem; override;
  //    function GetTagCount: Integer; override;
  //    function GetTag(AIndex: Integer): Integer; override;
      function GetValue(AHandIndex: Integer; ATag: Integer): String; override;
    end;
  
    TKMGUIGameSpectatorItemLinePopulationSLR = class(TKMGUIGameSpectatorItemLinePopulation)
  
negative.code:   RECRUIT_TAG = -1;
    TH_GOLD_CHEST_TAG = -2;
  
  function TKMGUIGameSpectatorItemLineWarFare.CreateItem(aHandIndex: Integer; ATag: Integer; aOnItemClick: TIntBoolEvent): TKMGUIGameSpectatorItem;
  begin
    Result := TKMGUIGameSpectatorItem.Create(Self, ATag,
                                             TKMGUIGameSpectatorItemLineWarFare.GetIcon(ATag),
  