X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=actions.c;h=e88773e94245869e39f0dc3ce598c0f82127a647;hb=0d5f9064c70eaef3fe51f0b30284fe4eb946d99b;hp=4d077628e4c8f003039ea2edb8c45fe5ba3909b7;hpb=0dc78b422167e0e19477efa5c28dea9af77a5785;p=open-adventure.git diff --git a/actions.c b/actions.c index 4d07762..e88773e 100644 --- a/actions.c +++ b/actions.c @@ -65,7 +65,7 @@ static int attack(FILE *input, long verb, token_t obj) if (obj == DWARF && game.closed) return GO_DWARFWAKE; if (obj == DRAGON)spk=ALREADY_DEAD; if (obj == TROLL)spk=ROCKY_TROLL; - if (obj == OGRE)spk=OGRE_DOFGE; + if (obj == OGRE)spk=OGRE_DODGE; if (obj == OGRE && d > 0) { RSPEAK(spk); RSPEAK(KNIFE_THROWN); @@ -154,12 +154,11 @@ static int bigwords(long foo) static int bivalve(token_t verb, token_t obj) /* Clam/oyster actions */ { - int spk, k=0; - if (obj == OYSTER)k=1; - /* FIXME: Arithmetic on message numbers in next lines */ - spk=PEARL_FALLS+k; - if (TOTING(obj))spk=DROP_CLAM+k; - if (!TOTING(TRIDNT))spk=CLAM_OPENER+k; + int spk; + bool is_oyster = (obj == OYSTER); + spk= is_oyster ? OYSTER_OPENS : PEARL_FALLS; + if (TOTING(obj))spk= is_oyster ? DROP_OYSTER : DROP_CLAM; + if (!TOTING(TRIDNT))spk= is_oyster ? OYSTER_OPENER : CLAM_OPENER; if (verb == LOCK)spk=HUH_MAN; if (spk == PEARL_FALLS) { DSTROY(CLAM); @@ -184,7 +183,7 @@ static int blast(void) if (HERE(ROD2)) game.bonus=135; RSPEAK(game.bonus); - score(0); + score(endgame); return GO_CLEAROBJ; /* pacify compiler - we never get here */ } @@ -276,7 +275,7 @@ static int carry(token_t verb, token_t obj) } if (!TOTING(CAGE))spk=CANNOT_CARRY; if (TOTING(ROD))spk=BIRD_EVADES; - if (spk/2 == 13) { /* FIXME: Arithmetic on message number */ + if (spk == CANNOT_CARRY || spk == BIRD_EVADES) { RSPEAK(spk); return GO_CLEAROBJ; } @@ -592,7 +591,7 @@ static int fly(token_t verb, token_t obj) if (obj == INTRANSITIVE) { if (game.prop[RUG] != 2)spk=RUG_NOTHING2; if (!HERE(RUG))spk=FLAP_ARMS; - if (spk/2 == 112) { /* FIXME: Arithmetic on message numbers */ + if (spk == RUG_NOTHING2 || spk == FLAP_ARMS) { RSPEAK(spk); return GO_CLEAROBJ; } @@ -730,10 +729,10 @@ static int lock(token_t verb, token_t obj) if (!game.panic)game.clock2=15; game.panic=true; } else { - spk=ALREADY_LOCKED+game.prop[GRATE]; /* FIXME: Arithmetic on message number */ + spk=game.prop[GRATE] ? GRATE_LOCKED : ALREADY_LOCKED; game.prop[GRATE]=1; if (verb == LOCK)game.prop[GRATE]=0; - spk=spk+2*game.prop[GRATE]; + spk=game.prop[GRATE] ? GRATE_UNLOCKED : GRATE_LOCKED; } } } @@ -778,7 +777,7 @@ static int quit(FILE *input) /* Quit. Intransitive only. Verify intent and exit if that's what he wants. */ { if (YES(input,REALLY_QUIT,OK_MAN,OK_MAN)) - score(1); + score(quitgame); return GO_CLEAROBJ; } @@ -860,6 +859,7 @@ static int say(void) if (WD2 > 0) WD1=WD2; int wd=VOCAB(WD1,-1); + /* FIXME: Magic numbers */ if (wd == 62 || wd == 65 || wd == 71 || wd == 2025 || wd == 2034) { WD2=0; return GO_LOOKUP; @@ -918,7 +918,7 @@ static int throw(FILE *cmdin, long verb, token_t obj) return throw_support(spk); } if (AT(OGRE)) { - spk=OGRE_DOFGE; + spk=OGRE_DODGE; return throw_support(spk); } if (HERE(BEAR) && game.prop[BEAR] == 0) { @@ -949,7 +949,7 @@ static int throw(FILE *cmdin, long verb, token_t obj) static int vscore(void) /* Score. Call scoring routine but tell it to return. */ { - score(-1); + score(scoregame); return GO_CLEAROBJ; }