X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=misc.c;h=29846e23f6a5aef4aef9320ea180e8a0797a5800;hb=6ecd0010931a988792e672e1fe0a1192fca7b002;hp=33ec95ba0b96e6af01ae87c54c23fb3663e4b4f1;hpb=624ba16aadabdcf84a6c04ae17d0d0ff1d166835;p=open-adventure.git diff --git a/misc.c b/misc.c index 33ec95b..29846e2 100644 --- 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[(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) +{ + 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 */