anchor.diff:      function FindHousePlan(aLoc: TKMPoint; aSkip: TKMPoint; out aOut: TKMPoint): Boolean;
   
       // AI Informations
  +    property Count: Integer read fPlansCount;
  +    property Plans: TKMHousePlanArray read fPlans;
       function ExistPlan(aLoc: TKMPoint; aHT: TKMHouseType): Boolean;
       function GetPlansStoneDemands(): Integer;
       function GetPlansWoodDemands(): Integer;
  
positive.code:     JobStatus: TKMJobStatus;
      Worker: TKMUnit; //So we can tell Worker if plan is cancelled
    end;
  
  
    //List of house plans and workers assigned to them
    TKMHousePlanList = class
    private
      fPlansCount: Integer;
      fPlans: array of TKMHousePlan;
    public
      //Player orders
      procedure AddPlan(aHouseType: TKMHouseType; aLoc: TKMPoint);
  
negative.code:   end;
  
  
    TKMFieldPlan = record
      Loc: TKMPoint;
      FieldType: TKMFieldType;
      JobStatus: TKMJobStatus;
      Worker: TKMUnit;
    end;
    TKMFieldPlanArray = array of TKMFieldPlan;
  
  
    TKMFieldworksList = class
    private
      fFieldsCount: Integer;
      fFields: TKMFieldPlanArray;
      //List of fields which are shown visually but not verified by the server
      fFakeFields: array of record
        Loc: TKMPoint;
  