Annotation of 43BSDReno/old/games.vax/zork/zork.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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