111703Smckusick #ifndef lint 2*12738Slayer static char sccsid[] = "@(#)visual.c 4.2 (Berkeley) 05/27/83"; 311703Smckusick #endif not lint 411703Smckusick 511703Smckusick # include "trek.h" 611703Smckusick 711703Smckusick /* 811703Smckusick ** VISUAL SCAN 911703Smckusick ** 1011703Smckusick ** A visual scan is made in a particular direction of three sectors 1111703Smckusick ** in the general direction specified. This takes time, and 1211703Smckusick ** Klingons can attack you, so it should be done only when sensors 1311703Smckusick ** are out. 1411703Smckusick */ 1511703Smckusick 1611703Smckusick /* This struct[] has the delta x, delta y for particular directions */ 17*12738Slayer struct xy Visdelta[11] = 1811703Smckusick { 1911703Smckusick -1, -1, 2011703Smckusick -1, 0, 2111703Smckusick -1, 1, 2211703Smckusick 0, 1, 2311703Smckusick 1, 1, 2411703Smckusick 1, 0, 2511703Smckusick 1, -1, 2611703Smckusick 0, -1, 2711703Smckusick -1, -1, 2811703Smckusick -1, 0, 2911703Smckusick -1, 1 3011703Smckusick }; 3111703Smckusick 3211703Smckusick visual() 3311703Smckusick { 3411703Smckusick register int ix, iy; 3511703Smckusick int co; 3611703Smckusick register struct xy *v; 3711703Smckusick 3811703Smckusick co = getintpar("direction"); 3911703Smckusick if (co < 0 || co > 360) 4011703Smckusick return; 4111703Smckusick co = (co + 22) / 45; 4211703Smckusick v = &Visdelta[co]; 4311703Smckusick ix = Ship.sectx + v->x; 4411703Smckusick iy = Ship.secty + v->y; 4511703Smckusick if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS) 4611703Smckusick co = '?'; 4711703Smckusick else 4811703Smckusick co = Sect[ix][iy]; 4911703Smckusick printf("%d,%d %c ", ix, iy, co); 5011703Smckusick v++; 5111703Smckusick ix = Ship.sectx + v->x; 5211703Smckusick iy = Ship.secty + v->y; 5311703Smckusick if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS) 5411703Smckusick co = '?'; 5511703Smckusick else 5611703Smckusick co = Sect[ix][iy]; 5711703Smckusick printf("%c ", co); 5811703Smckusick v++; 5911703Smckusick ix = Ship.sectx + v->x; 6011703Smckusick iy = Ship.secty + v->y; 6111703Smckusick if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS) 6211703Smckusick co = '?'; 6311703Smckusick else 6411703Smckusick co = Sect[ix][iy]; 6511703Smckusick printf("%c %d,%d\n", co, ix, iy); 6611703Smckusick Move.time = 0.05; 6711703Smckusick Move.free = 0; 6811703Smckusick } 69