Moved application settings to settings_t struct
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index 9d466b41f5176ff042ade81676bcdd90c0462e97..1269efaf935fcc289b6023d4deb151d90c3300b0 100644 (file)
--- a/main.c
+++ b/main.c
 
 #define DIM(a) (sizeof(a)/sizeof(a[0]))
 
-FILE  *logfp = NULL, *rfp = NULL;
-bool oldstyle = false;
-bool prompt = true;
-
 // LCOV_EXCL_START
 // exclude from coverage analysis because it requires interactivity to test
 static void sig_handler(int signo)
 {
     if (signo == SIGINT) {
-        if (logfp != NULL)
-            fflush(logfp);
+        if (settings.logfp != NULL)
+            fflush(settings.logfp);
     }
     exit(EXIT_FAILURE);
 }
@@ -63,6 +59,7 @@ int main(int argc, char *argv[])
 #ifndef ADVENT_NOSAVE
     const char* opts = "l:or:";
     const char* usage = "Usage: %s [-l logfilename] [-o] [-r restorefilename]\n";
+    FILE *rfp = NULL;
 #else
     const char* opts = "l:o";
     const char* usage = "Usage: %s [-l logfilename] [-o]\n";
@@ -70,16 +67,16 @@ int main(int argc, char *argv[])
     while ((ch = getopt(argc, argv, opts)) != EOF) {
         switch (ch) {
         case 'l':
-            logfp = fopen(optarg, "w");
-            if (logfp == NULL)
+            settings.logfp = fopen(optarg, "w");
+            if (settings.logfp == NULL)
                 fprintf(stderr,
                         "advent: can't open logfile %s for write\n",
                         optarg);
             signal(SIGINT, sig_handler);
             break;
         case 'o':
-            oldstyle = true;
-            prompt = false;
+            settings.oldstyle = true;
+            settings.prompt = false;
             break;
 #ifndef ADVENT_NOSAVE
         case 'r':
@@ -120,8 +117,8 @@ int main(int argc, char *argv[])
     }
 #endif
 
-    if (logfp)
-        fprintf(logfp, "seed %ld\n", seedval);
+    if (settings.logfp)
+        fprintf(settings.logfp, "seed %ld\n", seedval);
 
     /* interpret commands until EOF or interrupt */
     for (;;) {
@@ -141,8 +138,6 @@ static bool fallback_handler(char *buf)
         printf("Seed set to %ld\n", sv);
         // autogenerated, so don't charge user time for it.
         --game.turns;
-        // here we reconfigure any global game state that uses random numbers
-        make_zzword(game.zzword);
         return true;
     }
     return false;
@@ -379,26 +374,26 @@ static bool dwarfmove(void)
                 game.newloc = travel[kk].dest;
                 /* Have we avoided a dwarf encounter? */
                 if (SPECIAL(game.newloc))
-                   continue;
+                    continue;
                 else if (!INDEEP(game.newloc))
-                   continue;
-               else if (game.newloc == game.odloc[i])
-                   continue;
+                    continue;
+                else if (game.newloc == game.odloc[i])
+                    continue;
                 else if (j > 1 && game.newloc == tk[j - 1])
-                   continue;
-               else if (j >= DIM(tk) - 1)
-                   continue;
-               else if (game.newloc == game.dloc[i])
-                   continue;
-               else if (FORCED(game.newloc))
-                   continue;
-               else if (i == PIRATE && CNDBIT(game.newloc, COND_NOARRR))
-                   continue;
-               else if (travel[kk].nodwarves)
-                   continue;
-               tk[j++] = game.newloc;
+                    continue;
+                else if (j >= DIM(tk) - 1)
+                    continue;
+                else if (game.newloc == game.dloc[i])
+                    continue;
+                else if (FORCED(game.newloc))
+                    continue;
+                else if (i == PIRATE && CNDBIT(game.newloc, COND_NOARRR))
+                    continue;
+                else if (travel[kk].nodwarves)
+                    continue;
+                tk[j++] = game.newloc;
             } while
-               (!travel[kk++].stop);
+            (!travel[kk++].stop);
         tk[j] = game.odloc[i];
         if (j >= 2)
             --j;
@@ -498,7 +493,7 @@ static bool traveleq(long a, long b)
 /* Are two travel entries equal for purposes of skip after failed condition? */
 {
     return (travel[a].cond == travel[b].cond)
-       && (travel[a].dest == travel[b].dest);
+           && (travel[a].dest == travel[b].dest);
 }
 
 /*  Given the current location in "game.loc", and a motion verb number in
@@ -638,7 +633,7 @@ static bool playermove( int motion)
                         BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
                     ++te_tmp;
                 } while
-                   (traveleq(travel_entry, te_tmp));
+                (traveleq(travel_entry, te_tmp));
                 travel_entry = te_tmp;
             }
 
@@ -680,7 +675,7 @@ static bool playermove( int motion)
                             BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
                         ++te_tmp;
                     } while
-                       (traveleq(travel_entry, te_tmp));
+                    (traveleq(travel_entry, te_tmp));
                     travel_entry = te_tmp;
                     continue; /* goto L12 */
                 case 3: