Magic-number elimination.
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index 10fce6503f348e9673b9e70add4fa4eaf3d1e61c..27a7a090c8a0a05b51f3899d70f55aac16b1d471 100644 (file)
--- a/main.c
+++ b/main.c
@@ -171,7 +171,7 @@ static void checkhints(FILE *cmdin)
        for (int hint=1; hint<=HNTMAX; hint++) {
            if (game.hinted[hint])
                continue;
-           if (!CNDBIT(game.loc,hint+10))
+           if (!CNDBIT(game.loc,hint+HBASE))
                game.hintlc[hint]= -1;
            ++game.hintlc[hint];
            /*  Come here if he's been long enough at required loc(s) for some
@@ -264,7 +264,7 @@ bool spotted_by_pirate(int i)
     /*  The pirate's spotted him.  He leaves him alone once we've
      *  found chest.  K counts if a treasure is here.  If not, and
      *  tally=1 for an unseen chest, let the pirate be spotted.
-     *  Note that game.place(CHEST)=0 might mean that he's thrown
+     *  Note that game.place[CHEST]=0 might mean that he's thrown
      *  it to the troll, but in that case he's seen the chest
      *  (game.prop=0). */
     if (game.loc == game.chloc || game.prop[CHEST] >= 0)
@@ -273,9 +273,7 @@ bool spotted_by_pirate(int i)
     for (int j=MINTRS; j<=MAXTRS; j++) {
        /*  Pirate won't take pyramid from plover room or dark
         *  room (too easy!). */
-       if (j == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD])) {
-           if (HERE(j))
-               k=1;
+       if (j==PYRAM && (game.loc==PLAC[PYRAM] || game.loc==PLAC[EMRALD])) {
            return true;
        }
        if (TOTING(j)) {
@@ -297,7 +295,6 @@ bool spotted_by_pirate(int i)
            game.dloc[PIRATE]=game.chloc;
            game.odloc[PIRATE]=game.chloc;
            game.dseen[PIRATE]=false;
-
            return true;
        }
        if (HERE(j))
@@ -337,7 +334,7 @@ static bool dwarfmove(void)
      *  means dwarves won't follow him into dead end in maze, but
      *  c'est la vie.  They'll wait for him outside the dead
      *  end. */
-    if (game.loc == 0 || FORCED(game.loc) || CNDBIT(game.newloc,3))
+    if (game.loc == 0 || FORCED(game.loc) || CNDBIT(game.newloc,NOARRR))
        return true;
 
     /* Dwarf activity level ratchets up */
@@ -351,7 +348,7 @@ static bool dwarfmove(void)
      *  the 5 dwarves.  If any of the survivors is at loc,
      *  replace him with the alternate. */
     if (game.dflag == 1) {
-       if (!INDEEP(game.loc) || (PCT(95) && (!CNDBIT(game.loc,4) || PCT(85))))
+       if (!INDEEP(game.loc) || (PCT(95) && (!CNDBIT(game.loc,NOBACK) || PCT(85))))
            return true;
        game.dflag=2;
        for (int i=1; i<=2; i++) {
@@ -387,15 +384,15 @@ static bool dwarfmove(void)
        if (kk != 0)
            do {
                game.newloc=MOD(labs(TRAVEL[kk])/1000,1000);
-               /* Have we avoided a dwarf enciounter? */
-               bool avoided = (game.newloc > 300 ||
+               /* Have we avoided a dwarf encounter? */
+               bool avoided = (SPECIAL(game.newloc) ||
                                !INDEEP(game.newloc) ||
                                game.newloc == game.odloc[i] ||
                                (j > 1 && game.newloc == TK[j-1]) ||
                                j >= 20 ||
                                game.newloc == game.dloc[i] ||
                                FORCED(game.newloc) ||
-                               (i == PIRATE && CNDBIT(game.newloc,3)) ||
+                               (i == PIRATE && CNDBIT(game.newloc,NOARRR)) ||
                                labs(TRAVEL[kk])/1000000 == 100);
                if (!avoided) {
                    TK[j++] = game.newloc;
@@ -527,12 +524,12 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
        game.oldloc=game.loc;
        K2=0;
        if (motion == game.loc)K2=91;
-       if (CNDBIT(game.loc,4))K2=274;
+       if (CNDBIT(game.loc,NOBACK))K2=274;
        if (K2 == 0) {
            for (;;) {
                LL=MOD((labs(TRAVEL[KK])/1000),1000);
                if (LL != motion) {
-                   if (LL <= 300) {
+                   if (!SPECIAL(LL)) {
                        if (FORCED(LL) && MOD((labs(TRAVEL[KEY[LL]])/1000),1000) == motion)
                            K2=KK;
                    }
@@ -610,7 +607,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
        for (;;) {
            game.newloc=LL/1000;
            motion=MOD(game.newloc,100);
-           if (game.newloc <= 300) {
+           if (!SPECIAL(game.newloc)) {
                if (game.newloc <= 100) {
                    if (game.newloc == 0 || PCT(game.newloc))
                        break;
@@ -631,10 +628,10 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
        }
 
        game.newloc=MOD(LL,1000);
-       if (game.newloc <= 300)
+       if (!SPECIAL(game.newloc))
            return true;
        if (game.newloc <= 500) {
-           game.newloc=game.newloc-300;
+           game.newloc=game.newloc-SPECIALBASE;
            switch (game.newloc)
            {
            case 1:
@@ -904,7 +901,7 @@ static void listobjects(void)
 static bool do_command(FILE *cmdin)
 /* Get and execute a command */ 
 {
-    long KQ, VERB, KK, V1, V2;
+    long KQ, VERB, V1, V2;
     long i, k, KMOD;
     static long igo = 0;
     static long obj = 0;
@@ -922,7 +919,7 @@ static bool do_command(FILE *cmdin)
      *  wants to go.  If so, the dwarf's blocking his way.  If
      *  coming from place forbidden to pirate (dwarves rooted in
      *  place) let him get out (and attacked). */
-    if (game.newloc != game.loc && !FORCED(game.loc) && !CNDBIT(game.loc,3)) {
+    if (game.newloc != game.loc && !FORCED(game.loc) && !CNDBIT(game.loc,NOARRR)) {
        for (i=1; i<=NDWARVES-1; i++) {
            if (game.odloc[i] == game.newloc && game.dseen[i]) {
                game.newloc=game.loc;