Jettison MAKEWD(), GETTXT(), vocab(), GETIN(), and the old db compiler.
authorJason S. Ninneman <jsn@mbar.us>
Thu, 29 Jun 2017 15:35:48 +0000 (08:35 -0700)
committerJason S. Ninneman <jsn@mbar.us>
Thu, 29 Jun 2017 15:54:35 +0000 (08:54 -0700)
Makefile
actions.c
cheat.c
init.c
main.c
misc.c
saveresume.c
score.c

index f1e51f366f24106e6ef191d4b81c06b1ec4e0852..da24dd0dcd50aaea3f6b8d08840444b3bf168255 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -38,7 +38,7 @@ endif
 
 OBJS=main.o init.o actions.o score.o misc.o saveresume.o common.o
 CHEAT_OBJS=cheat.o init.o actions.o score.o misc.o saveresume.o common.o
-SOURCES=$(OBJS:.o=.c) dungeon.c advent.h common.h adventure.text adventure.yaml Makefile control linenoise/linenoise.[ch] newdungeon.py
+SOURCES=$(OBJS:.o=.c) advent.h common.h adventure.text adventure.yaml Makefile control linenoise/linenoise.[ch] newdungeon.py
 
 .c.o:
        $(CC) $(CCFLAGS) $(DBX) -c $<
@@ -46,41 +46,33 @@ SOURCES=$(OBJS:.o=.c) dungeon.c advent.h common.h adventure.text adventure.yaml
 advent:        $(OBJS) linenoise.o newdb.o
        $(CC) $(CCFLAGS) $(DBX) -o advent $(OBJS) newdb.o linenoise.o $(LDFLAGS) $(LIBS)
 
-main.o:                advent.h database.h common.h newdb.h
+main.o:                advent.h common.h newdb.h
 
-init.o:                advent.h database.h common.h newdb.h
+init.o:                advent.h common.h newdb.h
 
-actions.o:     advent.h database.h common.h newdb.h
+actions.o:     advent.h common.h newdb.h
 
-score.o:       advent.h database.h common.h newdb.h
+score.o:       advent.h common.h newdb.h
 
-misc.o:                advent.h database.h common.h newdb.h
+misc.o:                advent.h common.h newdb.h
 
-cheat.o:       advent.h database.h common.h newdb.h
+cheat.o:       advent.h common.h newdb.h
 
-saveresume.o:  advent.h database.h common.h newdb.h
+saveresume.o:  advent.h common.h newdb.h
 
 common.o:      common.h
 
-dungeon.o:     common.h newdb.h
-
 newdb.o:       newdb.c newdb.h
        $(CC) $(CCFLAGS) $(DBX) -c newdb.c
 
-database.h: dungeon
-       ./dungeon
-
 newdb.c newdb.h: newdungeon.py adventure.yaml
        python3 newdungeon.py
 
 linenoise.o:   linenoise/linenoise.h
        $(CC) $(CCFLAGS) -c linenoise/linenoise.c
 
-dungeon: dungeon.o common.o
-       $(CC) $(CCFLAGS) -o $@ dungeon.o common.o
-
 clean:
-       rm -f *.o advent cheat *.html database.h dungeon *.gcno *.gcda
+       rm -f *.o advent cheat *.html *.gcno *.gcda
        rm -f newdb.c newdb.h
        rm -f README advent.6 MANIFEST *.tar.gz
        rm -f *~
index 311a71d5a1e08eda72d793be4e222d54ec905129..f746dee1edfe8003c719d45b22aafb16dfba121f 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -1,7 +1,6 @@
 #include <stdlib.h>
 #include <stdbool.h>
 #include "advent.h"
-#include "database.h"
 #include "newdb.h"
 
 static int fill(token_t, token_t);
diff --git a/cheat.c b/cheat.c
index f305dbaea53dee1b6321099524907f4e164e5ff7..858a916713ca3732566b72449edcbc77dc822084 100644 (file)
--- a/cheat.c
+++ b/cheat.c
@@ -5,7 +5,6 @@
 #include <stdbool.h>
 #include <time.h>
 #include "advent.h"
-#include "database.h"
 #include "linenoise/linenoise.h"
 #include "newdb.h"
 
