Commit | Line | Data |
---|---|---|
15637ed4 RG |
1 | /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ |
2 | /* hack.track.c - version 1.0.2 */ | |
3 | ||
4 | #include "hack.h" | |
5 | ||
6 | #define UTSZ 50 | |
7 | ||
8 | coord utrack[UTSZ]; | |
9 | int utcnt = 0; | |
10 | int utpnt = 0; | |
11 | ||
12 | initrack(){ | |
13 | utcnt = utpnt = 0; | |
14 | } | |
15 | ||
16 | /* add to track */ | |
17 | settrack(){ | |
18 | if(utcnt < UTSZ) utcnt++; | |
19 | if(utpnt == UTSZ) utpnt = 0; | |
20 | utrack[utpnt].x = u.ux; | |
21 | utrack[utpnt].y = u.uy; | |
22 | utpnt++; | |
23 | } | |
24 | ||
25 | coord * | |
26 | gettrack(x,y) register x,y; { | |
27 | register int i,cnt,dist; | |
28 | coord tc; | |
29 | cnt = utcnt; | |
30 | for(i = utpnt-1; cnt--; i--){ | |
31 | if(i == -1) i = UTSZ-1; | |
32 | tc = utrack[i]; | |
33 | dist = (x-tc.x)*(x-tc.x) + (y-tc.y)*(y-tc.y); | |
34 | if(dist < 3) | |
35 | return(dist ? &(utrack[i]) : 0); | |
36 | } | |
37 | return(0); | |
38 | } |