X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=main.c;h=b830d89ce187d94735f7041864563d48b0293380;hb=4b93fb327a0ae07cf931f0ebc4c9a946e4cafd6c;hp=c1272c4281ae0b14b8edb10851ca209535d62baf;hpb=0eb85f233a21402106adee89104f558662d6030b;p=open-adventure.git diff --git a/main.c b/main.c index c1272c4..b830d89 100644 --- a/main.c +++ b/main.c @@ -41,7 +41,7 @@ long AMBER, AXE, BACK, BATTERY, BEAR, BIRD, BLOOD, RUBY, RUG, SAPPH, SAY, SIGN, SNAKE, STEPS, STREAM, THROW, TRIDENT, TROLL, TROLL2, URN, VASE, VEND, VOLCANO, WATER; -long WD1, WD1X, WD2, WD2X; +token_t WD1, WD1X, WD2, WD2X; FILE *logfp = NULL, *rfp = NULL; bool oldstyle = false; @@ -457,12 +457,15 @@ static bool dwarfmove(void) if (attack == 0) return true; if (game.dflag == 2)game.dflag = 3; - SETPRM(1, attack, 0); - int k = 6; - if (attack > 1)k = THROWN_KNIVES; - RSPEAK(k); - SETPRM(1, stick, 0); - RSPEAK(k + 1 + 2 / (1 + stick)); /* FIXME: Arithmetic on message number */ + if (attack > 1){ + SETPRM(1, attack, 0); + RSPEAK(THROWN_KNIVES); + SETPRM(1, stick, 0); + RSPEAK(stick > 1 ? MULTIPLE_HITS : (stick == 1 ? ONE_HIT : NONE_HIT)); + } else { + RSPEAK(KNIFE_THROWN); + RSPEAK(MISSES_YOU); + } if (stick == 0) return true; game.oldlc2 = game.loc; @@ -1057,23 +1060,24 @@ L2607: if (V1 == ENTER && WD2 > 0) { WD1 = WD2; WD1X = WD2X; - WD2 = 0; + wordclear(&WD2); } else { + /* FIXME: Magic numbers */ if (!((V1 != 1000 + WATER && V1 != 1000 + OIL) || (V2 != 1000 + PLANT && V2 != 1000 + DOOR))) { if (AT(V2 - 1000)) - WD2 = MAKEWD(16152118); + WD2 = MAKEWD(WORD_POUR); } if (V1 == 1000 + CAGE && V2 == 1000 + BIRD && HERE(CAGE) && HERE(BIRD)) - WD1 = MAKEWD(301200308); + WD1 = MAKEWD(WORD_CATCH); } L2620: - if (WD1 == MAKEWD(23051920)) { + if (wordeq(WD1, MAKEWD(WORD_WEST))) { ++game.iwest; if (game.iwest == 10) RSPEAK(W_IS_WEST); } - if (WD1 == MAKEWD( 715) && WD2 != 0) { + if (wordeq(WD1, MAKEWD(WORD_GO)) && !wordempty(WD2)) { if (++igo == 10) RSPEAK(GO_UNNEEDED); } @@ -1130,7 +1134,7 @@ Laction: /* Get second word for analysis. */ WD1 = WD2; WD1X = WD2X; - WD2 = 0; + wordclear(&WD2); goto L2620; case GO_UNKNOWN: /* Random intransitive verbs come here. Clear obj just in case