X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=misc.c;h=6042f764d53b51adfd62253565dcc102a70ae048;hb=e37f858b08e5cf3dfe5a1388e4d89c93527565ee;hp=ba834fdffd44b84cef98268a2e2cbadc8dea63b2;hpb=a678b68b39f21f8b2853e45c6138d815a82a3423;p=open-adventure.git diff --git a/misc.c b/misc.c index ba834fd..6042f76 100644 --- a/misc.c +++ b/misc.c @@ -50,6 +50,18 @@ 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[(int) token[4 - i]]; + *packed |= (mapped << (6 * i)); + } +} + /* Hide the fact that wods are corrently packed longs */ bool wordeq(token_t a, token_t b) @@ -279,7 +291,7 @@ bool YES(const char* question, const char* yes_response, const char* no_response reply = get_input(); - char* firstword = (char*) xmalloc(strlen(reply)); + char* firstword = (char*) xmalloc(strlen(reply)+1); sscanf(reply, "%s", firstword); for (int i = 0; i < (int)strlen(firstword); ++i) @@ -651,10 +663,10 @@ bool MAPLIN(FILE *fp) * If the data file uses a character other than space (e.g., tab) to * separate numbers, that character should also translate to 0. * - * This procedure may use the map1,map2 arrays to maintain static data for - * the mapping. MAP2(1) is set to 0 when the program starts - * and is not changed thereafter unless the routines on this page choose - * to do so. */ + * This procedure may use the map1,map2 arrays to maintain + * static data for he mapping. MAP2(1) is set to 0 when the + * program starts and is not changed thereafter unless the + * routines in this module choose to do so. */ LNLENG = 0; for (long i = 1; i <= (long)sizeof(INLINE) && INLINE[i] != 0; i++) { long val = INLINE[i];