Magic-number elimination.
authorEric S. Raymond <esr@thyrsus.com>
Tue, 6 Jun 2017 15:12:00 +0000 (11:12 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Tue, 6 Jun 2017 15:12:00 +0000 (11:12 -0400)
actions1.c
actions2.c
advent.h
compile.c
init.c
main.c
misc.c

index a1a7cd22060b3765052032ea4901c72d940ad557..8a7ccadf0350ef24403c1c6f50a43dec5de02b0a 100644 (file)
@@ -542,13 +542,13 @@ L8305:    DATIME(&I,&K);
        SAVWDS(OBJTXT[SIGN],CLSHNT,NOVICE,K,K,K,K);
        SAVARR(ABB,LOCSIZ);
        SAVARR(ATLOC,LOCSIZ);
-       SAVARR(DLOC,6);
-       SAVARR(DSEEN,6);
+       SAVARR(DLOC,NDWARVES);
+       SAVARR(DSEEN,NDWARVES);
        SAVARR(FIXED,NOBJECTS);
        SAVARR(HINTED,HNTSIZ);
        SAVARR(HINTLC,HNTSIZ);
-       SAVARR(LINK,200);
-       SAVARR(ODLOC,6);
+       SAVARR(LINK,NOBJECTS*2);
+       SAVARR(ODLOC,NDWARVES);
        SAVARR(PLACE,NOBJECTS);
        SAVARR(PROP,NOBJECTS);
        SAVWRD(KK,K);
index a169c481960affea6b660277414d151473f71ebb..295f1880a1fd07dbb59213ad85170649a0b05bb9 100644 (file)
@@ -232,7 +232,7 @@ int throw(FILE *cmdin) {
        return(attack(cmdin));
 
 L9172: SPK=48;
-       if(randrange(7) < DFLAG) goto L9175;
+       if(randrange(NDWARVES+1) < DFLAG) goto L9175;
        DSEEN[I]=false;
        DLOC[I]=0;
        SPK=47;
index 443ab0a0b60e0f91331266c073614bd08a39ba6b..396454e97f0e7c2ba8f1b2f9ef3c2923129ba085 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -2,6 +2,7 @@
 #include <stdbool.h>
 
 #define LINESIZE       100
+#define NDWARVES       6
 
 typedef struct lcg_state
 {
index 9ffaf4c44924bba71e0bfe475dc8311e1524ca6d..c501e5b787f2a381735509439d655306705d0f7d 100644 (file)
--- a/compile.c
+++ b/compile.c
@@ -550,7 +550,7 @@ void write_files(FILE* c_file, FILE* header_file)
   fprintf(header_file, "#define RTXSIZ 277\n");
   fprintf(header_file, "#define CLSMAX 12\n");
   fprintf(header_file, "#define LOCSIZ 185\n");
-  fprintf(header_file, "#define LINSIZ 12500\n");
+  fprintf(header_file, "#define LINSIZ %d\n", LINSIZ);
   fprintf(header_file, "#define TRNSIZ 5\n");
   fprintf(header_file, "#define TABSIZ 330\n");
   fprintf(header_file, "#define VRBSIZ 35\n");
diff --git a/init.c b/init.c
index aedbeec244aaebb7662a5cc0ede2423498a1a30d..53552f70226e58509fd844bab70dd7b242559037 100644 (file)
--- a/init.c
+++ b/init.c
  *     300 locations
  *     100 objects */
 
-/* Note: the object count limit has been abstracted as NOBJECTS */
+/* Note: 
+ *  - the object count limit has been abstracted as NOBJECTS
+ *  - the random message limit has been abstracted as RTXSIZE
+ */
 
 /*  Description of the database format
  *
diff --git a/main.c b/main.c
index 120642b247670447f99534fa89c8076688711b45..640a6fb3a9ff2b67c75cc16d6265bfb8539d4853 100644 (file)
--- a/main.c
+++ b/main.c
@@ -14,7 +14,7 @@
 
 long ABB[186], ATLOC[186], BLKLIN = true, DFLAG,
                DLOC[7], FIXED[NOBJECTS+1], HOLDNG,
-               LINK[201], LNLENG, LNPOSN,
+               LINK[NOBJECTS*2 + 1], LNLENG, LNPOSN,
                PARMS[26], PLACE[NOBJECTS+1],
                SETUP = 0;
 char rawbuf[LINESIZE], INLINE[LINESIZE+1], MAP1[129], MAP2[129];
@@ -23,7 +23,7 @@ long ABBNUM, AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD, BONUS,
                 BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST, CHLOC, CHLOC2,
                CLAM, CLOCK1, CLOCK2, CLOSED, CLOSNG, CLSHNT,
                COINS, CONDS, DALTLC, DETAIL,
-                DKILL, DOOR, DPRSSN, DRAGON, DSEEN[7], DTOTAL, DWARF, EGGS,
+               DKILL, DOOR, DPRSSN, DRAGON, DSEEN[NDWARVES+1], DTOTAL, DWARF, EGGS,
                EMRALD, ENTER, ENTRNC, FIND, FISSUR, FOOBAR, FOOD,
                GRATE, HINT, HINTED[21], HINTLC[21],
                I, INVENT, IGO, IWEST, J, JADE, K, K2, KEYS, KK,
@@ -32,7 +32,7 @@ long ABBNUM, AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD, BONUS,
                MAGZIN, MAXDIE, MAXTRS,
                MESSAG, MIRROR, MXSCOR,
                NEWLOC, NOVICE, NUGGET, NUL, NUMDIE, OBJ,
-               ODLOC[7], OGRE, OIL, OLDLC2, OLDLOC, OLDOBJ, OYSTER,
+               ODLOC[NDWARVES+1], OGRE, OIL, OLDLC2, OLDLOC, OLDOBJ, OYSTER,
                PANIC, PEARL, PILLOW, PLANT, PLANT2, PROP[NOBJECTS+1], PYRAM,
                RESER, ROD, ROD2, RUBY, RUG, SAPPH, SAVED, SAY,
                SCORE, SECT, SIGN, SNAKE, SPK, STEPS, STICK,
@@ -179,7 +179,7 @@ static bool do_command(FILE *cmdin) {
  *  (dwarves rooted in place) let him get out (and attacked). */
 
 L71:   if(NEWLOC == LOC || FORCED(LOC) || CNDBIT(LOC,3)) goto L74;
-       /* 73 */ for (I=1; I<=5; I++) {
+       /* 73 */ for (I=1; I<=NDWARVES-1; I++) {
        if(ODLOC[I] != NEWLOC || !DSEEN[I]) goto L73;
        NEWLOC=LOC;
        RSPEAK(2);
@@ -210,10 +210,10 @@ L6000:    if(DFLAG != 1) goto L6010;
        if(!INDEEP(LOC) || (PCT(95) && (!CNDBIT(LOC,4) || PCT(85)))) goto L2000;
        DFLAG=2;
        for (I=1; I<=2; I++) {
-       J=1+randrange(5);
+       J=1+randrange(NDWARVES-1);
        if(PCT(50))DLOC[J]=0;
        } /* end loop */
-       for (I=1; I<=5; I++) {
+       for (I=1; I<=NDWARVES-1; I++) {
        if(DLOC[I] == LOC)DLOC[I]=DALTLC;
        ODLOC[I]=DLOC[I];
        } /* end loop */
@@ -229,7 +229,7 @@ L6000:      if(DFLAG != 1) goto L6010;
 L6010: DTOTAL=0;
        ATTACK=0;
        STICK=0;
-       /* 6030 */ for (I=1; I<=6; I++) {
+       /* 6030 */ for (I=1; I<=NDWARVES; I++) {
        if(DLOC[I] == 0) goto L6030;
 /*  Fill TK array with all the places this dwarf might go. */
        J=1;
@@ -827,7 +827,7 @@ L41000: if(TALLY == 1 && PROP[JADE] < 0) goto L40010;
 
 L10000: PROP[GRATE]=0;
        PROP[FISSUR]=0;
-       for (I=1; I<=6; I++) {
+       for (I=1; I<=NDWARVES; I++) {
        DSEEN[I]=false;
        DLOC[I]=0;
        } /* end loop */
diff --git a/misc.c b/misc.c
index 0126d692d2a02f9c80691356a30075c6e96d7cf4..46772d53498936d296cdfc9333a5d450c2826901 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -593,7 +593,7 @@ long AT, I;
        AT=0;
        if(DFLAG < 2)return(AT);
        AT= -1;
-       for (I=1; I<=5; I++) {
+       for (I=1; I<=NDWARVES-1; I++) {
        if(DLOC[I] == WHERE) goto L2;
        if(DLOC[I] != 0)AT=0;
        } /* end loop */