private void calcNormalizedDirection(Point result, 
                                         int x1, int y1, int x2, int y2)
    {
        // Hajo: calculate normalized vector components
        int dxn = (x1 == x2) ? 0 : (x1 < x2) ? 1 : -1;
        int dyn = (y1 == y2) ? 0 : (y1 < y2) ? 1 : -1;

        if(dxn != 0 && dyn != 0) {
            // Hajo: diagonal cases ... we try each direction by random, but
            //       never both in one step, to get a walkable corridor.
            if(rand.nextInt(1000) > 500) {
                result.x = dxn;
                result.y = 0;
            } else {
                result.x = 0;
                result.y = dyn;
            }
        } else {
            // Hajo: clean cases, length of (dx,dy) already 1
            result.x = dxn;
            result.y = dyn;
        }
    }