anchor.diff:  
   procedure TKMHandEntity.Save(SaveStream: TKMemoryStream);
   begin
  -  SaveStream.PlaceMarker('Entity');
  -  SaveStream.Write(fUID);
  +  inherited;
  +
     SaveStream.Write(fType, SizeOf(fType));
     SaveStream.Write(fOwner, SizeOf(fOwner));
     SaveStream.Write(fAllowAllyToSelect);
  
positive.code:   KM_Defaults, KM_Points, KM_CommonClasses, KM_HandTypes;
  
  type
    { Common class for TKMUnit / TKMHouse / TKMUnitGroup }
    TKMHandEntity = class abstract
    private
      fUID: Integer; //unique entity ID
      fType: TKMHandEntityType;
      fOwner: TKMHandID;
      fAllowAllyToSelect: Boolean; // Allow ally to select entity
      function GetUID: Integer;
      function GetOwner: TKMHandID;
      function GetType: TKMHandEntityType;
    protected
      procedure SetUID(aUID: Integer);
      function GetPosition: TKMPoint; virtual; abstract;
      function GetPositionF: TKMPointF; virtual; abstract;
      procedure SetPositionF(const aPositionF: TKMPointF); virtual; abstract;
  
negative.code: procedure TKMHandEntity.SetOwner(const aOwner: TKMHandID);
  begin
    fOwner := aOwner;
  end;
  
  
  