Capture clock variables into the game-state block.
[open-adventure.git] / actions1.c
index 25e05df5d2848e816341109bcbb38cf27bb50eed..d12052fa42a9949ea13d701482e2bd48c25c9ca9 100644 (file)
@@ -201,7 +201,7 @@ L9040:      if(OBJ == CLAM || OBJ == OYSTER) goto L9046;
        if(OBJ == CHAIN) goto L9048;
        if(!CLOSNG) goto L9043;
        K=130;
-       if(!PANIC)CLOCK2=15;
+       if(!PANIC)game.clock2=15;
        PANIC=true;
         return(2010);
 
@@ -248,8 +248,8 @@ L9049:      SPK=172;
 /*  Light.  Applicable only to lamp and urn. */
 
 L8070: if(HERE(LAMP) && PROP[LAMP] == 0 && LIMIT >= 0)OBJ=LAMP;
-       if(HERE(URN) && PROP[URN] == 1)OBJ=OBJ*100+URN;
-       if(OBJ == 0 || OBJ > 100) return(8000);
+       if(HERE(URN) && PROP[URN] == 1)OBJ=OBJ*NOBJECTS+URN;
+       if(OBJ == 0 || OBJ > NOBJECTS) return(8000);
 
 L9070: if(OBJ == URN) goto L9073;
        if(OBJ != LAMP) return(2011);
@@ -269,8 +269,8 @@ L9073:      SPK=38;
 /*  Extinguish.  Lamp, urn, dragon/volcano (nice try). */
 
 L8080: if(HERE(LAMP) && PROP[LAMP] == 1)OBJ=LAMP;
-       if(HERE(URN) && PROP[URN] == 2)OBJ=OBJ*100+URN;
-       if(OBJ == 0 || OBJ > 100) return(8000);
+       if(HERE(URN) && PROP[URN] == 2)OBJ=OBJ*NOBJECTS+URN;
+       if(OBJ == 0 || OBJ > NOBJECTS) return(8000);
 
 L9080: if(OBJ == URN) goto L9083;
        if(OBJ == LAMP) goto L9086;
