home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
ABERMUD.ZIP
/
GAMEGO.C
< prev
next >
Wrap
C/C++ Source or Header
|
1989-07-08
|
3KB
|
178 lines
#include <stdio.h>
/*
Two Phase Game System
*/
extern FILE *openlock();
char **argv_p;
main(argc,argv)
char *argv[];
{
char x[32];
extern char globme[];
extern long tty;
sig_init();
argv_p= argv;
if(argc!=2)
{
printf("Args!\n");
exit(0);
}
printf("Entering Game ....\n");
strcpy(x,argv[1]);
tty=0;
/*if(tty==4) {initbbc();initscr();topscr();}*/
if(!strcmp(x,"Phantom")) sprintf(globme,"The %s",x);
else strcpy(globme,x);
printf("Hello %s\n",globme);
syslog("GAME ENTRY: %s[%s]",globme,cuserid(NULL));
keysetup();
talker(globme);
}
char privs[4];
crapup(str)
char *str;
{
extern long pr_due;
pbfr();
pr_due=0; /* So we dont get a prompt after the exit */
keysetback();
printf("\n\
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\
\n\n%s\n\n\
exit(0);
}
listfl(name)
char *name;
{
FILE *a;
char b[128];
a=openlock(name,"r+");
while(gets(a,b)) printf("%s\n",b);
fcloselock(a);
}
char *getkbd(s,l) /* Getstr() with length limit and filter ctrl */
char *s;
int l;
{
char c,f,n;
f=0;c=0;
while(c<l)
{
regec:n=getchar();
if ((n<' ')&&(n!='\n')) goto regec;
if (n=='\n') {s[c]=0;f=1;c=l-1;}
else
s[c]=n;
c++;
}
if (f==0) {s[c]=0;while(getchar()!='\n');}
return(s);
}
#include <signal.h>
long sig_active=0;
sig_alon()
{
extern int sig_occur();
sig_active=1;
signal(SIGALRM,sig_occur);
alarm(2);
}
unblock_alarm()
{
signal(SIGALRM,sig_occur);
if(sig_active) alarm(2);
}
block_alarm()
{
signal(SIGALRM,SIG_IGN);
}
sig_aloff()
{
sig_active=0;
signal(SIGALRM,SIG_IGN);
alarm(2147487643);
}
long interrupt=0;
sig_occur()
{
extern char globme[];
if(sig_active==0) return;
sig_aloff();
openworld();
interrupt=1;
rte(globme);
interrupt=0;
on_timing();
closeworld();
key_reprint();
sig_alon();
}
sig_init()
{
extern int sig_oops();
extern int sig_ctrlc();
signal(SIGHUP,sig_oops);
signal(SIGINT,sig_ctrlc);
signal(SIGTERM,sig_ctrlc);
signal(SIGTSTP,SIG_IGN);
signal(SIGQUIT,SIG_IGN);
signal(SIGCONT,sig_oops);
}
sig_oops()
{
sig_aloff();
loseme();
keysetback();
exit(255);
}
sig_ctrlc()
{
extern in_fight;
printf("^C\n");
if(in_fight) return;
sig_aloff();
loseme();
crapup("Byeeeeeeeeee ...........");
}
set_progname(n,text)
char *text;
{
/*
int x=0;
int y=strlen(argv_p[n])+strlen(argv_p[1]);
y++;
if(strcmp(argv_p[n],text)==0) return;
while(x<y)
argv_p[n][x++]=0;
strcpy(argv_p[n],text);
*/
}