diff --git a/init.c b/init.c
index 753135ec42b0a5fe46080de7afcf3602ad16beb1..d22da5ebe8d3b6c1af0bfd34c8fd2007d143669e 100644 (file)
--- a/init.c
+++ b/init.c
@@ -4,7 +4,6 @@
 #include <stdbool.h>
 
 #include "advent.h"
-#include "database.h"
 
 /*
  * Initialisation
diff --git a/main.c b/main.c
index 1416e4110bab64ab3fd9d077eeb3b6065f7625d8..c5dc311d0e7cf7a6b4e32107ec482a3d57afdc4e 100644 (file)
--- a/main.c
+++ b/main.c
@@ -22,7 +22,6 @@
 #include <time.h>
 #include <string.h>
 #include "advent.h"
-#include "database.h"
 #include "linenoise/linenoise.h"
 #include "newdb.h"
 
diff --git a/misc.c b/misc.c
index 61d80d888b56246fa6b480f3679057a15ce4bb6f..dbf4abb8f0dee6f63be8cec42cdc78e4d06a2fcd 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -7,7 +7,6 @@
 #include <ctype.h>
 
 #include "advent.h"
-#include "database.h"
 #include "linenoise/linenoise.h"
 #include "newdb.h"
 
@@ -251,42 +250,6 @@ void rspeak(vocab_t i, ...)
     va_end(ap);
 }
 
-bool GETIN(FILE *input,
-           long *pword1, long *pword1x,
-           long *pword2, long *pword2x)
-/*  Get a command from the adventurer.  Snarf out the first word, pad it with
- *  blanks, and return it in WORD1.  Chars 6 thru 10 are returned in WORD1X, in
- *  case we need to print out the whole word in an error message.  Any number of
- *  blanks may follow the word.  If a second word appears, it is returned in
- *  WORD2 (chars 6 thru 10 in WORD2X), else WORD2 is -1. */
-{
-    long junk;
-
-    for (;;) {
-        if (game.blklin)
-            fputc('\n', stdout);;
-        if (!MAPLIN(input))
-            return false;
-        *pword1 = GETTXT(true, true, true);
-        if (game.blklin && *pword1 < 0)
-            continue;
-        *pword1x = GETTXT(false, true, true);
-        do {
-            junk = GETTXT(false, true, true);
-        } while
-        (junk > 0);
-        *pword2 = GETTXT(true, true, true);
-        *pword2x = GETTXT(false, true, true);
-        do {
-            junk = GETTXT(false, true, true);
-        } while
-        (junk > 0);
-        if (GETTXT(true, true, true) <= 0)
-            return true;
-        rspeak(TWO_WORDS);
-    }
-}
-
 void echo_input(FILE* destination, char* input_prompt, char* input)
 {
     size_t len = strlen(input_prompt) + strlen(input) + 1;
@@ -453,109 +416,8 @@ bool yes(const char* question, const char* yes_response, const char* no_response
     return (outcome);
 }
 
-/*  Line-parsing routines (GETTXT, MAKEWD, PUTTXT, SHFTXT) */
-
-long GETTXT(bool skip, bool onewrd, bool upper)
-/*  Take characters from an input line and pack them into 30-bit words.
- *  Skip says to skip leading blanks.  ONEWRD says stop if we come to a
- *  blank.  UPPER says to map all letters to uppercase.  If we reach the
- *  end of the line, the word is filled up with blanks (which encode as 0's).
- *  If we're already at end of line when TEXT is called, we return -1. */
-{
-    long text;
-    static long splitting = -1;
-
-    if (LNPOSN != splitting)
-        splitting = -1;
-    text = -1;
-    while (true) {
-        if (LNPOSN > LNLENG)
-            return (text);
-        if ((!skip) || INLINE[LNPOSN] != 0)
-            break;
-        ++LNPOSN;
-    }
-
-    text = 0;
-    for (int I = 1; I <= TOKLEN; I++) {
-        text = text * 64;
-        if (LNPOSN > LNLENG || (onewrd && INLINE[LNPOSN] == 0))
-            continue;
-        char current = INLINE[LNPOSN];
-        if (current < ascii_to_advent['%']) {
-            splitting = -1;
-            if (upper && current >= ascii_to_advent['a'])
-                current = current - 26;
-            text = text + current;
-            ++LNPOSN;
-            continue;
-        }
-        if (splitting != LNPOSN) {
-            text = text + ascii_to_advent['%'];
-            splitting = LNPOSN;
-            continue;
-        }
-
-        text = text + current - ascii_to_advent['%'];
-        splitting = -1;
-        ++LNPOSN;
-    }
-
-    return text;
-}
-
-token_t MAKEWD(long letters)
-/*  Combine TOKLEN (currently 5) uppercase letters (represented by
- *  pairs of decimal digits in lettrs) to form a 30-bit value matching
- *  the one that GETTXT would return given those characters plus
- *  trailing blanks.  Caution: lettrs will overflow 31 bits if
- *  5-letter word starts with V-Z.  As a kludgey workaround, you can
- *  increment a letter by 5 by adding 50 to the next pair of
- *  digits. */
-{
-    long i = 1, word = 0;
-
-    for (long k = letters; k != 0; k = k / 100) {
-        word = word + i * (MOD(k, 50) + 10);
-        i = i * 64;
-        if (MOD(k, 100) > 50)word = word + i * 5;
-    }
-    i = 64L * 64L * 64L * 64L * 64L / i;
-    word = word * i;
-    return word;
-}
-
 /*  Data structure  routines */
 
-long vocab(long id, long init)
-/*  Look up ID in the vocabulary (ATAB) and return its "definition" (KTAB), or
- *  -1 if not found.  If INIT is positive, this is an initialisation call setting
- *  up a keyword variable, and not finding it constitutes a bug.  It also means
- *  that only KTAB values which taken over 1000 equal INIT may be considered.
- *  (Thus "STEPS", which is a motion verb as well as an object, may be located
- *  as an object.)  And it also means the KTAB value is taken modulo 1000. */
-{
-    long lexeme;
-
-    for (long i = 1; i <= TABSIZ; i++) {
-        if (KTAB[i] == -1) {
-            lexeme = -1;
-            if (init < 0)
-                return (lexeme);
-            BUG(REQUIRED_VOCABULARY_WORD_NOT_FOUND); // LCOV_EXCL_LINE
-        }
-        if (init >= 0 && KTAB[i] / 1000 != init)
-            continue;
-        if (ATAB[i] == id) {
-            lexeme = KTAB[i];
-            if (init >= 0)
-                lexeme = MOD(lexeme, 1000);
-            return (lexeme);
-        }
-    }
-    BUG(RAN_OFF_END_OF_VOCABULARY_TABLE); // LCOV_EXCL_LINE
-}
-
 int get_motion_vocab_id(const char* word)
 // Return the first motion number that has 'word' as one of its words.
 {
@@ -777,34 +639,6 @@ long randrange(long range)
     return range * get_next_lcg_value() / game.lcg_m;
 }
 
-long rndvoc(long second, long force)
-/*  Searches the vocabulary ATAB for a word whose second character is
- *  char, and changes that word such that each of the other four
- *  characters is a random letter.  If force is non-zero, it is used
- *  as the new word.  Returns the new word. */
-{
-    long rnd = force;
-
-    if (rnd == 0) {
-        for (int i = 1; i <= 5; i++) {
-            long j = 11 + randrange(26);
-            if (i == 2)
-                j = second;
-            rnd = rnd * 64 + j;
-        }
-    }
-
-    long div = 64L * 64L * 64L;
-    for (int i = 1; i <= TABSIZ; i++) {
-        if (MOD(ATAB[i] / div, 64L) == second) {
-            ATAB[i] = rnd;
-            break;
-        }
-    }
-
-    return rnd;
-}
-
 void make_zzword(char zzword[6])
 {
   for (int i = 0; i < 5; ++i)
index d2913615ab9e0d078f9a2b0bf91321dbd1fe8c61..ab47a3bfa56fd84a19c30e01848a7425963fc1a4 100644 (file)
@@ -2,7 +2,6 @@
 #include <string.h>
 
 #include "advent.h"
-#include "database.h"
 #include "newdb.h"
 #include "linenoise/linenoise.h"
 
diff --git a/score.c b/score.c
index 4e72950a56103df545578de140e63033de6c2b5b..531b230cfbbc154ddddae4625f6c4bf02d49f0af 100644 (file)
--- a/score.c
+++ b/score.c
@@ -1,6 +1,5 @@
 #include <stdlib.h>
 #include "advent.h"
-#include "database.h"
 #include "newdb.h"
 
 /*