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);
int wd = (int) get_vocab_id(word1);
/* 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 */
wordclear(&command->wd2);
return GO_LOOKUP;

View file

@ -54,6 +54,11 @@
#define OUTSID(LOC) (CNDBIT(LOC, COND_ABOVE) || FOREST(LOC))
#define INDEEP(LOC) ((LOC) >= LOC_MISTHALL && !OUTSID(LOC))
#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 {
SPECIAL_TRAVEL_500_GT_L_GT_300_EXCEEDS_GOTO_LIST,

6
main.c
View file

@ -1113,12 +1113,12 @@ L2607:
wordclear(&command.wd2);
} else {
/* FIXME: Magic numbers related to vocabulary */
if (!((V1 != 1000 + WATER && V1 != 1000 + OIL) ||
(V2 != 1000 + PLANT && V2 != 1000 + DOOR))) {
if (!((V1 != PROMOTE_WORD(WATER) && V1 != PROMOTE_WORD(OIL)) ||
(V2 != PROMOTE_WORD(PLANT) && V2 != PROMOTE_WORD(DOOR)))) {
if (AT(V2 - 1000))
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");
}
L2620: