anchor.diff:  
   procedure TKMUnitActionWalkTo.SetInitValues;
   begin
  -  NodePos              := 0;
  +  fNodePos              := 0;
     fDoExchange          := False;
     fDoesWalking         := False;
     fWaitingOnStep       := False;
  
positive.code:     and (gTerrain.GetRoadConnectID(fWalkFrom) <> gTerrain.GetRoadConnectID(fWalkTo)) //NoRoad returns 0
      and (gTerrain.GetRoadConnectID(fWalkTo) <> 0) then //Don't bother returning to the road if our target is off road anyway
      if CanWalkToTarget(fWalkFrom, tpWalk) then
        gGame.Pathfinding.Route_ReturnToWalkable(fWalkFrom, fWalkTo, wcRoad, gTerrain.GetRoadConnectID(fWalkTo), [tpWalk], NodeList);
  
    avoidLocked := palNoAvoid;
    if (fUnit is TKMUnitWarrior)
  
negative.code:       else
          fInteractionCount := 0; //Reset the counter when there is no blockage and we can walk
  
        Inc(fNodePos);
        fUnit.PositionNext := fNodeList[fNodePos];
  
        if KMLength(fUnit.PositionPrev, fUnit.PositionNext) > 1.5 then
          raise ELocError.Create('Unit walk length > 1.5', fUnit.PositionPrev);
  