anchor.diff:      //Check if we already reach destination, no need to check anymore.
       //Also there is possibility when connected path (not diagonal) to house was cut and we have only diagonal path
       //then its possible, that fPointBelowToHouse Connect Area will have only 1 tile, that means its WalkConnect will be 0
  -    //then no need actually need to go to raod
  +    //then no need actually need to go to road
       if fUnit.CurrPosition = fToHouse.PointBelowEntrance then
         Exit(False);
   
  
positive.code:   Result := trTaskContinues;
  
    //Check if need walk back to road
    //Used only if we walk from house to other house or construction site
    NeedWalkBackToRoad := (((fDeliverKind = dkToHouse) and ((fPhase - 1) = 5))
                            or (((fPhase - 1) in [5,6]) and (fDeliverKind = dkToConstruction)))
                          and NeedGoToRoad();
  
    if not NeedWalkBackToRoad then
  
negative.code:   if NeedWalkBackToRoad then
    begin
      case fPhase2 of
    //No need to think if need go back to road
    //No need 2 phases here, but let's keep old code for a while
  //      0:  begin
  //            fUnit.SetActionStay(1, uaWalk);
  ////            fUnit.Thought := thQuest;
  //          end;
        0,1:  begin
              fUnit.SetActionWalkToRoad(uaWalk, 0, tpWalkRoad,
                                [gTerrain.GetRoadConnectID(fPointBelowToHouse), gTerrain.GetRoadConnectID(fPointBelowFromHouse)]);
              fUnit.Thought := thNone;
              fPhase := 5;
            end;
      end;
      fPhase2 := 10;
      Exit;
    end;
  
  