anchor.diff:    //This is a common class for all units, who can work in house
     TKMUnitCitizen = class(TKMSettledUnit)
     protected
  -    function InitiateActivity: TKMUnitTask; override;
  +    procedure TaskGetWork; override;
     public
       function CanWorkAt(aLoc: TKMPoint; aGatheringScript: TKMGatheringScript): Boolean;
       function GetActivityText: UnicodeString; override;
  
positive.code:   private
      procedure CleanHousePointer(aFreeAndNilTask: Boolean = False);
    protected
      function InitiateActivity: TKMUnitTask; virtual; abstract;
      function FindHome: Boolean;
      procedure ProceedHouseClosedForWorker;
    public
  
negative.code: end;
  
  
  procedure TKMUnitCitizen.TaskGetWork;
  var
    res: Integer;
    tm: TKMTaskMining;
  begin
    fTask := nil;
  
    if not KMSamePoint(fPositionRound, fHome.Entrance) then
      raise ELocError.Create('Mining from wrong spot', fPositionRound);
  
    res := 1;
    // Check if House has production orders
    // Ask the house what order we should make
    if gResHouses[fHome.HouseType].DoesOrders then
    begin
      res := fHome.PickOrder;
  