|
|
1.1 root 1: /*
2: * Copyright (c) 1983 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: */
6:
7: #ifndef lint
8: static char sccsid[] = "@(#)dr_main.c 5.2 (Berkeley) 1/21/86";
9: #endif not lint
10:
11: #include "driver.h"
12:
13: dr_main()
14: {
15: register int n;
16: register struct ship *sp;
17: int nat[NNATION];
18: int value = 0;
19:
20: (void) signal(SIGINT, SIG_IGN);
21: (void) signal(SIGQUIT, SIG_IGN);
22: (void) signal(SIGTSTP, SIG_IGN);
23: if (issetuid)
24: (void) setruid(geteuid());
25: if (game < 0 || game >= NSCENE) {
26: fprintf(stderr, "DRIVER: Bad game number %d\n", game);
27: exit(1);
28: }
29: cc = &scene[game];
30: ls = SHIP(cc->vessels);
31: if (sync_open() < 0) {
32: perror("driver: syncfile");
33: exit(1);
34: }
35: for (n = 0; n < NNATION; n++)
36: nat[n] = 0;
37: foreachship(sp) {
38: if (sp->file == NULL &&
39: (sp->file = (struct File *)calloc(1, sizeof (struct File))) == NULL) {
40: (void) fprintf(stderr, "DRIVER: Out of memory.\n");
41: exit(1);
42: }
43: sp->file->index = sp - SHIP(0);
44: sp->file->loadL = L_ROUND;
45: sp->file->loadR = L_ROUND;
46: sp->file->readyR = R_LOADED|R_INITIAL;
47: sp->file->readyL = R_LOADED|R_INITIAL;
48: sp->file->stern = nat[sp->nationality]++;
49: sp->file->dir = sp->shipdir;
50: sp->file->row = sp->shiprow;
51: sp->file->col = sp->shipcol;
52: }
53: windspeed = cc->windspeed;
54: winddir = cc->winddir;
55: people = 0;
56: for (;;) {
57: sleep(7);
58: if (Sync() < 0) {
59: value = 1;
60: break;
61: }
62: if (next() < 0)
63: break;
64: unfoul();
65: checkup();
66: prizecheck();
67: moveall();
68: thinkofgrapples();
69: boardcomp();
70: compcombat();
71: resolve();
72: reload();
73: checksails();
74: if (Sync() < 0) {
75: value = 1;
76: break;
77: }
78: }
79: sync_close(1);
80: return value;
81: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.