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