|
|
1.1 root 1: /*
2: * Copyright (c) 1980 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted provided
6: * that: (1) source distributions retain this entire copyright notice and
7: * comment, and (2) distributions including binaries display the following
8: * acknowledgement: ``This product includes software developed by the
9: * University of California, Berkeley and its contributors'' in the
10: * documentation or other materials provided with the distribution and in
11: * all advertising materials mentioning features or use of this software.
12: * Neither the name of the University nor the names of its contributors may
13: * be used to endorse or promote products derived from this software without
14: * specific prior written permission.
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
16: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
17: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18: */
19:
20: #ifndef lint
21: static char sccsid[] = "@(#)visual.c 5.4 (Berkeley) 6/1/90";
22: #endif /* not lint */
23:
24: # include "trek.h"
25:
26: /*
27: ** VISUAL SCAN
28: **
29: ** A visual scan is made in a particular direction of three sectors
30: ** in the general direction specified. This takes time, and
31: ** Klingons can attack you, so it should be done only when sensors
32: ** are out.
33: */
34:
35: /* This struct[] has the delta x, delta y for particular directions */
36: struct xy Visdelta[11] =
37: {
38: -1, -1,
39: -1, 0,
40: -1, 1,
41: 0, 1,
42: 1, 1,
43: 1, 0,
44: 1, -1,
45: 0, -1,
46: -1, -1,
47: -1, 0,
48: -1, 1
49: };
50:
51: visual()
52: {
53: register int ix, iy;
54: int co;
55: register struct xy *v;
56:
57: co = getintpar("direction");
58: if (co < 0 || co > 360)
59: return;
60: co = (co + 22) / 45;
61: v = &Visdelta[co];
62: ix = Ship.sectx + v->x;
63: iy = Ship.secty + v->y;
64: if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS)
65: co = '?';
66: else
67: co = Sect[ix][iy];
68: printf("%d,%d %c ", ix, iy, co);
69: v++;
70: ix = Ship.sectx + v->x;
71: iy = Ship.secty + v->y;
72: if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS)
73: co = '?';
74: else
75: co = Sect[ix][iy];
76: printf("%c ", co);
77: v++;
78: ix = Ship.sectx + v->x;
79: iy = Ship.secty + v->y;
80: if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS)
81: co = '?';
82: else
83: co = Sect[ix][iy];
84: printf("%c %d,%d\n", co, ix, iy);
85: Move.time = 0.05;
86: Move.free = 0;
87: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.