home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
games
/
volume4
/
sail
/
part04
/
main.c
< prev
next >
Wrap
C/C++ Source or Header
|
1988-04-13
|
2KB
|
88 lines
/*
* Copyright (c) 1983 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that this notice is preserved and that due credit is given
* to the University of California at Berkeley. The name of the University
* may not be used to endorse or promote products derived from this
* software without specific prior written permission. This software
* is provided ``as is'' without express or implied warranty.
*/
#ifndef lint
char copyright[] =
"@(#) Copyright (c) 1983 Regents of the University of California.\n\
All rights reserved.\n";
#endif /* not lint */
#ifndef lint
static char sccsid[] = "@(#)main.c 5.3 (Berkeley) 4/4/88";
#endif /* not lint */
#include "externs.h"
/*ARGSUSED*/
main(argc, argv)
int argc;
register char **argv;
{
register char *p;
int i;
(void) srand(getpid());
issetuid = getuid() != geteuid();
if (p = rindex(*argv, '/'))
p++;
else
p = *argv;
if (strcmp(p, "driver") == 0 || strcmp(p, "saildriver") == 0)
mode = MODE_DRIVER;
else if (strcmp(p, "sail.log") == 0)
mode = MODE_LOGGER;
else
mode = MODE_PLAYER;
while ((p = *++argv) && *p == '-')
switch (p[1]) {
case 'd':
mode = MODE_DRIVER;
break;
case 's':
mode = MODE_LOGGER;
break;
case 'D':
debug++;
break;
case 'x':
randomize;
break;
case 'l':
longfmt++;
break;
case 'b':
nobells++;
break;
default:
fprintf(stderr, "SAIL: Unknown flag %s.\n", p);
exit(1);
}
if (*argv)
game = atoi(*argv);
else
game = -1;
if (i = setjmp(restart))
mode = i;
switch (mode) {
case MODE_PLAYER:
return pl_main();
case MODE_DRIVER:
return dr_main();
case MODE_LOGGER:
return lo_main();
default:
fprintf(stderr, "SAIL: Unknown mode %d.\n", mode);
abort();
}
/*NOTREACHED*/
}