4 typedef struct scnode scnode;
5 typedef struct scway scway;
6 typedef struct scwaypoint scwaypoint;
8 scway *scaddway(scnode *from, const scnode *to, int len)
10 scway *way = malloc(sizeof(scway));
14 scway *apar, *par = NULL;
15 for (apar = from->way; apar != NULL; par = apar, apar = apar->alt);
23 scwaypoint *__scallocwayp(const scnode *node, scway *way)
25 scwaypoint *wayp = malloc(sizeof(scwaypoint));
32 scwaypoint *__scstackfindgetend(scwaypoint *stack, scway *way)
34 scwaypoint *asptr, *sptr;
35 for (asptr = stack; asptr != NULL; sptr = asptr, asptr = asptr->nxt)
36 if (asptr->nod == way->lto)
41 void __scstackfree(scwaypoint *stack)
43 for (scwaypoint *sptr = stack; sptr != NULL; sptr = sptr->nxt)
47 int __scstackgetlen(scwaypoint *stack)
52 scwaypoint *scout(const scnode *from, const scnode *to, scwaypoint *stack)
54 scwaypoint *wayp = NULL;
56 return __scallocwayp(from, NULL);
57 for (scway *way = from->way; way != NULL; way = way->alt) {
59 if ((stackend = __scstackfindgetend(stack, way)) == NULL)
62 if (wayp && wayp->len <= (tway->len = __scstackgetlen(tway)))