Annotation of 42BSD/games/zork/zork.c, revision 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.