Annotation of 41BSD/games/zork.c, revision 1.1.1.1

1.1       root        1: #include <stdio.h>
                      2: /*
                      3:  * Dungeon - open UP dungeon
                      4:  */
                      5: 
                      6: #ifdef CHECKUID
                      7: int users[] = {
                      8:        522,    /* sa */
                      9:        164,    /* Leiby */
                     10:        229,    /* richards */
                     11:        264,    /* marshall */
                     12:        1099,   /* wizard */
                     13:        425,    /* clm */
                     14:        15,     /* mowle */
                     15:        32,     /* ghg */
                     16:        27,     /* qtip (zager) */
                     17:        530,    /* mike */
                     18:        16,     /* bc */
                     19:        333,    /* pdh */
                     20:        230,    /* wa1yyn */
                     21:        19,     /* joe
                     22:        43,     /* bruner */
                     23:        308,    /* gedeon (watch him closely!) */
                     24:        429,    /* mayhew */
                     25:        743,    /* alicia */
                     26:        367,    /* feather */
                     27:        85,     /* clark bar */
                     28:        382,    /* malcolm */
                     29:        99,     /* jones */
                     30:        636,    /* gfg */
                     31:        0 };
                     32: #endif
                     33: 
                     34: main()
                     35: {
                     36: 
                     37:        register int *up;
                     38:        register uid;
                     39:        int fd3, fd4, fd5;
                     40: 
                     41: #ifdef CHECKUID
                     42: 
                     43:        uid = getuid();
                     44:        for (up=users; *up; up++)
                     45:                if (*up == uid)
                     46:                        goto ok;
                     47:        printf("You are not a Wizard!\n");
                     48:        exit();
                     49: #endif
                     50:        /*
                     51:         * open up files needed by program
                     52:         * look in current directory first, then try default names
                     53:         * The following files must be as follows:
                     54:         * "dtext.dat" open read-only on fd 3
                     55:         * "dindex.dat open read-only on fd 4 (maybe this file isn't used)
                     56:         * "doverlay" open read-only on fd 5 (put this file on fast disk)
                     57:         */
                     58:        close(3);
                     59:        close(4);
                     60:        close(5);
                     61:        if ((fd3 = open("dtext.dat", 0)) < 0)
                     62:                if ((fd3 = open("/usr/games/lib/dtext.dat", 0)) < 0)
                     63:                        error("Can't open dtext.dat\n");
                     64: 
                     65:        if ((fd4 = open("dindex.dat", 0)) < 0)
                     66:                if ((fd4 = open("/usr/games/lib/dindex.dat", 0)) < 0)
                     67:                        error("Can' open dindex.dat\n");
                     68: 
                     69:        if ((fd5 = open("doverlay", 0)) < 0)
                     70:                if ((fd5 = open("/tmp/nedtmp/doverlay", 0)) < 0)
                     71:                        if ((fd5 = open("/usr/games/lib/doverlay", 0)) < 0)
                     72:                                error("Can't open doverlay\n");
                     73: 
                     74:        if (fd3 != 3 || fd4 != 4 || fd5 != 5)
                     75:                error("Files opened on wrong descriptors\n");
                     76: 
                     77:        signal(2,1);
                     78: 
                     79:        printf("You are in an open field west of a big white house with a boarded\n");
                     80:        printf("front door.\n");
                     81:        printf("There is a small mailbox here.\n>");
                     82:        fflush(stdout);
                     83: #ifdef pdp11
                     84:        execl("dungeon","zork", 0);
                     85:        execl("/usr/games/lib/dungeon","zork", 0);
                     86: #else
                     87:        if( (uid=open("dungeon", 0)) > 0 ) {
                     88:                close(uid);
                     89:                execlp("compat", "zork", "dungeon", 0);
                     90:                execlp("/usr/games/lib/compat", "zork", "dungeon", 0);
                     91:        }
                     92:        execlp("compat", "zork", "/usr/games/lib/dungeon", 0);
                     93:        execlp("/usr/games/lib/compat", "zork", "/usr/games/lib/dungeon", 0);
                     94: #endif
                     95:        printf("Can't start dungeons.\n");
                     96:        exit(0);
                     97: }
                     98: error(s)
                     99: char *s;
                    100: {
                    101:        printf("%s", s);
                    102:        exit(1);
                    103: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.