xref: /csrg-svn/games/adventure/okplay.c (revision 6748)
1*6748Srrh static char sccsid[] = "	okplay.c	4.1	82/05/11	";
26738Srrh 
main(argc,argv)36738Srrh main(argc, argv)
46738Srrh int argc; char *argv[];
56738Srrh {
66738Srrh 	argv[argc] = 0;
76738Srrh 	okplay();
86738Srrh 	if (argc == 1)
96738Srrh 		advmotd();
106738Srrh 	execv("/usr/games/lib/adventure", argv);
116738Srrh 	write(2, "No adventure just now\n", 22);
126738Srrh 	exit(1);
136738Srrh }
146738Srrh 
okplay()156738Srrh okplay()
166738Srrh {
176738Srrh 	int tvec[2];
186738Srrh 	register struct local {
196738Srrh 		int seconds,minutes,hours,daymo,month,year,daywk,dayyr,dst;
206738Srrh 	} *local;
216738Srrh 
226738Srrh 	return;
236738Srrh 	time(tvec);
246738Srrh 	local = localtime(tvec);
256738Srrh 	local->month++;
266738Srrh 	if (local->daywk == 6||local->daywk == 0)
276738Srrh 		return;
286738Srrh 	if (local->hours>=9&&local->hours<18)
296738Srrh 		if (!holiday(local->month, local->daymo))
306738Srrh 			notinprime();
316738Srrh }
326738Srrh 
holiday(mo,da)336738Srrh holiday(mo,da)
346738Srrh 	int mo,da;
356738Srrh {
366738Srrh 	int stbuf[30];
376738Srrh 	char *np, *op;
386738Srrh 
396738Srrh 	np = "/usr/games/holiday/XXXX";
406738Srrh 	for(op=np;*op;op++);
416738Srrh 	*--op=(da%10)|'0';
426738Srrh 	*--op=(da/10)|'0';
436738Srrh 	*--op=(mo%10)|'0';
446738Srrh 	*--op=(mo/10)|'0';
456738Srrh 	return(stat(np,stbuf) == 0);
466738Srrh }
476738Srrh char notinm[] "No adventure in prime time (M-F 9am-5pm) except on holidays\n";
486738Srrh 
notinprime()496738Srrh notinprime()
506738Srrh {
516738Srrh 	write(2, notinm, sizeof notinm);
526738Srrh 	exit(1);
536738Srrh }
546738Srrh 
advmotd()556738Srrh advmotd()
566738Srrh {
576738Srrh 	char ch;
586738Srrh 	int fd;
596738Srrh 
606738Srrh 	fd = open("/usr/games/lib/advmotd", 0);
616738Srrh 	if (fd < 0) return;
626738Srrh 	while(read(fd,&ch,1) ==1) write(1,&ch,1);
636738Srrh 	close(fd);
646738Srrh }
65