anchor.diff:  
     TKMTaskResult = (trTaskContinues, trTaskDone); //There's no difference between Done and Aborted
   
  -  TKMUnitTask = class
  +  TKMUnitTask = class abstract
     protected
       fType: TKMUnitTaskType;
       fUnit: TKMUnit; //Unit who's performing the Task
  
positive.code:   end;
  
    //Common class for all civil units
    TKMCivilUnit = class(TKMUnit)
    public
      function GoEat(aInn: TKMHouseInn; aUnitAlreadyInsideInn: Boolean = False): Boolean;
      function CheckCondition: Boolean;
  
negative.code:   end;
  
    //This is common class for all units, who can be an owner for house (recruits and all citizen workers)
    TKMSettledUnit = class abstract(TKMCivilUnit)
    private
      procedure CleanHousePointer(aFreeAndNilTask: Boolean = False);
    protected
  