gdb - Local mods (compile)
[dragonfly.git] / games / hack / hack.track.c
1 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
2 /* hack.track.c - version 1.0.2 */
3 /* $FreeBSD: src/games/hack/hack.track.c,v 1.4 1999/11/16 10:26:38 marcel Exp $ */
4 /* $DragonFly: src/games/hack/hack.track.c,v 1.3 2006/08/21 19:45:32 pavalos Exp $ */
5
6 #include "hack.h"
7
8 #define UTSZ    50
9
10 coord utrack[UTSZ];
11 int utcnt = 0;
12 int utpnt = 0;
13
14 void
15 initrack(void)
16 {
17         utcnt = utpnt = 0;
18 }
19
20 /* add to track */
21 void
22 settrack(void)
23 {
24         if (utcnt < UTSZ)
25                 utcnt++;
26         if (utpnt == UTSZ)
27                 utpnt = 0;
28         utrack[utpnt].x = u.ux;
29         utrack[utpnt].y = u.uy;
30         utpnt++;
31 }
32
33 coord *
34 gettrack(int x, int y)
35 {
36         int i, cnt, dst;
37         coord tc;
38
39         cnt = utcnt;
40         for (i = utpnt - 1; cnt--; i--) {
41                 if (i == -1)
42                         i = UTSZ - 1;
43                 tc = utrack[i];
44                 dst = (x - tc.x) * (x - tc.x) + (y - tc.y) * (y - tc.y);
45                 if (dst < 3)
46                         return (dst ? &(utrack[i]) : 0);
47         }
48         return (0);
49 }