X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;ds=sidebyside;f=actions.c;h=d14e6439d3a1b961c744a22133950dd76ae90742;hb=e07cedf332029369f2ce09a6f6ced3dda0de2558;hp=4f802b6f6a273de40a0d1191ffcdca0feca4af22;hpb=a02b3879998e78555852f4a81a19e80694e38cdc;p=open-adventure.git diff --git a/actions.c b/actions.c index 4f802b6..d14e643 100644 --- a/actions.c +++ b/actions.c @@ -129,17 +129,18 @@ static int bigwords(long foo) if (game.place[EGGS]==PLAC[EGGS] || (TOTING(EGGS) && game.loc==PLAC[EGGS])) { RSPEAK(spk); return GO_CLEAROBJ; + } else { + /* Bring back troll if we steal the eggs back from him before + * crossing. */ + if (game.place[EGGS]==0 && game.place[TROLL]==0 && game.prop[TROLL]==0) + game.prop[TROLL]=1; + k=2; + if (HERE(EGGS))k=1; + if (game.loc == PLAC[EGGS])k=0; + MOVE(EGGS,PLAC[EGGS]); + PSPEAK(EGGS,k); + return GO_CLEAROBJ; } - /* Bring back troll if we steal the eggs back from him before - * crossing. */ - if (game.place[EGGS]==0 && game.place[TROLL]==0 && game.prop[TROLL]==0) - game.prop[TROLL]=1; - k=2; - if (HERE(EGGS))k=1; - if (game.loc == PLAC[EGGS])k=0; - MOVE(EGGS,PLAC[EGGS]); - PSPEAK(EGGS,k); - return GO_CLEAROBJ; } } @@ -392,13 +393,11 @@ static int drink(token_t verb, token_t obj) return(8000); if (obj != BLOOD) { if (obj != 0 && obj != WATER)spk=110; - if (spk == 110 || LIQUID() != WATER || !HERE(BOTTLE)) { - RSPEAK(spk); - return GO_CLEAROBJ; + if (spk != 110 && LIQUID() == WATER && HERE(BOTTLE)) { + game.prop[BOTTLE]=1; + game.place[WATER]=0; + spk=74; } - game.prop[BOTTLE]=1; - game.place[WATER]=0; - spk=74; } else { DSTROY(BLOOD); game.prop[DRAGON]=2; @@ -470,57 +469,39 @@ static int feed(token_t verb, token_t obj) RSPEAK(100); return GO_CLEAROBJ; } - - if (!(obj != SNAKE && obj != DRAGON && obj != TROLL)) { + else if (obj == SNAKE || obj == DRAGON || obj == TROLL) { int spk=102; if (obj == DRAGON && game.prop[DRAGON] != 0)spk=110; if (obj == TROLL)spk=182; - if (obj != SNAKE || game.closed || !HERE(BIRD)) - { - RSPEAK(spk); - return GO_CLEAROBJ; + if (obj == SNAKE && !game.closed && HERE(BIRD)) { + DSTROY(BIRD); + game.prop[BIRD]=0; + spk = 101; } - DSTROY(BIRD); - game.prop[BIRD]=0; - RSPEAK(101); - return GO_CLEAROBJ; } - - if (obj == DWARF) { - if (!HERE(FOOD)) - { - RSPEAK(spk); - return GO_CLEAROBJ; + else if (obj == DWARF) { + if (HERE(FOOD)) { + game.dflag += 2; + spk = 103; } - game.dflag=game.dflag+2; - RSPEAK(103); - return GO_CLEAROBJ; } - - if (obj == BEAR) { + else if (obj == BEAR) { if (game.prop[BEAR] == 0)spk=102; if (game.prop[BEAR] == 3)spk=110; - if (!HERE(FOOD)) { - RSPEAK(spk); - return GO_CLEAROBJ; + if (HERE(FOOD)) { + DSTROY(FOOD); + game.prop[BEAR]=1; + game.fixed[AXE]=0; + game.prop[AXE]=0; + spk=168; } - DSTROY(FOOD); - game.prop[BEAR]=1; - game.fixed[AXE]=0; - game.prop[AXE]=0; - spk=168; - RSPEAK(spk); - return GO_CLEAROBJ; } - - if (obj == OGRE) { + else if (obj == OGRE) { if (HERE(FOOD)) spk=202; - RSPEAK(spk); - return GO_CLEAROBJ; + } else { + spk=14; } - - spk=14; RSPEAK(spk); return GO_CLEAROBJ; }