Global-variable elimination.
authorEric S. Raymond <esr@thyrsus.com>
Wed, 7 Jun 2017 18:45:30 +0000 (14:45 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Wed, 7 Jun 2017 18:45:30 +0000 (14:45 -0400)
advent.h
main.c
score.c

index 827c53f02edb296e944838256d6eb447d630280d..328847db83da71112db0b14363919ea3f0c652db 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -141,7 +141,7 @@ extern long AMBER, ATTACK, AXE, BACK, BATTER, BEAR,
    EMRALD, ENTER, ENTRNC, FIND, FISSUR, FOOD, GRATE, HINT, INVENT,
    JADE, KEYS, KNIFE, LAMP, LOCK, LOOK, MAGZIN, MESSAG, MIRROR, NUGGET, NUL,
    OGRE, OIL, OYSTER, PANIC, PEARL, PILLOW, PLANT, PLANT2, PYRAM,
-   RESER, ROD, ROD2, RUBY, RUG, SAPPH, SAY, SCORE, SECT, SIGN, SNAKE,
+   RESER, ROD, ROD2, RUBY, RUG, SAPPH, SAY, SECT, SIGN, SNAKE,
    STEPS, STICK, STREAM, THROW, TRIDNT, TROLL, TROLL2,
    URN, VASE, VEND, VOLCAN, WATER;
 /* evrything else */
diff --git a/main.c b/main.c
index c6a1eef1e7537d82317435a3e5401feea464080e..3f6db0da358451f54330b923ca1d61f19d2042fa 100644 (file)
--- a/main.c
+++ b/main.c
@@ -25,7 +25,7 @@ long AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD,
                KNIFE, L, LAMP, LOCK, LOOK, MAGZIN, MAXDIE,
                MESSAG, MIRROR, NUGGET, NUL, OGRE, OIL, OYSTER,
                PEARL, PILLOW, PLANT, PLANT2, PYRAM, RESER, ROD, ROD2,
-               RUBY, RUG, SAPPH, SAY, SCORE, SECT, SIGN, SNAKE, SPK,
+               RUBY, RUG, SAPPH, SAY, SECT, SIGN, SNAKE, SPK,
                STEPS, STICK, STREAM, THROW, TRIDNT, TROLL, TROLL2,
                URN, V1, V2, VASE, VEND,
                VOLCAN, VRSION = 25, WATER, WD1, WD1X, WD2, WD2X;
diff --git a/score.c b/score.c
index 1602291e96fe27885e1fbcf33c520c6b135cdaa9..9a2c61b0bdd02c6374bcd2f0b7dd0d9978c6569b 100644 (file)
--- a/score.c
+++ b/score.c
@@ -8,7 +8,7 @@
 
 void score(long mode) {
 /* arg is <0 if scoring, >0 if quitting, =0 if died or won */
-       long mxscor = 0;
+       long i, score = 0, mxscor = 0;
 
 /*  The present scoring algorithm is as follows:
  *     Objective:          Points:        Present total possible:
@@ -29,21 +29,18 @@ void score(long mode) {
  *  Points can also be deducted for using hints or too many turns, or for
  *  saving intermediate positions. */
 
-       SCORE=0;
-       mxscor=0;
-
 /*  First tally up the treasures.  Must be in building and not broken.
  *  Give the poor guy 2 points just for finding each treasure. */
 
-       for (I=50; I<=MAXTRS; I++) {
-               if(PTEXT[I] != 0) {
+       for (i=MINTRS; i<=MAXTRS; i++) {
+               if(PTEXT[i] != 0) {
                        K=12;
-                       if(I == CHEST)K=14;
-                       if(I > CHEST)K=16;
-                       if(game.prop[I] >= 0)
-                               SCORE=SCORE+2;
-                       if(game.place[I] == 3 && game.prop[I] == 0)
-                               SCORE=SCORE+K-2;
+                       if(i == CHEST)K=14;
+                       if(i > CHEST)K=16;
+                       if(game.prop[i] >= 0)
+                               score=score+2;
+                       if(game.place[i] == 3 && game.prop[i] == 0)
+                               score=score+K-2;
                        mxscor=mxscor+K;
                }
        } /* end loop */
@@ -55,48 +52,48 @@ void score(long mode) {
  *  "cave closed" (indicated by "game.closed"), then bonus is zero for
  *  mundane exits or 133, 134, 135 if he blew it (so to speak). */
 
-       SCORE=SCORE+(MAXDIE-game.numdie)*10;
+       score=score+(MAXDIE-game.numdie)*10;
        mxscor=mxscor+MAXDIE*10;
-       if(mode == 0)SCORE=SCORE+4;
+       if(mode == 0)score=score+4;
        mxscor=mxscor+4;
-       if(game.dflag != 0)SCORE=SCORE+25;
+       if(game.dflag != 0)score=score+25;
        mxscor=mxscor+25;
-       if(game.closng)SCORE=SCORE+25;
+       if(game.closng)score=score+25;
        mxscor=mxscor+25;
        if(game.closed) {
-               if(game.bonus == 0)SCORE=SCORE+10;
-               if(game.bonus == 135)SCORE=SCORE+25;
-               if(game.bonus == 134)SCORE=SCORE+30;
-               if(game.bonus == 133)SCORE=SCORE+45;
+               if(game.bonus == 0)score=score+10;
+               if(game.bonus == 135)score=score+25;
+               if(game.bonus == 134)score=score+30;
+               if(game.bonus == 133)score=score+45;
        }
        mxscor=mxscor+45;
 
 /*  Did he come to Witt's End as he should? */
 
        if(game.place[MAGZIN] == 108)
-               SCORE=SCORE+1;
+               score=score+1;
        mxscor=mxscor+1;
 
 /*  Round it off. */
 
-       SCORE=SCORE+2;
+       score=score+2;
        mxscor=mxscor+2;
 
 /*  Deduct for hints/turns/saves.  Hints < 4 are special; see database desc. */
 
-       for (I=1; I<=HNTMAX; I++) {
-               if(game.hinted[I])SCORE=SCORE-HINTS[I][2];
+       for (i=1; i<=HNTMAX; i++) {
+               if(game.hinted[i])score=score-HINTS[i][2];
        } /* end loop */
        if(game.novice)
-               SCORE=SCORE-5;
+               score=score-5;
        if(game.clshnt)
-               SCORE=SCORE-10;
-       SCORE=SCORE-game.trnluz-game.saved;
+               score=score-10;
+       score=score-game.trnluz-game.saved;
 
 /*  Return to score command if that's where we came from. */
 
        if(mode < 0) {
-               SETPRM(1,SCORE,mxscor);
+               SETPRM(1,score,mxscor);
                SETPRM(3,game.turns,game.turns);
                RSPEAK(259);
                return;
@@ -104,22 +101,22 @@ void score(long mode) {
 
 /*  that should be good enough.  Let's tell him all about it. */
 
-       if(SCORE+game.trnluz+1 >= mxscor && game.trnluz != 0)RSPEAK(242);
-       if(SCORE+game.saved+1 >= mxscor && game.saved != 0)RSPEAK(143);
-       SETPRM(1,SCORE,mxscor);
+       if(score+game.trnluz+1 >= mxscor && game.trnluz != 0)RSPEAK(242);
+       if(score+game.saved+1 >= mxscor && game.saved != 0)RSPEAK(143);
+       SETPRM(1,score,mxscor);
        SETPRM(3,game.turns,game.turns);
        RSPEAK(262);
-       for (I=1; I<=CLSSES; I++) {
-               if(CVAL[I] >= SCORE) goto L20210;
+       for (i=1; i<=CLSSES; i++) {
+               if(CVAL[i] >= score) goto L20210;
        } /* end loop */
        SPK=265;
        goto L25000;
 
-L20210: SPEAK(CTEXT[I]);
+L20210: SPEAK(CTEXT[i]);
        SPK=264;
-       if(I >= CLSSES) goto L25000;
-       I=CVAL[I]+1-SCORE;
-       SETPRM(1,I,I);
+       if(i >= CLSSES) goto L25000;
+       i=CVAL[i]+1-score;
+       SETPRM(1,i,i);
        SPK=263;
 L25000: RSPEAK(SPK);
        exit(0);