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