Abolish SPEAK().
authorJason S. Ninneman <jsn@mbar.us>
Sun, 11 Jun 2017 21:41:26 +0000 (14:41 -0700)
committerJason S. Ninneman <jsn@mbar.us>
Sun, 11 Jun 2017 22:42:25 +0000 (15:42 -0700)
advent.h
misc.c

index e831a0a9086e69d2f377d0f6017324ab89937967..945543ce488e84cd6428b22eb263cfa480f7d005 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -89,7 +89,6 @@ extern lcg_state lcgstate;
 extern void* xmalloc(size_t);
 extern void packed_to_token(long, char token[6]);
 extern void newspeak(char*);
-extern void SPEAK(vocab_t);
 extern void PSPEAK(vocab_t,int);
 extern void RSPEAK(vocab_t);
 extern void SETPRM(long,long,long);
diff --git a/misc.c b/misc.c
index 3b612d8c5c99cde0104fa5d51d30b1a43684d8c1..801331bdd06b14b3264ff1fbe5818daba780a44c 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -124,109 +124,6 @@ void newspeak(char* msg)
   free(copy);
 }
 
-void SPEAK(vocab_t msg)
-/*  Print the message which starts at LINES[N].  Precede it with a blank line
- *  unless game.blklin is false. */
-{
-    long blank, casemake, i, nxt, neg, nparms, param, prmtyp, state;
-
-    if (msg == 0)
-       return;
-    blank=game.blklin;
-    nparms=1;
-    do {
-       nxt=labs(LINES[msg])-1;
-       ++msg;
-       LNLENG=0;
-       LNPOSN=1;
-       state=0;
-       for (i = msg; i <= nxt; i++) {
-           PUTTXT(LINES[i],&state,2);
-       }
-       LNPOSN=0;
-       ++LNPOSN;
-
-       while (LNPOSN <= LNLENG) { 
-           if (INLINE[LNPOSN] != ascii_to_advent['%']) {
-               ++LNPOSN;
-               continue;
-           }
-           prmtyp = INLINE[LNPOSN+1];
-           /*  A "%"; the next character determine the type of
-            *  parameter: 1 (!) = suppress message completely, 29 (S) = NULL
-            *  If PARAM=1, else 'S' (optional plural ending), 33 (W) = word
-            *  (two 30-bit values) with trailing spaces suppressed, 22 (L) or
-            *  31 (U) = word but map to lower/upper case, 13 (C) = word in
-            *  lower case with first letter capitalised, 65-73 (1-9) =
-            *  number using that many characters. */
-           if (prmtyp == ascii_to_advent['!'])
-               return;
-           if (prmtyp == ascii_to_advent['S']) {
-               SHFTXT(LNPOSN+2,-1);
-               INLINE[LNPOSN] = ascii_to_advent['s'];
-               if (PARMS[nparms] == 1)
-                   SHFTXT(LNPOSN+1,-1);
-               ++nparms;
-               continue;
-           }
-           if (prmtyp == ascii_to_advent['W'] || prmtyp == ascii_to_advent['L'] || prmtyp == ascii_to_advent['U'] || prmtyp == ascii_to_advent['C']) {
-               SHFTXT(LNPOSN+2,-2);
-               state = 0;
-               casemake = -1;
-               if (prmtyp == ascii_to_advent['U'])
-                   casemake=1;
-               if (prmtyp == ascii_to_advent['W'])
-                   casemake=0;
-               i = LNPOSN;
-               PUTTXT(PARMS[nparms],&state,casemake);
-               PUTTXT(PARMS[nparms+1],&state,casemake);
-               if (prmtyp == ascii_to_advent['C'] && INLINE[i] >= ascii_to_advent['a'] && INLINE[i] <= ascii_to_advent['z'])
-                 {
-                   // Convert to uppercase.
-                   // Round-trip to ASCII and back so that this code doesn't break when the mapping changes.
-                   // This can be simplified when mapping goes away.
-                   char this = advent_to_ascii[INLINE[i]];
-                   char uc_this = toupper(this);
-                   INLINE[i] = ascii_to_advent[uc_this];
-                 }
-               nparms += 2;
-               continue;
-           }
-
-           prmtyp=prmtyp-64;
-           if (prmtyp < ascii_to_advent['!'] || prmtyp > ascii_to_advent['-']) {
-               ++LNPOSN;
-               continue;
-           }
-           SHFTXT(LNPOSN+2,prmtyp-2);
-           LNPOSN += prmtyp;
-           param=labs(PARMS[nparms]);
-           neg=0;
-           if (PARMS[nparms] < 0)
-               neg=9;
-           for (i=1; i <= prmtyp; i++) {
-               --LNPOSN;
-               INLINE[LNPOSN]=MOD(param,10)+64;
-               if (i != 1 && param == 0) {
-                   INLINE[LNPOSN]=neg;
-                   neg=0;
-               }
-               param=param/10;
-           }
-           LNPOSN += prmtyp;
-           ++nparms;
-           continue;
-       }
-
-       if (blank)
-           TYPE0();
-       blank=false;
-       TYPE();
-       msg = nxt + 1;
-    } while
-       (LINES[msg] >= 0);
-}
-
 void PSPEAK(vocab_t msg,int skip)
 /*  Find the skip+1st message from msg and print it.  msg should be
  *  the index of the inventory message for object.  (INVEN+N+1 message