125996Smckusick /*
2*60859Sbostic * Copyright (c) 1980, 1993
3*60859Sbostic * The Regents of the University of California. All rights reserved.
434205Sbostic *
542606Sbostic * %sccs.include.redist.c%
625996Smckusick */
725996Smckusick
811703Smckusick #ifndef lint
9*60859Sbostic static char sccsid[] = "@(#)visual.c 8.1 (Berkeley) 05/31/93";
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
visual()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