+ if (command->obj != AXE)
+ return (discard(command->verb, command->obj, false));
+ else {
+ if (atdwrf(game.loc) <= 0) {
+ if (AT(DRAGON) && game.prop[DRAGON] == DRAGON_BARS)
+ return throw_support(DRAGON_SCALES);
+ if (AT(TROLL))
+ return throw_support(TROLL_RETURNS);
+ else if (AT(OGRE))
+ return throw_support(OGRE_DODGE);
+ else if (HERE(BEAR) && game.prop[BEAR] == UNTAMED_BEAR) {
+ /* This'll teach him to throw the axe at the bear! */
+ drop(AXE, game.loc);
+ game.fixed[AXE] = IS_FIXED;
+ juggle(BEAR);
+ state_change(AXE, AXE_LOST);
+ return GO_CLEAROBJ;
+ }
+ command->obj = NO_OBJECT;
+ return (attack(command));
+ }