|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 2886 (0xb46)
Types: TextFile
Names: »pm.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Pm/Sys3-SysV/pm.c«
/*
** pm.c - main: argument parsing, main control loop and usage messages
**
** [pm by Peter Costantinidis, Jr. @ University of California at Davis]
*/
#include "pm.h"
main (argc, argv)
reg int argc;
reg char **argv;
{
argv0 = *argv++, argc--;
if (argc == 1)
{
if (*((*argv)++) != '-')
usage();
switch (**argv)
{
case 'p':
pmers();
exit(0);
case 's':
check_scrs();
exit(0);
case 'B':
baud = to_baud(++*argv);
break;
default:
usage();
}
}
else if (argc)
usage();
if (!strcmp("tester", argv0))
was_wiz = is_wiz = TRUE;
#ifdef NOFULLPATH
/*
** at one time the author was worried about the whole world finding
** out this games existed. to keep its location a little private
** he tried to discourage full pathnames to the game from showing
** up on a ps(1) output by forcing argv[0] to be "pm".
** the following code checked for this condition.
*/
else if (getuid() != wizard_uid && strcmp("pm", argv0))
{
fprintf(stderr, "That is a Big No NO!!!");
setuid(getuid());
if (getuid() != 0)
kill(0, 9); /* blast them out of the water */
}
#endif
init();
for (;;)
{
slow();
demon++;
if (make_moves())
break;
if (timer > 0)
timer--;
/*
** we know we need a new board drawn when we are
** out of dots and energizers
*/
p_scores();
if (!e_left && !d_left)
{ /* no more dots left */
chg_lvl(1);
continue;
}
if (!timer && !pm_run) /* energizers ran out */
{
aggressive();
pm_run = TRUE;
continue;
}
if ((timer < MAX_BLINKS) && !(timer % 4))
warning(); /* warn every four moves*/
m_move(); /* move the monsters */
}
quitit();
#if SYSV|SYSIII
fcntl(0, F_SETFL, oldfl);
#endif
exit(0);
}
/*
** usage() - print a usage message and exit
*/
void usage ()
{
fprintf(stderr, "Usage: %s [-s] [-p] [-Bn]\n", argv0);
exit(1);
}