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: }

Defined functions

init defined in line 15; used 1 times
linkdata defined in line 46; used 1 times
  • in line 19
startup defined in line 169; used 1 times
trapdel defined in line 163; used 3 times

Defined variables

blklin defined in line 8; used 4 times
sccsid defined in line 4; never used
setbit defined in line 11; used 2 times
Last modified: 1982-06-09
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2558
Valid CSS Valid XHTML 1.0 Strict