|
|
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 s
Length: 1539 (0x603)
Types: TextFile
Names: »shutdown.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Spacewar/shutdown.c«
/*
* Spacewar - shutdown (gracefully) the spacewar game
*
* Copyright 1984 obo Systems, Inc.
* Copyright 1984 Dan Rosenblatt
*/
#include "spacewar.h"
#include "universe.h"
#include "login.h"
#ifdef VMS
# include <ssdef.h>
extern short inmlbx;
#endif /* VMS */
VOID shutdown(e)
int e;
{
register struct login *plogin;
int i;
extern int errno;
#ifdef DEBUG
DBG("shutdown(%d)\n",e);
#endif
/* don't update the universe any more */
alarm(0);
/* update objects, crafts */
objupdate();
crftupdate((struct login *)0);
/* notify and log all players off */
for (plogin=loginlst,i=MAXLOGIN;i-- > 0;++plogin)
if (plogin->ln_tty) {
if (plogin->ln_play.ip_ptr) {
plogin->ln_play.ip_ptr = NULL;
output(plogin,'E',0,0);
}
output(plogin,'B',0,0);
output(plogin,'C',0,"\n\nSpacewar has been shut down\n");
output(plogin,0,0,0);
logoff(plogin);
}
/* remove communication files */
#ifdef BSD
if (unlink(SWLGNFILE)) perror(SWLGNFILE);
if (unlink(SWPIDFILE)) perror(SWPIDFILE);
#else /* VMS SYSIII SYSV */
#ifdef VMS
if ((i=sys$delmbx(inmlbx)) != SS$_NORMAL) {
perror("delete mlbx 2");
#ifdef DEBUG
VDBG("shutdown delmbx()=%d, errno=%d\n",i,errno);
#endif
}
if ((i=sys$dassgn(inmlbx)) != SS$_NORMAL) {
perror("dassgn mlbx 2");
#ifdef DEBUG
VDBG("shutdown dassgn()=%d, errno=%d\n",i,errno);
#endif
}
#else /* SYSIII SYSV */
if (unlink(SWCOMFILE)) perror(SWCOMFILE);
#endif /* VMS SYSIII SYSV */
#endif /* VMS BSD SYSIII SYSV */
#ifdef DEBUG
VDBG("shutdown exiting\n");
#endif
exit(e);
}