Dragon attack code no longer edits the command struct.
[open-adventure.git] / actions.c
index be822c8083493c44c4201c29933620fd9e3eb632..802c1f3303b6c233d8b648985b04d28fc7369b2c 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -101,14 +101,11 @@ static int attack(struct command_t *command)
          *  fixed), move rug there (not fixed), and move him there,
          *  too.  Then do a null motion to get new description. */
         rspeak(BARE_HANDS_QUERY);
-        if (silent_yes()) {
-            // FIXME: setting wd1 is a workaround for broken logic
-            command->wd1 = token_to_packed("Y");
-        } else {
-            // FIXME: setting wd1 is a workaround for broken logic
-            command->wd1 = token_to_packed("N");
-            return GO_CHECKFOO;
-        }
+       if (!silent_yes())
+         {
+           speak(arbitrary_messages[NASTY_DRAGON]);
+           return GO_MOVE;
+         }
         state_change(DRAGON, DRAGON_DEAD);
         game.prop[RUG] = RUG_FLOOR;
         /* Hardcoding LOC_SECRET5 as the dragon's death location is ugly.
@@ -995,7 +992,7 @@ static int lock(verb_t verb, obj_t obj)
         if (verb == LOCK)
             rspeak(HUH_MAN);
         else if (!TOTING(TRIDENT))
-            rspeak(OYSTER_OPENER);
+            rspeak(CLAM_OPENER);
         else {
             DESTROY(CLAM);
             drop(OYSTER, game.loc);
@@ -1006,8 +1003,12 @@ static int lock(verb_t verb, obj_t obj)
     case OYSTER:
         if (verb == LOCK)
             rspeak(HUH_MAN);
-        else
+       else if (TOTING(OYSTER))
+           rspeak(DROP_OYSTER);
+        else if (!TOTING(TRIDENT))
             rspeak(OYSTER_OPENER);
+       else
+           rspeak(OYSTER_OPENS);
         break;
     case DOOR:
         rspeak((game.prop[DOOR] == DOOR_UNRUSTED) ? OK_MAN : RUSTY_DOOR);