Annotation of 42BSD/games/adventure/init.c, revision 1.1.1.1

1.1       root        1: #
                      2: /*      Re-coding of advent in C: data initialization                   */
                      3: 
                      4: static char sccsid[] = "       init.c  4.1     82/05/11        ";
                      5: 
                      6: # include "hdr.h"
                      7: 
                      8: int blklin = TRUE;
                      9: int setup  = 0;
                     10: 
                     11: int setbit[16] = {1,2,4,010,020,040,0100,0200,0400,01000,02000,04000,
                     12:                  010000,020000,040000,0100000};
                     13: 
                     14: 
                     15: init(command)                           /* everything for 1st time run  */
                     16: char *command;                          /* command we were called with  */
                     17: {       int stat,adfd;
                     18:        rdata();                        /* read data from orig. file    */
                     19:        linkdata();
                     20:        poof();
                     21:        setup=1;                        /* indicate that data is in     */
                     22:        if (confirm("got the data.  save as \"advent\"? "))
                     23:        {       if (save(command,"advent")<0)   /* save core image      */
                     24:                {       printf("Save failed\n");
                     25:                        exit(0);
                     26:                }
                     27:        }
                     28:        else exit(0);
                     29:        printf("Save succeeded.  Adding messages.\n");
                     30:        adfd=open("advent",1);
                     31:        lseek(adfd,0L,2);
                     32:        close(datfd);
                     33:        if (fork()==0)                  /* child process                */
                     34:        {       close(1);
                     35:                dup(adfd);              /* output goes to advent file   */
                     36:                execl("/bin/cat","cat",TMPFILE,0);
                     37:                printf("unable to find /bin/cat\n");
                     38:        }
                     39:        wait(&stat);
                     40:        unlink(TMPFILE);
                     41:        printf("Advent is ready.\n");
                     42:        exit(0);
                     43: }
                     44: 
                     45: 
                     46: linkdata()                              /*  secondary data manipulation */
                     47: {       register int i,j;
                     48:        /*      array linkages          */
                     49:        for (i=1; i<=LOCSIZ; i++)
                     50:                if (ltext[i].seekadr!=0 && travel[i] != 0)
                     51:                        if ((travel[i]->tverb)==1) cond[i]=2;
                     52:        for (j=100; j>0; j--)
                     53:                if (fixd[j]>0)
                     54:                {       drop(j+100,fixd[j]);
                     55:                        drop(j,plac[j]);
                     56:                }
                     57:        for (j=100; j>0; j--)
                     58:        {       fixed[j]=fixd[j];
                     59:                if (plac[j]!=0 && fixd[j]<=0) drop(j,plac[j]);
                     60:        }
                     61: 
                     62:        maxtrs=79;
                     63:        tally=0;
                     64:        tally2=0;
                     65: 
                     66:        for (i=50; i<=maxtrs; i++)
                     67:        {       if (ptext[i].seekadr!=0) prop[i] = -1;
                     68:                tally -= prop[i];
                     69:        }
                     70: 
                     71:        /* define mnemonics */
                     72:        keys=vocab("keys",1);
                     73:        lamp=vocab("lamp",1);
                     74:        grate=vocab("grate",1);
                     75:        cage=vocab("cage",1);
                     76:        rod=vocab("rod",1);
                     77:        rod2=rod+1;
                     78:        steps=vocab("steps",1);
                     79:        bird=vocab("bird",1);
                     80:        door=vocab("door",1);
                     81:        pillow=vocab("pillow",1);
                     82:        snake=vocab("snake",1);
                     83:        fissur=vocab("fissu",1);
                     84:        tablet=vocab("table",1);
                     85:        clam=vocab("clam",1);
                     86:        oyster=vocab("oyster",1);
                     87:        magzin=vocab("magaz",1);
                     88:        dwarf=vocab("dwarf",1);
                     89:        knife=vocab("knife",1);
                     90:        food=vocab("food",1);
                     91:        bottle=vocab("bottl",1);
                     92:        water=vocab("water",1);
                     93:        oil=vocab("oil",1);
                     94:        plant=vocab("plant",1);
                     95:        plant2=plant+1;
                     96:        axe=vocab("axe",1);
                     97:        mirror=vocab("mirro",1);
                     98:        dragon=vocab("drago",1);
                     99:        chasm=vocab("chasm",1);
                    100:        troll=vocab("troll",1);
                    101:        troll2=troll+1;
                    102:        bear=vocab("bear",1);
                    103:        messag=vocab("messa",1);
                    104:        vend=vocab("vendi",1);
                    105:        batter=vocab("batte",1);
                    106: 
                    107:        nugget=vocab("gold",1);
                    108:        coins=vocab("coins",1);
                    109:        chest=vocab("chest",1);
                    110:        eggs=vocab("eggs",1);
                    111:        tridnt=vocab("tride",1);
                    112:        vase=vocab("vase",1);
                    113:        emrald=vocab("emera",1);
                    114:        pyram=vocab("pyram",1);
                    115:        pearl=vocab("pearl",1);
                    116:        rug=vocab("rug",1);
                    117:        chain=vocab("chain",1);
                    118: 
                    119:        back=vocab("back",0);
                    120:        look=vocab("look",0);
                    121:        cave=vocab("cave",0);
                    122:        null=vocab("null",0);
                    123:        entrnc=vocab("entra",0);
                    124:        dprssn=vocab("depre",0);
                    125: 
                    126:        say=vocab("say",2);
                    127:        lock=vocab("lock",2);
                    128:        throw=vocab("throw",2);
                    129:        find=vocab("find",2);
                    130:        invent=vocab("inven",2);
                    131:        /* initialize dwarves */
                    132:        chloc=114;
                    133:        chloc2=140;
                    134:        for (i=1; i<=6; i++)
                    135:                dseen[i]=FALSE;
                    136:        dflag=0;
                    137:        dloc[1]=19;
                    138:        dloc[2]=27;
                    139:        dloc[3]=33;
                    140:        dloc[4]=44;
                    141:        dloc[5]=64;
                    142:        dloc[6]=chloc;
                    143:        daltlc=18;
                    144: 
                    145:        /* random flags & ctrs */
                    146:        turns=0;
                    147:        lmwarn=FALSE;
                    148:        iwest=0;
                    149:        knfloc=0;
                    150:        detail=0;
                    151:        abbnum=5;
                    152:        for (i=0; i<=4; i++)
                    153:                if (rtext[2*i+81].seekadr!=0) maxdie=i+1;
                    154:        numdie=holdng=dkill=foobar=bonus=0;
                    155:        clock1=30;
                    156:        clock2=50;
                    157:        saved=0;
                    158:        closng=panic=closed=scorng=FALSE;
                    159: }
                    160: 
                    161: 
                    162: 
                    163: trapdel()                               /* come here if he hits a del   */
                    164: {      delhit++;                       /* main checks, treats as QUIT  */
                    165:        signal(2,trapdel);              /* catch subsequent DELs        */
                    166: }
                    167: 
                    168: 
                    169: startup()
                    170: {       int tvec[2];
                    171:        demo=start(0);
                    172:        time(tvec);
                    173:        srand(tvec[1]|1);               /* random odd seed              */
                    174: /*      srand(371);             */      /* non-random seed                      */
                    175:        hinted[3]=yes(65,1,0);
                    176:        newloc=1;
                    177:        setup=3;
                    178:        limit=330;
                    179:        if (hinted[3]) limit=1000;      /* better batteries if instrucs */
                    180: }
                    181: 

unix.superglobalmegacorp.com

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