@@ -406,7 +406,7 @@ L9190:      if(AT(OBJ) || (LIQ(0) == OBJ && AT(BOTTLE)) || K == LIQLOC(LOC) || (OBJ =
 /*  Inventory.  If object, treat same as find.  Else report on current burden. */
 
 L8200: SPK=98;
-       /* 8201 */ for (I=1; I<=100; I++) {
+       /* 8201 */ for (I=1; I<=NOBJECTS; I++) {
        if(I == BEAR || !TOTING(I)) goto L8201;
        if(SPK == 98)RSPEAK(99);
        BLKLIN=false;
@@ -474,10 +474,10 @@ L8260:    SPK=156;
 
 /*  Read.  Print stuff based on objtxt.  Oyster (?) is special case. */
 
-L8270: for (I=1; I<=100; I++) {
-       if(HERE(I) && OBJTXT[I] != 0 && PROP[I] >= 0)OBJ=OBJ*100+I;
+L8270: for (I=1; I<=NOBJECTS; I++) {
+       if(HERE(I) && OBJTXT[I] != 0 && PROP[I] >= 0)OBJ=OBJ*NOBJECTS+I;
        } /* end loop */
-       if(OBJ > 100 || OBJ == 0 || DARK(0)) return(8000);
+       if(OBJ > NOBJECTS || OBJ == 0 || DARK(0)) return(8000);
 
 L9270: if(DARK(0)) goto L5190;
        if(OBJTXT[OBJ] == 0 || PROP[OBJ] < 0) return(2011);
@@ -533,28 +533,28 @@ L8305:    DATIME(&I,&K);
  *  suspended or resumed are guaranteed to match.  If unsure whether a value
  *  needs to be saved, include it.  Overkill can't hurt.  Pad the last savwds
  *  with junk variables to bring it up to 7 values. */
-       SAVWDS(ABBNUM,BLKLIN,BONUS,CLOCK1,CLOCK2,CLOSED,CLOSNG);
+       SAVWDS(ABBNUM,BLKLIN,BONUS,game.clock1,game.clock2,CLOSED,CLOSNG);
        SAVWDS(DETAIL,DFLAG,DKILL,DTOTAL,FOOBAR,HOLDNG,IWEST);
        SAVWDS(KNFLOC,LIMIT,LL,LMWARN,LOC,NEWLOC,NUMDIE);
-       SAVWDS(OBJ,OLDLC2,OLDLOC,OLDOBJ,PANIC,SAVED,SETUP);
+       SAVWDS(OBJ,game.oldlc2,game.oldloc,OLDOBJ,PANIC,SAVED,SETUP);
        SAVWDS(SPK,TALLY,THRESH,TRNDEX,TRNLUZ,TURNS,OBJTXT[OYSTER]);
-       SAVWDS(VERB,WD1,WD1X,WD2,WZDARK,ZZWORD,OBJSND[BIRD]);
+       SAVWDS(VERB,WD1,WD1X,WD2,WZDARK,game.zzword,OBJSND[BIRD]);
        SAVWDS(OBJTXT[SIGN],CLSHNT,NOVICE,K,K,K,K);
        SAVARR(ABB,LOCSIZ);
        SAVARR(ATLOC,LOCSIZ);
-       SAVARR(DLOC,6);
-       SAVARR(DSEEN,6);
-       SAVARR(FIXED,100);
+       SAVARR(game.dloc,NDWARVES);
+       SAVARR(game.dseen,NDWARVES);
+       SAVARR(FIXED,NOBJECTS);
        SAVARR(HINTED,HNTSIZ);
        SAVARR(HINTLC,HNTSIZ);
-       SAVARR(LINK,200);
-       SAVARR(ODLOC,6);
-       SAVARR(PLACE,100);
-       SAVARR(PROP,100);
+       SAVARR(LINK,NOBJECTS*2);
+       SAVARR(game.odloc,NDWARVES);
+       SAVARR(PLACE,NOBJECTS);
+       SAVARR(PROP,NOBJECTS);
        SAVWRD(KK,K);
        if(K != 0) goto L8318;
        K=NUL;
-       ZZWORD=RNDVOC(3,ZZWORD);
+       game.zzword=RNDVOC(3,game.zzword);
        if(KK > 0) return(8);
        RSPEAK(266);
        exit(0);
@@ -585,8 +585,8 @@ L8320:      if(PROP[RUG] != 2)SPK=224;
 L9320: if(OBJ != RUG) return(2011);
        SPK=223;
        if(PROP[RUG] != 2) return(2011);
-       OLDLC2=OLDLOC;
-       OLDLOC=LOC;
+       game.oldlc2=game.oldloc;
+       game.oldloc=LOC;
        NEWLOC=PLACE[RUG]+FIXED[RUG]-LOC;
        SPK=226;
        if(PROP[SAPPH] >= 0)SPK=227;
@@ -601,8 +601,8 @@ L8330:      SPK=228;
        RSPEAK(labs(K));
        if(K < 0) return(2012);
        SPK=0;
-L8332: SETPRM(1,ZZWORD,0);
-       /* 8335 */ for (I=1; I<=100; I++) {
+L8332: SETPRM(1,game.zzword,0);
+       /* 8335 */ for (I=1; I<=NOBJECTS; I++) {
        if(!HERE(I) || OBJSND[I] == 0 || PROP[I] < 0) goto L8335;
        PSPEAK(I,OBJSND[I]+PROP[I]);
        SPK=0;
@@ -617,7 +617,7 @@ L8340:      if(!AT(RESER) && LOC != FIXED[RESER]-1) return(2011);
        PSPEAK(RESER,PROP[RESER]+1);
        PROP[RESER]=1-PROP[RESER];
        if(AT(RESER)) return(2012);
-       OLDLC2=LOC;
+       game.oldlc2=LOC;
        NEWLOC=0;
        RSPEAK(241);
         return(2);