Interim magic number replacement.

This commit is contained in:
Jason S. Ninneman 2017-07-01 06:15:54 -07:00
parent 065caace64
commit 2328739e51
3 changed files with 9 additions and 4 deletions

View file

@ -967,7 +967,7 @@ static int say(struct command_t *command)
packed_to_token(command->wd1, word1); packed_to_token(command->wd1, word1);
int wd = (int) get_vocab_id(word1); int wd = (int) get_vocab_id(word1);
/* FIXME: magic numbers */ /* FIXME: magic numbers */
if (wd == XYZZY || wd == PLUGH || wd == PLOVER || wd == 2000 + GIANTWORDS || wd == 2000 + PART) { if (wd == XYZZY || wd == PLUGH || wd == PLOVER || wd == ACTION_WORD(GIANTWORDS) || wd == ACTION_WORD(PART)) {
/* FIXME: scribbles on the interpreter's command block */ /* FIXME: scribbles on the interpreter's command block */
wordclear(&command->wd2); wordclear(&command->wd2);
return GO_LOOKUP; return GO_LOOKUP;

View file

@ -54,6 +54,11 @@
#define OUTSID(LOC) (CNDBIT(LOC, COND_ABOVE) || FOREST(LOC)) #define OUTSID(LOC) (CNDBIT(LOC, COND_ABOVE) || FOREST(LOC))
#define INDEEP(LOC) ((LOC) >= LOC_MISTHALL && !OUTSID(LOC)) #define INDEEP(LOC) ((LOC) >= LOC_MISTHALL && !OUTSID(LOC))
#define BUG(x) bug(x, #x) #define BUG(x) bug(x, #x)
#define MOTION_WORD(n) ((n) + 0)
#define OBJECT_WORD(n) ((n) + 1000)
#define ACTION_WORD(n) ((n) + 2000)
#define SPECIAL_WORD(n) ((n) + 3000)
#define PROMOTE_WORD(n) ((n) + 1000)
enum bugtype { enum bugtype {
SPECIAL_TRAVEL_500_GT_L_GT_300_EXCEEDS_GOTO_LIST, SPECIAL_TRAVEL_500_GT_L_GT_300_EXCEEDS_GOTO_LIST,

6
main.c
View file

@ -1113,12 +1113,12 @@ L2607:
wordclear(&command.wd2); wordclear(&command.wd2);
} else { } else {
/* FIXME: Magic numbers related to vocabulary */ /* FIXME: Magic numbers related to vocabulary */
if (!((V1 != 1000 + WATER && V1 != 1000 + OIL) || if (!((V1 != PROMOTE_WORD(WATER) && V1 != PROMOTE_WORD(OIL)) ||
(V2 != 1000 + PLANT && V2 != 1000 + DOOR))) { (V2 != PROMOTE_WORD(PLANT) && V2 != PROMOTE_WORD(DOOR)))) {
if (AT(V2 - 1000)) if (AT(V2 - 1000))
command.wd2 = token_to_packed("POUR"); command.wd2 = token_to_packed("POUR");
} }
if (V1 == 1000 + CAGE && V2 == 1000 + BIRD && HERE(CAGE) && HERE(BIRD)) if (V1 == PROMOTE_WORD(CAGE) && V2 == PROMOTE_WORD(BIRD) && HERE(CAGE) && HERE(BIRD))
command.wd1 = token_to_packed("CATCH"); command.wd1 = token_to_packed("CATCH");
} }
L2620: L2620: