copyright message
[unix-history] / usr / src / games / sail / main.c
CommitLineData
b5f0675e
EW
1/*
2 * Copyright (c) 1983 Regents of the University of California,
3 * All rights reserved. Redistribution permitted subject to
4 * the terms of the Berkeley Software License Agreement.
5 */
6
e951eec3 7#ifndef lint
b5f0675e 8static char *sccsid = "@(#)main.c 2.3 85/04/23";
e951eec3
EW
9#endif
10
11#include "externs.h"
12
13/*ARGSUSED*/
14main(argc, argv)
15 int argc;
16 register char **argv;
17{
18 register char *p;
19 int i;
20 extern char _sobuf[];
21
22 setbuf(stdout, _sobuf);
23 (void) srand(getpid());
24 issetuid = getuid() != geteuid();
25 if (p = rindex(*argv, '/'))
26 p++;
27 else
28 p = *argv;
29 if (strcmp(p, "driver") == 0 || strcmp(p, "saildriver") == 0)
30 mode = MODE_DRIVER;
31 else if (strcmp(p, "sail.log") == 0)
32 mode = MODE_LOGGER;
33 else
34 mode = MODE_PLAYER;
35 while ((p = *++argv) && *p == '-')
36 switch (p[1]) {
37 case 'd':
38 mode = MODE_DRIVER;
39 break;
40 case 's':
41 mode = MODE_LOGGER;
42 break;
43 case 'D':
44 debug++;
45 break;
46 case 'x':
47 randomize;
48 break;
49 case 'l':
50 longfmt++;
51 break;
33873692
EW
52 case 'b':
53 nobells++;
54 break;
e951eec3
EW
55 default:
56 fprintf(stderr, "SAIL: Unknown flag %s.\n", p);
57 exit(1);
58 }
59 if (*argv)
60 game = atoi(*argv);
61 else
62 game = -1;
63 if (i = setjmp(restart))
64 mode = i;
65 switch (mode) {
66 case MODE_PLAYER:
67 return pl_main();
68 case MODE_DRIVER:
69 return dr_main();
70 case MODE_LOGGER:
71 return lo_main();
72 default:
73 fprintf(stderr, "SAIL: Unknown mode %d.\n", mode);
74 abort();
75 }
76 /*NOTREACHED*/
77}