Method code for $builder._build__get_path()

[Turn on line numbering]
arg source, dest;
var eleave, earrive, opp, t, exit1, exit2;

// Get the exits
while (!exit1) {
    eleave = (> ._build__query_exit(source, dest) <);
    if (eleave) {
        // try really hard to figure this out
        if (!(opp = $place_lib.opposite_direction(eleave[1][1]))) {
            for t in (eleave[2]) {
                t = strsed(t, "[^a-z]+", "", "g");
                if ((opp = $place_lib.opposite_direction(t)))
                    break;
            }
        }
        if (opp) {
            opp = strsed(explode(opp, "|")[1], "[^a-z]+", "", "g");
            earrive = (> ._build__query_exit(dest, source, opp) <);
        } else {
            earrive = (> ._build__query_exit(dest, source) <);
        }
    }
    catch any {
        exit1 = ._build__generate_exit(source, dest, eleave);
        exit2 = ._build__generate_exit(dest, source, earrive);
    } with {
        .tell(traceback()[1][2]);
    }
}
return [exit1, exit2];

// $#Created: 13 Sep 97 15:11 $brandon
// $#Edited: 16 Feb 98 10:31 $user_tangent
// $#Edited: 16 Feb 98 10:32 $user_tangent
// $#Edited: 16 Feb 98 10:39 $user_tangent
// $#Edited: 16 Feb 98 10:41 $user_tangent
// $#Edited: 20 Apr 04 22:24 $brandon
// $#Edited: 20 Apr 04 22:57 $lynx

["// Created 26-Mar-1995 as a part of ColdCore, see: @help Credit"]

the Cold Dark