1*11703Smckusick #ifndef lint 2*11703Smckusick static char sccsid[] = "@(#)visual.c 4.1 (Berkeley) 03/23/83"; 3*11703Smckusick #endif not lint 4*11703Smckusick 5*11703Smckusick # include "trek.h" 6*11703Smckusick 7*11703Smckusick /* 8*11703Smckusick ** VISUAL SCAN 9*11703Smckusick ** 10*11703Smckusick ** A visual scan is made in a particular direction of three sectors 11*11703Smckusick ** in the general direction specified. This takes time, and 12*11703Smckusick ** Klingons can attack you, so it should be done only when sensors 13*11703Smckusick ** are out. 14*11703Smckusick */ 15*11703Smckusick 16*11703Smckusick /* This struct[] has the delta x, delta y for particular directions */ 17*11703Smckusick struct xy Visdelta[11] 18*11703Smckusick { 19*11703Smckusick -1, -1, 20*11703Smckusick -1, 0, 21*11703Smckusick -1, 1, 22*11703Smckusick 0, 1, 23*11703Smckusick 1, 1, 24*11703Smckusick 1, 0, 25*11703Smckusick 1, -1, 26*11703Smckusick 0, -1, 27*11703Smckusick -1, -1, 28*11703Smckusick -1, 0, 29*11703Smckusick -1, 1 30*11703Smckusick }; 31*11703Smckusick 32*11703Smckusick visual() 33*11703Smckusick { 34*11703Smckusick register int ix, iy; 35*11703Smckusick int co; 36*11703Smckusick register struct xy *v; 37*11703Smckusick 38*11703Smckusick co = getintpar("direction"); 39*11703Smckusick if (co < 0 || co > 360) 40*11703Smckusick return; 41*11703Smckusick co = (co + 22) / 45; 42*11703Smckusick v = &Visdelta[co]; 43*11703Smckusick ix = Ship.sectx + v->x; 44*11703Smckusick iy = Ship.secty + v->y; 45*11703Smckusick if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS) 46*11703Smckusick co = '?'; 47*11703Smckusick else 48*11703Smckusick co = Sect[ix][iy]; 49*11703Smckusick printf("%d,%d %c ", ix, iy, co); 50*11703Smckusick v++; 51*11703Smckusick ix = Ship.sectx + v->x; 52*11703Smckusick iy = Ship.secty + v->y; 53*11703Smckusick if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS) 54*11703Smckusick co = '?'; 55*11703Smckusick else 56*11703Smckusick co = Sect[ix][iy]; 57*11703Smckusick printf("%c ", co); 58*11703Smckusick v++; 59*11703Smckusick ix = Ship.sectx + v->x; 60*11703Smckusick iy = Ship.secty + v->y; 61*11703Smckusick if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS) 62*11703Smckusick co = '?'; 63*11703Smckusick else 64*11703Smckusick co = Sect[ix][iy]; 65*11703Smckusick printf("%c %d,%d\n", co, ix, iy); 66*11703Smckusick Move.time = 0.05; 67*11703Smckusick Move.free = 0; 68*11703Smckusick } 69