Add token_to_packed() utility function.
[open-adventure.git] / misc.c
diff --git a/misc.c b/misc.c
index 33ec95ba0b96e6af01ae87c54c23fb3663e4b4f1..64c05ceb1fa8c636b2b4659c33ffba8a3d85da90 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -50,6 +50,35 @@ void packed_to_token(long packed, char token[6])
     }
 }
 
+void token_to_packed(char token[6], long* packed)
+{
+  *packed = 0;
+  for (size_t i = 0; i < 5; ++i)
+    {
+      if (token[4 - i] == '\0')
+       continue;       
+      char mapped = ascii_to_advent[token[4 - i]];
+      *packed |= (mapped << (6 * i));
+    }
+}
+
+/* Hide the fact that wods are corrently packed longs */
+
+bool wordeq(token_t a, token_t b)
+{
+    return a == b;
+}
+
+bool wordempty(token_t a)
+{
+    return a == 0;
+}
+
+void wordclear(token_t *v)
+{
+    *v = 0;
+}
+
 /*  I/O routines (SPEAK, PSPEAK, RSPEAK, SETPRM, GETIN, YES) */
 
 void speak(const char* msg)
@@ -417,7 +446,7 @@ void MOVE(long object, long where)
         from = game.fixed[object - NOBJECTS];
     else
         from = game.place[object];
-    if (from != NOWHERE && from != CARRIED && !SPECIAL(from))
+    if (from != LOC_NOWHERE && from != CARRIED && !SPECIAL(from))
         CARRY(object, from);
     DROP(object, where);
 }
@@ -660,8 +689,8 @@ void DATIME(long* d, long* t)
 
 void bug(enum bugtype num, const char *error_string)
 {
-   fprintf(stderr, "Fatal error %d, %s.\n", num, error_string);
-   exit(EXIT_FAILURE);
+    fprintf(stderr, "Fatal error %d, %s.\n", num, error_string);
+    exit(EXIT_FAILURE);
 }
 
 /* end */