Do not compare state to magic numbers
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index 84eca5758177d5d262d015186fb02bb5e3aeb80b..0a5ce3d3bdd7e655ca70ece55792366924d60def 100644 (file)
--- a/main.c
+++ b/main.c
 #include <signal.h>
 #include <string.h>
 #include "advent.h"
-#include "linenoise/linenoise.h"
 #include "dungeon.h"
 
 #define DIM(a) (sizeof(a)/sizeof(a[0]))
 
 FILE  *logfp = NULL, *rfp = NULL;
 bool oldstyle = false;
-bool editline = true;
 bool prompt = true;
 
 // LCOV_EXCL_START
@@ -64,11 +62,11 @@ int main(int argc, char *argv[])
     /*  Options. */
 
 #ifndef ADVENT_NOSAVE
-    const char* opts = "l:or:s";
-    const char* usage = "Usage: %s [-l logfilename] [-o] [-r restorefilename] [-s] \n";
+    const char* opts = "l:or";
+    const char* usage = "Usage: %s [-l logfilename] [-o] [-r restorefilename]\n";
 #else
-    const char* opts = "l:os";
-    const char* usage = "Usage: %s [-l logfilename] [-o] [-s] \n";
+    const char* opts = "l:o";
+    const char* usage = "Usage: %s [-l logfilename] [-o]\n";
 #endif
     while ((ch = getopt(argc, argv, opts)) != EOF) {
         switch (ch) {
@@ -82,7 +80,7 @@ int main(int argc, char *argv[])
             break;
         case 'o':
             oldstyle = true;
-            editline = prompt = false;
+            prompt = false;
             break;
 #ifndef ADVENT_NOSAVE
         case 'r':
@@ -94,9 +92,6 @@ int main(int argc, char *argv[])
             signal(SIGINT, sig_handler);
             break;
 #endif
-        case 's':
-            editline = false;
-            break;
         default:
             fprintf(stderr,
                     usage, argv[0]);
@@ -108,15 +103,11 @@ int main(int argc, char *argv[])
             fprintf(stderr,
                     "        -r restore from specified saved game file\n");
 #endif
-            fprintf(stderr,
-                    "        -s suppress command editing\n");
             exit(EXIT_FAILURE);
             break;
         }
     }
 
-    linenoiseHistorySetMaxLen(350);
-
     /*  Initialize game variables */
     long seedval = initialise();
 
@@ -779,8 +770,8 @@ static bool closecheck(void)
         juggle(CHASM);
         if (game.prop[BEAR] != BEAR_DEAD)
             DESTROY(BEAR);
-        game.prop[CHAIN] = 0;
-        game.fixed[CHAIN] = 0;
+        game.prop[CHAIN] = CHAIN_HEAP;
+        game.fixed[CHAIN] = CHAIN_HEAP;
         game.prop[AXE] = 0;
         game.fixed[AXE] = 0;
         rspeak(CAVE_CLOSING);
@@ -882,8 +873,8 @@ static void listobjects(void)
 /*  Print out descriptions of objects at this location.  If
  *  not closing and property value is negative, tally off
  *  another treasure.  Rug is special case; once seen, its
- *  game.prop is 1 (dragon on it) till dragon is killed.
- *  Similarly for chain; game.prop is initially 1 (locked to
+ *  game.prop is RUG_DRAGON (dragon on it) till dragon is killed.
+ *  Similarly for chain; game.prop is initially CHAINING_BEAR (locked to
  *  bear).  These hacks are because game.prop=0 is needed to
  *  get full score. */
 {
@@ -899,8 +890,10 @@ static void listobjects(void)
                 if (game.closed)
                     continue;
                 game.prop[obj] = 0;
-                if (obj == RUG || obj == CHAIN)
-                    game.prop[obj] = 1;
+                if (obj == RUG)
+                    game.prop[RUG] = RUG_DRAGON;
+                if (obj == CHAIN)
+                    game.prop[CHAIN] = CHAINING_BEAR;
                 --game.tally;
                 /*  Note: There used to be a test here to see whether the
                  *  player had blown it so badly that he could never ever see
@@ -1036,7 +1029,7 @@ L2600:
         }
 
         strncpy(inputbuf, input, LINESIZE - 1);
-        linenoiseFree(input);
+        free(input);
 
         long tokens[4];
         tokenize(inputbuf, tokens);