1*25996Smckusick /* 2*25996Smckusick * Copyright (c) 1980 Regents of the University of California. 3*25996Smckusick * All rights reserved. The Berkeley software License Agreement 4*25996Smckusick * specifies the terms and conditions for redistribution. 5*25996Smckusick */ 6*25996Smckusick 711703Smckusick #ifndef lint 8*25996Smckusick static char sccsid[] = "@(#)visual.c 5.1 (Berkeley) 01/29/86"; 911703Smckusick #endif not lint 1011703Smckusick 1111703Smckusick # include "trek.h" 1211703Smckusick 1311703Smckusick /* 1411703Smckusick ** VISUAL SCAN 1511703Smckusick ** 1611703Smckusick ** A visual scan is made in a particular direction of three sectors 1711703Smckusick ** in the general direction specified. This takes time, and 1811703Smckusick ** Klingons can attack you, so it should be done only when sensors 1911703Smckusick ** are out. 2011703Smckusick */ 2111703Smckusick 2211703Smckusick /* This struct[] has the delta x, delta y for particular directions */ 2312738Slayer struct xy Visdelta[11] = 2411703Smckusick { 2511703Smckusick -1, -1, 2611703Smckusick -1, 0, 2711703Smckusick -1, 1, 2811703Smckusick 0, 1, 2911703Smckusick 1, 1, 3011703Smckusick 1, 0, 3111703Smckusick 1, -1, 3211703Smckusick 0, -1, 3311703Smckusick -1, -1, 3411703Smckusick -1, 0, 3511703Smckusick -1, 1 3611703Smckusick }; 3711703Smckusick 3811703Smckusick visual() 3911703Smckusick { 4011703Smckusick register int ix, iy; 4111703Smckusick int co; 4211703Smckusick register struct xy *v; 4311703Smckusick 4411703Smckusick co = getintpar("direction"); 4511703Smckusick if (co < 0 || co > 360) 4611703Smckusick return; 4711703Smckusick co = (co + 22) / 45; 4811703Smckusick v = &Visdelta[co]; 4911703Smckusick ix = Ship.sectx + v->x; 5011703Smckusick iy = Ship.secty + v->y; 5111703Smckusick if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS) 5211703Smckusick co = '?'; 5311703Smckusick else 5411703Smckusick co = Sect[ix][iy]; 5511703Smckusick printf("%d,%d %c ", ix, iy, co); 5611703Smckusick v++; 5711703Smckusick ix = Ship.sectx + v->x; 5811703Smckusick iy = Ship.secty + v->y; 5911703Smckusick if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS) 6011703Smckusick co = '?'; 6111703Smckusick else 6211703Smckusick co = Sect[ix][iy]; 6311703Smckusick printf("%c ", co); 6411703Smckusick v++; 6511703Smckusick ix = Ship.sectx + v->x; 6611703Smckusick iy = Ship.secty + v->y; 6711703Smckusick if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS) 6811703Smckusick co = '?'; 6911703Smckusick else 7011703Smckusick co = Sect[ix][iy]; 7111703Smckusick printf("%c %d,%d\n", co, ix, iy); 7211703Smckusick Move.time = 0.05; 7311703Smckusick Move.free = 0; 7411703Smckusick } 75